    :root {
      --ink: #142235;
      --muted: #5d6b7a;
      --line: #dbe5ea;
      --paper: #ffffff;
      --surface: #f4f8f9;
      --teal: #087f83;
      --teal-dark: #075f65;
      --teal-soft: #d9f0ef;
      --blue: #276fbf;
      --blue-soft: #e3effc;
      --gold: #f2b84b;
      --gold-soft: #fff3d8;
      --green: #3a8f5c;
      --green-soft: #e2f1e7;
      --coral: #c94b39;
      --button-primary-bg: var(--teal);
      --button-primary-text: #ffffff;
      --button-secondary-bg: var(--teal-soft);
      --button-secondary-text: var(--teal-dark);
      --button-hover-bg: var(--teal-dark);
      --tag-bg: var(--teal-soft);
      --tag-text: var(--teal-dark);
      --success-text: var(--green);
      --danger-soft: var(--gold-soft);
      --danger-text: var(--coral);
      --shadow: 0 16px 36px rgba(21, 38, 52, .12);
      --small-shadow: 0 8px 20px rgba(21, 38, 52, .08);
    }

    * { box-sizing: border-box; }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--surface);
      font-family: var(--directory-font, Arial, Helvetica, sans-serif);
      letter-spacing: 0;
    }

    button, input { font: inherit; }
    button { cursor: pointer; }

    .qlik-directory-dashboard {
      color: var(--ink);
      background: var(--surface);
      font-family: var(--directory-font, Arial, Helvetica, sans-serif);
    }

    .qlik-directory-error {
      max-width: 760px;
      margin: 24px auto;
      padding: 16px 18px;
      border: 1px solid #f1beb6;
      border-radius: 8px;
      color: #7c2e22;
      background: #fff6f4;
    }

    .masthead {
      color: #fff;
      padding: 28px 32px 34px;
      background:
        linear-gradient(135deg, var(--teal), var(--teal-dark)),
        url("data:image/svg+xml,%3Csvg width='1200' height='260' viewBox='0 0 1200 260' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 185C105 142 206 135 303 164C429 201 527 228 656 164C791 96 928 99 1200 141V260H0Z' fill='%23ffffff' fill-opacity='.12'/%3E%3Cpath d='M0 92C172 139 293 111 423 75C580 32 730 34 881 87C1012 133 1118 128 1200 101V0H0Z' fill='%23ffffff' fill-opacity='.08'/%3E%3C/svg%3E");
      background-size: cover;
    }

    .masthead-inner {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 24px;
      align-items: center;
      max-width: 1440px;
      margin: 0 auto;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 12px;
      border: 1px solid rgba(255, 255, 255, .36);
      border-radius: 999px;
      background: rgba(255, 255, 255, .12);
      font-size: 13px;
      font-weight: 700;
      text-transform: uppercase;
    }

    h1 {
      margin: 16px 0 8px;
      max-width: 840px;
      font-family: var(--directory-heading-font, var(--directory-font, Arial, Helvetica, sans-serif));
      font-size: 38px;
      line-height: 1.12;
      letter-spacing: 0;
    }

    .qlik-directory-dashboard h2,
    .qlik-directory-dashboard h3 {
      font-family: var(--directory-heading-font, var(--directory-font, Arial, Helvetica, sans-serif));
    }

    .lead {
      max-width: 760px;
      margin: 0;
      color: rgba(255, 255, 255, .9);
      font-size: 18px;
      line-height: 1.5;
    }

    .help-card {
      width: 280px;
      padding: 18px;
      border: 1px solid rgba(255, 255, 255, .28);
      border-radius: 8px;
      background: rgba(255, 255, 255, .14);
    }

    .help-card strong {
      display: block;
      margin-bottom: 6px;
      font-size: 18px;
    }

    .help-card span {
      display: block;
      color: rgba(255, 255, 255, .86);
      line-height: 1.45;
    }

    .search-band {
      position: relative;
      z-index: 2;
      max-width: 1440px;
      margin: -24px auto 0;
      padding: 0 32px;
    }

    .search-panel {
      display: grid;
      grid-template-columns: minmax(260px, 1fr) auto;
      gap: 16px;
      padding: 18px;
      border-radius: 8px;
      background: var(--paper);
      box-shadow: var(--shadow);
    }

    .search-box { position: relative; }

    .search-box .search-icon {
      position: absolute;
      left: 18px;
      top: 50%;
      width: 18px;
      height: 18px;
      border: 2px solid var(--muted);
      border-radius: 50%;
      color: var(--muted);
      transform: translateY(-50%);
    }

    .search-box .search-icon::after {
      content: "";
      position: absolute;
      right: -7px;
      bottom: -5px;
      width: 9px;
      height: 2px;
      border-radius: 2px;
      background: var(--muted);
      transform: rotate(45deg);
      transform-origin: left center;
    }

    .search-box input {
      width: 100%;
      min-height: 56px;
      padding: 0 18px 0 48px;
      border: 2px solid var(--line);
      border-radius: 8px;
      color: var(--ink);
      background: #fff;
      font-size: 17px;
    }

    .search-box input:focus,
    .filter-search:focus,
    .nearby-card input:focus,
    .nearby-card select:focus {
      outline: 3px solid rgba(39, 111, 191, .2);
      border-color: var(--blue);
    }

    .qlik-directory-dashboard button:focus-visible,
    .qlik-directory-dashboard a:focus-visible,
    .leaflet-control-zoom a:focus-visible {
      outline: 3px solid rgba(39, 111, 191, .45);
      outline-offset: 2px;
    }

    .primary-actions {
      display: flex;
      gap: 10px;
      align-items: center;
    }

    .button {
      min-height: 44px;
      padding: 0 16px;
      border: 0;
      border-radius: 8px;
      color: var(--ink);
      background: #e9f0f3;
      font-weight: 700;
    }

    .button.primary {
      color: var(--button-primary-text);
      background: var(--button-primary-bg);
    }

    .button.secondary {
      color: var(--button-secondary-text);
      background: var(--button-secondary-bg);
    }

    .button.danger {
      color: var(--button-primary-text);
      background: var(--coral);
    }

    .button.primary:hover,
    .button.primary:focus,
    .need.active:hover,
    .view-toggle button.active:hover {
      background: var(--button-hover-bg);
    }

    .button:disabled {
      cursor: not-allowed;
      opacity: .55;
    }

    .content-wrap {
      max-width: 1440px;
      margin: 0 auto;
      padding: 22px 32px 42px;
    }

    .quick-needs {
      display: grid;
      grid-template-columns: 180px minmax(0, 1fr);
      gap: 18px;
      align-items: start;
      margin: 18px 0 20px;
    }

    .section-label {
      margin: 9px 0 0;
      color: var(--muted);
      font-weight: 700;
    }

    .need-buttons,
    .chip-row,
    .service-list,
    .active-filter-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .emergency-resource {
      display: none;
      grid-column: 1 / -1;
      margin-top: 6px;
      width: min(980px, 100%);
      justify-self: center;
      padding: 18px;
      border: 1px solid var(--gold);
      border-left: 6px solid var(--danger-text);
      border-radius: 8px;
      background: var(--danger-soft);
      box-shadow: var(--small-shadow);
    }

    .emergency-resource.active {
      display: block;
    }

    .emergency-resource h2 {
      margin: 0 0 8px;
      font-size: 20px;
      line-height: 1.25;
    }

    .emergency-resource h3 {
      margin: 14px 0 6px;
      font-size: 16px;
      line-height: 1.25;
    }

    .emergency-resource p {
      margin: 6px 0;
      color: var(--ink);
      line-height: 1.45;
    }

    .emergency-resource a {
      color: var(--teal-dark);
      font-weight: 700;
    }

    .emergency-alert {
      font-weight: 700;
    }

    .need {
      min-height: 42px;
      padding: 0 14px;
      border: 1px solid #cbdde7;
      border-radius: 8px;
      color: #183044;
      background: #fff;
      box-shadow: var(--small-shadow);
      font-weight: 700;
    }

    .need.featured {
      border-color: #f1d392;
      color: #65420a;
      background: var(--gold-soft);
    }

    .need.active {
      color: var(--button-primary-text);
      background: var(--button-primary-bg);
      border-color: var(--button-primary-bg);
    }

    .workspace {
      display: grid;
      grid-template-columns: 316px minmax(0, 1fr);
      gap: 22px;
      align-items: start;
    }

    .workspace.filters-hidden {
      grid-template-columns: minmax(0, 1fr);
    }

    .filters {
      position: sticky;
      top: 16px;
      max-height: calc(100vh - 32px);
      overflow: auto;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--paper);
      box-shadow: var(--small-shadow);
    }

    .filters.collapsed {
      display: none;
    }

    .filters-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px;
      border-bottom: 1px solid var(--line);
      background: #f9fbfc;
    }

    .filters-header h2,
    .filter-title {
      margin: 0;
      font-weight: 800;
    }

    .filters-header h2 { font-size: 20px; }
    .filter-title { margin-bottom: 10px; font-size: 16px; }

    .clear-link {
      border: 0;
      color: var(--blue);
      background: transparent;
      font-weight: 700;
    }

    .filter-group {
      padding: 16px;
      border-bottom: 1px solid var(--line);
    }

    .filter-group:last-child { border-bottom: 0; }

    .filter-search {
      width: 100%;
      min-height: 40px;
      margin-bottom: 10px;
      padding: 0 12px;
      border: 1px solid #cbd9e0;
      border-radius: 8px;
    }

    .filter-hint {
      margin: -2px 0 10px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
    }

    .chip-row.scroll-list {
      max-height: 228px;
      overflow: auto;
      padding-right: 4px;
    }

    .chip {
      min-height: 34px;
      padding: 0 11px;
      border: 1px solid transparent;
      border-radius: 8px;
      color: #193047;
      background: #dceaf1;
    }

    .chip:disabled {
      cursor: default;
      opacity: .7;
    }

    .chip.selected,
    .chip[aria-pressed="true"] {
      color: var(--button-primary-text);
      background: var(--button-primary-bg);
    }

    .chip.warm { color: var(--danger-text); background: var(--danger-soft); border-color: #f3ce7d; }
    .chip.green { color: var(--success-text); background: var(--green-soft); border-color: #b8dcc5; }

    .results { min-width: 0; }

    .results-toolbar {
      display: flex;
      justify-content: space-between;
      gap: 18px;
      align-items: center;
      margin-bottom: 16px;
    }

    .result-count {
      margin: 0;
      font-size: 22px;
      font-weight: 800;
    }

    .result-subtext {
      margin: 5px 0 0;
      color: var(--muted);
    }

    .view-toggle {
      display: inline-flex;
      padding: 4px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
    }

    .view-toggle button {
      min-height: 36px;
      padding: 0 12px;
      border: 0;
      border-radius: 6px;
      color: var(--muted);
      background: transparent;
      font-weight: 700;
    }

    .view-toggle button.active {
      color: var(--button-primary-text);
      background: var(--button-primary-bg);
    }

    .result-actions {
      display: flex;
      gap: 10px;
      align-items: center;
      justify-content: flex-end;
      flex-wrap: wrap;
    }

    .print-menu {
      position: relative;
    }

    .print-menu-toggle {
      position: relative;
      padding-right: 30px;
    }

    .print-menu-toggle::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 12px;
      width: 7px;
      height: 7px;
      border-right: 2px solid currentColor;
      border-bottom: 2px solid currentColor;
      transform: translateY(-70%) rotate(45deg);
    }

    .print-menu-panel {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      z-index: 12;
      display: none;
      width: 250px;
      padding: 6px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
      box-shadow: var(--shadow);
    }

    .print-menu.open .print-menu-panel {
      display: grid;
      gap: 4px;
    }

    .print-menu-panel button {
      width: 100%;
      min-height: 38px;
      padding: 8px 10px;
      border: 0;
      border-radius: 6px;
      color: var(--ink);
      background: transparent;
      text-align: left;
      font-weight: 700;
      line-height: 1.25;
    }

    .print-menu-panel button:hover,
    .print-menu-panel button:focus {
      outline: 0;
      background: var(--button-secondary-bg);
      color: var(--button-secondary-text);
    }

    .active-filter-row {
      margin-bottom: 18px;
    }

    .active-chip {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-height: 32px;
      padding: 0 10px;
      border: 0;
      border-radius: 999px;
      color: var(--tag-text);
      background: var(--tag-bg);
      font-size: 14px;
      font-weight: 700;
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
    }

    .cards.list-view {
      grid-template-columns: 1fr;
    }

    .org-card {
      display: flex;
      min-height: 360px;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--paper);
      box-shadow: var(--small-shadow);
    }

    .list-view .org-card {
      min-height: 0;
    }

    .card-top {
      display: flex;
      justify-content: space-between;
      gap: 14px;
      padding: 18px 18px 12px;
      border-top: 5px solid var(--teal);
    }

    .org-card:nth-child(2n) .card-top { border-top-color: var(--blue); }
    .org-card:nth-child(3n) .card-top { border-top-color: var(--gold); }
    .org-card:nth-child(4n) .card-top { border-top-color: var(--green); }

    .org-card h3 {
      margin: 0;
      font-size: 19px;
      line-height: 1.25;
    }

    .website-link {
      white-space: nowrap;
      color: var(--blue);
      font-size: 14px;
      font-weight: 800;
      text-decoration: none;
    }

    .card-body {
      display: flex;
      flex: 1;
      flex-direction: column;
      padding: 0 18px 16px;
    }

    .meta {
      display: grid;
      gap: 6px;
      margin: 0 0 14px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.35;
    }

    .meta strong { color: var(--ink); }

    .meta .county-summary {
      display: block;
    }

    .distance-pill {
      display: inline-flex;
      width: fit-content;
      min-height: 28px;
      align-items: center;
      padding: 0 10px;
      border-radius: 999px;
      color: var(--tag-text);
      background: var(--tag-bg);
      font-weight: 800;
    }

    .service-list {
      gap: 7px;
      margin-bottom: 14px;
    }

    .service-tag {
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      padding: 0 9px;
      border: 0;
      border-radius: 999px;
      color: var(--tag-text);
      background: var(--tag-bg);
      font-size: 13px;
      font-weight: 700;
    }

    .service-tag.main {
      color: var(--tag-text);
      background: var(--tag-bg);
    }

    .description {
      margin: 0 0 18px;
      color: #34475a;
      line-height: 1.5;
    }

    .details-panel {
      display: none;
      margin: -4px 0 18px;
      padding: 12px;
      border-radius: 8px;
      background: #f8fbfc;
      color: #34475a;
      line-height: 1.45;
    }

    .details-panel.open {
      display: block;
    }

    .card-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 9px;
      margin-top: auto;
    }

    .card-actions .details {
      grid-column: 1 / -1;
      color: var(--button-secondary-text);
      background: var(--button-secondary-bg);
    }

    .card-actions .button:not(.primary) {
      color: var(--button-secondary-text);
      background: var(--button-secondary-bg);
    }

    .map-panel,
    .empty-state,
    .loading-state,
    .error-state {
      padding: 24px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fff;
      box-shadow: var(--small-shadow);
    }

    .map-panel {
      display: none;
      min-height: 420px;
      background: #fff;
      position: relative;
      overflow: hidden;
    }

    .map-panel:focus {
      outline: 3px solid rgba(39, 111, 191, .35);
      outline-offset: 2px;
    }

    .map-panel.active { display: block; }

    .map-canvas {
      min-height: 520px;
      width: 100%;
      border-radius: 8px;
      overflow: hidden;
      z-index: 1;
    }

    .map-notice {
      position: absolute;
      left: 14px;
      bottom: 14px;
      z-index: 500;
      max-width: min(520px, calc(100% - 28px));
      padding: 10px 12px;
      border: 1px solid rgba(219, 229, 234, .9);
      border-radius: 8px;
      color: var(--ink);
      background: rgba(255, 255, 255, .92);
      box-shadow: var(--small-shadow);
      font-size: 13px;
    }

    .map-legend {
      position: absolute;
      right: 14px;
      top: 14px;
      z-index: 500;
      display: grid;
      gap: 8px;
      padding: 10px 12px;
      border: 1px solid rgba(219, 229, 234, .9);
      border-radius: 8px;
      color: var(--ink);
      background: rgba(255, 255, 255, .94);
      box-shadow: var(--small-shadow);
      font-size: 13px;
      font-weight: 700;
    }

    .map-legend-item {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .map-legend-dot {
      width: 12px;
      height: 12px;
      border: 2px solid #fff;
      border-radius: 999px;
      box-shadow: 0 0 0 1px rgba(20, 34, 53, .18);
      print-color-adjust: exact;
      -webkit-print-color-adjust: exact;
    }

    .map-number-marker {
      display: grid;
      place-items: center;
      width: 26px !important;
      height: 26px !important;
      margin-left: -13px !important;
      margin-top: -13px !important;
      border: 2px solid #fff;
      border-radius: 999px;
      color: #fff;
      box-shadow: 0 2px 8px rgba(20, 34, 53, .28);
      font-size: 11px;
      font-weight: 800;
      line-height: 1;
      print-color-adjust: exact;
      -webkit-print-color-adjust: exact;
    }

    .map-number-marker svg {
      display: block;
      width: 26px;
      height: 26px;
      overflow: visible;
    }

    .map-number-marker.actual { background: var(--teal); }
    .map-number-marker.estimate { background: var(--blue); }

    .map-fallback {
      min-height: 420px;
      background:
        linear-gradient(90deg, var(--teal-soft) 1px, transparent 1px),
        linear-gradient(var(--blue-soft) 1px, transparent 1px),
        var(--paper);
      background-size: 54px 54px;
      position: relative;
      border-radius: 8px;
    }

    .map-pin {
      position: absolute;
      min-width: 148px;
      padding: 10px 12px;
      border-radius: 8px;
      color: #fff;
      background: var(--teal);
      box-shadow: var(--small-shadow);
      font-size: 13px;
      font-weight: 700;
    }

    .map-pin:nth-child(2n) { background: var(--blue); }
    .map-pin:nth-child(3n) { background: var(--green); }

    .leaflet-popup-content {
      color: var(--ink);
      font-family: var(--directory-font, Arial, Helvetica, sans-serif);
    }

    .leaflet-container {
      position: relative;
      overflow: hidden;
      background: #dce8ee;
      outline-offset: 1px;
      font-family: var(--directory-font, Arial, Helvetica, sans-serif);
    }

    .leaflet-pane,
    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow,
    .leaflet-tile-container,
    .leaflet-pane > svg,
    .leaflet-pane > canvas,
    .leaflet-zoom-box,
    .leaflet-image-layer,
    .leaflet-layer {
      position: absolute;
      left: 0;
      top: 0;
    }

    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow {
      user-select: none;
      -webkit-user-drag: none;
    }

    .leaflet-tile {
      width: 256px;
      height: 256px;
      border: 0;
      visibility: hidden;
    }

    .leaflet-tile-loaded { visibility: inherit; }
    .leaflet-map-pane { z-index: 400; }
    .leaflet-tile-pane { z-index: 200; }
    .leaflet-overlay-pane { z-index: 400; }
    .leaflet-shadow-pane { z-index: 500; }
    .leaflet-marker-pane { z-index: 600; }
    .leaflet-tooltip-pane { z-index: 650; }
    .leaflet-popup-pane { z-index: 700; }
    .leaflet-interactive {
      cursor: pointer;
      pointer-events: auto;
    }

    .leaflet-control {
      position: relative;
      z-index: 800;
      pointer-events: auto;
    }

    .leaflet-top,
    .leaflet-bottom {
      position: absolute;
      z-index: 1000;
      pointer-events: none;
    }

    .leaflet-top { top: 0; }
    .leaflet-right { right: 0; }
    .leaflet-bottom { bottom: 0; }
    .leaflet-left { left: 0; }

    .leaflet-control-zoom {
      border: 1px solid rgba(20, 34, 53, .18);
      border-radius: 8px;
      overflow: hidden;
      box-shadow: var(--small-shadow);
    }

    .leaflet-control-zoom a {
      display: block;
      width: 32px;
      height: 32px;
      line-height: 30px;
      color: var(--ink);
      background: #fff;
      text-align: center;
      text-decoration: none;
      font-weight: 700;
    }

    .leaflet-popup {
      position: absolute;
      margin-bottom: 20px;
      text-align: center;
    }

    .leaflet-popup-content-wrapper {
      padding: 0;
      border-radius: 8px;
      background: #fff;
      box-shadow: var(--small-shadow);
      text-align: left;
    }

    .leaflet-popup-content {
      margin: 0;
      min-width: 260px;
    }

    .leaflet-popup-tip-container,
    .leaflet-control-attribution {
      display: none;
    }

    .leaflet-tooltip {
      position: absolute;
      z-index: 650;
      max-width: 260px;
      padding: 6px 8px;
      border: 1px solid rgba(20, 34, 53, .16);
      border-radius: 6px;
      color: var(--ink);
      background: #fff;
      box-shadow: var(--small-shadow);
      font-size: 12px;
      font-weight: 700;
      white-space: normal;
      pointer-events: none;
    }

    .map-card {
      padding: 14px;
      color: var(--ink);
    }

    .map-card h3 {
      margin: 0 0 8px;
      font-size: 16px;
      line-height: 1.2;
    }

    .map-card p {
      margin: 6px 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.35;
    }

    .map-card strong { color: var(--ink); }

    .map-card-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin: 10px 0;
    }

    .map-card-tags span {
      padding: 4px 7px;
      border-radius: 999px;
      color: #005d63;
      background: var(--teal-soft);
      font-size: 11px;
      font-weight: 700;
    }

    .map-card-link {
      display: inline-flex;
      margin-top: 8px;
      color: var(--teal-dark);
      font-size: 13px;
      font-weight: 700;
      text-decoration: none;
    }

    .empty-state {
      display: none;
      text-align: center;
    }

    .empty-state.active { display: block; }

    .loading-state {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
      color: var(--muted);
    }

    .loading-state.hidden,
    .error-state.hidden {
      display: none;
    }

    .spinner {
      width: 26px;
      height: 26px;
      border: 3px solid var(--teal-soft);
      border-top-color: var(--teal);
      border-radius: 50%;
      animation: spin .8s linear infinite;
    }

    .error-state {
      margin-bottom: 18px;
      border-color: #f1beb6;
      background: #fff6f4;
      color: #7c2e22;
    }

    @keyframes spin {
      to { transform: rotate(360deg); }
    }

    .empty-state h3 {
      margin: 0 0 8px;
      font-size: 22px;
    }

    .empty-state p {
      margin: 0 0 18px;
      color: var(--muted);
      line-height: 1.45;
    }

    .pagination-actions {
      display: flex;
      justify-content: center;
      margin: 22px 0 0;
    }

    .pagination-actions.hidden {
      display: none;
    }

    .print-view {
      display: none;
    }

    @media print {
      body {
        background: #fff;
      }

      .masthead,
      .search-band,
      .quick-needs,
      .filters,
      .results-toolbar,
      .active-filter-row,
      .cards,
      .map-panel,
      .empty-state,
      .pagination-actions,
      .modal-backdrop {
        display: none !important;
      }

      .content-wrap,
      .workspace,
      .results {
        display: block;
        max-width: none;
        padding: 0;
        margin: 0;
      }

      .print-view {
        display: block;
        color: #111;
        font-size: 11pt;
      }

      .print-org {
        break-inside: avoid;
        margin: 0 0 14pt;
        padding-bottom: 10pt;
        border-bottom: 1px solid #ccc;
      }

      .print-org h2 {
        margin: 0 0 4pt;
        font-size: 14pt;
      }

      .print-org p {
        margin: 2pt 0;
      }

      .print-results-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        page-break-inside: auto;
        font-size: 8.8pt;
      }

      .print-results-table th,
      .print-results-table td {
        padding: 4pt;
        border: 1px solid #cfd8dd;
        text-align: left;
        vertical-align: top;
      }

      .print-results-table th {
        background: #eef3f5;
        font-size: 9pt;
      }

      .print-results-table th:nth-child(1) { width: 28%; }
      .print-results-table th:nth-child(2) { width: 30%; }
      .print-results-table th:nth-child(3) { width: 16%; }
      .print-results-table th:nth-child(4) { width: 26%; }

      .print-results-entry {
        break-inside: avoid;
        page-break-inside: avoid;
      }

      .print-results-entry + .print-results-entry {
        border-top: 2pt solid #8fa1aa;
      }

      .print-results-org {
        font-weight: 700;
      }

      .print-results-main-row td {
        min-height: 24pt;
      }

      .print-results-detail-row td {
        padding: 3.5pt 4pt;
        background: #f7fafb;
        line-height: 1.32;
      }

      .print-results-detail-row strong {
        display: inline-block;
        min-width: 48pt;
      }

      .print-map {
        break-inside: avoid;
        margin: 12pt 0 16pt;
        padding: 10pt;
        border: 1px solid #aaa;
      }

      .print-map h2 {
        margin: 0 0 6pt;
        font-size: 14pt;
      }

      .print-map-legend {
        display: flex;
        gap: 14pt;
        margin: 6pt 0 10pt;
        font-size: 10pt;
      }

      .print-map-frame {
        position: relative;
        width: 100%;
        min-height: 4.6in;
        margin: 8pt 0;
        border: 1px solid #bbb;
        background: #eef5f6;
      }

      .print-map-fallback {
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #53636a;
        font-size: 10pt;
        text-align: center;
      }

      .print-map-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 9.5pt;
      }

      .print-map-table th,
      .print-map-table td {
        padding: 4pt;
        border: 1px solid #ccc;
        text-align: left;
        vertical-align: top;
      }

      .print-map-table th {
        background: #eee;
      }

      .print-map-svg {
        position: relative;
        z-index: 1;
        display: block;
        width: 100%;
        height: auto;
      }

      body.print-map-only .print-view,
      body.print-map-list .print-view {
        display: block !important;
      }

      body.print-map-only .map-panel,
      body.print-map-list .map-panel {
        display: none !important;
      }

      .map-legend-dot,
      .map-number-marker,
      .map-number-marker svg {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
      }
    }

    .modal-backdrop {
      position: fixed;
      inset: 0;
      z-index: 20;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(9, 24, 38, .54);
    }

    .modal-backdrop.active { display: flex; }

    .nearby-modal {
      width: min(920px, 100%);
      max-height: min(760px, calc(100vh - 48px));
      overflow: auto;
      border-radius: 8px;
      background: #fff;
      box-shadow: var(--shadow);
    }

    .modal-header {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      align-items: start;
      padding: 22px;
      border-bottom: 1px solid var(--line);
    }

    .modal-header h2 {
      margin: 0 0 6px;
      font-size: 24px;
    }

    .modal-header p,
    .nearby-card p,
    .nearby-status {
      margin: 0;
      color: var(--muted);
      line-height: 1.45;
    }

    .close-modal {
      min-width: 40px;
      min-height: 40px;
      border: 0;
      border-radius: 8px;
      color: var(--ink);
      background: #edf3f6;
      font-weight: 800;
    }

    .nearby-options {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      padding: 22px;
    }

    .nearby-card {
      display: flex;
      min-height: 260px;
      flex-direction: column;
      gap: 12px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: #fbfdfe;
    }

    .nearby-card h3 {
      margin: 0;
      font-size: 18px;
    }

    .nearby-card label {
      color: var(--ink);
      font-weight: 800;
    }

    .nearby-card input,
    .nearby-card select {
      width: 100%;
      min-height: 42px;
      padding: 0 12px;
      border: 1px solid #cbd9e0;
      border-radius: 8px;
      background: #fff;
    }

    .nearby-card .button { margin-top: auto; }

    .nearby-status {
      min-height: 42px;
      padding: 10px 12px;
      border-radius: 8px;
      background: #f1f6f8;
      font-size: 14px;
    }

    .hidden { display: none; }

    @media (max-width: 1100px) {
      .workspace { grid-template-columns: 1fr; }
      .filters { position: static; }
      .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 760px) {
      .masthead, .search-band, .content-wrap {
        padding-left: 18px;
        padding-right: 18px;
      }

      .masthead-inner,
      .search-panel,
      .quick-needs {
        grid-template-columns: 1fr;
      }

      .help-card { width: 100%; }
      h1 { font-size: 31px; }

      .primary-actions,
      .result-actions,
      .results-toolbar {
        flex-direction: column;
        align-items: stretch;
      }

      .button,
      .view-toggle,
      .view-toggle button,
      .print-menu,
      .print-menu-toggle {
        width: 100%;
      }

      .view-toggle {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .print-menu-panel {
        left: 0;
        right: auto;
        width: 100%;
      }

      .cards { grid-template-columns: 1fr; }
      .card-top { flex-direction: column; }
      .website-link { white-space: normal; }
      .nearby-options { grid-template-columns: 1fr; }
      .modal-backdrop { padding: 12px; }
      .modal-header { align-items: flex-start; }
    }
              @page { margin: .45in; }
              * { box-sizing: border-box; }
              body {
                margin: 0;
                color: #111;
                background: #fff;
                font: 11pt/1.4 Arial, sans-serif;
                print-color-adjust: exact;
                -webkit-print-color-adjust: exact;
              }
              h1 { margin: 0 0 12pt; font-size: 18pt; }
              p { margin: 3pt 0; }
              .print-org {
                break-inside: avoid;
                margin: 0 0 14pt;
                padding-bottom: 10pt;
                border-bottom: 1px solid #ccc;
              }
              .print-org h2 {
                margin: 0 0 4pt;
                font-size: 14pt;
              }
              .print-map {
                break-inside: avoid;
                margin: 0 0 16pt;
                padding: 10pt;
                border: 1px solid #aaa;
              }
              .print-map h2 {
                margin: 0 0 6pt;
                font-size: 14pt;
              }
              .print-map-legend {
                display: flex;
                flex-wrap: wrap;
                gap: 8pt 14pt;
                margin: 6pt 0 10pt;
                font-size: 10pt;
              }
              .print-map-frame {
                position: relative;
                width: 100%;
                min-height: 4.6in;
                margin: 8pt 0;
                border: 1px solid #bbb;
                background: #eef5f6;
              }
              .print-map-fallback {
                position: absolute;
                inset: 0;
                display: grid;
                place-items: center;
                color: #53636a;
                font-size: 10pt;
                text-align: center;
              }
              .print-map-svg {
                position: relative;
                z-index: 1;
                display: block;
                width: 100%;
                max-width: 100%;
                height: auto;
                margin: 8pt 0;
              }
              @media screen {
                body { padding: 18px; }
              }
