/* London Reuse Map: "browse" look (from the design file Browse): airy near-white page, big rounded cards with pastel badges,
   pill search fields, a rounded map card. Loaded only by index.html, after style.css; scoped to body.theme-browse.
   Pins keep their original style. To go back, remove the <link> and the class on <body>. */

body.theme-browse {
  --ink: #0F2A24;
  --ink-soft: #52695F;
  --paper: #F4F6EC;          /* page */
  --paper-raised: #FFFFFF;   /* cards, panels, inputs */
  --moss: #0F2A24;           /* primary buttons: dark ink with lime text */
  --line: #D3DCC9;
  --line-strong: #B4C2A8;
  --focus: #4F6FE8;
  --lime: #C6F26B;
  --card-hover: #E9EFDD;
  --pastel-repair: #FFB48A; --pastel-reuse: #D4EE8F; --pastel-recycling: #9FD3F5; --pastel-storage: #D1BCFA; --pastel-collect: #FFB3D1;
  font-family: 'Instrument Sans', system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
}
body.theme-browse h1, body.theme-browse h2, body.theme-browse h3,
body.theme-browse #introTitle, body.theme-browse .list-card-main h3 {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 800; letter-spacing: -0.02em;
}
body.theme-browse .filter-group-heading { font-family: 'Instrument Sans', sans-serif; }
body.theme-browse :focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

/* buttons: pills */
body.theme-browse .btn {
  border-radius: 22px; border: 1.5px solid var(--line-strong); background: #fff; color: var(--ink);
  min-height: 40px; padding: 8px 18px; font-weight: 600; font-size: 0.88rem;
}
body.theme-browse .btn:hover { background: var(--card-hover); }
body.theme-browse .btn.primary { background: var(--ink); border-color: var(--ink); color: var(--lime); }
body.theme-browse .btn.primary:hover { background: #1D453B; filter: none; }
body.theme-browse .btn.danger { background: var(--danger); border-color: var(--danger); color: #fff; }

/* form fields: pills for single-line inputs */
body.theme-browse input, body.theme-browse select, body.theme-browse textarea {
  border: 1.5px solid var(--line); border-radius: 14px; background: #fff; padding: 10px 14px;
}
body.theme-browse input:not([type=checkbox]):not([type=radio]), body.theme-browse select { border-radius: 24px; min-height: 44px; }
body.theme-browse input[type="checkbox"], body.theme-browse input[type="radio"] { accent-color: var(--ink); }

/* header with the logo */
body.theme-browse header.top { padding: 12px 24px; align-items: center; gap: 8px 24px; background: var(--paper); }
body.theme-browse header.top h1 { margin: 0; font-size: 24px; letter-spacing: -0.02em; line-height: 1; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); }
.brand svg { width: 40px; height: 40px; flex: none; }
.brand .wordmark { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 24px; letter-spacing: -0.02em; line-height: 1; font-weight: 500; }
.brand .wordmark b { font-weight: 800; }
.brand .wordmark i { font-style: normal; color: var(--ink-soft); }
body.theme-browse header.top p { color: var(--ink-soft); }
body.theme-browse .top-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* side panel */
body.theme-browse aside.sidebar { background: var(--paper); border-right: 1px solid var(--line); }
body.theme-browse .filter-row, body.theme-browse .place-item { border-radius: 14px; }
body.theme-browse .filter-row:hover, body.theme-browse .place-item:hover { background: var(--card-hover); }
body.theme-browse .place-item { background: #fff; border: 1.5px solid #E1E8D8; margin-bottom: 8px; padding: 12px 14px; }
body.theme-browse .place-item .name { font-weight: 600; font-size: 0.92rem; }
body.theme-browse .filter-group-heading { border-top-color: var(--line); color: var(--ink-soft); }
body.theme-browse .scroll-filters { border-radius: 14px; border-color: var(--line); background: #fff; }
body.theme-browse .op-block { border-radius: 16px; border-color: var(--line); background: #fff; }
body.theme-browse .mat-badge { border-radius: 12px; background: #fff; border-color: var(--line-strong); }
body.theme-browse .stats-bar { background: var(--paper); border-bottom-color: var(--line); }

/* the map and its pins: pastel fill, dark outline */
body.theme-browse .leaflet-container { background: #EEF1E4; font-family: inherit; }
body.theme-browse .leaflet-bar { border: 0; border-radius: 26px; overflow: hidden; box-shadow: 0 4px 14px rgba(15, 42, 36, 0.25); }
body.theme-browse .leaflet-bar a { background: var(--ink); color: #F2F6EF; border-bottom: 1px solid #254840; width: 44px; height: 44px; line-height: 44px; font-size: 20px; }
body.theme-browse .leaflet-bar a:hover { background: #1D453B; color: #fff; }
body.theme-browse .leaflet-bar a:last-child { border-bottom: 0; }
body.theme-browse .view-toggle { border-radius: 24px; border: 1.5px solid var(--line-strong); background: #fff; }
body.theme-browse .view-toggle button { padding: 10px 18px; font-weight: 600; min-height: 40px; }
body.theme-browse .view-toggle button.active { background: var(--ink); color: var(--lime); }
body.theme-browse .boundary-draw-control { border-radius: 20px; background: #fff; }

/* pop-ups and tags: dark text on the pastel colours */
body.theme-browse .leaflet-popup-content-wrapper { border-radius: 20px; background: #fff; color: var(--ink); box-shadow: 0 12px 40px rgba(15, 42, 36, 0.3); }
body.theme-browse .leaflet-popup-tip { background: #fff; }
body.theme-browse .leaflet-popup-content { font-family: inherit; }
body.theme-browse .leaflet-popup-content h3 { font-size: 1.1rem; }
body.theme-browse .leaflet-popup-content .cs-popup-thumb { border-radius: 12px; }
body.theme-browse a { color: #2D4FD0; }
body.theme-browse a.brand, body.theme-browse a.btn { color: var(--ink); text-decoration: none; }
body.theme-browse a.btn.primary { color: var(--lime); }

/* cards, list view, modals */
body.theme-browse .list-view { background: var(--paper); }
body.theme-browse .list-card { border-radius: 20px; background: #fff; border-color: #E1E8D8; }
body.theme-browse .modal { border-radius: 24px; background: #fff; border-color: var(--line); box-shadow: 0 12px 40px rgba(15, 42, 36, 0.3); }
body.theme-browse .msg { border-radius: 14px; }
body.theme-browse #introStage { background-color: rgba(244, 246, 236, 0.9); }
body.theme-browse .intro-skip { border-radius: 22px; min-height: 40px; }

@media (max-width: 760px) {
  body.theme-browse header.top { align-items: stretch; }
  body.theme-browse header.top h1, .brand .wordmark { font-size: 21px; }
  body.theme-browse header.top { padding: 10px 12px 8px; }
  .brand svg { width: 34px; height: 34px; }
}

/* keep the bottom bar's own colours (the general link colour above must not reach it) */
body.theme-browse .bottom-nav a, body.theme-browse .bottom-nav button { color: var(--ink-soft); }
body.theme-browse .bottom-nav [aria-current="page"] { color: var(--ink); }
body.theme-browse .bottom-nav [aria-current="page"]::before { background: var(--ink); }
body.theme-browse header.top > div:first-of-type, body.theme-browse header.top h1, body.theme-browse header.top p { text-align: left; }

/* pins keep the original style (original colours, white outline); their tags keep white text on the original colours */
body.theme-browse .cat-tag { border-radius: 12px; padding: 3px 10px; font-weight: 600; }

/* the map as a framed card, so its pale grey no longer runs straight into the cream page */
body.theme-browse main.mapwrap {
  margin: 12px 16px 16px 8px; border-radius: 22px; overflow: hidden;
  border: 2px solid var(--ink); box-shadow: 0 8px 22px rgba(15, 42, 36, 0.22);
  background: var(--ink);
}
body.theme-browse aside.sidebar { border-right: 0; }
@media (max-width: 760px) {
  body.theme-browse main.mapwrap { margin: 8px 10px 10px; border-radius: 18px; border-width: 1.5px; }
}

/* =====================================================================================================
   "Browse" overrides (these come last, so they win over the shared pastel base above)
   ===================================================================================================== */
body.theme-browse {
  --paper: #FCFCF8; --line: #E1E6D8; --line-strong: #CBD3BF; --card-hover: #F1F4E8; --sheet-shadow: 0 10px 36px rgba(15, 42, 36, 0.22);
  --p-repair: #FFB48A; --p-reuse: #D4EE8F; --p-recycling: #9FD3F5; --p-storage: #D1BCFA; --p-collect: #FFB3D1;
}

/* header: airy, white, logo left; the other pages are plain links and the project button is the one dark pill */
body.theme-browse header.top { padding: 14px 40px; min-height: 88px; background: var(--paper); border-bottom: 0; gap: 8px 24px; }
body.theme-browse header.top .top-desc { display: none; }
body.theme-browse header.top > div:first-of-type p { font-size: 0.74rem; margin: 6px 0 0 52px; }
body.theme-browse .top-actions { gap: 4px; }
body.theme-browse .top-actions a.btn:not(.primary) { border: 0; background: transparent; min-height: 44px; padding: 0 16px; font-size: 15px; font-weight: 500; }
body.theme-browse .top-actions a.btn:not(.primary):hover { background: #EEF1E4; }
body.theme-browse .top-actions #openProjectWizardBtn { min-height: 48px; padding: 0 24px; border-radius: 24px; font-size: 15px; margin-left: 8px; }
body.theme-browse .account-btn { width: 48px; height: 48px; border: 1.5px solid var(--ink); background: #fff; margin-left: 4px; }
body.theme-browse .account-btn.signed-in { background: var(--ink); color: var(--lime); }

/* the counts row: soft pills, with a hairline and a gentle shadow under it */
body.theme-browse .stats-bar {
  padding: 12px 40px 14px; gap: 10px; background: rgba(252, 252, 248, 0.94);
  border-bottom: 1px solid #E7EBDF; box-shadow: 0 8px 20px -14px rgba(15, 42, 36, 0.3);
}
body.theme-browse .stats-bar > span { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 16px; border-radius: 18px; background: #EEF1E4; color: var(--ink); font-weight: 600; font-size: 0.84rem; white-space: nowrap; }
body.theme-browse .stats-bar i { width: 12px; height: 12px; margin-right: 0; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(15, 42, 36, 0.25); }
body.theme-browse .stats-bar strong { font-weight: 800; }

/* the side panel: search as a pill with a soft shadow, places as big rounded cards */
body.theme-browse aside.sidebar { padding: 20px 20px 28px 40px; background: var(--paper); }
body.theme-browse .search-panel input:not([type=radio]):not([type=checkbox]), body.theme-browse .search-panel select {
  min-height: 52px; border: 1px solid var(--line); box-shadow: 0 3px 12px rgba(15, 42, 36, 0.08);
}
body.theme-browse .search-panel .btn.primary { min-height: 52px; }
body.theme-browse .place-item {
  align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 12px; border-radius: 20px;
  background: #fff; border: 1px solid var(--line); transition: transform .2s, box-shadow .2s, background .2s;
}
body.theme-browse .place-item:hover { background: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px -10px rgba(15, 42, 36, 0.3); }
body.theme-browse .place-item .name { font-size: 1rem; font-weight: 600; line-height: 1.3; }
body.theme-browse .place-item .borough { font-size: 0.86rem; }
/* each place gets a round badge: a pastel ring (by type) around its pin colour */
body.theme-browse .place-item .dot { flex: none; width: 40px; height: 40px; margin-top: 0; border: 11px solid var(--p-reuse); background-clip: padding-box; }
body.theme-browse .place-item .dot[style*="0f2a24"] { border-color: var(--p-recycling); }
body.theme-browse .place-item .dot[style*="c6f26b"] { border-color: var(--p-reuse); }
body.theme-browse .place-item .dot[style*="3e9b4f"] { border-color: var(--p-repair); }
body.theme-browse .place-item .dot[style*="2a8c82"] { border-color: var(--p-storage); }
body.theme-browse .place-item .dot[style*="7e8f22"] { border-color: var(--p-collect); }
body.theme-browse .filter-row { padding: 8px 10px; }
body.theme-browse .filter-group-heading { font-size: 0.74rem; }
body.theme-browse .op-block, body.theme-browse .scroll-filters { border-color: var(--line); }

/* tags on cards and pop-ups: white text on the original colours stays, but softly rounded */
body.theme-browse .cat-tag { border-radius: 14px; padding: 4px 12px; font-weight: 600; }

/* the map: one large rounded card, thin border, soft shadow; white controls like the design */
body.theme-browse main.mapwrap {
  margin: 4px 40px 28px 8px; border-radius: 28px; border: 1px solid #D9DFCF; box-shadow: 0 10px 30px rgba(15, 42, 36, 0.14); background: #EEF1E4;
}
body.theme-browse .leaflet-bar { border-radius: 14px; background: #fff; box-shadow: 0 2px 10px rgba(15, 42, 36, 0.18); }
body.theme-browse .leaflet-bar a { background: #fff; color: var(--ink); border-bottom: 1px solid #E7EBDF; }
body.theme-browse .leaflet-bar a:hover { background: #F1F4E8; color: var(--ink); }
body.theme-browse .leaflet-bar a:last-child { border-bottom: 0; }
body.theme-browse .view-toggle { box-shadow: 0 2px 10px rgba(15, 42, 36, 0.14); border: 0; }
body.theme-browse .view-toggle button.active { background: var(--ink); color: var(--lime); }
body.theme-browse .map-layers-btn, body.theme-browse .map-layers-panel { border-radius: 20px; box-shadow: 0 2px 10px rgba(15, 42, 36, 0.18); border-color: transparent; }
body.theme-browse .leaflet-popup-content-wrapper { border-radius: 22px; box-shadow: var(--sheet-shadow); }

@media (max-width: 1100px) {
  body.theme-browse header.top { padding: 12px 20px; }
  body.theme-browse .stats-bar { padding: 10px 20px 12px; }
  body.theme-browse aside.sidebar { padding-left: 20px; }
  body.theme-browse main.mapwrap { margin-right: 20px; }
}
@media (max-width: 760px) {
  body.theme-browse header.top { padding: 10px 12px 8px; min-height: 0; }
  body.theme-browse header.top > div:first-of-type p { margin-left: 0; }
  body.theme-browse .stats-bar { padding: 8px 12px 10px; }
  body.theme-browse main.mapwrap { margin: 6px 10px 10px; border-radius: 20px; }
  body.theme-browse .account-btn { width: 44px; height: 44px; }
}

/* =====================================================================================================
   Site-wide: every page and pop-up uses this theme (pages other than the map link this same file)
   ===================================================================================================== */

/* the plan's headline (and the borough overview's) keeps the serif, like a newspaper heading */
body.theme-browse .ov-headline { font-family: 'Fraunces', Georgia, serif; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; font-size: 1.45rem; }
body.theme-browse .adv-print-head { font-family: 'Fraunces', Georgia, serif; }
body.theme-browse .ov-kicker, body.theme-browse .ov-section-title { color: var(--ink-soft); letter-spacing: 0.08em; }
body.theme-browse .ov-tile-value, body.theme-browse .adv-qty, body.theme-browse .adv-figure { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 800; color: var(--ink); }
body.theme-browse .adv-figure { border-color: var(--line-strong); border-radius: 12px; background: #F1F4E8; }
body.theme-browse .cp-ptitle, body.theme-browse .cp-val, body.theme-browse .policy-card h3, body.theme-browse .result-card h3,
body.theme-browse .cs-tile h3, body.theme-browse .policy-page h2, body.theme-browse .sidebar-mobile-bar strong { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 800; letter-spacing: -0.01em; }
body.theme-browse .cp-val { color: var(--ink); }
body.theme-browse .adv-clock, body.theme-browse .adv-clock-inline { font-family: 'Bricolage Grotesque', system-ui, sans-serif; }

/* page background, wrappers and the logo at the top of other pages */
body.theme-browse { min-height: 100vh; }
body.theme-browse .page-brand { margin: 4px 0 18px; }
body.theme-browse .back-link { color: var(--ink-soft); text-decoration: none; font-weight: 500; }
body.theme-browse .back-link:hover { color: var(--ink); text-decoration: underline; }
body.theme-browse .acct-wrap, body.theme-browse .cp-wrap, body.theme-browse .policy-page { padding-top: 24px; }
body.theme-browse h1 { font-size: 1.9rem; }
body.theme-browse header.top h1 { font-size: 24px; }
body.theme-browse header.top > div:first-of-type > h1:not(:has(.brand)) { font-size: 1.7rem; margin-top: 8px !important; }
body.theme-browse .ph-left-col header.top, body.theme-browse header.top { border-bottom: 0; }

/* cards, panels, pop-ups */
body.theme-browse .modal-backdrop { background: rgba(15, 42, 36, 0.42); backdrop-filter: blur(3px); }
body.theme-browse .modal, body.theme-browse .adv-modal { border: 1px solid var(--line); border-radius: 28px; padding: 26px 28px 28px; box-shadow: var(--sheet-shadow); }
body.theme-browse .modal button.close, body.theme-browse .adv-x {
  width: 36px; height: 36px; border-radius: 50%; background: #F1F4E8; color: var(--ink); top: 14px; right: 16px; display: grid; place-items: center; line-height: 1; cursor: pointer;
}
body.theme-browse .modal button.close:hover { background: #E4EAD6; }
body.theme-browse .adv-card, body.theme-browse .cp-card, body.theme-browse .ov-card, body.theme-browse .ov-tile, body.theme-browse .policy-card, body.theme-browse .result-card,
body.theme-browse .admin-card, body.theme-browse .login-box, body.theme-browse .adv-block, body.theme-browse .adv-understood, body.theme-browse .adv-auditbox {
  border: 1px solid var(--line); border-radius: 20px; background: #fff;
}
body.theme-browse .adv-card, body.theme-browse .adv-understood { background: #FCFCF8; padding: 14px 16px; }
body.theme-browse .adv-card[data-adv-place]:hover, body.theme-browse .policy-card:hover, body.theme-browse .result-card:hover { box-shadow: 0 8px 20px -10px rgba(15, 42, 36, 0.3); }
body.theme-browse .admin-card { padding: 20px 22px; }
body.theme-browse .admin-card:hover, body.theme-browse .admin-card:focus-visible { border-color: var(--ink); box-shadow: 0 10px 24px -12px rgba(15, 42, 36, 0.35); }
body.theme-browse .login-box { padding: 28px; box-shadow: 0 10px 30px rgba(15, 42, 36, 0.1); }

/* tags, chips, badges: pill shaped; the pastel family for plain tags */
body.theme-browse .adv-tag, body.theme-browse .adv-chip, body.theme-browse .cp-chip, body.theme-browse .adv-link-chip, body.theme-browse .admin-badge, body.theme-browse .acct-badge, body.theme-browse .gla-tag, body.theme-browse .adv-scope {
  border-radius: 999px;
}
body.theme-browse .adv-tag-plain { background: #EEF1E4; color: var(--ink); border: 1px solid var(--line); }
body.theme-browse .adv-link-chip { background: #fff; border: 1px solid var(--line-strong); color: var(--ink); }
body.theme-browse .adv-beta { border-radius: 999px; background: var(--ink); color: var(--lime); }
body.theme-browse .admin-badge { background: var(--ink); color: var(--lime); }
body.theme-browse .acct-badge { background: var(--lime); color: var(--ink); }
body.theme-browse .adv-track { border-radius: 999px; background: #EEF1E4; }
body.theme-browse .adv-track i { border-radius: 999px; background: var(--ink); }
body.theme-browse .adv-linkbtn { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body.theme-browse .wizard-progress span { height: 5px; border-radius: 3px; }
body.theme-browse .wizard-progress span.done { background: var(--ink); }

/* tabs and navigation */
body.theme-browse .acct-tabs { gap: 6px; border-bottom: 0; }
body.theme-browse .acct-tabs button, body.theme-browse .acct-tabs [role="tab"] { border-radius: 999px; border: 1.5px solid var(--line-strong); background: #fff; color: var(--ink); font-weight: 600; padding: 8px 18px; }
body.theme-browse .acct-tabs [aria-selected="true"], body.theme-browse .acct-tabs .active { background: var(--ink); border-color: var(--ink); color: var(--lime); }
body.theme-browse .admin-nav { background: var(--paper); border-bottom: 1px solid var(--line); }
body.theme-browse .admin-nav-home, body.theme-browse .admin-nav-group, body.theme-browse .admin-nav-page { border-radius: 999px; }
body.theme-browse .nav-sheet { border-radius: 24px 24px 0 0; }
body.theme-browse .bottom-nav { background: rgba(252, 252, 248, 0.96); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -14px rgba(15, 42, 36, 0.3); }
body.theme-browse .lrm-toast { border-radius: 999px; background: var(--ink); color: var(--lime); padding: 12px 20px; }
body.theme-browse .lrm-toast a { color: #fff; }

/* tables */
body.theme-browse table { border-collapse: separate; border-spacing: 0; }
body.theme-browse th { background: #F1F4E8; color: var(--ink); }
body.theme-browse .adv-table, body.theme-browse .cp-matrix { border-radius: 16px; overflow: hidden; border: 1px solid var(--line); }
body.theme-browse .msg.success { background: #EEF6D8; color: var(--ink); border: 1px solid #B6D36A; }
body.theme-browse .msg.error { background: #FDE9E3; border-color: #E9A998; }

/* maps inside other pages keep their own colours and dashed borough outlines; just frame them */
body.theme-browse #leaflet-map, body.theme-browse .adv-mappane, body.theme-browse .acct-map-box, body.theme-browse .cs-location-map { border-radius: 20px; overflow: hidden; }
body.theme-browse .adv-mappane { border: 1px solid var(--line); }

@media (max-width: 760px) {
  body.theme-browse .modal, body.theme-browse .adv-modal { border-radius: 24px 24px 0 0; padding: 22px 18px 24px; }
  body.theme-browse h1 { font-size: 1.6rem; }
  body.theme-browse .ov-headline { font-size: 1.25rem; }
}

/* the logo on other pages sits on its own line, above the back link */
body.theme-browse .page-brand { display: flex; width: fit-content; }
body.theme-browse a[href="privacy.html"]:not(.em-link) { color: var(--ink-soft); font-size: 0.78rem; }
body.theme-browse .edge-menu nav a { color: var(--ink); font-size: 1.15rem; }
/* policy hub: the header's buttons line up to the right of the logo, not under it */
body.theme-browse .ph-left-col header.top { align-items: flex-start; }
body.theme-browse .ph-left-col header.top .top-actions { align-self: flex-start; }

/* pop-ups: room for the round close button, and full rounding on phones (they sit centred, not at the bottom edge) */
body.theme-browse .modal, body.theme-browse .adv-modal { padding-top: 34px; }
body.theme-browse .modal > :first-child:not(button) { margin-top: 0; }
@media (max-width: 760px) {
  body.theme-browse .modal, body.theme-browse .adv-modal { border-radius: 24px; padding: 32px 18px 22px; }
}

/* header, desktop: the links, the project button and the account circle all sit on one row (top-aligned together) */
@media (min-width: 861px) {
  body.theme-browse header.top { align-items: flex-start; }
  body.theme-browse .top-actions { align-self: flex-start; height: 48px; align-items: center; }
  body.theme-browse .top-actions > * { align-self: center !important; }
  body.theme-browse .top-actions #openProjectWizardBtn { min-height: 44px; }
}
/* the "Search & filters" bar under the logo on phones: slimmer */
@media (max-width: 860px) {
  body.theme-browse header.top .open-filters-btn { min-height: 34px; padding: 4px 16px; font-size: 0.86rem; gap: 6px; }
  body.theme-browse header.top .open-filters-btn svg { width: 17px; height: 17px; }
}
body.theme-browse .top-actions a.btn { display: inline-flex; align-items: center; justify-content: center; }

/* the project plan: clearer headings. "Your project plan" is a bold, dark label with a lime marker; each section heading is large,
   heavy and underlined; the plan headline stays in the serif */
body.theme-browse .adv-result .ov-kicker {
  display: inline-block; font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.05rem; font-weight: 800; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--ink); background: var(--lime); padding: 6px 14px; border-radius: 999px; margin: 0 0 12px;
}
body.theme-browse .adv-result .ov-headline { font-size: 1.85rem; line-height: 1.2; margin-bottom: 10px; }
body.theme-browse .adv-result .ov-section-title {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.3rem; font-weight: 800; letter-spacing: -0.01em; text-transform: none;
  color: var(--ink); margin: 30px 0 10px;
}
body.theme-browse .adv-result .adv-section > .adv-intro { margin-top: 0; }
body.theme-browse .adv-result .adv-path-head, body.theme-browse .adv-result .adv-card-head strong { font-weight: 800; }
body.theme-browse .adv-result .adv-card-head strong { font-size: 1rem; }
@media (max-width: 760px) {
  body.theme-browse .adv-result .ov-kicker { font-size: 0.92rem; }
  body.theme-browse .adv-result .ov-headline { font-size: 1.45rem; }
  body.theme-browse .adv-result .ov-section-title { font-size: 1.15rem; margin-top: 24px; }
}

/* =====================================================================================================
   Side panel, tiled layout (body.sidebar-tiles): a compact search + filter box on top, then Locations and
   Consultants & contractors as two-wide tiles you scroll sideways with arrows. Remove the class from <body> to turn it off
   (index-classic.html is the previous layout).
   ===================================================================================================== */
@media (min-width: 861px) {
  body.theme-browse.sidebar-tiles .app { grid-template-columns: 384px 1fr; }
}
body.theme-browse.sidebar-tiles aside.sidebar { padding: 16px 18px 28px 28px; }

/* the top box: search, then the four filters as chips whose panels open underneath */
body.theme-browse.sidebar-tiles .search-panel {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: center; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 26px;
  box-shadow: 0 6px 20px -12px rgba(15, 42, 36, 0.28);
}
body.theme-browse.sidebar-tiles .search-panel > * { margin: 0 !important; min-width: 0; }
body.theme-browse.sidebar-tiles .search-panel > label { grid-column: 1 / -1; }
body.theme-browse.sidebar-tiles .search-panel > #searchPostcode,
body.theme-browse.sidebar-tiles .search-panel > div:nth-of-type(2),
body.theme-browse.sidebar-tiles .search-panel > #searchMsg,
body.theme-browse.sidebar-tiles .search-panel > #searchClearBtn { grid-column: 1 / -1; }
body.theme-browse.sidebar-tiles .search-panel input:not([type=radio]):not([type=checkbox]),
body.theme-browse.sidebar-tiles .search-panel select { min-height: 42px; box-shadow: none; border: 1px solid var(--line); background: #FCFCF8; font-size: 0.88rem; padding: 6px 14px; }
body.theme-browse.sidebar-tiles .search-type-toggle { display: flex; background: #F1F4E8; border-radius: 999px; padding: 3px; }
body.theme-browse.sidebar-tiles .search-type-toggle .filter-row { flex: 1; justify-content: center; padding: 6px 4px !important; border-radius: 999px; font-size: 0.8rem; font-weight: 600; background: transparent !important; border: 0 !important; }
body.theme-browse.sidebar-tiles .search-type-toggle .filter-row:has(input:checked) { background: var(--ink) !important; color: var(--lime); }
body.theme-browse.sidebar-tiles .search-type-toggle input { position: absolute; opacity: 0; pointer-events: none; }
body.theme-browse.sidebar-tiles .search-panel .btn.primary { min-height: 40px; }
body.theme-browse.sidebar-tiles #searchUseLocationBtn { min-height: 40px; width: 44px; padding: 0; }

body.theme-browse.sidebar-tiles .filter-chips { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 6px; }
body.theme-browse.sidebar-tiles .filter-chips .filter-group { margin: 0; }
body.theme-browse.sidebar-tiles .filter-chips .filter-group-heading {
  display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 7px 11px; border: 1.5px solid var(--line-strong); border-radius: 999px; background: #fff;
  color: var(--ink); font-family: 'Instrument Sans', sans-serif; font-size: 0.78rem; font-weight: 600; text-transform: none; letter-spacing: 0; cursor: pointer;
}
body.theme-browse.sidebar-tiles .filter-chips .filter-group-heading:hover { background: #F1F4E8; }
body.theme-browse.sidebar-tiles .filter-chips .filter-group-heading:not(.collapsed) { background: var(--ink); border-color: var(--ink); color: var(--lime); }
body.theme-browse.sidebar-tiles .filter-chips .chevron { display: none; }
body.theme-browse.sidebar-tiles .filter-chips .filter-group-content {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 40; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 22px;
  box-shadow: 0 16px 40px rgba(15, 42, 36, 0.28); max-height: 340px; overflow-y: auto;
}

/* the section headings for the two tile rails */
body.theme-browse.sidebar-tiles .filter-group-heading[data-toggle="locationsContent"],
body.theme-browse.sidebar-tiles .filter-group-heading[data-toggle="consultantsContent"],
body.theme-browse.sidebar-tiles .filter-group-heading[data-toggle="caseStudiesContent"] {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 1.2rem; font-weight: 800; letter-spacing: -0.01em; text-transform: none; color: var(--ink);
  border-top: 0; padding: 18px 2px 8px; margin: 0;
}
body.theme-browse.sidebar-tiles #listCount { font-family: 'Instrument Sans', sans-serif; color: var(--ink-soft); }

/* the rails: two columns of tiles, two rows (four showing), scrolled sideways */
body.theme-browse.sidebar-tiles .tile-rail-wrap { position: relative; }
body.theme-browse.sidebar-tiles .tile-rail {
  display: grid; grid-template-rows: repeat(2, 1fr); grid-auto-flow: column; grid-auto-columns: calc((100% - 10px) / 2); gap: 14px 10px;
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 1px 6px; max-height: none;
  border: 0; background: none; border-radius: 0;
}
body.theme-browse.sidebar-tiles .tile-rail::-webkit-scrollbar { display: none; }
body.theme-browse.sidebar-tiles .tile-rail > .empty-state { grid-row: 1 / -1; grid-column: 1 / -1; }
body.theme-browse.sidebar-tiles .rail-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-strong);
  background: #fff; color: var(--ink); font-size: 1.3rem; line-height: 1; display: grid; place-items: center; padding: 0 0 3px; cursor: pointer;
  box-shadow: 0 3px 10px rgba(15, 42, 36, 0.25);
}
body.theme-browse.sidebar-tiles .rail-arrow:hover { background: #F1F4E8; }
body.theme-browse.sidebar-tiles .rail-arrow[hidden] { display: none; }
body.theme-browse.sidebar-tiles .rail-arrow.prev { left: 4px; }
body.theme-browse.sidebar-tiles .rail-arrow.next { right: 4px; }

/* a tile */
body.theme-browse.sidebar-tiles .place-item,
body.theme-browse.sidebar-tiles .consultant-tile {
  display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0; border: 0; border-radius: 20px; background: none; cursor: pointer;
  scroll-snap-align: start; min-width: 0; box-shadow: none; transition: transform .18s;
}
body.theme-browse.sidebar-tiles .place-item:hover, body.theme-browse.sidebar-tiles .consultant-tile:hover { background: none; transform: translateY(-2px); box-shadow: none; }
body.theme-browse.sidebar-tiles .place-item:hover .tile-art, body.theme-browse.sidebar-tiles .consultant-tile:hover .tile-art { box-shadow: 0 10px 20px -10px rgba(15, 42, 36, 0.45); }
body.theme-browse.sidebar-tiles .place-item .dot { display: none; }
body.theme-browse.sidebar-tiles .tile-art { display: grid; place-items: center; height: 92px; border-radius: 20px; transition: box-shadow .18s; }
body.theme-browse.sidebar-tiles .tile-ring { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: rgba(255, 255, 255, 0.34); }
body.theme-browse.sidebar-tiles .tile-ring2 { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.55); }
body.theme-browse.sidebar-tiles .tile-art svg { width: 24px; height: 24px; fill: none; stroke: var(--ink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.theme-browse.sidebar-tiles .tile-art.fn-repair { background: var(--p-repair); }
body.theme-browse.sidebar-tiles .tile-art.fn-reuse { background: var(--p-reuse); }
body.theme-browse.sidebar-tiles .tile-art.fn-recycling { background: var(--p-recycling); }
body.theme-browse.sidebar-tiles .tile-art.fn-storage { background: var(--p-storage); }
body.theme-browse.sidebar-tiles .tile-art.fn-collection_point { background: var(--p-collect); }
body.theme-browse.sidebar-tiles .tile-art.ct-consultant { background: #FFE08A; }
body.theme-browse.sidebar-tiles .tile-art.ct-contractor { background: #B9E4CF; }
body.theme-browse.sidebar-tiles .tile-text { padding: 8px 2px 0; min-width: 0; }
body.theme-browse.sidebar-tiles .fn-chip { display: inline-flex; align-items: center; gap: 5px; margin-bottom: 4px; padding: 2px 9px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: 0.66rem; font-weight: 600; color: var(--ink); text-transform: none; }
body.theme-browse.sidebar-tiles .fn-chip i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
body.theme-browse.sidebar-tiles .fn-chip.ct-chip { text-transform: capitalize; }
body.theme-browse.sidebar-tiles .tile-text .name { font-size: 0.86rem; font-weight: 700; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.theme-browse.sidebar-tiles .tile-text .borough { font-size: 0.74rem; color: var(--ink-soft); margin-top: 2px; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

/* a chosen consultant's details, under the tiles */
body.theme-browse.sidebar-tiles .consultant-detail { position: relative; margin-top: 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 20px; }
body.theme-browse.sidebar-tiles .consultant-detail[hidden] { display: none; }
body.theme-browse.sidebar-tiles .detail-title { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 800; font-size: 1rem; padding-right: 28px; margin-bottom: 4px; }
body.theme-browse.sidebar-tiles .detail-sub { font-size: 0.78rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 4px; }
body.theme-browse.sidebar-tiles .detail-close { position: absolute; top: 10px; right: 12px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: #F1F4E8; color: var(--ink); font-size: 1rem; line-height: 1; cursor: pointer; }
body.theme-browse.sidebar-tiles .consultant-detail .btn { min-height: 0; }

/* =====================================================================================================
   Softer buttons, a warmer map, and bold green-and-black pins
   ===================================================================================================== */
body.theme-browse {
  --btn-bg: #E6F1C6; --btn-fg: #0F2A24; --btn-line: #D2E39E; --btn-hover: #D9EAAA;   /* change these four to restyle every main button */
  --map-cream: #F6F0E2;
}

/* main buttons: a soft lime wash with dark text instead of solid black with bright lime */
body.theme-browse .btn.primary,
body.theme-browse .view-toggle button.active,
body.theme-browse.sidebar-tiles .filter-chips .filter-group-heading:not(.collapsed),
body.theme-browse.sidebar-tiles .search-type-toggle .filter-row:has(input:checked) {
  background: var(--btn-bg) !important; color: var(--btn-fg) !important; border-color: var(--btn-line); box-shadow: none; font-weight: 600;
}
body.theme-browse .btn.primary:hover, body.theme-browse .btn.primary:focus-visible { background: var(--btn-hover) !important; filter: none; }
body.theme-browse .btn.primary:disabled { opacity: 0.55; }
body.theme-browse .top-actions #openProjectWizardBtn { border: 1.5px solid var(--btn-line); }
body.theme-browse .view-toggle button.active { box-shadow: inset 0 0 0 1.5px var(--btn-line); }

/* the map: warm cream instead of flat grey (the basemap tiles are tinted; markers sit above and are not) */
body.theme-browse .leaflet-container { background: var(--map-cream); }
body.theme-browse .leaflet-tile-pane { filter: sepia(0.12) saturate(1.04) brightness(1.015); }
body.theme-browse main.mapwrap { background: var(--map-cream); border-color: #EADFC8; box-shadow: 0 10px 30px rgba(74, 58, 24, 0.12); }

/* Policy hub: compliance call-to-action */
body.theme-browse .xco2-cta {
  margin-top: 26px; padding: 16px 18px; border-radius: 18px;
  background: #F1F7DC; border: 1.5px solid #D2E39E;
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
}
body.theme-browse .xco2-cta-text { display: flex; flex-direction: column; gap: 2px; min-width: 200px; flex: 1; }
body.theme-browse .xco2-cta-text strong { font-family: 'Bricolage Grotesque', inherit; font-weight: 800; font-size: 1rem; color: #0F2A24; }
body.theme-browse .xco2-cta-text span { font-size: 0.85rem; color: #4a5a52; line-height: 1.4; }
body.theme-browse .xco2-cta-btn {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  background: #0F2A24; color: #C6F26B; border: 0; border-radius: 999px;
  padding: 11px 18px; font-family: 'Bricolage Grotesque', inherit; font-weight: 700; font-size: 0.92rem;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
body.theme-browse .xco2-cta-btn:hover { background: #163a32; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(15,42,36,.22); }
body.theme-browse .xco2-cta-btn:focus-visible { outline: 3px solid #C6F26B; outline-offset: 2px; }
@media (max-width: 560px) { body.theme-browse .xco2-cta-btn { width: 100%; justify-content: center; } }
body.theme-browse .leaflet-bar, body.theme-browse .map-layers-btn, body.theme-browse .map-layers-panel, body.theme-browse .view-toggle { background: #FFFDF7; }
body.theme-browse .leaflet-bar a { background: #FFFDF7; }

/* pins: bold, in the green-and-black family. White ring, dark halo, so even the lime one reads on the cream map */
body.theme-browse .pin-icon { border: 2px solid #fff; box-shadow: 0 0 0 1.5px #0F2A24, 0 2px 5px rgba(15, 42, 36, 0.4); }
body.theme-browse .cat-tag[style*="c6f26b"] { color: var(--ink); }
body.theme-browse .case-study-pin { box-sizing: border-box; width: 10px; height: 10px; background: #0F2A24; border: 1.5px solid #C6F26B; border-radius: 2px; box-shadow: 0 1px 3px rgba(15, 42, 36, 0.3); }
body.theme-browse .case-study-thumb-pin { box-sizing: border-box; width: 30px; height: 30px; border: 1.5px solid #C6F26B; border-radius: 7px; box-shadow: 0 0 0 1px #0F2A24, 0 2px 5px rgba(15, 42, 36, 0.35); }
/* the large facility pins: location-pin shaped, with a soft shadow */
body.theme-browse .pin-shape { display: block; overflow: visible; filter: drop-shadow(0 2px 2px rgba(15, 42, 36, 0.35)); }
body.theme-browse .pin-shape.pending { opacity: 0.6; }
body.theme-browse .consultant-pin { background: #F28C28; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(15, 42, 36, 0.28), 0 2px 5px rgba(15, 42, 36, 0.3); }

/* the recommendations window (the manual, non-AI one): same look as the project plan, tags always readable */
body.theme-browse .adv-tag-plain.rec-fn { display: inline-flex; align-items: center; gap: 6px; }
body.theme-browse .adv-tag-plain.rec-fn i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; box-shadow: 0 0 0 1.5px rgba(15, 42, 36, 0.35); }
body.theme-browse #resultsModal .adv-card[data-adv-place] { cursor: pointer; }
body.theme-browse #resultsModal .adv-card .adv-linkbtn { display: inline-block; margin: 8px 0 0 10px; font-size: 0.82rem; }
body.theme-browse #resultsModal .rc-links { font-size: 0.82rem; line-height: 1.7; margin-top: 6px; }
body.theme-browse #resultsModal .adv-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; padding-right: 44px; }
body.theme-browse #resultsModal .adv-actions .btn { flex: 0 1 auto; }
@media (max-width: 760px) { body.theme-browse #resultsModal .adv-actions { padding-right: 52px; } body.theme-browse #resultsModal .adv-actions .btn { font-size: 0.8rem; padding: 6px 12px; min-height: 36px; } }
/* the pinned button bar sits flush with the top edge of the window (no strip of content showing above it) */
body.theme-browse .adv-modal .adv-actions { top: -34px; margin-top: -34px; padding-top: 34px; }
@media (max-width: 760px) { body.theme-browse .adv-modal .adv-actions { top: -32px; margin-top: -32px; padding-top: 32px; } }

/* "Find near you": the dashed 1 km circle gently marches round the postcode */
body.theme-browse path.search-radius { animation: search-radius-march 1.6s linear infinite; }
@keyframes search-radius-march { to { stroke-dashoffset: -32; } }
@media (prefers-reduced-motion: reduce) { body.theme-browse path.search-radius { animation: none; } }

/* "Expand radius?" label that sits just outside the top of the search circle */
.radius-expand-wrap { width: 0; height: 0; }
.radius-expand-btn {
  position: absolute; left: 0; bottom: 0; transform: translate(-50%, -8px); white-space: nowrap; cursor: pointer;
  font: 700 0.78rem 'Bricolage Grotesque', inherit; color: #0F2A24;
  background: #E6F1C6; border: 1.5px solid #D2E39E; border-radius: 999px; padding: 5px 12px;
  box-shadow: 0 3px 10px rgba(15, 42, 36, 0.18);
  transition: background .15s ease, transform .15s ease;
}
.radius-expand-btn span { font-weight: 500; opacity: .7; margin-left: 2px; }
.radius-expand-btn:hover { background: #D9EAAA; transform: translate(-50%, -10px); }
.radius-expand-btn:focus-visible { outline: 3px solid #C6F26B; outline-offset: 2px; }

/* the plan "working on it" screen: progress bar and running steps */
body.theme-browse .adv-progress-bar { background: #EEF3DC; height: 12px; box-shadow: inset 0 0 0 1px #D9E4B8; }
body.theme-browse .adv-progress-bar i { background: linear-gradient(90deg, #3E9B4F, #C6F26B); }
body.theme-browse .adv-steps li.done::before { background: #3E9B4F; }
body.theme-browse .adv-steps li.now::before { border-color: #3E9B4F; }
body.theme-browse .adv-progress-meta { font-family: 'Bricolage Grotesque', inherit; }


/* ---- map controls: Map/List and the layer toggles share one look: soft, slightly see-through pills ---- */
body.theme-browse .view-toggle { background: rgba(255, 253, 247, 0.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
body.theme-browse .layer-toggles .lt > span { min-height: 40px; padding: 0 16px; font-weight: 600; }
body.theme-browse .layer-toggles .lt input:checked + span { background: var(--btn-bg); color: var(--btn-fg); box-shadow: inset 0 0 0 1.5px var(--btn-line); }
body.theme-browse .layer-toggles .lt:not(:has(input:checked)) > span { opacity: .85; }
@media (max-width: 860px) { body.theme-browse .layer-toggles .lt > span { min-height: 36px; padding: 0 11px; } }
body.theme-browse .map-layers-panel { background: rgba(255, 253, 247, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); padding: 10px 14px; gap: 8px; }
body.theme-browse .map-layers-btn { background: rgba(255, 253, 247, 0.85); }

/* satellite and other full-colour base maps are shown as they are, without the warm cream tint */
body.theme-browse #leaflet-map.basemap-satellite .leaflet-tile-pane { filter: none; }
body.theme-browse #leaflet-map.basemap-streets .leaflet-tile-pane, body.theme-browse #leaflet-map.basemap-terrain .leaflet-tile-pane { filter: saturate(0.92) sepia(0.06); }

/* the counts row: plain text, not pill buttons: lighter weight, no ovals, nothing that looks clickable */
body.theme-browse .stats-bar { padding: 10px 40px 12px; gap: 6px 26px; }
body.theme-browse .stats-bar > span { min-height: 0; padding: 0; border-radius: 0; background: none; font-weight: 400; font-size: 0.84rem; color: var(--ink-soft); cursor: default; }
body.theme-browse .stats-bar strong { font-weight: 500; color: var(--ink); }
body.theme-browse .stats-bar i { width: 9px; height: 9px; border-width: 1.5px; margin-right: 1px; }
@media (max-width: 860px) { body.theme-browse .stats-bar { padding: 8px 14px 10px; gap: 4px 18px; } }


/* case study tiles in the left bar: the photo if there is one, otherwise a soft lime tile */
body.theme-browse.sidebar-tiles .tile-art.ct-case { background-color: #DCEBB3; background-size: cover; background-position: center; }
body.theme-browse.sidebar-tiles .tile-art.ct-case.has-photo { box-shadow: inset 0 0 0 1px rgba(15, 42, 36, 0.12); }

/* ---- satellite view only: pins turn light so they read on dark imagery (the other map styles keep the dark pins) ---- */
body.theme-browse #leaflet-map.basemap-satellite .pin-shape { filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.75)) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5)); }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape path { stroke: #fff; stroke-width: 3.2; }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape path[fill="#4A5653" i] { fill: #E6ECE4; }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape path[fill="#3e9b4f" i] { fill: #8FE39F; }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape path[fill="#2a8c82" i] { fill: #80E3D9; }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape path[fill="#7e8f22" i] { fill: #DCEA72; }
body.theme-browse #leaflet-map.basemap-satellite .pin-shape circle { fill: #0F2A24; stroke: #fff; stroke-width: 2; }
body.theme-browse #leaflet-map.basemap-satellite .pin-icon { border-color: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.45), 0 0 5px rgba(0, 0, 0, 0.6); }
body.theme-browse #leaflet-map.basemap-satellite .pin-icon[style*="#0f2a24" i] { background: #E6ECE4 !important; }
body.theme-browse #leaflet-map.basemap-satellite .pin-icon[style*="#3e9b4f" i] { background: #8FE39F !important; }
body.theme-browse #leaflet-map.basemap-satellite .pin-icon[style*="#2a8c82" i] { background: #80E3D9 !important; }
body.theme-browse #leaflet-map.basemap-satellite .pin-icon[style*="#7e8f22" i] { background: #DCEA72 !important; }
body.theme-browse #leaflet-map.basemap-satellite .case-study-pin { background: #EAF7B8; border-color: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, 0.65); }
body.theme-browse #leaflet-map.basemap-satellite .case-study-thumb-pin { border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.45), 0 2px 7px rgba(0, 0, 0, 0.6); }

/* satellite view: the dashed lines (case study links, the "Find near you" circle) turn white so they show on dark imagery */
body.theme-browse #leaflet-map.basemap-satellite path.cs-link-line { stroke: #fff; stroke-opacity: 1; stroke-width: 2.5; }
body.theme-browse #leaflet-map.basemap-satellite path.search-radius { stroke: #fff; stroke-opacity: 1; fill: #fff; fill-opacity: 0.1; }

/* "Add to Map" menu: the site's own look: soft rounded panel, ink text, simple line icons (no blue links, no emoji) */
body.theme-browse .add-to-map-menu { background: rgba(255, 253, 247, 0.96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid #E3E9D6; border-radius: 20px; padding: 6px; min-width: 262px; box-shadow: 0 12px 30px -10px rgba(15, 42, 36, 0.35); gap: 2px; }
body.theme-browse .add-to-map-menu button, body.theme-browse .add-to-map-menu a {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; border: 0; border-radius: 14px; padding: 11px 14px; background: none;
  font-family: 'Instrument Sans', system-ui, sans-serif; font-weight: 400; font-size: 0.95rem; color: var(--ink); text-decoration: none; cursor: pointer; white-space: nowrap;
}
body.theme-browse .add-to-map-menu button:hover, body.theme-browse .add-to-map-menu a:hover, body.theme-browse .add-to-map-menu a:focus-visible, body.theme-browse .add-to-map-menu button:focus-visible { background: var(--btn-bg); color: var(--btn-fg); outline: none; }
body.theme-browse .add-to-map-menu svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* the three layer toggles: more see-through than Map/List, with lighter text */
body.theme-browse .layer-toggles { background: rgba(255, 253, 247, 0.55); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
body.theme-browse .layer-toggles .lt > span { font-weight: 500; }
body.theme-browse .layer-toggles .lt input:checked + span { background: rgba(230, 241, 198, 0.62); box-shadow: inset 0 0 0 1.5px rgba(210, 227, 158, 0.75); }
body.theme-browse .layer-toggles .lt:not(:has(input:checked)) > span { opacity: .8; }

/* storage sites: rounded squares */
body.theme-browse .pin-icon.pin-square { border-radius: 4px; }
.pin-icon.pin-square { border-radius: 4px; }

/* storage sites: rounded squares */
.pin-icon.pin-square { border-radius: 4px; }

/* "Contact or track this place" link in map popups */
body.theme-browse .contact-row { margin-top: 6px; font-size: 0.8rem; }
body.theme-browse .contact-row a { color: #0F2A24; font-weight: 600; text-decoration: underline; text-decoration-color: #C6F26B; text-underline-offset: 3px; }

/* admin-only shortcuts inside map popups */
body.theme-browse .admin-bar{margin-top:10px;padding-top:8px;border-top:1px dashed #0f2a24}
body.theme-browse .admin-bar-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#0f2a24;margin-bottom:5px}
body.theme-browse .admin-bar-btns{display:flex;gap:6px;flex-wrap:wrap}
body.theme-browse .admin-bar-btns button,body.theme-browse .admin-bar-btns a{font:inherit;font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;border:1px solid #0f2a24;background:#fff;color:#0f2a24;cursor:pointer;text-decoration:none}
body.theme-browse .admin-bar-btns .ab-approve{background:#c6f26b}
body.theme-browse .admin-bar-btns .ab-reject{background:#fff;color:#a12a2a;border-color:#a12a2a}
body.theme-browse .admin-bar-btns button:disabled{opacity:.5;cursor:default}
body.theme-browse .admin-bar-msg{font-size:12px;margin-top:5px;color:#0f2a24}

/* verification badge */
body.theme-browse .verified-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:#e4f6c0;color:#0f2a24;border:1px solid #9fcf3f;margin:0 0 6px 6px;white-space:nowrap}
body.theme-browse .tile-text .verified-badge{margin:2px 0 0;font-size:10px;padding:1px 7px}
body.theme-browse .admin-verify{margin-top:8px;font-size:12px;line-height:1.35}
body.theme-browse .admin-verify label{display:flex;gap:6px;align-items:flex-start;cursor:pointer}
body.theme-browse .admin-verify .av-state{color:#5b6b66;margin-top:3px}
body.theme-browse .admin-verify .av-state.expired{color:#a12a2a;font-weight:600}

/* right-click "add to the map here" menu: the same look as the Add to Map menu */
body.theme-browse .add-to-map-menu.ctx-menu{position:absolute;display:flex;flex-direction:column;min-width:262px;max-width:330px;z-index:1200;background:#fffdf7;right:auto;bottom:auto}
body.theme-browse .ctx-menu .ctx-title{font-weight:700;font-size:0.95rem;padding:8px 14px 4px;display:flex;align-items:center;gap:8px}
body.theme-browse .ctx-menu .ctx-back{width:auto;padding:2px 8px;border-radius:10px;font-size:1rem}
body.theme-browse .ctx-menu .ctx-sub{font-size:0.76rem;color:#5b6b66;padding:6px 14px 2px}
body.theme-browse .ctx-menu .ctx-txt{display:flex;flex-direction:column;white-space:normal}
body.theme-browse .ctx-menu .ctx-txt small{font-size:0.74rem;color:inherit;opacity:.7}
body.theme-browse .existing-site-banner{background:#eef7d6;border:1px solid #9fcf3f;border-radius:12px;padding:10px 12px;margin-bottom:12px;display:flex;flex-direction:column;gap:4px;font-size:13px}
body.theme-browse .existing-site-banner span{color:#44544f;font-size:12px}
body.theme-browse .existing-site-banner .btn{align-self:flex-start;margin-top:4px;font-size:12px;padding:5px 12px}
body.theme-browse .add-to-map-menu.ctx-menu{background:#fffdf7}
body.theme-browse .ctx-popup{z-index:1100}

body.theme-browse .capacity-line{font-size:0.85rem;margin:6px 0;padding:6px 10px;background:#eaf4f2;border-radius:10px;color:#0f2a24}

body.theme-browse .cancel-row{text-align:center;margin-top:14px}
body.theme-browse .cancel-link{background:none;border:0;font:inherit;font-size:0.85rem;color:#a12a2a;text-decoration:underline;cursor:pointer;padding:6px}

/* nav buttons: bold chevron instead of a thin arrow */
body.theme-browse .btn.nav-btn{display:inline-flex;align-items:center;gap:6px}
body.theme-browse .nav-chev{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .15s}
body.theme-browse .btn.nav-btn:hover .nav-chev{transform:translateX(2px)}
/* little tile shortcut on the Case studies heading */
body.theme-browse .filter-group-heading .heading-shortcut{margin-left:auto;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#F1F4E8;color:var(--ink);flex:none}
body.theme-browse .filter-group-heading .heading-shortcut:hover{background:#c6f26b}
body.theme-browse .filter-group-heading .heading-shortcut svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
body.theme-browse .filter-group-heading:has(.heading-shortcut){display:flex;align-items:center}
/* list view: search bar on top, picture tile on each card */
body.theme-browse #listView{overflow:hidden;box-sizing:border-box}
body.theme-browse .list-toolbar{height:56px;padding:2px 0 12px}
body.theme-browse #listCards{height:calc(100% - 56px);overflow-y:auto;padding:4px 4px 8px 0}
body.theme-browse .list-toolbar input{width:100%;max-width:520px;border-radius:999px;padding:11px 18px}
body.theme-browse .list-card-img{flex:none;width:104px;height:104px;border-radius:18px;overflow:hidden;background-size:contain;background-repeat:no-repeat;background-position:center;display:grid;place-items:center}
body.theme-browse .list-card-img.has-photo{background-color:#fff;border:1px solid #E1E8D8;box-sizing:border-box}
body.theme-browse.sidebar-tiles .list-card-img .tile-art{width:100%;height:100%;border-radius:0}
@media (max-width:640px){body.theme-browse .list-card-img{width:84px;height:84px}}

/* logos: side tiles and map pins */
body.theme-browse.sidebar-tiles .tile-art.has-logo{background-color:#fff;background-size:contain;background-repeat:no-repeat;background-position:center;border:1px solid #E1E8D8;box-sizing:border-box}
body.theme-browse .popup-logo{margin:0 0 10px;display:flex;align-items:center;justify-content:flex-start}
body.theme-browse .popup-logo img{max-height:64px;max-width:160px;width:auto;height:auto;object-fit:contain;display:block}

/* consultants: discipline checkboxes, expertise tags */
.disc-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 12px}
.disc-check{display:flex;gap:8px;align-items:center;padding:3px 0;font-size:0.9rem;cursor:pointer}
.tag-input .ti-row{display:flex;gap:6px;margin-top:6px}
.tag-input .ti-input{flex:1}
.exp-tag{display:inline-flex;align-items:center;gap:4px;font-size:0.74rem;font-weight:600;padding:2px 9px;border-radius:999px;background:#eef7d6;border:1px solid #cfe39a;color:#0f2a24;margin:0 4px 4px 0;white-space:nowrap}
.exp-tag button{background:none;border:0;cursor:pointer;font-size:1rem;line-height:1;color:#44544f;padding:0 0 0 2px}
.disc-tag{display:inline-block;font-size:0.74rem;font-weight:600;padding:2px 9px;border-radius:999px;background:#f1e9f8;border:1px solid #d8c6ea;color:#4d2f6d;margin:0 4px 4px 0}
.tag-line{margin:6px 0}

body.theme-browse .tile-tags{margin-top:4px}
body.theme-browse .tile-tags .exp-tag{font-size:0.66rem;padding:1px 7px;margin:0 3px 3px 0}
body.theme-browse .exp-tag.more{background:#f1f4e8;border-color:#e1e8d8}
