
    :where(:root){
      --navy:#313d7f; --navy-dk:#273268; --green:#93d73b; --green-dk:#4a7a1b;
      --ink:#39373a; --mut:#6a6870; --soft:#8a8890;
      --line:#e0e0e0; --hair:#f0f0f2; --wash:#f5f6f8; --card-bg:#ffffff;
      --amber:#8a5f00; --amber-bg:#fff6e6; --amber-line:#eedcb2;
      --red:#a23b3b; --red-bg:#fbeaea; --red-line:#ecc8c8;
      --live:#4a7a1b; --live-bg:#eef8e2; --live-line:#cfe8b0;
      --font-ui:"Rubik",sans-serif; --font-head:"Source Serif Pro",Georgia,serif;
      --font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
      --fs-chip:11px; --fs-cite:11px; --fs-sub:12px; --fs-body:13px; --fs-md:14px;
      --fs-card-h:15px; --fs-lg:16px; --fs-h2:19px; --fs-fig:26px; --fs-h1:30px;
      --lh-tight:1.3; --lh-body:1.55;
      --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
      --r-card:14px; --r-tile:10px; --r-chip:9px; --r-pill:20px;
      --card-pad:var(--sp-3) var(--sp-4); --card-gap:var(--sp-3);
      --navy-bg:#eef1f9; --navy-line:#ccd3ea;
      --green-ink:#1a3300; --green-h:#6b9d2b; --green-h-ink:#0f2400;
      --zebra:#fbfbfc;
      --ctrl-line:var(--soft);
      --focus:var(--navy); --focus-w:2px; --focus-off:2px;
      --hit:40px; --hit-sm:32px;
      --pg-max:100%; --pg-gutter:clamp(20px,2.4vw,52px); --sec-gap:var(--sp-5); --tile-min:200px;
      --fs-fig-lg:34px; --fs-fig-sm:20px;
      --tbl-row-h:38px; --tbl-rule:1px; --tbl-rule-c:var(--hair);
      --tbl-pad-x:var(--sp-3); --tbl-pad-y:var(--sp-2); --tbl-hover:var(--wash);
      --elev-0:none; --elev-1:0 1px 0 var(--line); --elev-2:0 6px 18px rgba(49,61,127,.10);
      --ax-c:var(--line); --ax-w:1px; --grid-c:var(--hair); --grid-w:1px;
      --tick-c:var(--mut); --series-w:2px;
      --cat-1:#313d7f; --cat-2:#2f6193; --cat-3:#2c85a0; --cat-4:#2ea589;
      --cat-5:#5fbb52; --cat-6:#93d73b; --cat-7:#cdeb9b;
      --cat-edge:var(--card-bg); --cat-edge-w:1px;
      --absent-c:var(--line); --absent-step:6px; --notcounted-dash:4 3;
      --delta-c:var(--mut); --delta-bad:var(--red);
    }
    :where(.statebox){ border:1px solid var(--line,#e0e0e0); border-radius:var(--r-tile,10px); background:var(--wash,#f5f6f8);
      padding:var(--card-pad,12px 16px); font-size:var(--fs-body,13px); color:var(--mut,#6a6870); line-height:var(--lh-body,1.55); margin:var(--sp-3,12px) 0; }
    :where(.statebox b){ color:var(--ink,#39373a); }
    :where(.chip-state), :where(.chip-persona){ display:inline-flex; align-items:center; gap:var(--sp-1,4px); font-size:var(--fs-chip,11px); font-weight:600;
      letter-spacing:.3px; border-radius:var(--r-chip,9px); padding:1px 8px; border:1px solid var(--line,#e0e0e0); background:var(--card-bg,#fff); color:var(--ink,#39373a); white-space:nowrap; }
    :where(.chip-persona){ color:var(--navy,#313d7f); border-color:var(--navy,#313d7f); }
    :where(.chip-state.live){ color:var(--live,#4a7a1b); background:var(--live-bg,#eef8e2); border-color:var(--live-line,#cfe8b0); text-transform:uppercase; font-size:10px; letter-spacing:.4px; }

    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { font-family: "Rubik", sans-serif; background: var(--card-bg,#ffffff); color: var(--mut,#666666); line-height: 1.7; font-size: 16px; -webkit-text-size-adjust: 100%; }
    .mono { font-family: "JetBrains Mono", monospace; }
    h1, h2, h3, h4 { font-family: "Source Serif Pro", serif; color: var(--navy,#313d7f); font-weight: 700; line-height: 1.15; }
    a { color: #1B7F96; text-decoration: none; transition: color 0.2s; }
    a:hover { color: var(--navy,#313d7f); }

    .section-heading { display: inline-block; margin-bottom: 40px; font-size: 30px; }
    .section-heading::after { content: ''; display: block; width: 80px; height: 4px; background: var(--green,#93d73b); margin-top: 12px; border-radius: 2px; }


    .main-nav { position: sticky; top: 38px; background: white; border-bottom: 1px solid var(--line,#e8e8e8); padding: 0 40px; display: flex; align-items: center; height: 60px; z-index: 1000; transition: background .35s ease, border-color .35s ease, box-shadow .35s ease; }
    .main-nav.nav-clear { background: transparent; border-bottom-color: transparent; box-shadow: none; }
    .main-nav.nav-clear .nav-links a { color: var(--card-bg,#ffffff); }
    .main-nav.nav-clear .nav-links a:hover { color: var(--card-bg,#ffffff); }
    .main-nav.nav-clear .nav-links a.active { color: var(--card-bg,#ffffff); border-bottom-color: var(--green,#93d73b); }
    .main-nav.nav-clear .nav-logo-word { color: var(--card-bg,#ffffff) !important; }
    .main-nav.nav-clear .hamburger-btn { color: var(--card-bg,#ffffff); }
    #map-expand-btn { display: inline-flex !important; align-items: center; gap: 6px; position: absolute; right: 12px; bottom: 12px; z-index: 600; background: var(--navy,#313d7f); color: var(--card-bg,#ffffff); border: none; border-radius: 24px; padding: 9px 15px; font: 600 14px 'Rubik', sans-serif; cursor: pointer; box-shadow: 0 6px 16px rgba(0,0,0,0.25); }
    #map-expand-btn:hover { background: var(--navy-dk,#232b5c); }
    #map-expand-btn:active { transform: scale(0.97); }
    body.map-fullscreen #map-expand-btn { display: none !important; }
    body.map-fullscreen #map-close-btn { display: inline-flex !important; align-items: center; justify-content: center; position: fixed; top: 14px; right: 14px; z-index: 10300; width: 44px; height: 44px; border-radius: 50%; background: var(--card-bg,#ffffff); color: var(--navy,#313d7f); border: 1px solid var(--navy,#313d7f); font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.2); padding: 0; }
    body.map-fullscreen { overflow: hidden !important; }
    body.map-fullscreen .leaflet-top.leaflet-right { top: 58px; right: 4px; }
    body.map-fullscreen .leaflet-top.leaflet-right .leaflet-control-zoom a {
      width: 44px; height: 44px; line-height: 44px; font-size: 22px;
    }
    body.map-fullscreen #internal-banner, body.map-fullscreen .main-nav, body.map-fullscreen #chat-bubble { display: none !important; }
    body.map-fullscreen #map-container { position: fixed !important; inset: 0 !important; z-index: 10000 !important; height: 100vh !important; width: 100vw !important; border-radius: 0 !important; margin: 0 !important; border: none !important; }
    body.map-fullscreen #map-container > #world-map, body.map-fullscreen #world-map { height: 100vh !important; width: 100vw !important; border-radius: 0 !important; }
    body.map-fullscreen .modal-overlay { z-index: 10200 !important; }
    .nav-logo { height: 56px; width: auto; margin-right: 40px; }
    .nav-links { display: flex; gap: 32px; align-items: center; }
    .nav-links a { font-size: 16px; color: var(--ink,#39373a); font-weight: 500; padding: 24px 0; border-bottom: 3px solid transparent; transition: all 0.2s; font-family: "Rubik", sans-serif; }
    .nav-links a:hover { color: var(--navy,#313d7f); }
    .nav-links a.active { color: var(--navy,#313d7f); border-bottom-color: var(--green,#93d73b); }
    .nav-right { margin-left: auto; display: flex; gap: 12px; align-items: center; }
    @media (min-width: 769px) and (max-width: 800px) {
      .main-nav:has(.section-index-link) { padding-left: 24px; padding-right: 24px; }
      .main-nav:has(.section-index-link) .nav-links a,
      .main-nav:has(.section-index-link) .nav-right .btn { white-space: nowrap; }
    }
    .hamburger-btn { display: none; background: none; border: none; cursor: pointer; padding: 8px; color: var(--navy,#313d7f); align-items: center; justify-content: center; }
    .signed-in-badge { display: none; font-size: 14px; color: var(--mut,#666666); background: var(--live-bg,#f0f7e4); border: 1px solid var(--live-line,#d4e8b4); border-radius: 16px; padding: 4px 12px; font-family: "Rubik", sans-serif; white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
    .signed-in-badge.visible { display: inline-block; }
    .btn { display: inline-block; padding: 10px 24px; border-radius: 24px; font-family: "Rubik", sans-serif; font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; cursor: pointer; transition: all 0.2s; text-decoration: none; border: 2px solid transparent; }
    .btn-green { background: var(--green,#93d73b); color: var(--green-ink,#1a3300); border-color: var(--green,#93d73b); }
    .btn-green:hover { background: var(--green-h,#6b9d2b); border-color: var(--green-h,#6b9d2b); color: var(--green-h-ink,#0f2400); }
    .btn-outline { background: white; color: var(--ink,#39373a); border-color: var(--ink,#39373a); }
    .btn-outline:hover { background: var(--ink,#39373a); color: white; }
    .btn-navy { background: var(--navy,#313d7f); color: white; border-color: var(--navy,#313d7f); }
    .btn-navy:hover { background: var(--navy-dk,#232b5c); border-color: var(--navy-dk,#232b5c); color: white; }

    .hero { background: #ffffff; padding: 60px 40px 48px; position: relative; overflow: hidden; }
    .hero-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
    .hero-text h1 { font-size: 44px; line-height: 1.1; margin-bottom: 16px; color: #313D7F; }
    .hero-text h1::after { content: ''; display: block; width: 80px; height: 4px; background: #93D73B; margin-top: 16px; border-radius: 2px; }
    .hero-text p { font-size: 18px; color: #666666; margin-top: 24px; margin-bottom: 30px; line-height: 1.7; }
    .hero-text .btn { margin-right: 12px; }
    .hero-carousel { position: relative; width: 100%; height: 380px; border-radius: 20px; overflow: hidden; background: #1a2257; box-shadow: 0 8px 40px rgba(49,61,127,0.22); }
    .hero-carousel-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease; }
    .hero-carousel-slide.active { opacity: 1; }
    .hero-carousel-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; filter: grayscale(100%) contrast(1.15) brightness(0.68); mix-blend-mode: luminosity; }
    .hero-carousel-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(to top, rgba(18,24,72,0.88) 0%, rgba(18,24,72,0.1) 55%, transparent 100%); }
    .hero-carousel-caption { position: absolute; bottom: 0; left: 0; right: 0; z-index: 2; padding: 40px 18px 14px; display: flex; flex-direction: column; gap: 3px; }
    .hero-carousel-name { font: 700 15px "Source Serif Pro", serif; color: #fff; }
    .hero-carousel-from { font: 400 11px "Rubik", sans-serif; color: rgba(255,255,255,0.62); text-transform: uppercase; letter-spacing: 0.5px; }
    .hero-carousel-dots { position: absolute; bottom: 16px; right: 16px; z-index: 3; display: flex; gap: 6px; }
    .hero-carousel-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.28); border: none; padding: 0; cursor: pointer; transition: background 0.3s, transform 0.3s; }
    .hero-carousel-dot.on { background: #93D73B; transform: scale(1.4); }
    .kpis-bar { background: #f5f5f5; padding: 40px 40px; }
    .kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; max-width: 900px; margin: 0 auto; }
    .kpi { text-align: center; }
    .kpi-value { font-size: 36px; font-weight: 700; color: #313D7F; font-family: "JetBrains Mono", monospace; margin-bottom: 8px; }
    .kpi-label { font-size: 15px; color: #666666; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; }

    .section { padding: 80px var(--pub-gut, 40px); max-width: var(--pub-w, 1200px); margin: 0 auto; scroll-margin-top: 72px; }
    .section-alt { background: var(--wash,#f5f5f5); }
    .section-alt .section { max-width: var(--pub-w, 1200px); margin: 0 auto; }
    .section-green { background: var(--green-dk,#487410); color: white; padding: 60px 40px; }
    .section-green h2, .section-green h3 { color: white; }
    .section-green .section-heading::after { background: var(--green,#93d73b); }

    .program-data { margin-bottom: 48px; }
    .program-tables { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
    .program-table-card { background: white; border: 1px solid #e8e8e8; border-radius: 16px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .program-table-card h4 { font-size: 18px; margin-bottom: 16px; font-family: "Source Serif Pro", serif; color: #313D7F; }
    .program-table { width: 100%; border-collapse: collapse; font-size: 15px; }
    .program-table thead { background: var(--wash,#f5f5f5); }
    .program-table th { padding: 10px 14px; text-align: right; font-size: 13px; font-weight: 600; color: var(--navy,#313d7f); text-transform: uppercase; letter-spacing: 0.3px; }
    .program-table th:first-child { text-align: left; }
    .program-table td { padding: 10px 14px; text-align: right; border-bottom: 1px solid var(--hair,#f0f0f0); color: var(--ink,#39373a); font-family: "JetBrains Mono", monospace; font-size: 14px; }
    .program-table td:first-child { font-family: "Rubik", sans-serif; font-weight: 500; text-align: left; font-size: 15px; }
    .program-table tr.total-row td { font-weight: 700; border-top: 2px solid var(--navy,#313d7f); color: var(--navy,#313d7f); }
    .program-table .year-header { color: var(--navy,#313d7f); }
    .trend-up { color: #4A7A1B; }
    .trend-down { color: #D35E28; }
    .tab-buttons { display: flex; gap: 8px; margin-bottom: 20px; }


    .map-controls { transition: all 0.3s ease; }
    .map-controls.collapsed { padding: 8px 12px; max-width: 48px; overflow: hidden; }
    .map-controls.collapsed .map-control-group { display: none; }
    .map-ctrl-toggle { background: none; border: none; font-size: 13px; color: var(--navy,#313d7f); cursor: pointer; padding: 2px 6px; margin-left: auto; flex-shrink: 0; font-family: "Rubik", sans-serif; font-weight: 600; }
    .map-controls.collapsed .map-ctrl-toggle { margin-left: 0; font-size: 13px; }
    .map-legend .legend-body { transition: all 0.3s; overflow: hidden; }
    .map-legend.collapsed .legend-body { max-height: 0; overflow: hidden; padding: 0; }
    .map-legend.collapsed .legend-body { display: none; }
    .legend-section { font-size: 12px; font-weight: 700; color: var(--navy,#313d7f); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 3px; padding-top: 2px; display: inline-block; margin-right: 8px; font-weight: 600; }
    .legend-group { display: block; }

    #world-map { width: 100%; height: 100%; z-index: 1; }
    .leaflet-container { background: var(--hair,#eaeef2); font-family: "Rubik", sans-serif; }
    .leaflet-popup-content-wrapper { border-radius: 12px; box-shadow: 0 6px 24px rgba(49,61,127,0.18); }
    .leaflet-popup-content { margin: 16px 20px; font-family: "Rubik", sans-serif; font-size: 16px; color: var(--ink,#39373a); line-height: 1.5; min-width: 220px; }
    .leaflet-popup-content h4 { font-family: "Source Serif Pro", serif; color: var(--navy,#313d7f); font-size: 24px; margin: 0 0 6px 0; font-weight: 700; }
    .leaflet-popup-content .pop-meta { font-size: 15px; color: var(--mut,#767676); margin-bottom: 8px; }
    .leaflet-popup-content .pop-link { display: inline-block; margin-top: 10px; color: var(--navy,#313d7f); font-weight: 600; font-size: 15px; text-decoration: underline; cursor: pointer; }
    .leaflet-popup-content .pop-indicator { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--hair,#eeeeee); font-size: 15px; color: var(--mut,#666666); }
    .leaflet-popup-content .pop-indicator strong { color: var(--navy,#313d7f); }
    .leaflet-control-attribution { font-size: 12px !important; background: rgba(255,255,255,0.8) !important; }
    .leaflet-control-zoom { border: none !important; box-shadow: 0 2px 6px rgba(0,0,0,0.08) !important; }
    .leaflet-control-zoom a { background: white !important; color: var(--navy,#313d7f) !important; border: 1px solid var(--line,#e8e8e8) !important; }
    .leaflet-control-zoom a:hover { background: var(--wash,#f5f5f5) !important; }

    #map-container { background: var(--hair,#eaeef2); border-radius: 16px; overflow: hidden; border: 1px solid var(--line,#e8e8e8); height: 680px; position: relative; box-shadow: 0 2px 12px rgba(0,0,0,0.04); }
    .map-controls { position: absolute; top: 16px; left: 16px; background: rgba(255,255,255,0.95); backdrop-filter: blur(8px); border: 1px solid rgba(232,232,232,0.8); border-radius: 12px; padding: 10px 14px; z-index: 500; display: flex; flex-direction: column; gap: 6px; max-width: 900px; box-shadow: 0 2px 12px rgba(0,0,0,0.06); }
    .map-control-row { display: flex; gap: 10px; align-items: center; }
    .map-legend { position: absolute; bottom: 20px; left: 16px; background: white; border: 1px solid var(--line,#e8e8e8); border-radius:var(--r-tile,10px); padding: 12px 20px; z-index: 500; font-size: 13px; box-shadow: 0 2px 6px rgba(0,0,0,0.06); max-width: 92%; width: auto; }
    .map-legend-title { font-weight: 600; color: var(--navy,#313d7f); margin-bottom: 6px; font-size: 13px; text-transform: uppercase; letter-spacing: 0.3px; }
    .legend-section { display: block; clear: both; font-weight: 600; color: var(--navy,#313d7f); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 8px; margin-bottom: 4px; }
    .legend-section:first-child { margin-top: 0; }
    .legend-row { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-bottom: 4px; }
    .legend-item { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; }
    .legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
    .legend-dot-approx { width: 8px; height: 8px; background: var(--soft,#888888); border: 1.5px dashed var(--navy,#313d7f); opacity: 0.75; }
    .legend-line { width: 16px; height: 3px; border-radius: 2px; flex-shrink: 0; }
    .map-control-group { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
    .map-control-label { font-size: 13px; font-weight: 600; color: var(--mut,#666666); text-transform: uppercase; letter-spacing: 0.5px; }
    .pill { border: 1px solid var(--line,#e8e8e8); background: white; color: var(--ink,#39373a); padding: 5px 12px; border-radius:var(--r-pill,20px); cursor: pointer; font-size: 12px; font-weight: 600; transition: all 0.2s; font-family: "Rubik", sans-serif; white-space: nowrap; }
    .pill:hover { background: var(--wash,#f5f5f5); }
    #category-control-row .map-control-group { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .pill.active { background: var(--green,#93d73b); color: var(--ink,#39373a); border-color: var(--green,#93d73b); }

    .map-controls {
      --mapctrl-label: 76px;
      max-width: min(620px, calc(100% - 32px));
      padding: var(--sp-2, 8px) var(--sp-3, 12px);
      gap: var(--sp-1, 4px);
    }
    .map-ctrl-rows { display: flex; flex-direction: column; gap: var(--sp-1, 4px); min-width: 0; }
    .map-control-row { gap: var(--sp-2, 8px); align-items: center; }
    .map-control-label {
      flex: 0 0 var(--mapctrl-label, 76px);
      font-size: var(--fs-chip, 11px);
      font-weight: 700;
      letter-spacing: 0.06em;
      line-height: 1.25;
      color: var(--mut, #6a6870);
      white-space: nowrap;
    }
    .map-control-group { flex: 1 1 auto; min-width: 0; gap: var(--sp-1, 4px) var(--sp-2, 8px); }
    #category-control-row .map-control-group { flex-wrap: wrap; overflow-x: visible; }
    .map-controls .pill { padding: 4px 10px; }
    .map-ctrl-appearance {
      display: flex; flex-direction: column; gap: var(--sp-1, 4px);
      margin-top: var(--sp-1, 4px);
      padding-top: var(--sp-2, 8px);
      border-top: 1px solid var(--hair, #f0f0f2);
    }
    .map-ctrl-appearance .map-control-label { color: var(--mut, #6a6870); }
    .map-ctrl-toggle {
      display: inline-flex; align-items: center; gap: var(--sp-1, 4px);
      margin-left: auto;
      padding: var(--sp-1, 4px) var(--sp-2, 8px);
      border-radius: var(--r-chip, 9px);
      font-size: var(--fs-sub, 12px);
    }
    .map-ctrl-toggle:hover { background: var(--wash, #f5f6f8); }
    .map-ctrl-toggle:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
    .map-ctrl-caret { font-size: var(--fs-body, 13px); line-height: 1; }
    .map-controls.collapsed { max-width: none; overflow: visible; padding: var(--sp-2, 8px) var(--sp-3, 12px); }
    .map-controls.collapsed .map-ctrl-rows { display: none; }
    .map-controls.collapsed .map-ctrl-toggle { margin-left: 0; }


    .map-ctrl-head { display: flex; align-items: center; gap: var(--sp-2, 8px); min-width: 0; }
    .map-controls:not(.collapsed) .map-ctrl-regions { display: none; }
    .map-ctrl-regions { font-size: var(--fs-sub, 12px); }

    #map-container { --map-dock-h: 52px; }
    .map-search-dock {
      position: absolute; top: 16px; left: 16px; z-index: 600;
      box-sizing: border-box;
      min-height: var(--map-dock-h, 52px);
      max-width: calc(100% - 32px);
      display: flex; align-items: center;
      padding: var(--sp-1, 4px) var(--sp-3, 12px);
      border-radius: var(--r-tile, 10px);
      border: 1px solid rgba(232, 232, 232, 0.8);
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(8px);
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    }
    .map-search-dock ~ .map-controls { top: calc(16px + var(--map-dock-h, 52px) + var(--sp-2, 8px)); }
    .map-search-dock .map-control-label { flex: 0 0 auto; }
    .map-search-dock .map-search-row { flex: 1 1 auto; min-width: 0; }
    .map-search-dock .map-search { flex: 1 1 auto; gap: var(--sp-2, 8px); flex-wrap: nowrap; }
    .map-search-dock .map-search-field {
      flex: 0 0 240px; min-width: 0;
      transition: flex-basis 0.18s ease;
    }
    .map-search-dock .map-search:focus-within .map-search-field { flex-basis: 380px; }
    .map-search-dock .map-search:has(.map-search-input:not(:placeholder-shown)) .map-search-field { flex-basis: 380px; }

    .admin-trigger { background: none; border: 1px solid #e0e0e0; color: #666; padding: 6px 14px; border-radius: 20px; cursor: pointer; font-size: 14px; font-weight: 500; font-family: "Rubik", sans-serif; margin-left: 8px; transition: all 0.2s; display: none; }
    .admin-trigger.visible { display: inline-block; }
    .admin-trigger:hover { border-color: #313D7F; color: #313D7F; }
    .login-overlay { position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#313D7F 0%,#1a2350 100%);z-index:100000;display:flex;align-items:center;justify-content:center;font-family:"Rubik",sans-serif; }
    .login-box { background:#fff;border-radius:16px;padding:48px 40px;max-width:380px;width:90%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,0.3); }
    .login-box img { width:60px;margin-bottom:16px; }
    .login-box h2 { font-family:"Source Serif Pro",serif;color:#313D7F;font-size:24px;margin:0 0 6px; }
    .login-box p { color:#666;font-size:14px;margin:0 0 24px; }
    .login-box input { width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:15px;font-family:"Rubik",sans-serif;margin-bottom:12px;box-sizing:border-box;transition:border-color 0.2s; }
    .login-box input:focus { outline:none;border-color:#313D7F; }
    .login-box button { width:100%;padding:12px;background:#313D7F;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;font-family:"Rubik",sans-serif;cursor:pointer;transition:background 0.2s; }
    .login-box button:hover { background:#44AEC8; }
    .login-error { color:#D35E28;font-size:13px;margin-top:8px;display:none; }
    .admin-overlay { position: fixed; inset: 0; background: rgba(49,61,127,0.45); backdrop-filter: blur(6px); z-index: 3000; display: none; padding: 40px 20px; overflow-y: auto; }
    .admin-overlay.active { display: flex; align-items: flex-start; justify-content: center; }
    .admin-panel { background: white; border-radius: 20px; width: 100%; max-width: 1100px; max-height: calc(100vh - 80px); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 24px 80px rgba(0,0,0,0.24); }
    .admin-header { padding: 24px 32px; border-bottom: 1px solid #e8e8e8; display: flex; justify-content: space-between; align-items: center; }
    .admin-header h2 { font-family: "Source Serif Pro", serif; color: #313D7F; font-size: 24px; margin: 0; }
    .admin-header .admin-subtitle { font-size: 14px; color: #767676; margin-top: 4px; }
    .admin-close { background: none; border: none; font-size: 28px; cursor: pointer; color: #767676; padding: 0 8px; }
    .admin-close:hover { color: #313D7F; }
    .admin-tabs { display: flex; border-bottom: 1px solid #e8e8e8; padding: 0 32px; gap: 0; flex-shrink: 0; overflow-x: auto; }
    .admin-tab { padding: 14px 18px; background: none; border: none; cursor: pointer; font-family: "Rubik", sans-serif; font-size: 15px; font-weight: 500; color: #666; border-bottom: 3px solid transparent; white-space: nowrap; transition: all 0.15s; }
    .admin-tab:hover { color: #313D7F; }
    .admin-tab.active { color: #313D7F; border-bottom-color: #93D73B; font-weight: 600; }
    .admin-content { padding: 32px; overflow-y: auto; flex: 1; }
    .admin-panel-section { display: none; }
    .admin-panel-section.active { display: block; }
    .admin-panel-section h3 { font-family: "Source Serif Pro", serif; color: #313D7F; font-size: 20px; margin-bottom: 6px; }
    .admin-panel-section .admin-section-desc { font-size: 15px; color: #666; margin-bottom: 24px; }
    .admin-form-row { margin-bottom: 16px; }
    .admin-form-row label { display: block; font-size: 13px; font-weight: 700; color: #313D7F; text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 6px; }
    .admin-form-row input, .admin-form-row textarea, .admin-form-row select { width: 100%; padding: 10px 14px; border: 1px solid #e0e0e0; border-radius: 8px; font-family: "Rubik", sans-serif; font-size: 15px; color: #39373A; box-sizing: border-box; }
    .admin-form-row input:focus, .admin-form-row textarea:focus, .admin-form-row select:focus { outline: none; border-color: #93D73B; }
    .login-box input:focus-visible, .admin-form-row input:focus-visible, .admin-form-row textarea:focus-visible, .admin-form-row select:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
    .admin-form-row textarea { min-height: 140px; resize: vertical; font-family: "Rubik", sans-serif; line-height: 1.5; }
    .admin-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .admin-btn { padding: 10px 20px; border-radius: 8px; font-family: "Rubik", sans-serif; font-size: 15px; font-weight: 600; cursor: pointer; border: none; transition: all 0.15s; }
    .admin-btn.primary { background: #313D7F; color: white; }
    .admin-btn.primary:hover { background: #232b5c; }
    .admin-btn.secondary { background: white; color: #313D7F; border: 1px solid #313D7F; }
    .admin-btn.secondary:hover { background: #f5f5f5; }
    .admin-btn.danger { background: white; color: #D35E28; border: 1px solid #D35E28; }
    .admin-btn.danger:hover { background: #fff5f0; }
    .admin-status { padding: 12px 16px; border-radius: 8px; font-size: 15px; margin-top: 16px; display: flex; align-items: center; gap: 10px; }
    .admin-status::before { content: ''; width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
    .admin-status.not-connected { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
    .admin-status.not-connected::before { background: #f59e0b; }
    .admin-status.connected { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
    .admin-status.connected::before { background: #10b981; }
    .admin-note { padding: 14px 18px; background: #f7f8fa; border-left: 3px solid #313D7F; border-radius: 6px; font-size: 14px; color: #666; margin-top: 16px; line-height: 1.6; }
    .admin-note strong { color: #313D7F; }
    .admin-dropzone { border: 2px dashed #d0d0d0; border-radius: 12px; padding: 48px 32px; text-align: center; cursor: pointer; transition: all 0.2s; background: #fafbfc; }
    .admin-dropzone:hover, .admin-dropzone.dragover { border-color: #93D73B; background: #f8fdf0; }
    .admin-dropzone .dropzone-icon { font-size: 36px; color: #767676; margin-bottom: 8px; }
    .admin-dropzone p { font-size: 15px; color: #666; margin: 8px 0 0 0; }
    .admin-dropzone p.sub { font-size: 14px; color: #767676; }
    .admin-dropzone input[type="file"] { display: none; }
    .upload-preview { margin-top: 20px; }
    .upload-preview table { width: 100%; border-collapse: collapse; font-size: 14px; border: 1px solid #e8e8e8; border-radius: 8px; overflow: hidden; }
    .upload-preview th { background: #f5f5f5; padding: 8px 12px; text-align: left; font-weight: 600; color: #313D7F; font-size: 13px; text-transform: uppercase; }
    .upload-preview td { padding: 8px 12px; border-bottom: 1px solid #f0f0f0; font-family: "JetBrains Mono", monospace; font-size: 13px; color: #39373A; }
    .upload-preview .preview-info { font-size: 14px; color: #666; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; }
    .stories-admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
    .stories-admin-table th { background: #f5f5f5; padding: 10px 12px; text-align: left; font-size: 12px; font-weight: 700; color: #313D7F; text-transform: uppercase; letter-spacing: 0.4px; border-bottom: 2px solid #e8e8e8; }
    .stories-admin-table td { padding: 10px 12px; border-bottom: 1px solid #f0f0f0; color: #39373A; vertical-align: top; }
    .stories-admin-table tr { cursor: pointer; transition: background 0.1s; }
    .stories-admin-table tr:hover { background: #fafbf5; }
    .stories-admin-table .td-name { font-weight: 600; color: #313D7F; max-width: 220px; }
    .stories-admin-table .td-title { max-width: 260px; color: #666; }
    .stories-admin-table .td-badge { display: inline-block; padding: 2px 8px; background: #eaf5d6; color: #4A7A1B; border-radius: 10px; font-size: 12px; font-weight: 600; }
    .admin-search-row { display: flex; gap: 12px; margin-bottom: 16px; align-items: center; }
    .admin-search-row input { flex: 1; padding: 10px 14px; border: 1px solid #e0e0e0; border-radius: 8px; font-family: "Rubik", sans-serif; font-size: 15px; }
    .admin-search-row .admin-count { font-size: 14px; color: #767676; }
    .story-edit-modal { position: fixed; inset: 0; background: rgba(49,61,127,0.5); backdrop-filter: blur(4px); z-index: 4000; display: none; padding: 40px 20px; overflow-y: auto; }
    .story-edit-modal.active { display: flex; align-items: flex-start; justify-content: center; }
    .story-edit-inner { background: white; border-radius: 16px; max-width: 760px; width: 100%; padding: 32px; box-shadow: 0 24px 80px rgba(0,0,0,0.3); }
    .story-edit-inner h3 { font-family: "Source Serif Pro", serif; color: #313D7F; margin-bottom: 20px; font-size: 22px; }
    .story-edit-actions { display: flex; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #e8e8e8; justify-content: flex-end; }
    .export-card { background: white; border: 1px solid #e8e8e8; border-radius: 12px; padding: 24px; margin-bottom: 16px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
    .export-card .export-info h4 { font-family: "Source Serif Pro", serif; color: #313D7F; font-size: 16px; margin-bottom: 4px; }
    .export-card .export-info p { font-size: 14px; color: #666; margin: 0; }

    .table-wrapper { background: white; border: 1px solid var(--line,#e8e8e8); border-radius: 16px; overflow: auto; box-shadow: 0 2px 12px rgba(0,0,0,0.04); }
    table { width: 100%; border-collapse: collapse; font-size: 15px; }
    thead { background: var(--wash,#f5f5f5); }
    th { padding: 16px 20px; text-align: left; font-weight: 600; color: var(--navy,#313d7f); cursor: pointer; user-select: none; white-space: nowrap; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; }
    th:hover { background: var(--hair,#eaeaea); }
    td { padding: 14px 20px; border-bottom: 1px solid var(--hair,#f0f0f0); color: var(--ink,#39373a); }
    tbody tr:hover { background: var(--zebra,#fafbf5); }

    .metrics-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-bottom: 48px; }
    .metric-card { background: white; border: 1px solid #e8e8e8; padding: 28px; border-radius: 16px; text-align: center; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .metric-value { font-size: 32px; font-weight: 700; color: #313D7F; margin-bottom: 8px; font-family: "JetBrains Mono", monospace; }
    .metric-label { font-size: 13px; color: #666666; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
    .analytics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 48px; }
    .analytics-table { background: white; border: 1px solid #e8e8e8; border-radius: 16px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .analytics-table h4 { font-size: 16px; font-weight: 700; margin-bottom: 16px; font-family: "Source Serif Pro", serif; color: #313D7F; }
    .analytics-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #f0f0f0; font-size: 15px; }
    .analytics-row:last-child { border-bottom: none; }
    .analytics-row strong { color: #39373A; font-weight: 500; }
    .analytics-row span { color: #666666; font-family: "JetBrains Mono", monospace; font-size: 14px; }
    .analytics-collapse-header { cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line,#e8e8e8); margin-bottom: 16px; }
    .analytics-collapse-header .collapse-arrow { transition: transform 0.3s; font-size: 14px; color: var(--mut,#767676); }
    .analytics-collapse-header.collapsed .collapse-arrow { transform: rotate(-90deg); }
    .analytics-collapse-header .collapsed-preview { display: none; font-family: 'Rubik', sans-serif; font-size: 12.5px; font-weight: 400; color: var(--mut,#767676); margin-left: auto; margin-right: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .analytics-collapse-header.collapsed .collapsed-preview { display: inline-block; }
    @media (max-width: 768px) { .analytics-collapse-header .collapsed-preview { font-size: 11.5px; max-width: 60%; } }
    .analytics-bar { height: 28px; border-radius: 4px; background: linear-gradient(90deg, #313D7F, #4A5BA0); margin-bottom: 4px; transition: width 0.8s; display: flex; align-items: center; padding: 0 10px; color: white; font-size: 13px; font-weight: 600; }
    .analytics-bar-container { margin-bottom: 20px; }
    .analytics-bar-label { display: flex; justify-content: space-between; font-size: 13px; color: #39373A; margin-bottom: 2px; }
    .analytics-bar-label span:last-child { font-family: "JetBrains Mono", monospace; color: #666; }
    .dashboard-metrics-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 32px; }
    .dashboard-metric-card { padding: 28px 28px 24px; border-radius:var(--r-card,14px); position: relative; overflow: hidden; }
    .dashboard-metric-card.navy { background: var(--navy,#313d7f); }
    .dashboard-metric-card.teal { background: #44AEC8; }
    .dashboard-metric-card.green { background: var(--green-h,#6b9d2b); }
    .dashboard-metric-card::after { content: ''; position: absolute; top: -30px; right: -30px; width: 100px; height: 100px; border-radius: 50%; background: rgba(255,255,255,0.08); pointer-events: none; }
    .dashboard-metric-value { font-size: 36px; font-weight: 700; color: var(--card-bg,#ffffff); margin-bottom: 6px; font-family: "JetBrains Mono", monospace; }
    .dashboard-metric-label { font-size: 12px; color: rgba(255,255,255,0.8); font-weight: 600; text-transform: uppercase; letter-spacing: 0.6px; }
    .dashboard-metric-card.coral { background: #E8743B; }
    .dashboard-metric-card.purple { background: #5A6BB5; }
    .dashboard-metric-card.gold { background: #EBC44E; }
    .dashboard-metric-card.teal .dashboard-metric-value,
    .dashboard-metric-card.teal .dashboard-metric-label { color: #0B3540; }
    .dashboard-metric-card.green .dashboard-metric-value,
    .dashboard-metric-card.green .dashboard-metric-label { color: var(--green-h-ink,#0f2400); }
    .dashboard-metric-card.coral .dashboard-metric-value,
    .dashboard-metric-card.coral .dashboard-metric-label { color: #3D1503; }
    .dashboard-metric-card.purple .dashboard-metric-label { color: var(--card-bg,#ffffff); }
    .dashboard-metric-card.gold .dashboard-metric-value { color: var(--navy,#313d7f); }
    .dashboard-metric-card.gold .dashboard-metric-label { color: var(--navy,#313d7f); }
    .dashboard-metric-card.gold::after { background: rgba(255,255,255,0.22); }
    .partner-metrics-band { background: var(--card-bg,#ffffff); border-bottom: 1px solid var(--hair,#eceef3); }
    .partner-metrics-band .inner { max-width: 1140px; margin: 0 auto; padding: 28px 28px 30px; }
    .partner-metrics-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; }
    .partner-metrics-row .dashboard-metric-value { font-size: clamp(20px, 2.4vw, 28px); margin-bottom: 6px; letter-spacing: -0.5px; line-height: 1.1; overflow-wrap: anywhere; }
    .partner-metrics-row .dashboard-metric-card { padding: 20px 20px 18px; }
    @media (max-width: 560px) { .partner-metrics-row { grid-template-columns: 1fr 1fr; } }
    .dashboard-charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 32px; }
    .dashboard-chart-card { background: white; border: 1px solid var(--line,#e8e8e8); border-radius: 16px; padding: 24px 28px; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .charts-animate .dashboard-chart-card { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
    .charts-animate .dashboard-chart-card.chart-in { opacity: 1; transform: none; }
    .charts-animate .dashboard-chart-card svg { opacity: 0; transform: scale(.93); transform-origin: center; transition: opacity .85s ease .12s, transform .9s cubic-bezier(.2,.7,.2,1) .12s; }
    .charts-animate .dashboard-chart-card.chart-in svg { opacity: 1; transform: none; }
    .dashboard-chart-card h4 { font-size: 18px; font-weight: 700; color: var(--navy,#313d7f); font-family: 'Source Serif Pro', serif; margin: 0 0 16px 0; padding-bottom: 12px; border-bottom: 2px solid var(--green,#93d73b); }
    .dashboard-table-details { margin-bottom: 16px; }
    .dashboard-table-details > summary { cursor: pointer; font-weight: 700; font-size: 15px; color: #313D7F; padding: 12px 0; font-family: "Source Serif Pro", serif; list-style: none; display: flex; align-items: center; gap: 8px; }
    .dashboard-table-details > summary::before { content: "▶"; font-size: 11px; color: #767676; transition: transform 0.3s; display: inline-block; }
    .dashboard-table-details[open] > summary::before { transform: rotate(90deg); }
    .dashboard-table-details > summary::-webkit-details-marker { display: none; }
    @media (max-width: 768px) {
      .dashboard-metrics-row { grid-template-columns: 1fr; }
      .dashboard-charts-row { grid-template-columns: 1fr; }
      .partner-metrics-band { background: var(--card-bg,#ffffff) !important; position: relative; z-index: 2; isolation: isolate; }
      .partner-metrics-band .inner { padding: 16px 0 4px !important; }
      .partner-metrics-row { gap: 12px; }
    }
    .premium-breakdown { background: white; border: 1px solid #e8e8e8; border-radius: 16px; padding: 28px; margin-bottom: 48px; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .breakdown-item { display: flex; align-items: center; margin-bottom: 16px; }
    .breakdown-item:last-child { margin-bottom: 0; }
    .breakdown-bar { flex: 1; height: 28px; background: #f0f0f0; border-radius: 6px; overflow: hidden; margin: 0 16px; position: relative; }
    .breakdown-fill { height: 100%; display: flex; align-items: center; justify-content: flex-end; padding-right: 10px; color: white; font-size: 13px; font-weight: 600; border-radius: 6px; }
    .breakdown-label { font-size: 15px; font-weight: 500; color: #39373A; min-width: 160px; }
    .breakdown-value { min-width: 140px; text-align: right; font-family: "JetBrains Mono", monospace; font-size: 14px; color: #666666; }

    .synergy-card {
      background: #fff;
      border: 1px solid #e8e8e8;
      border-left: 3px solid #313D7F;
      border-radius: 14px;
      padding: 24px;
      min-height: 280px;
      overflow: hidden;
      cursor: pointer;
      transition: box-shadow 0.25s, transform 0.25s;
      display: flex;
      flex-direction: column;
      position: relative;
    }
    .synergy-card:hover {
      box-shadow: 0 8px 32px rgba(49,61,127,0.12);
      transform: translateY(-2px);
    }
    .synergy-card .synergy-title {
      font-family: 'Source Serif Pro', serif;
      font-size: 17px;
      font-weight: 700;
      color: #313D7F;
      margin-bottom: 10px;
      line-height: 1.35;
    }
    .synergy-card .synergy-body-preview {
      font-size: 14px;
      color: #555;
      line-height: 1.65;
      margin-bottom: 14px;
      flex: 1;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
    }
    .synergy-card .synergy-tags {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .synergy-card .synergy-tag {
      font-size: 11px;
      font-weight: 600;
      color: #313D7F;
      background: rgba(49,61,127,0.08);
      padding: 3px 10px;
      border-radius: 20px;
    }
    .synergy-card .synergy-hint {
      font-size: 11px;
      color: #44AEC8;
      text-align: center;
      margin-top: auto;
      padding-top: 6px;
      font-weight: 600;
      letter-spacing: 0.3px;
      text-transform: uppercase;
      opacity: 0.7;
      transition: opacity 0.2s;
    }
    .synergy-card:hover .synergy-hint { opacity: 1; }
    .synergy-overlay {
      position: fixed; inset: 0;
      background: rgba(49,61,127,0.5);
      backdrop-filter: blur(8px);
      z-index: 2500;
      display: none;
      overflow-y: auto;
      padding: 40px 20px;
    }
    .synergy-overlay.active { display: flex; align-items: flex-start; justify-content: center; }
    .synergy-overlay-inner {
      background: white;
      border-radius: 20px;
      max-width: 860px;
      width: 100%;
      position: relative;
      box-shadow: 0 24px 80px rgba(0,0,0,0.28);
      overflow: hidden;
    }
    .synergy-overlay-close {
      position: absolute; top: 16px; right: 20px;
      background: rgba(255,255,255,0.9); border: none; font-size: 24px;
      cursor: pointer; color: #313D7F; padding: 4px 10px;
      border-radius: 50%; z-index: 10; line-height: 1;
    }
    .synergy-overlay-close:hover { background: white; }
    .synergy-hero {
      background: #313D7F;
      padding: 40px 44px 32px;
      position: relative;
      overflow: hidden;
    }
    .synergy-hero .ftusa-seal {
      position: absolute; top: 24px; right: 28px;
      width: 84px; height: 84px;
      opacity: 0.9;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,0.15));
      pointer-events: none;
    }
    .synergy-hero h3 {
      font-family: 'Source Serif Pro', serif;
      color: #fff; font-size: 26px;
      margin: 0 0 8px 0; padding-right: 110px;
      line-height: 1.3; letter-spacing: -0.01em;
    }
    .synergy-hero .synergy-subtitle {
      font-family: 'Source Serif Pro', serif;
      font-style: italic;
      font-size: 16px;
      color: rgba(255,255,255,0.78);
      margin: 0 0 16px 0;
      padding-right: 110px;
      line-height: 1.5;
    }
    .synergy-hero .synergy-key-insight {
      font-size: 15px; color: rgba(255,255,255,0.95);
      line-height: 1.6; margin: 0;
      padding: 12px 16px;
      background: rgba(255,255,255,0.1);
      border-left: 3px solid rgba(255,255,255,0.4);
      border-radius: 4px;
    }
    .synergy-overlay-body h4.body-section {
      font-family: 'Source Serif Pro', serif;
      color: #313D7F;
      font-size: 19px;
      font-weight: 700;
      margin: 28px 0 12px;
      padding-bottom: 6px;
      border-bottom: 2px solid #e8e8e8;
      letter-spacing: -0.005em;
    }
    .synergy-overlay-body h4.body-section:first-child { margin-top: 4px; }
    .synergy-overlay-body blockquote.pull-quote {
      font-family: 'Source Serif Pro', serif;
      font-style: italic;
      font-size: 20px;
      line-height: 1.45;
      color: #313D7F;
      margin: 24px 0;
      padding: 18px 28px;
      border-left: 4px solid #44AEC8;
      background: linear-gradient(180deg, #f7f9fc, #fff);
      border-radius: 0 8px 8px 0;
      position: relative;
    }
    .synergy-overlay-body blockquote.pull-quote::before {
      content: "“";
      position: absolute; top: 4px; left: 10px;
      font-size: 40px; color: #44AEC8;
      opacity: 0.4; font-family: Georgia, serif;
      line-height: 1;
    }
    .synergy-overlay-body p { margin: 0 0 14px 0; }
    .synergy-overlay-content { padding: 32px 44px 40px; }
    .synergy-overlay-map {
      background: #f7f8fa; border-radius: 14px;
      padding: 20px; margin-bottom: 28px;
      text-align: center; border: 1px solid #e8e8e8;
    }
    .synergy-overlay-map .map-label {
      font-size: 11px; font-weight: 600; color: #313D7F;
      text-transform: uppercase; letter-spacing: 0.5px;
      margin-bottom: 12px;
    }
    .synergy-regions-list {
      display: flex; gap: 8px; flex-wrap: wrap;
      justify-content: center; margin-top: 12px;
    }
    .synergy-regions-list .region-chip {
      font-size: 12px; font-weight: 600; color: #313D7F;
      background: white; border: 1px solid #d0d4e8;
      padding: 4px 12px; border-radius: 20px;
    }
    .synergy-stats-row {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
      gap: 16px; margin-bottom: 28px;
    }
    .synergy-stat-card {
      background: #f7f8fa; border-radius: 12px; padding: 16px 20px;
      border-left: 3px solid #93D73B; text-align: left;
    }
    .synergy-stat-value {
      font-size: 20px; font-weight: 700; color: #313D7F;
      font-family: 'JetBrains Mono', monospace; margin-bottom: 2px;
    }
    .synergy-stat-label {
      font-size: 11px; color: #666; font-weight: 600;
      text-transform: uppercase; letter-spacing: 0.4px;
    }
    .synergy-overlay-body {
      font-size: 15px; color: #39373A;
      line-height: 1.85; margin-bottom: 28px;
    }
    .synergy-overlay-body strong { color: #313D7F; }
    .synergy-orgs-section {
      background: #f7f8fa; border-radius: 14px; padding: 20px 24px;
      margin-bottom: 28px; border: 1px solid #e8e8e8;
    }
    .synergy-orgs-section h4 {
      font-size: 14px; font-weight: 600; color: #313D7F;
      text-transform: uppercase; letter-spacing: 0.5px;
      margin: 0 0 12px 0;
      font-family: "Rubik", sans-serif;
    }
    .synergy-orgs-grid {
      display: flex; gap: 8px; flex-wrap: wrap;
    }
    .synergy-org-chip {
      font-size: 13px; color: #444; background: white;
      border: 1px solid #ddd; padding: 6px 14px;
      border-radius: 8px; font-weight: 600;
      font-family: "Rubik", sans-serif;
    }
    .synergy-overlay-tags {
      display: flex; gap: 8px; flex-wrap: wrap;
      padding-top: 20px; border-top: 1px solid #e8e8e8;
    }
    .synergy-overlay-tags .synergy-tag {
      font-size: 12px; font-weight: 600; color: #313D7F;
      background: rgba(49,61,127,0.08); padding: 5px 14px;
      border-radius: 20px;
    }

    .synergies-library-overlay {
      display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
      background: rgba(0,0,0,0.6); z-index: 9999; backdrop-filter: blur(4px);
    }
    .synergies-library-overlay.active { display: flex; align-items: flex-start; justify-content: center; }
    .synergies-library-inner {
      background: white; border-radius: 16px; max-width: 960px; width: 95%;
      max-height: 90vh; overflow: hidden; margin-top: 5vh;
      box-shadow: 0 20px 60px rgba(0,0,0,0.3); display: flex; flex-direction: column;
      min-height: 0;
    }
    #library-list-view {
      display: flex; flex-direction: column;
      flex: 1 1 auto; min-height: 0;
      width: 100%;
    }
    .synergies-library-header {
      padding: 28px 32px 20px; border-bottom: 1px solid #eee;
      display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
    }
    .synergies-library-header h3 {
      font-family: 'Source Serif Pro', serif; color: #313D7F; font-size: 24px; margin: 0;
    }
    .library-scroll-area { overflow-y: auto; flex: 1; }
    .library-gen-item {
      padding: 16px 32px; border-bottom: 1px solid #f0f0f0; cursor: pointer;
      transition: background 0.15s;
    }
    .library-gen-item:hover { background: #f8f9ff; }
    .library-gen-item.expanded { background: #f5f7ff; }
    .library-gen-date { font-size: 15px; font-weight: 600; color: #313D7F; }
    .library-gen-meta { font-size: 12px; color: #767676; margin-top: 2px; }
    .library-gen-titles { font-size: 13px; color: #555; margin-top: 6px; line-height: 1.5; }
    .library-gen-cards { display: none; }
    .library-card-mini { display: none; }

    .library-tile-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
      gap: 16px;
      padding: 20px 24px 28px;
    }
    .library-tile {
      background: #ffffff;
      border: 1px solid #e8e8e8;
      border-radius: 14px;
      padding: 18px 18px 16px;
      cursor: pointer;
      transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
      display: flex; flex-direction: column;
      position: relative;
      overflow: hidden;
    }
    .library-tile::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
      background: linear-gradient(90deg, #313D7F, #44AEC8);
      opacity: 0.85;
    }
    .library-tile:hover {
      box-shadow: 0 8px 24px rgba(49,61,127,0.14);
      transform: translateY(-2px);
      border-color: rgba(49,61,127,0.25);
    }
    .library-tile-meta {
      display: flex; justify-content: space-between; align-items: center;
      font-size: 11px; color: #888;
      text-transform: uppercase; letter-spacing: 0.4px; font-weight: 600;
      margin-bottom: 10px;
    }
    .library-tile-lang {
      display: inline-flex; align-items: center; gap: 4px;
      background: #f0f4ff; color: #313D7F;
      padding: 3px 9px; border-radius: 10px;
      font-size: 10.5px; letter-spacing: 0.3px;
    }
    .library-tile h4 {
      font-family: 'Source Serif Pro', serif;
      font-size: 17px; color: #313D7F;
      margin: 0 0 8px; line-height: 1.3;
      font-weight: 700;
    }
    .library-tile .library-tile-insight {
      font-size: 13px; color: #1B7F96; font-style: italic;
      line-height: 1.5; margin: 0 0 10px;
      font-weight: 500;
    }
    .library-tile .library-tile-body {
      font-size: 13px; color: #555;
      line-height: 1.55; margin: 0 0 12px;
      display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .library-tile-tags {
      display: flex; flex-wrap: wrap; gap: 5px;
      margin-top: auto; padding-top: 10px;
      border-top: 1px solid #f0f0f0;
    }
    .library-tile-tag {
      background: #f5f7fa; color: #555;
      padding: 3px 9px; border-radius: 10px;
      font-size: 11px; font-weight: 500;
    }
    .library-tile-tag.region { background: #eaf2ed; color: #2d6a4f; }
    .library-tile-cta {
      font-size: 11.5px; color: #313D7F; font-weight: 600;
      margin-top: 8px; display: flex; align-items: center; gap: 4px;
    }
    .library-tile.archived {
      opacity: 0.65; cursor: default;
      background: linear-gradient(180deg, #fafafa, #f5f5f5);
    }
    .library-tile.archived:hover { box-shadow: none; transform: none; border-color: #e8e8e8; }
    .library-tile.archived::before { background: linear-gradient(90deg, #bbb, #ddd); }
    .library-tile.archived h4 { color: #888; }

    .library-summary {
      padding: 16px 28px 0; font-size: 13px; color: #888;
      display: flex; justify-content: space-between; align-items: center;
    }
    .library-lang-tab { padding: 6px 16px; border-radius: 20px; border: 1px solid #ddd; background: white; cursor: pointer; font-size: 13px; font-weight: 500; color: #555; transition: all 0.15s; }
    .library-lang-tab.active { background: #313D7F; color: white; border-color: #313D7F; }
    .library-no-cards-badge { display: inline-block; font-size: 10px; color: #767676; background: #f0f0f0; padding: 2px 8px; border-radius: 10px; margin-left: 8px; }
    .library-card-detail { display: none; flex-direction: column; height: 100%; }
    .library-card-detail.active { display: flex; }
    .library-card-detail-header { padding: 16px 32px; border-bottom: 1px solid #eee; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
    .library-back-btn { background: none; border: 1px solid #ddd; border-radius: 8px; padding: 6px 14px; font-size: 13px; cursor: pointer; color: #313D7F; font-weight: 600; display: flex; align-items: center; gap: 6px; transition: all 0.15s; }
    .library-back-btn:hover { background: #f0f4ff; border-color: #313D7F; }
    .library-card-nav { display: flex; gap: 6px; margin-left: auto; }
    .library-card-nav button { background: #f0f4ff; border: 1px solid #ddd; border-radius: 6px; width: 32px; height: 32px; cursor: pointer; font-size: 14px; color: #313D7F; transition: all 0.15s; }
    .library-card-nav button:hover { background: #313D7F; color: white; }
    .library-card-nav button:disabled { opacity: 0.3; cursor: default; background: #f0f0f0; color: #767676; }
    .library-detail-scroll { overflow-y: auto; flex: 1; padding: 32px; }
    .library-detail-title { font-family: 'Source Serif Pro', serif; font-size: 28px; color: #313D7F; margin: 0 0 8px; line-height: 1.3; }
    .library-detail-insight { font-size: 16px; color: #555; line-height: 1.5; margin-bottom: 24px; font-style: italic; }
    .library-detail-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 24px; }
    .library-detail-stat { background: #f5f7ff; border-radius: 10px; padding: 14px; text-align: center; }
    .library-detail-stat-val { font-size: 20px; font-weight: 700; color: #313D7F; }
    .library-detail-stat-lbl { font-size: 12px; color: #666; margin-top: 2px; }
    .library-detail-body { font-size: 15px; color: #39373A; line-height: 1.75; }
    .library-detail-body strong { color: #313D7F; }
    .library-detail-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
    .library-detail-tag { background: #f0f4ff; color: #313D7F; padding: 4px 12px; border-radius: 16px; font-size: 12px; font-weight: 500; }
    .library-detail-meta { font-size: 12px; color: #767676; margin-top: 20px; padding-top: 16px; border-top: 1px solid #eee; }
    @media (max-width: 768px) { .library-gen-cards { grid-template-columns: 1fr; } .synergies-library-inner { width: 98%; } .library-detail-title { font-size: 22px; } .library-detail-scroll { padding: 20px; } }

    .stories-filters { display: flex; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; align-items: center; }
    .filter-group { display: flex; gap: 8px; align-items: center; }
    .filter-label { font-size: 14px; font-weight: 600; color: var(--navy,#313d7f); text-transform: uppercase; letter-spacing: 0.3px; }
    .filter-select { padding: 8px 14px; border: 1px solid var(--line,#e8e8e8); border-radius: 8px; font-size: 16px; font-family: "Rubik", sans-serif; background: white; color: var(--ink,#39373a); min-height: 44px; }
    .search-input { padding: 8px 14px; border: 1px solid var(--line,#e8e8e8); border-radius: 8px; font-size: 15px; font-family: "Rubik", sans-serif; width: 240px; }
    .stories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .story-card { background: white; border: 1px solid var(--line,#e8e8e8); border-radius: 16px; overflow: hidden; cursor: pointer; transition: all 0.3s; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }
    .story-card:hover { border-color: var(--green,#93d73b); box-shadow: 0 8px 28px rgba(147, 215, 59, 0.15); transform: translateY(-3px); }
    .story-card-draft { position: relative; opacity: 0.85; border-style: dashed; }
    .story-card-draft:hover { border-color: var(--navy,#313d7f); box-shadow: 0 8px 28px rgba(49,61,127,0.1); }
    .story-card-withheld { border-color: var(--amber-line); }
    .story-withheld { margin: var(--sp-3) 0; padding: var(--sp-2) var(--sp-3); border: var(--tbl-rule) solid var(--amber-line); border-left-width: 3px; border-radius: var(--r-tile); background: var(--amber-bg); color: var(--ink); font-size: var(--fs-body); line-height: var(--lh-body); }
    .story-withheld.sw-compact { margin: 0 0 var(--sp-2); font-size: var(--fs-sub); }
    .story-withheld .sw-since { font-weight: 600; }
    .story-withheld p { margin: var(--sp-1) 0 0; }
    .story-withheld .sw-src { font-size: var(--fs-sub); color: var(--mut); }
    .story-withheld code { font-family: var(--font-mono); font-size: var(--fs-chip); }
    .story-withheld + .story-read { margin-top: 0; }
    .story-image { width: 100%; height: 200px; background: var(--wash,#f5f5f5); overflow: hidden; }
    :where(:root) { --photo-crop: center 35%; }
    .story-image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-crop); }
    .story-image.hidden { display: none; }
    .story-content { padding: 20px; }
    .story-header { margin-bottom: 10px; }
    .story-name { font-size: 15px; font-weight: 600; color: var(--ink,#39373a); margin-bottom: 2px; font-family: "Rubik", sans-serif; }
    .story-origin { font-size: 14px; color: var(--mut,#666666); }
    .story-title { font-size: 16px; font-weight: 700; color: var(--navy,#313d7f); margin-bottom: 8px; line-height: 1.4; font-family: "Source Serif Pro", serif; }
    .story-excerpt { font-size: 15px; color: var(--mut,#666666); margin-bottom: 14px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .story-meta { font-size: 14px; color: var(--ink,#39373a); margin-bottom: 12px; display: flex; gap: 14px; font-family: "Rubik", sans-serif; font-weight: 500; }
    .story-tags { display: flex; gap: 6px; flex-wrap: wrap; }
    .story-tag { display: inline-block; padding: 4px 10px; background: var(--wash,#f5f5f5); color: var(--mut,#666666); border-radius:var(--r-pill,20px); font-size: 13px; font-weight: 500; }
    .story-tag.commodity { background: var(--live-bg,#eaf5d6); color: var(--green-dk,#4a7a1b); }
    .results-count { font-size: 15px; color: var(--mut,#666666); margin-left: auto; }


    .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(49,61,127,0.4); display: none; z-index: 2000; overflow-y: auto; padding: 60px 20px; backdrop-filter: blur(4px); }
    .modal-overlay.active { display: flex; align-items: flex-start; justify-content: center; }
    .modal { background: white; border-radius:var(--r-pill,20px); max-width: 780px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 48px; position: relative; }
    .modal-close { position: absolute; top: 20px; right: 24px; background: none; border: none; font-size: 28px; cursor: pointer; color: var(--mut,#666666); }
    .modal-close:hover { color: var(--navy,#313d7f); }
    .modal h2 { font-family: var(--font-head, "Source Serif Pro", Georgia, serif); font-size: 28px; margin-bottom: 8px; padding-right: 40px; }
    .modal .story-meta-line { margin-bottom: 24px; font-size: 15px; color: var(--mut,#666666); }
    .modal-image { width: 100%; height: 340px; background: var(--wash,#f5f5f5); border-radius: 12px; overflow: hidden; margin-bottom: 20px; }
    .modal-image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-crop); }
    .modal-image.hidden { display: none; }
    :where(:root) { --read-measure: 55ch; --fs-read: var(--fs-h2, 19px); }
    .modal-body { font-size: var(--fs-read, 19px); color: var(--ink,#39373a); line-height: var(--lh-body, 1.55); max-width: var(--read-measure, 55ch); margin: 0 auto 24px; }
    .modal-body .story-para { margin: 0 0 calc(1em * var(--lh-body, 1.55)); }
    .modal-body .story-para:last-child { margin-bottom: 0; }
    .story-read { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2, 8px) var(--sp-3, 12px);
      margin: calc(var(--sp-4, 16px) * -1) 0 var(--sp-5, 24px); }
    .story-read-time { font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-md, 14px);
      font-weight: 600; color: var(--ink, #39373a); }
    .story-read-rule { font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-sub, 12px);
      color: var(--mut, #6a6870); line-height: var(--lh-body, 1.55); }
    .story-read-say { font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-sub, 12px);
      color: var(--mut, #6a6870); line-height: var(--lh-body, 1.55); }
    .story-read-copy { margin-left: auto; display: inline-flex; align-items: center; min-height: var(--hit-sm, 32px);
      padding: 6px 12px; border: 1px solid var(--ctrl-line, #8a8890); border-radius: var(--r-chip, 9px);
      background: var(--card-bg, #ffffff); color: var(--navy, #313d7f);
      font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-body, 13px); font-weight: 600; cursor: pointer; }
    .story-read-copy:hover { border-color: var(--navy, #313d7f); background: var(--navy-bg, #eef1f9); }
    .story-read-copy:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
    .story-read-url { flex: 1 1 240px; min-width: 0; min-height: var(--hit-sm, 32px);
      padding: var(--sp-1, 4px) var(--sp-2, 8px); border: 1px solid var(--ctrl-line, #8a8890);
      border-radius: var(--r-chip, 9px); background: var(--card-bg, #ffffff); color: var(--ink, #39373a);
      font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-body, 13px); }
    .story-read-url[hidden] { display: none; }
    @media (max-width: 768px) {
      .story-read-copy { margin-left: 0; }
    }
    .modal-gallery { display: flex; gap: 10px; margin-bottom: 24px; }
    .modal-gallery img { width: 100px; height: 80px; object-fit: cover; object-position: var(--photo-crop); border-radius: 8px; cursor: pointer; border: 2px solid transparent; transition: border-color 0.2s; }
    .modal-gallery img:hover { border-color: var(--green,#93d73b); }

    .photo-full-bar { display: flex; align-items: center; gap: var(--sp-2, 8px); flex-wrap: wrap; margin: -8px 0 20px; }
    .photo-full-btn { display: inline-flex; align-items: center; min-height: var(--hit-sm, 32px); padding: 6px 12px;
      border: 1px solid var(--ctrl-line, #8a8890); border-radius: var(--r-chip, 9px); background: var(--card-bg, #ffffff);
      color: var(--navy, #313d7f); font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-body, 13px);
      font-weight: 600; cursor: pointer; }
    .photo-full-btn:hover { border-color: var(--navy, #313d7f); background: var(--navy-bg, #eef1f9); }
    .photo-full-btn:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
    .photo-full-say { font-size: var(--fs-sub, 12px); color: var(--mut, #6a6870); line-height: var(--lh-body, 1.55); margin: -8px 0 20px; }
    .photo-full-bar .photo-full-say { margin: 0; }
    .photo-full-bar.hidden, .photo-full-say.hidden { display: none; }
    .photo-full { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10300; display: flex; align-items: center;
      justify-content: center; padding: var(--sp-5, 24px); background: rgba(49,61,127,0.94); }
    .photo-full-fig { margin: 0; display: flex; flex-direction: column; gap: var(--sp-2, 8px); max-width: 96vw; }
    .photo-full-img { display: block; max-width: 96vw; max-height: 82vh; width: auto; height: auto; object-fit: contain;
      border-radius: var(--r-tile, 10px); background: var(--wash, #f5f6f8); }
    .photo-full-cap { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3, 12px); flex-wrap: wrap; }
    .photo-full-credit { font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-sub, 12px); color: var(--card-bg, #ffffff); }
    .photo-full-x { min-height: var(--hit-sm, 32px); padding: 6px 14px; border: 1px solid var(--card-bg, #ffffff);
      border-radius: var(--r-chip, 9px); background: transparent; color: var(--card-bg, #ffffff);
      font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-body, 13px); font-weight: 600; cursor: pointer; }
    .photo-full-x:hover { background: var(--card-bg, #ffffff); color: var(--navy, #313d7f); }
    .photo-full-x:focus-visible { outline: var(--focus-w, 2px) solid var(--card-bg, #ffffff); outline-offset: var(--focus-off, 2px); }
    .modal-footer { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; border-top: 1px solid var(--line,#e8e8e8); padding-top: 24px; }
    .modal-stat { text-align: center; }
    .modal-stat-value { font-size: 24px; font-weight: 700; color: var(--navy,#313d7f); font-family: "JetBrains Mono", monospace; margin-bottom: 4px; }
    .modal-stat-label { font-size: 13px; color: var(--mut,#666666); text-transform: uppercase; font-weight: 600; letter-spacing: 0.5px; }

    .site-footer { background: var(--wash,#f5f5f5); padding: 60px var(--pub-gut, 40px) 24px; }
    .footer-inner { max-width: var(--pub-w, 1200px); margin: 0 auto; display: grid; grid-template-columns: auto 1fr 1fr auto; gap: 60px; align-items: start; padding-bottom: 40px; border-bottom: 1px solid var(--line,#d8d8d8); margin-bottom: 24px; }
    .footer-logo { height: 72px; }
    .footer-links { display: flex; flex-direction: column; gap: 10px; }
    .footer-links a { font-size: 15px; color: var(--ink,#39373a); font-weight: 400; }
    .footer-links a:hover { color: var(--green,#93d73b); }
    .footer-ctas { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
    .footer-bottom { max-width: var(--pub-w, 1200px); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--mut,#767676); }
    .footer-bottom a { color: var(--ink,#39373a); font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-left: 24px; }

    @media (max-width: 1024px) { .hero-inner { grid-template-columns: 1fr; } .analytics-grid { grid-template-columns: 1fr; } .stories-grid { grid-template-columns: repeat(2, 1fr); } .metrics-row { grid-template-columns: repeat(3, 1fr); } .footer-inner { grid-template-columns: 1fr 1fr; } .program-tables { grid-template-columns: 1fr; } #synergies-content { grid-template-columns: repeat(2, 1fr) !important; } }
    @media (max-width: 768px) {
      .nav-links { display: none; }
      .hamburger-btn { display: none !important; }
      .section { padding: 48px 18px; }
      .section h2 { font-size: 26px; line-height: 1.25; margin-bottom: 16px; }
      .section h3 { font-size: 20px; line-height: 1.3; }
      #overview {
        background: linear-gradient(155deg, var(--navy,#313d7f) 0%, #3e4d9b 45%, #44AEC8 100%) !important;
        position: relative;
        overflow: hidden;
      }
      #overview::before {
        content: '';
        position: absolute;
        top: -80px;
        right: -120px;
        width: 320px;
        height: 320px;
        background: url('https://www.fairtradecertified.org/wp-content/uploads/2022/03/FTC-Full-Seal_RGB.svg') center/contain no-repeat;
        opacity: 0.08;
        pointer-events: none;
      }
      #overview::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 4px;
        background: linear-gradient(90deg, var(--green,#93d73b) 0%, var(--green-h,#6b9d2b) 100%);
        z-index: 1;
      }
      .hero {
        padding: 36px 22px 28px !important;
        background: transparent !important;
        position: relative;
        z-index: 1;
      }
      .hero::before { display: none !important; }
      .hero-inner { position: relative; z-index: 1; }
      .hero-text { position: relative; }
      .hero-text::before {
        content: 'Fair Trade USA · Intelligence Hub';
        display: inline-block;
        font-family: 'Rubik', sans-serif;
        font-size: 10.5px;
        font-weight: 700;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.95);
        background: rgba(255,255,255,0.14);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        border: 1px solid rgba(255,255,255,0.18);
        padding: 7px 14px;
        border-radius: 18px;
        margin-bottom: 20px;
      }
      .hero-text h1 {
        font-family: 'Source Serif Pro', 'Source Serif 4', Georgia, serif !important;
        font-size: 36px !important;
        line-height: 1.08 !important;
        letter-spacing: -0.02em !important;
        margin-bottom: 0 !important;
        font-weight: 700 !important;
        color: #ffffff !important;
        text-shadow: 0 2px 12px rgba(20,28,60,0.18);
      }
      .hero-text h1::after {
        width: 56px !important;
        height: 3px !important;
        margin-top: 22px !important;
        background: #93D73B !important;
        border-radius: 2px;
      }
      .hero-text p {
        font-family: 'Rubik', sans-serif !important;
        font-size: 15.5px !important;
        line-height: 1.6 !important;
        margin: 20px 0 26px !important;
        color: rgba(255,255,255,0.88) !important;
      }
      .hero .btn {
        width: 100%;
        padding: 18px 24px !important;
        font-size: 15px !important;
        justify-content: center;
        margin-top: 0 !important;
        font-weight: 700 !important;
        border-radius:var(--r-card,14px) !important;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        font-family: 'Rubik', sans-serif !important;
        display: flex;
        align-items: center;
        gap: 10px;
      }
      .hero-text > a.btn { margin-right: 0 !important; }
      .hero .btn-green {
        background: #93D73B !important;
        color: #1a2347 !important;
        border: none !important;
        box-shadow: 0 6px 20px rgba(147,215,59,0.35) !important;
      }
      .hero .btn-outline {
        background: rgba(255,255,255,0.10) !important;
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
        color: #ffffff !important;
        border: 1.5px solid rgba(255,255,255,0.35) !important;
      }
      .hero-text > a.btn + a.btn { margin-top: 14px !important; }
      .hero-inner > div:nth-child(2) { display: none !important; }

      .kpis-bar {
        padding: 4px 22px 28px !important;
        background: transparent !important;
        margin-top: 0 !important;
        position: relative;
        z-index: 1;
      }
      .kpis {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
      }
      .kpi {
        background: rgba(255,255,255,0.13) !important;
        -webkit-backdrop-filter: blur(14px) saturate(140%);
        backdrop-filter: blur(14px) saturate(140%);
        border: 1px solid rgba(255,255,255,0.25) !important;
        border-radius: 18px !important;
        padding: 16px 14px !important;
        text-align: left !important;
        box-shadow:
          0 4px 16px rgba(20,30,60,0.18),
          inset 0 1px 0 rgba(255,255,255,0.20) !important;
        position: relative;
        overflow: hidden;
      }
      .kpi::after {
        content: '';
        position: absolute;
        top: -16px; right: -16px;
        width: 52px; height: 52px;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(147,215,59,0.28), rgba(147,215,59,0));
      }
      .kpi-value {
        font-family: 'Source Serif Pro', 'Source Serif 4', Georgia, serif !important;
        font-size: 28px !important;
        color: #ffffff !important;
        font-weight: 700 !important;
        line-height: 1.05 !important;
        letter-spacing: -0.015em !important;
      }
      .kpi-label {
        font-size: 10.5px !important;
        color: rgba(255,255,255,0.78) !important;
        margin-top: 6px !important;
        line-height: 1.35 !important;
        letter-spacing: 0.08em !important;
        font-weight: 600 !important;
        text-transform: uppercase;
        font-family: 'Rubik', sans-serif !important;
      }
      .kpis { grid-template-columns: repeat(2, 1fr); gap: 12px; }
      .stories-grid { grid-template-columns: 1fr; }
      .stories-filters { gap: 8px; }
      .search-input { width: 100%; }
      .modal { padding: 20px; border-radius: 12px; }
      .modal h2 { font-size: 22px; }
      .modal-image { height: 200px; }
      .modal-footer { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
      .modal-stat-value { font-size: 18px; }
      .metrics-row { grid-template-columns: 1fr 1fr; }
      .utility-bar { display: none; }
      .program-tables { grid-template-columns: 1fr; }
      .program-table { font-size: 13px; }
      .program-table td, .program-table th { padding: 6px 8px; }
      .chat-panel { width: 100% !important; right: 0 !important; bottom: 0 !important; border-radius: 16px 16px 0 0 !important; max-height: 75vh !important; height: 75vh; }
      .chat-panel .chat-messages { min-height: 0 !important; max-height: none !important; flex: 1 1 0 !important; overflow-y: auto; }
      .chat-panel .chat-header button { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; }
      .chat-panel .chat-input-row { padding: 10px 12px; gap: 6px; }
      .chat-panel .chat-input-row input { font-size: 16px; padding: 10px 14px; }
      .chat-panel .chat-input-row button { padding: 10px 14px; font-size: 14px; }
      .chat-panel #chat-report-btn { padding: 8px 10px; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
      .chat-panel .chat-msg { font-size: 14px; padding: 10px 14px; max-width: 90%; }
      .chat-panel .chat-suggestions { gap: 6px; padding: 0 12px 8px; }
      .chat-panel .chat-suggest-btn { font-size: 12px; padding: 6px 10px; }
      .chat-bubble { right: 16px !important; bottom: 16px !important; width: 52px !important; height: 52px !important; }
      #synergies-content { grid-template-columns: 1fr !important; }
      .synergy-card { min-height: auto; padding: 20px; }
      .synergy-overlay { padding: 16px 8px; }
      .synergy-overlay-inner { border-radius:var(--r-card,14px); }
      .synergy-hero { padding: 24px 20px 20px; }
      .synergy-hero h3 { font-size: 20px; padding-right: 32px; }
      .synergy-hero .synergy-key-insight { font-size: 14px; }
      .synergy-overlay-content { padding: 20px 16px 24px; }
      .synergy-stats-row { grid-template-columns: 1fr; gap: 10px; }
      .synergy-stat-value { font-size: 18px; }
      .synergy-overlay-body { font-size: 14px; line-height: 1.7; }
      .synergy-overlay-close { top: 10px; right: 12px; font-size: 20px; padding: 2px 8px; }
      .footer-inner { grid-template-columns: 1fr; gap: 32px; }
      .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
      .breakdown-label { min-width: 80px; font-size: 13px; }
      .breakdown-value { min-width: 80px; font-size: 12px; }
      .dashboard-metrics-row { grid-template-columns: 1fr; }
      .dashboard-charts-row { grid-template-columns: 1fr; }
    }
    @media (max-width: 480px) {
      .kpis { grid-template-columns: 1fr; }
      .metrics-row { grid-template-columns: 1fr; }
      .modal-footer { grid-template-columns: 1fr; }
      .hero-text h1 { font-size: 24px; }
      .nav-right .btn { display: none; }
      .chat-panel { max-height: 80vh !important; height: 80vh; }
      .chat-panel .chat-input-row { padding: 8px 10px; gap: 5px; }
      .chat-panel .chat-input-row input { font-size: 16px; padding: 8px 12px; }
      .chat-panel .chat-suggest-btn { font-size: 11px; padding: 5px 8px; }
    }

    .mobile-nav { display: none; }
    @media (max-width: 768px) {
      .mobile-nav {
        position: fixed;
        left: 50%;
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        transform: translateX(-50%);
        display: flex;
        align-items: center;
        justify-content: space-around;
        gap: 4px;
        width: calc(100% - 24px);
        max-width: 440px;
        padding: 8px 10px;
        background: rgba(255, 255, 255, 0.72);
        -webkit-backdrop-filter: blur(24px) saturate(180%);
        backdrop-filter: blur(24px) saturate(180%);
        border: 1px solid rgba(255, 255, 255, 0.6);
        border-radius: 28px;
        box-shadow: 0 10px 32px rgba(20, 30, 60, 0.18), 0 1px 2px rgba(0,0,0,0.04);
        z-index: 10000;
        transition: transform 0.32s cubic-bezier(0.2, 0.9, 0.3, 1), opacity 0.2s ease;
      }
      .mobile-nav.hidden {
        transform: translate(-50%, calc(100% + 30px));
        opacity: 0;
      }
      .mobile-nav-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        padding: 8px 4px;
        background: transparent;
        border: none;
        color: #5a5d6b;
        font-family: 'Rubik', sans-serif;
        font-size: 11px;
        font-weight: 500;
        letter-spacing: 0.01em;
        cursor: pointer;
        border-radius: 18px;
        position: relative;
        transition: color 0.2s, background 0.2s, transform 0.15s;
        min-height: 52px;
        -webkit-tap-highlight-color: transparent;
      }
      .mobile-nav-item:active { transform: scale(0.92); }
      .mobile-nav-item .nav-icon {
        width: 24px; height: 24px;
        display: flex; align-items: center; justify-content: center;
      }
      .mobile-nav-item .nav-icon svg {
        width: 22px; height: 22px;
        stroke: currentColor; stroke-width: 1.9;
        fill: none; stroke-linecap: round; stroke-linejoin: round;
      }
      .mobile-nav-item.active {
        color: var(--navy,#313d7f);
        background: linear-gradient(180deg, rgba(49,61,127,0.10), rgba(68,174,200,0.08));
      }
      .mobile-nav-item.active .nav-icon svg {
        stroke-width: 2.2;
      }
      .mobile-nav-item.chat-trigger.active {
        color: var(--card-bg,#ffffff);
        background: linear-gradient(135deg, var(--navy,#313d7f), #44AEC8);
        box-shadow: 0 4px 12px rgba(49,61,127,0.3);
      }
      .mobile-nav-brand {
        flex: 0 0 auto;
        order: 3 !important;
        width: 56px; height: 56px;
        margin: -14px 6px 0;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--card-bg,#ffffff);
        border: 1px solid rgba(20,30,60,0.08);
        box-shadow: 0 6px 16px rgba(20,30,60,0.16), 0 1px 2px rgba(0,0,0,0.06);
        transition: transform 0.15s, box-shadow 0.2s;
        -webkit-tap-highlight-color: transparent;
        position: relative;
        z-index: 1;
      }
      .mobile-nav-brand img { width: 38px; height: 38px; display: block; }
      .mobile-nav-brand:active { transform: scale(0.92); }
      .mobile-nav-item[data-target="#map"]     { order: 1 !important; }
      .mobile-nav-item[data-target="#stories"] { order: 2 !important; }
      .mobile-nav-item[data-target="#themes-section"] { order: 4 !important; }
      .mobile-nav-item[data-target="#analytics"] { order: 5 !important; }
      .mobile-nav-item.chat-trigger              { order: 6 !important; }
      .chat-sheet-backdrop {
        position: fixed; inset: 0;
        background: rgba(20, 28, 50, 0.45);
        -webkit-backdrop-filter: blur(2px);
        backdrop-filter: blur(2px);
        z-index: 9998;
        opacity: 0; pointer-events: none;
        transition: opacity 0.28s ease;
      }
      .chat-sheet-backdrop.open { opacity: 1; pointer-events: auto; }
      .chat-panel.mobile-sheet {
        position: fixed !important;
        left: 0 !important; right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: 82vh !important;
        max-height: 82vh !important;
        border-radius: 22px 22px 0 0 !important;
        transform: translateY(100%);
        transition: transform 0.35s cubic-bezier(0.2, 0.9, 0.3, 1) !important;
        z-index: 9999 !important;
        display: flex !important;
        padding-bottom: env(safe-area-inset-bottom, 0px);
      }
      .chat-panel.mobile-sheet.open { transform: translateY(0); }
      .chat-sheet-handle {
        position: absolute;
        top: 8px; left: 50%;
        transform: translateX(-50%);
        width: 40px; height: 4px;
        background: rgba(0,0,0,0.18);
        border-radius: 2px;
        z-index: 1;
        pointer-events: none;
      }
      body { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
      .main-nav { display: none !important; }
      #chat-bubble,
      #chat-bubble.visible,
      #chat-bubble[style] {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        position: absolute !important;
        left: -9999px !important;
      }
      .stories-filter-row,
      .stories-filter-row-dropdowns {
        flex-direction: column !important;
        gap: 12px !important;
        align-items: stretch !important;
      }
      .stories-filter-row .filter-group,
      .stories-filter-row-dropdowns .filter-group {
        flex: 1 1 100% !important;
        min-width: 0 !important;
        width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 12px !important;
      }
      .stories-filter-row .filter-group > label,
      .stories-filter-row-dropdowns .filter-group > label {
        flex: 0 0 96px;
        font-size: 13px;
      }
      .stories-filter-row .filter-group > select,
      .stories-filter-row-dropdowns .filter-group > select {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        width: 100% !important;
      }
      .stories-filter-row-year { padding-bottom: 12px !important; }
      .synergy-hero h3 { padding-right: 96px !important; font-size: 19px !important; line-height: 1.28 !important; }
      .synergy-hero .synergy-subtitle { padding-right: 96px !important; font-size: 14px !important; }
      .synergy-hero .ftusa-seal { width: 68px !important; height: 68px !important; top: 18px !important; right: 18px !important; }
      #map .map-container, #map iframe, #map > div[id*="map"] { min-height: 460px !important; }
      .leaflet-container { min-height: 420px !important; }
      .modal-overlay { padding: 12px 12px 100px !important; }
      .modal { max-height: calc(100vh - 130px) !important; padding: 28px 20px !important; }
      .modal h2 { padding-right: 36px; }
      .modal-image, .profile-hero-img { max-height: 200px !important; }
      #internal-banner {
        padding: 8px 36px 8px 14px !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
        text-align: left !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
      }
      #internal-banner > span:nth-child(2),
      #internal-banner > span:nth-child(3) { display: none !important; }
      #internal-banner .tour-start-btn {
        padding: 4px 10px !important;
        font-size: 11px !important;
        margin-left: auto !important;
        margin-right: 28px !important;
      }
      #internal-banner .tour-start-btn svg { width: 12px !important; height: 12px !important; }
    }

    .chat-bubble { position: fixed; bottom: 28px; right: 28px; width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(135deg, var(--navy,#313d7f), #4a5ba0); color: white; border: none; cursor: pointer; box-shadow: 0 4px 20px rgba(49,61,127,0.35); z-index: 10010; display: none; align-items: center; justify-content: center; font-size: 24px; transition: transform 0.2s, box-shadow 0.2s; }
    .chat-bubble:hover { transform: scale(1.08); box-shadow: 0 6px 28px rgba(49,61,127,0.45); }
    .chat-bubble.visible { display: flex; }
    .chat-panel { position: fixed; bottom: 96px; right: 28px; width: 480px; max-height: 740px; background: var(--card-bg,#ffffff); border-radius: 16px; box-shadow: 0 12px 48px rgba(0,0,0,0.18); z-index: 10009; display: none; flex-direction: column; overflow: hidden; border: 1px solid var(--line,#e8e8e8); }
    .chat-panel.open { display: flex; }
    .chat-header { padding: 16px 20px; background: linear-gradient(135deg, var(--navy,#313d7f), #4a5ba0); color: white; display: flex; align-items: center; justify-content: space-between; }
    .chat-header h4 { margin: 0; font-family: "Rubik", sans-serif; font-size: 16px; font-weight: 600; color: var(--card-bg,#ffffff); }
    .chat-header button { background: none; border: none; color: rgba(255,255,255,0.8); cursor: pointer; font-size: 18px; padding: 0; line-height: 1; }
    .chat-header button:hover { color: white; }
    .chat-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; min-height: 380px; max-height: 580px; }
    .chat-msg { max-width: 85%; padding: 12px 16px; border-radius: 12px; font-size: 15px; line-height: 1.6; font-family: "Rubik", sans-serif; word-wrap: break-word; }
    .chat-msg.assistant { background: var(--navy-bg,#f0f4ff); color: #1a2340; align-self: flex-start; border-bottom-left-radius: 4px; overflow-wrap: break-word; word-break: break-word; }
    .chat-msg.assistant p { margin: 0 0 8px; }
    .chat-msg.assistant p:last-child { margin-bottom: 0; }
    .chat-msg.assistant strong { color: var(--navy,#313d7f); }
    .chat-table-wrap { overflow-x: auto; margin: 8px 0; border-radius: 8px; border: 1px solid var(--line,#dde3f0); }
    .chat-table { width: 100%; border-collapse: collapse; font-size: 14px; }
    .chat-table th { background: var(--navy,#313d7f); color: var(--card-bg,#ffffff); padding: 7px 10px; text-align: left; font-weight: 600; white-space: nowrap; }
    .chat-table td { padding: 6px 10px; border-bottom: 1px solid var(--hair,#e8ecf4); white-space: nowrap; }
    .chat-table tbody tr:last-child td { border-bottom: none; }
    .chat-table tbody tr:nth-child(even) { background: rgba(49,61,127,0.03); }
    .chat-table tbody tr:hover { background: rgba(49,61,127,0.07); }
    .chat-list { margin: 6px 0; padding-left: 18px; }
    .chat-list li { margin-bottom: 3px; font-size: 15px; }
    .chat-msg.user { background: var(--navy,#313d7f); color: var(--card-bg,#ffffff); align-self: flex-end; border-bottom-right-radius: 4px; }
    .chat-msg.system { background: var(--wash,#f5f5f5); color: var(--mut,#666666); font-size: 14px; text-align: center; align-self: center; padding: 6px 12px; border-radius: 8px; }
    .chat-input-row { padding: 12px 16px; border-top: 1px solid var(--line,#e8e8e8); display: flex; gap: 8px; background: var(--zebra,#fafafa); min-width: 0; }
    .chat-input-row input { flex: 1 1 0; min-width: 0; border: 1px solid var(--line,#dddddd); border-radius:var(--r-pill,20px); padding: 8px 16px; font-size: 15px; font-family: "Rubik", sans-serif; outline: none; transition: border-color 0.2s; }
    .chat-input-row input:focus { border-color: var(--navy,#313d7f); }
    .chat-input-row button { background: var(--navy,#313d7f); color: white; border: none; border-radius:var(--r-pill,20px); padding: 8px 16px; font-size: 15px; font-weight: 600; cursor: pointer; font-family: "Rubik", sans-serif; transition: background 0.2s; }
    .chat-input-row button:hover { background: #4a5ba0; }
    .chat-input-row button:disabled { opacity: 0.5; cursor: not-allowed; }
    .chat-typing { display: flex; gap: 4px; padding: 8px 14px; align-self: flex-start; }
    .chat-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--navy,#313d7f); opacity: 0.4; animation: chatDot 1.2s infinite; }
    .chat-typing span:nth-child(2) { animation-delay: 0.2s; }
    .chat-typing span:nth-child(3) { animation-delay: 0.4s; }
    @keyframes chatDot { 0%,80%,100%{opacity:0.4;transform:scale(1)} 40%{opacity:1;transform:scale(1.2)} }

    .tour-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:10050;transition:opacity 0.3s; }
    .tour-highlight { position:absolute;z-index:10051;border-radius:12px;box-shadow:0 0 0 4000px rgba(0,0,0,0.55);pointer-events:none;transition:all 0.4s cubic-bezier(.4,0,.2,1); }
    .tour-tooltip { position:absolute;z-index:10052;background:var(--card-bg,#ffffff);border-radius:var(--r-card,14px);padding:24px 28px 20px;max-width:380px;min-width:280px;box-shadow:0 12px 48px rgba(0,0,0,0.22);font-family:'Rubik',sans-serif;animation:tourFadeIn 0.35s ease; }
    .tour-tooltip::before { content:'';position:absolute;width:14px;height:14px;background:var(--card-bg,#ffffff);transform:rotate(45deg);z-index:-1; }
    .tour-tooltip.arrow-top::before { top:-6px;left:32px; }
    .tour-tooltip.arrow-bottom::before { bottom:-6px;left:32px; }
    .tour-tooltip.arrow-left::before { left:-6px;top:24px; }
    .tour-tooltip.arrow-right::before { right:-6px;top:24px; }
    .tour-step-counter { font-size: 13px;font-weight:700;color: #1B7F96;text-transform:uppercase;letter-spacing:0.8px;margin-bottom:8px; }
    .tour-title { font-size:16px;font-weight:700;color:var(--navy,#313d7f);margin-bottom:6px;font-family:'Source Serif Pro',serif; }
    .tour-desc { font-size: 15px;color:#555;line-height:1.6;margin-bottom:18px; }
    .tour-actions { display:flex;justify-content:space-between;align-items:center; }
    .tour-dots { display:flex;gap:5px; }
    .tour-dot { width:7px;height:7px;border-radius:50%;background:var(--line,#dddddd);transition:all 0.3s; }
    .tour-dot.active { background:var(--navy,#313d7f);width:18px;border-radius:4px; }
    .tour-btn { border:none;border-radius:8px;padding:8px 18px;font-size: 15px;font-weight:600;cursor:pointer;font-family:'Rubik',sans-serif;transition:all 0.2s; }
    .tour-btn-next { background:var(--navy,#313d7f);color:var(--card-bg,#ffffff); }
    .tour-btn-next:hover { background:#44AEC8; }
    .tour-btn-skip { background:transparent;color: var(--mut,#767676);font-weight:500; }
    .tour-btn-skip:hover { color:var(--mut,#666666); }
    .tour-progress { position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--navy,#313d7f),#44AEC8);z-index:10001;transition:width 0.4s ease; }
    @keyframes tourFadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
    #internal-banner .tour-start-btn { display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.18);color:var(--card-bg,#ffffff);border:1px solid rgba(255,255,255,0.3);border-radius:8px;padding:5px 14px;font-size: 14px;font-weight:600;cursor:pointer;font-family:'Rubik',sans-serif;transition:all 0.2s;margin-left:12px; }
    #internal-banner .tour-start-btn:hover { background:rgba(255,255,255,0.3); }
    .cat-dot { display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle;position:relative;top:-1px; }

    .case-card { background:#fff;border:1px solid #e8e8e8;border-left:4px solid #44AEC8;border-radius:10px;padding:18px 20px; }
    .case-card.resolved { border-left-color:#93D73B;opacity:0.7; }
    .case-meta { font-size: 13px;color: #767676;margin-bottom:8px;display:flex;gap:16px;flex-wrap:wrap; }
    .case-meta strong { color:#313D7F; }
    .case-body { font-size: 15px;color:#39373A;line-height:1.6;margin-bottom:12px; }
    .case-context { font-size: 14px;color:#666;background:#f7f8fa;padding:10px 14px;border-radius:8px;margin-bottom:12px; }
    .case-actions { display:flex;gap:8px; }
    .case-badge { display:inline-block;padding:2px 10px;border-radius:10px;font-size: 12px;font-weight:600; }
    .case-badge.open { background:#FFF3E0;color:#B23E00; }
    .case-badge.resolved { background:#eaf5d6;color: #4A7A1B; }
    .case-filter-btn { border:none;background:transparent;font-size:12px;font-weight:600;color:#767676;padding:5px 12px;border-radius:6px;cursor:pointer;font-family:'Rubik',sans-serif; }
    .case-filter-btn.active { background:#fff;color:#313D7F;box-shadow:0 1px 3px rgba(0,0,0,0.1); }
    .case-notes-input { width:100%;border:1px solid #e0e0e0;border-radius:8px;padding:8px 10px;font-size:13px;font-family:'Rubik',sans-serif;resize:vertical;min-height:38px;margin-bottom:8px; }
    .chat-case-banner { background:linear-gradient(135deg,var(--wash,#f0f7ff),var(--live-bg,#e8f5e9));border:1px solid #44AEC8;border-radius:var(--r-tile,10px);padding:12px 16px;margin:8px 16px;font-size: 14px;color:var(--navy,#313d7f);line-height:1.5; }
    .chat-case-banner button { background:var(--navy,#313d7f);color:var(--card-bg,#ffffff);border:none;border-radius:6px;padding:6px 14px;font-size: 13px;font-weight:600;cursor:pointer;margin-top:8px;font-family:'Rubik',sans-serif; }
    .chat-case-banner button:hover { background:#44AEC8; }
    .chat-suggestions { display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 8px; }
    .chat-suggest-btn { background:var(--navy-bg,#f0f2f8);color:var(--navy,#313d7f);border:1px solid var(--line,#e0e3ef);border-radius:12px;padding:6px 12px;font-size: 13px;font-family:'Rubik',sans-serif;cursor:pointer;text-align:left;line-height:1.4;transition:all 0.15s; }
    .chat-suggest-btn:hover { background:var(--navy,#313d7f);color:var(--card-bg,#ffffff);border-color:var(--navy,#313d7f); }
    .chat-followups { display:flex;flex-wrap:wrap;gap:6px;margin-top:8px; }
    .chat-followup-btn { background:var(--wash,#f7f8fa);color:var(--navy,#313d7f);border:1px solid var(--line,#e0e3ef);border-radius:var(--r-tile,10px);padding:4px 10px;font-size: 12px;font-family:'Rubik',sans-serif;cursor:pointer;transition:all 0.15s; }
    .chat-followup-btn:hover { background:var(--navy,#313d7f);color:var(--card-bg,#ffffff); }




    #internal-banner button[aria-label="Dismiss internal preview banner"] {
      min-width: 44px;
      min-height: 44px;
      padding: 10px;
      font-size: 20px;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }


    @media (max-width: 768px) {
      button,
      .btn,
      a.btn,
      [role="button"] {
        min-height: 44px;
        min-width: 44px;
      }

      .chat-panel .chat-suggest-btn {
        min-height: 0;
        min-width: 0;
      }

      .map-ctrl-toggle {
        min-height: 32px;
        min-width: 32px;
      }

      #internal-banner .tour-start-btn {
        min-height: 36px;
        min-width: 36px;
        padding: 6px 14px;
      }

      .lang-btn {
        min-height: 44px;
        min-width: 44px;
        padding: 8px 12px !important;
      }

      .leaflet-control-zoom a {
        width: 44px !important;
        height: 44px !important;
        line-height: 44px !important;
        font-size: 22px !important;
      }
    }


    @media (max-width: 768px) {

      .login-box input,
      #admin-login-user,
      #admin-login-pass {
        font-size: 16px;
      }

      .chat-panel .chat-input-row input,
      .chat-input-row input,
      #chat-input {
        font-size: 16px;
        padding: 10px 14px;
      }

      .search-input,
      #search-input {
        font-size: 16px;
        padding: 10px 14px;
      }

      .admin-search-row input,
      #admin-story-search {
        font-size: 16px;
      }

      .admin-form-row input,
      .admin-form-row textarea,
      .admin-form-row select {
        font-size: 16px;
      }

      input#admin-api-key[style] {
        font-size: 16px !important;
      }

      input[data-people-idx],
      input[data-people-field] {
        font-size: 16px;
        padding: 8px 10px;
      }

      #admin-panel input[type="text"],
      #admin-panel input[type="email"],
      #admin-panel input[type="url"],
      #admin-panel input[type="password"],
      #admin-panel input[type="search"],
      #admin-panel input[type="tel"],
      #admin-panel input[type="number"],
      #admin-panel textarea,
      #admin-login-overlay input[type="text"],
      #admin-login-overlay input[type="password"] {
        font-size: 16px;
      }
    }

    @media (max-width: 480px) {
      .login-box input,
      .chat-panel .chat-input-row input,
      .chat-input-row input,
      .search-input,
      .admin-form-row input,
      .admin-form-row textarea,
      .admin-search-row input,
      input[data-people-idx],
      input[data-people-field] {
        font-size: 16px;
      }
      input#admin-api-key[style] {
        font-size: 16px !important;
      }
    }


    .dashboard-metric-card {
      min-width: 0;
    }
    .dashboard-metric-card .dashboard-metric-value {
      font-size: clamp(20px, 5vw, 32px);
      overflow-wrap: anywhere;
      word-break: break-word;
      min-width: 0;
    }

    @media (max-width: 480px) {

      #top-countries-container svg text,
      #premium-dollars-container svg text {
        font-size: 14px !important;
      }
    }


      .hm-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
      table.premium-heatmap {
        border-collapse: separate; border-spacing: 3px;
        width: 100%; min-width: 720px; table-layout: fixed;
      }
      .premium-heatmap th.hm-corner { width: 132px; }
      .premium-heatmap th.hm-col {
        font-size: 11px; font-weight: 600; color: #555;
        vertical-align: bottom; padding: 0 2px 7px; text-align: center;
        line-height: 1.2; white-space: normal;
      }
      .premium-heatmap th.hm-rowhead {
        text-align: right; padding-right: 10px; font-size: 13px;
        color: var(--navy,#313d7f); font-weight: 600; white-space: nowrap;
      }
      .premium-heatmap td.hm-cell {
        text-align: center; font-family: 'JetBrains Mono', monospace;
        font-size: 13px; font-weight: 600; padding: 11px 4px;
        border-radius: 5px; min-width: 44px;
      }
      .premium-heatmap .hm-pct { font-size: 9px; opacity: 0.7; margin-left: 1px; }
      .premium-heatmap tr.hm-row { cursor: pointer; outline: none; }
      .premium-heatmap tr.hm-row:hover td.hm-cell { box-shadow: inset 0 0 0 2px rgba(49,61,127,0.28); }
      .premium-heatmap tr.hm-row:focus-visible td.hm-cell { box-shadow: inset 0 0 0 2px var(--navy,#313d7f); }
      .hm-legend {
        display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
        font-size: 12px; color: var(--soft,#888888); margin-top: 12px;
      }
      .hm-ramp { display: inline-block; width: 120px; height: 10px; border-radius: 5px; }
      .hm-hint { color: #aaa; }
      .hm-barlegend { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 12px; font-size: 11px; color: #555; }
      .hm-leg-item { display: inline-flex; align-items: center; gap: 5px; }
      .hm-leg-sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
      .premium-drill { background: var(--wash,#f7f8fa); border-radius:var(--r-tile,10px); padding: 14px 16px; }
      .premium-drill-head {
        display: flex; justify-content: space-between; align-items: center;
        margin-bottom: 8px; color: var(--navy,#313d7f);
        font-family: 'Source Serif Pro', serif; font-weight: 600;
      }
      .premium-drill-close {
        background: none; border: none; color: #999; font-size: 20px;
        line-height: 1; cursor: pointer; padding: 0 4px;
      }
      .premium-drill-close:hover { color: var(--navy,#313d7f); }
      .premium-dollars-total {
        font-family: 'JetBrains Mono', monospace; font-size: 13px;
        color: var(--navy,#313d7f); margin-top: 6px;
      }

      .premium-pies { display: flex; flex-wrap: nowrap; gap: 10px; align-items: stretch; }
      .premium-pie {
        flex: 1 1 0; min-width: 0;
        background: none; border: 1px solid transparent; border-radius: 12px;
        padding: 10px 4px 12px; cursor: pointer; font: inherit;
        display: flex; flex-direction: column; align-items: center; gap: 2px;
        transition: background .15s, border-color .15s, transform .15s;
      }
      .premium-pie:hover { background: var(--wash,#f7f8fa); border-color: var(--line,#e3e6ef); transform: translateY(-2px); }
      .premium-pie:focus-visible { outline: 2px solid var(--navy,#313d7f); outline-offset: 2px; }
      .premium-pie-svg { width: 100%; max-width: 150px; display: block; }
      .premium-pie-cap {
        font-family: 'Source Serif Pro', serif; font-weight: 600; color: var(--navy,#313d7f);
        font-size: 14px; text-align: center; margin-top: 4px; line-height: 1.2;
      }
      .premium-pie-sub { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--soft,#888888); }
      .premium-pie-legend { justify-content: center; margin-top: 16px; }
      .premium-pie-hint { font-size: 12px; color: var(--soft,#888888); margin-top: 10px; line-height: 1.6; text-align: center; }
      .premium-notes-toggle > summary {
        cursor: pointer; font-size: 12px; font-weight: 600; color: var(--navy,#313d7f);
        list-style: none; display: inline-flex; align-items: center; gap: 5px;
        padding: 3px 0; user-select: none;
      }
      .premium-notes-toggle > summary::-webkit-details-marker { display: none; }
      .premium-notes-toggle > summary::before { content: '\25B8'; color: #999; font-size: 10px; }
      .premium-notes-toggle[open] > summary::before { content: '\25BE'; }
      .premium-notes-toggle > div { font-size: 12px; color: var(--soft,#888888); line-height: 1.7; margin-top: 6px; }
      .premium-drill svg { width: 100%; max-width: 560px; display: block; }
      @media (max-width: 620px) {
        .premium-pies { flex-wrap: wrap; }
        .premium-pie { flex: 1 1 42%; }
      }
      @media (max-width: 560px) { .premium-pie { flex-basis: 42%; } }

    @media (max-width: 480px) {

      .synergy-overlay-content > div:last-child[style*="display:flex"],
      .synergy-overlay-content > div[style*="border-top"] {
        flex-direction: column !important;
        align-items: stretch !important;
      }
      .synergy-overlay-content > div:last-child[style*="display:flex"] > button,
      .synergy-overlay-content > div[style*="border-top"] > button {
        width: 100%;
        justify-content: center;
        min-height: 44px;
      }
      .synergy-overlay-content > div:last-child[style*="display:flex"] > span,
      .synergy-overlay-content > div[style*="border-top"] > span {
        text-align: center;
        align-self: center !important;
      }
    }


    @media (max-width: 768px) {

      .admin-tabs {
        padding: 0 12px;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
      }
      .admin-tab {
        padding: 12px 14px;
        font-size: 14px;
        flex-shrink: 0;
        white-space: nowrap;
      }

      .admin-panel-section {
        padding: 0 16px 16px;
      }
      .admin-panel { border-radius: 12px; }
      .admin-panel-section h3 { font-size: 18px; }
      .admin-panel-section .admin-section-desc { font-size: 14px; margin-bottom: 16px; }

      .admin-form-grid {
        grid-template-columns: 1fr;
        gap: 12px;
      }

      .admin-form-row input,
      .admin-form-row textarea,
      .admin-form-row select {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
      }

      #sf-url,
      #sf-client-id,
      #sf-client-secret,
      #sf-username,
      #sf-proxy {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
      }

      #people-edit-form > div {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
      }
      #people-edit-form input {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        font-size: 16px;
      }

      #map-container { height: 380px !important; }
      .leaflet-container { height: 380px !important; }
    }

    @media (max-width: 480px) {

      #internal-banner {
        font-size: 11px;
        padding: 6px 40px 6px 12px;
        letter-spacing: 0.2px;
      }
      #internal-banner > span:nth-of-type(2) {
        display: none;
      }
      #internal-banner > span:nth-of-type(3) {
        margin-left: 0 !important;
        display: block;
        margin-top: 2px;
      }

      .modal-gallery { gap: 6px; }
      .modal-gallery img {
        width: 60px;
        height: 48px;
      }

      #map-container,
      .leaflet-container { height: 340px !important; }
    }




    @media (max-width: 768px) {

      .footer-links a {
        display: block;
        width: 100%;
        padding: 9px 0;
        min-height: 44px;
        box-sizing: border-box;
      }
      .footer-links {
        gap: 2px;
      }

      .footer-bottom > div {
        display: flex;
        flex-direction: column;
        gap: 2px;
        width: 100%;
      }
      .footer-bottom a {
        display: block;
        width: 100%;
        padding: 11px 0;
        min-height: 44px;
        margin-left: 0 !important;
        box-sizing: border-box;
        text-align: center;
      }

      .map-legend-title {
        display: block;
        min-height: 44px;
        padding: 11px 4px;
        margin-bottom: 0;
        cursor: pointer;
        box-sizing: border-box;
      }
      .map-legend-title .legend-arrow {
        line-height: 22px;
      }

      .footer-links a:focus-visible,
      .footer-bottom a:focus-visible,
      .map-legend-title:focus-visible {
        outline: 2px solid var(--navy,#313d7f);
        outline-offset: 2px;
        border-radius: 4px;
      }
    }


    @media (max-width: 768px) {

      .stories-filters label:has(> #year-2023),
      .stories-filters label:has(> #year-2024),
      .stories-filters label:has(> #year-2025) {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 8px 12px;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        font-size: 14px !important;
        flex: 0 0 auto;
      }

      #year-2023,
      #year-2024,
      #year-2025 {
        width: 18px;
        height: 18px;
        transform: scale(1.15);
        transform-origin: center;
        cursor: pointer;
        margin: 2px;
      }

      .stories-filters .filter-group > div[style*="display:flex"] {
        gap: 4px !important;
        flex-wrap: wrap;
      }

      .export-card label:has(> #flag-synergies),
      .export-card label:has(> #flag-chat) {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 8px 12px;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
      }

      #flag-synergies,
      #flag-chat {
        cursor: pointer;
        margin: 2px;
      }
    }

    @media (max-width: 480px) {
      .stories-filters .filter-group > div[style*="display:flex"] {
        flex-wrap: wrap;
        row-gap: 6px;
      }
    }

    @media (max-width: 768px) {
      .stories-filters label,
      .export-card label {
        min-height: 44px;
        cursor: pointer;
      }
    }


    @media (max-width: 768px) {
      .chat-panel.open ~ #chat-bubble,
      .chat-panel.open ~ .chat-bubble {
        display: none !important;
      }

      body:has(#modal-overlay.active) #chat-bubble,
      body:has(#synergy-overlay.active) #chat-bubble,
      body:has(#synergies-library-overlay.active) #chat-bubble,
      body:has(#admin-login-overlay.login-overlay:not([style*="display: none"])) #chat-bubble,
      body:has(#admin-login-overlay.active) #chat-bubble {
        display: none !important;
      }

      body:has(#modal-overlay.active),
      body:has(#synergy-overlay.active),
      body:has(#synergies-library-overlay.active) {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        height: 100% !important;
      }
    }

    @media (max-width: 480px) {
      .chat-panel .chat-input-row {
        padding-right: 12px;
        padding-left: 12px;
        gap: 8px;
      }
    }

    @media (max-width: 768px) {
      #admin-login-overlay .login-box img[alt*="Fair Trade"] {
        max-height: 48px;
        object-fit: contain;
      }
    }



    @media (max-width: 768px) {
      #map-container {
        position: relative;
        padding-bottom: 0;
        overflow: visible;
        display: flex !important;
        flex-direction: column;
      }
      #map-container #world-map {
        order: 2;
        height: 360px !important;
        min-height: 360px !important;
        width: 100% !important;
        border-radius:var(--r-card,14px);
        overflow: hidden;
      }
      #map-container #map-search-dock { order: 1; }
      #map-container #map-ctrl   { order: 1; margin-bottom: 12px !important; }
      #map-container #map-legend { order: 3; }
      #map-container #map-expand-btn,
      #map-container #map-close-btn { order: 0; position: absolute !important; }

      .map-controls,
      .map-search-dock,
      .map-legend {
        position: static !important;
        top: auto !important;
        bottom: auto !important;
        left: auto !important;
        right: auto !important;
        max-width: 100% !important;
        width: 100%;
        margin: 0;
        background: white;
        box-shadow: 0 1px 6px rgba(0,0,0,0.06);
        border-radius: 12px;
        backdrop-filter: none;
      }
      .map-search-dock {
        min-height: auto !important;
        margin-bottom: 12px !important;
        padding: 10px 12px !important;
        border-radius: 16px !important;
        border: 1px solid var(--hair,#e5e8ef) !important;
        box-shadow: 0 1px 4px rgba(20,30,60,0.04) !important;
        flex-wrap: wrap;
      }
      .map-search-dock .map-search { flex-wrap: wrap; }
      .map-search-dock .map-search-field { flex: 1 1 100% !important; }
      .map-controls {
        --mapctrl-label: 66px;
        max-width: 100% !important;
        padding: 10px 12px !important;
        margin-bottom: 12px !important;
        border-radius: 16px !important;
        border: 1px solid var(--hair,#e5e8ef) !important;
        box-shadow: 0 1px 4px rgba(20,30,60,0.04) !important;
        gap: 2px !important;
      }
      .map-ctrl-rows { gap: 2px; }
      .map-controls .map-control-row {
        gap: 8px !important;
        align-items: center !important;
        padding: 4px 0 !important;
      }
      .map-controls .map-control-row + .map-control-row { border-top: none; padding-top: 4px; margin-top: 0; }
      .map-controls .map-control-label {
        font-size: 9.5px !important;
        font-weight: 700 !important;
        letter-spacing: 0.1em !important;
        color: var(--mut, #6a6870) !important;
        text-transform: uppercase !important;
        flex: 0 0 var(--mapctrl-label, 66px) !important;
        padding-top: 0 !important;
      }
      .map-controls .map-control-group {
        flex: 1 1 auto !important;
        gap: 5px !important;
        align-items: center !important;
      }
      .map-controls .pill {
        font-size: 11.5px !important;
        padding: 5px 11px !important;
        line-height: 1.3 !important;
        border-radius: 999px !important;
      }
      .map-controls .pill.active { font-weight: 600 !important; }
      .map-controls.collapsed {
        max-width: none !important;
        width: 100% !important;
        max-height: none !important;
        padding: 14px 16px !important;
        cursor: pointer !important;
        overflow: hidden !important;
        position: relative !important;
        display: block !important;
      }
      .map-controls.collapsed::before {
        content: attr(data-filters-label) !important;
        font-family: 'Rubik', sans-serif;
        font-size: 13px;
        font-weight: 600;
        color: var(--navy,#313d7f);
        letter-spacing: 0.02em;
        display: inline-block;
      }
      .map-controls.collapsed::after {
        content: '+';
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 22px;
        color: var(--navy,#313d7f);
        font-weight: 400;
        line-height: 1;
      }
      .map-controls.collapsed .map-control-row { display: none !important; }
      .map-controls.collapsed .map-ctrl-rows { display: none !important; }
      .map-controls.collapsed .map-ctrl-head {
        display: inline-flex !important;
        vertical-align: middle;
        margin-left: 10px;
      }
      .map-controls:not(.collapsed) {
        cursor: default !important;
        padding: 14px 16px 14px 16px !important;
        position: relative !important;
      }
      .map-controls:not(.collapsed)::before {
        content: attr(data-filters-label);
        font-family: 'Rubik', sans-serif;
        font-size: 13px;
        font-weight: 600;
        color: var(--navy,#313d7f);
        letter-spacing: 0.02em;
        display: block;
        margin-bottom: 10px;
        padding-right: 30px;
      }
      .map-controls:not(.collapsed)::after {
        content: '−';
        position: absolute;
        right: 16px;
        top: 12px;
        font-size: 22px;
        color: var(--navy,#313d7f);
        font-weight: 400;
        line-height: 1;
        cursor: pointer;
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #world-map { position: relative; }
      #world-map #map-expand-btn {
        position: absolute !important;
        bottom: 12px !important;
        right: 12px !important;
        top: auto !important;
        left: auto !important;
        z-index: 600 !important;
        font-size: 12px !important;
        padding: 8px 14px !important;
        border-radius: 999px !important;
        box-shadow: 0 4px 12px rgba(20,30,60,0.18) !important;
      }
      #map-container > #map-expand-btn { visibility: hidden; }
      .map-legend {
        padding: 12px 14px !important;
        margin-top: 14px !important;
        margin-bottom: 0 !important;
        border-radius: 16px !important;
        border: 1px solid var(--hair,#e5e8ef) !important;
        box-shadow: 0 1px 4px rgba(20,30,60,0.04) !important;
      }
      .map-legend .map-legend-title {
        font-family: 'Rubik', sans-serif !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.02em !important;
        color: var(--navy,#313d7f) !important;
        text-transform: none !important;
      }
      .map-legend .legend-section { font-size: 11px !important; margin-top: 8px !important; }
      .map-legend .legend-item { font-size: 12px !important; gap: 6px !important; padding: 2px 0 !important; }
      .map-legend .legend-row { gap: 6px 14px !important; flex-wrap: wrap; }
      .map-legend.collapsed {
        padding: 14px 16px !important;
        cursor: pointer !important;
        position: relative !important;
      }
      .map-legend.collapsed .legend-body {
        max-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
      }
      .map-legend.collapsed .map-legend-title { margin: 0 !important; }
      .map-legend .legend-arrow {
        position: absolute !important;
        right: 16px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        font-size: 0 !important;
        color: var(--navy,#313d7f) !important;
        line-height: 1 !important;
      }
      .map-legend.collapsed .legend-arrow::before {
        content: '+';
        font-size: 22px !important;
        font-weight: 400;
      }
      .map-legend:not(.collapsed) .legend-arrow::before {
        content: '−';
        font-size: 22px !important;
        font-weight: 400;
      }
      #map.section { padding-bottom: 48px !important; }
      #map.section::after {
        content: '';
        display: block;
        height: 1px;
        background: var(--hair,#e5e8ef);
        margin: 32px -18px 0;
      }
      #map + section,
      #map + .section,
      #analytics.section {
        padding-top: 40px !important;
        margin-top: 0 !important;
      }
      #analytics > *:first-child,
      #analytics .section-heading { margin-top: 0 !important; }
      #analytics .dashboard-metrics-row,
      #analytics .dashboard-section { margin-top: 16px !important; }

      .map-control-group {
        flex-wrap: wrap !important;
        gap: 6px;
      }

      .map-controls.collapsed {
        max-width: 100% !important;
        width: auto;
      }
    }

    @media (max-width: 768px) {
      .dashboard-chart-card:has(.program-table) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        background:
          linear-gradient(to right, white 30%, rgba(255,255,255,0)),
          linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0.06) 70%) right,
          white;
        background-repeat: no-repeat;
        background-size: 30px 100%, 30px 100%, auto;
        background-attachment: local, scroll, local;
      }
      .program-table { min-width: 600px; }
      .program-table td, .program-table th { padding: 8px 10px !important; }
    }

    body:has(#admin-login-overlay[style*="display:none"]) #chat-bubble {
      display: flex !important;
      visibility: visible !important;
    }
    body:has(#admin-login-overlay[style*="display: flex"]) #chat-bubble,
    body:has(#admin-login-overlay[style*="display:flex"])  #chat-bubble {
      display: none !important;
    }


    body:has(#admin-login-overlay.login-overlay) #chat-bubble.chat-bubble.visible {
      display: flex !important;
      visibility: visible !important;
    }
    body:has(#admin-login-overlay.login-overlay.active) #chat-bubble.chat-bubble,
    body:has(#admin-login-overlay.login-overlay[style*="display:flex"]) #chat-bubble.chat-bubble,
    body:has(#admin-login-overlay.login-overlay[style*="display: flex"]) #chat-bubble.chat-bubble {
      display: none !important;
    }


    #map-expand-btn,
    #map-close-btn {
      display: none;
    }

    @media (max-width: 768px) {
      #map-expand-btn {
        display: inline-flex !important;
        align-items: center;
        gap: 6px;
        position: absolute;
        right: 12px;
        bottom: 12px;
        z-index: 600;
        background: var(--navy,#313d7f);
        color: white;
        border: none;
        border-radius: 24px;
        padding: 10px 16px;
        font-size: 14px;
        font-weight: 600;
        font-family: 'Rubik', sans-serif;
        cursor: pointer;
        box-shadow: 0 6px 16px rgba(0,0,0,0.25);
      }
      #map-expand-btn:active { transform: scale(0.97); }

      body.map-fullscreen #map-expand-btn { display: none !important; }
      body.map-fullscreen #map-close-btn {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 12px;
        right: 12px;
        z-index: 10100;
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: white;
        color: var(--navy,#313d7f);
        border: 1px solid var(--navy,#313d7f);
        font-size: 28px;
        line-height: 1;
        cursor: pointer;
        box-shadow: 0 4px 12px rgba(0,0,0,0.2);
        padding: 0;
      }

      body.map-fullscreen { overflow: hidden; }
      body.map-fullscreen #internal-banner,
      body.map-fullscreen .main-nav,
      body.map-fullscreen #chat-bubble {
        display: none !important;
      }
      body.map-fullscreen #map-container {
        position: fixed !important;
        inset: 0 !important;
        z-index: 10000 !important;
        height: 100vh !important;
        width: 100vw !important;
        max-width: 100vw !important;
        background: white;
        padding: 0 !important;
        margin: 0 !important;
        overflow: hidden;
      }
      body.map-fullscreen #world-map {
        height: 100vh !important;
        width: 100vw !important;
        margin: 0 !important;
      }

      body.map-fullscreen .map-controls,
      body.map-fullscreen .map-search-dock,
      body.map-fullscreen .map-legend {
        position: absolute !important;
        z-index: 600 !important;
        background: rgba(255,255,255,0.96) !important;
        backdrop-filter: blur(8px) !important;
        box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
        width: auto !important;
        margin: 0 !important;
      }
      body.map-fullscreen #map-container { --map-dock-h: 62px; }
      body.map-fullscreen .map-search-dock {
        top: 58px !important;
        left: 12px !important;
        right: 68px !important;
        padding: 8px 12px !important;
        border-radius:var(--r-card,14px);
        margin-bottom: 0 !important;
      }
      body.map-fullscreen .map-search-dock .map-search { flex-wrap: nowrap !important; }
      body.map-fullscreen .map-search-dock .map-search-field { flex: 1 1 auto !important; }
      body.map-fullscreen .map-search-dock { padding-right: var(--sp-1, 4px) !important; }
      body.map-fullscreen .map-search-dock ~ .map-controls {
        top: calc(58px + var(--map-dock-h, 60px) + 8px) !important;
      }
      body.map-fullscreen .map-controls {
        top: 68px !important;
        left: 12px !important;
        right: 68px !important;
        max-height: calc(100vh - 200px);
        overflow-y: auto;
        padding: 12px !important;
        border-radius:var(--r-card,14px);
      }
      body.map-fullscreen .map-controls.collapsed {
        right: auto !important;
        width: auto !important;
        max-width: calc(100vw - 24px) !important;
        padding: 8px 12px !important;
        max-height: none !important;
        overflow: hidden !important;
      }
      body.map-fullscreen .map-controls.collapsed .map-ctrl-toggle {
        margin: 0 !important; padding: 2px 4px !important; font-size: 13px;
      }
      body.map-fullscreen .map-legend {
        bottom: 16px !important;
        left: 12px !important;
        right: 12px !important;
        max-width: none !important;
        padding: 10px 14px !important;
        border-radius:var(--r-card,14px);
      }
      body.map-fullscreen .map-legend.collapsed {
        right: auto !important;
        width: auto !important;
        max-width: 120px !important;
        padding: 8px 14px !important;
      }
      body.map-fullscreen .map-legend.collapsed .map-legend-title {
        padding: 0 !important; margin: 0 !important;
      }
      .map-guide-chip {
        position: absolute;
        top: 18px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 605;
        background: rgba(49, 61, 127, 0.95);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        color: var(--card-bg,#ffffff);
        padding: 10px 14px 10px 12px;
        border-radius: 24px;
        font-family: 'Rubik', sans-serif;
        font-size: 13px;
        font-weight: 500;
        display: none;
        align-items: center;
        gap: 8px;
        box-shadow: 0 6px 18px rgba(20,30,60,0.25);
        max-width: calc(100vw - 100px);
        animation: mapGuideIn 0.4s cubic-bezier(0.2,0.9,0.3,1) both;
      }
      body.map-fullscreen .map-guide-chip { display: inline-flex; }
      .map-guide-chip svg { width: 16px; height: 16px; flex-shrink: 0; }
      .map-guide-chip .map-guide-close {
        background: rgba(255,255,255,0.2);
        border: none;
        color: var(--card-bg,#ffffff);
        width: 22px; height: 22px;
        border-radius: 50%;
        margin-left: 4px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 14px;
        padding: 0;
      }
      @keyframes mapGuideIn {
        from { opacity: 0; transform: translate(-50%, -8px); }
        to   { opacity: 1; transform: translate(-50%, 0); }
      }
      body.map-fullscreen .map-guide-chip.dismissed { display: none !important; }
    }
    .map-guide-chip { display: none; }

    @media (max-width: 768px) {
      body:not(.map-fullscreen) .map-controls,
      body:not(.map-fullscreen) .map-legend {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
      }
    }


    @media (max-width: 768px) {
      body.map-fullscreen .leaflet-top.leaflet-left {
        top: auto !important;
        bottom: 90px !important;
        left: 12px !important;
      }
      body.map-fullscreen .leaflet-top.leaflet-right {
        top: auto !important;
        bottom: 90px !important;
        right: auto !important;
        left: 64px !important;
      }
      body.map-fullscreen .leaflet-control-zoom {
        margin: 0 !important;
      }
      body.map-fullscreen .leaflet-control-zoom a {
        width: 44px !important;
        height: 44px !important;
        line-height: 44px !important;
        font-size: 22px !important;
      }
    }

    .map-ctrl-toggle,
    .map-legend-title,
    .legend-arrow {
      font-variant-emoji: text;
      -webkit-font-variant-emoji: text;
      font-family: 'Rubik', sans-serif;
    }

    @media (max-width: 768px) {
      body.map-fullscreen .map-controls.collapsed,
      body.map-fullscreen .map-controls:not(.expanded) {
        padding: 6px 14px !important;
        min-height: 0 !important;
      }
      body.map-fullscreen .map-controls.collapsed .map-control-row {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 32px;
      }
      body.map-fullscreen .map-legend {
        padding: 8px 14px !important;
      }
      body.map-fullscreen .map-legend.collapsed .legend-body {
        display: none !important;
      }
      body.map-fullscreen .map-controls {
        top: 58px !important;
        right: 12px !important;
        left: 12px !important;
      }
      body.map-fullscreen .map-legend {
        bottom: 12px !important;
      }
    }



    .policy-overlay {
      position: fixed;
      inset: 0;
      background: rgba(49, 61, 127, 0.45);
      backdrop-filter: blur(4px);
      z-index: 2500;
      display: none;
      padding: 40px 20px;
      overflow-y: auto;
      align-items: flex-start;
      justify-content: center;
    }
    .policy-overlay.active { display: flex; }

    .policy-modal {
      background: white;
      border-radius: 16px;
      max-width: 760px;
      width: 100%;
      padding: 40px 48px 48px;
      position: relative;
      max-height: calc(100vh - 80px);
      overflow-y: auto;
      box-shadow: 0 16px 48px rgba(49, 61, 127, 0.2);
      font-family: 'Rubik', sans-serif;
      color: var(--ink,#39373a);
      line-height: 1.65;
    }

    .policy-close {
      position: absolute;
      top: 16px;
      right: 20px;
      background: none;
      border: none;
      font-size: 32px;
      line-height: 1;
      cursor: pointer;
      color: var(--mut,#767676);
      padding: 6px 12px;
      border-radius: 8px;
    }
    .policy-close:hover { color: var(--navy,#313d7f); background: var(--wash,#f5f5f5); }

    .policy-content h2 {
      font-family: 'Source Serif Pro', serif;
      font-size: 26px;
      color: var(--navy,#313d7f);
      margin: 0 0 8px;
      padding-right: 40px;
    }
    .policy-content h3 {
      font-family: 'Rubik', sans-serif;
      font-size: 17px;
      color: var(--navy,#313d7f);
      margin: 28px 0 8px;
      font-weight: 600;
    }
    .policy-content p, .policy-content ul {
      font-size: 14.5px;
      margin: 0 0 12px;
      color: var(--ink,#39373a);
    }
    .policy-content ul {
      padding-left: 22px;
    }
    .policy-content li {
      margin-bottom: 6px;
    }
    .policy-content a {
      color: var(--navy,#313d7f);
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .policy-content a:hover { color: #44AEC8; }
    .policy-content strong { color: var(--navy,#313d7f); font-weight: 600; }
    .policy-meta {
      font-size: 12.5px !important;
      color: var(--mut,#767676) !important;
      border-bottom: 1px solid var(--line,#e8e8e8);
      padding-bottom: 14px;
      margin-bottom: 24px !important;
    }

    @media (max-width: 768px) {
      .policy-overlay { padding: 20px 12px; }
      .policy-modal { padding: 28px 20px 32px; max-height: calc(100vh - 40px); }
      .policy-content h2 { font-size: 22px; }
      .policy-content h3 { font-size: 15.5px; }
      .policy-content p, .policy-content ul { font-size: 14px; }
      .policy-close { font-size: 28px; top: 10px; right: 12px; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
    }

    .chat-disclosure {
      display: flex;
      align-items: flex-start;
      gap: 6px;
      background: var(--wash,#f7f8fa);
      border-top: 1px solid var(--hair,#e8eaef);
      padding: 8px 14px;
      font-size: 11px;
      color: #5a5a5a;
      line-height: 1.4;
    }
    .chat-disclosure svg {
      color: #44AEC8;
      margin-top: 1px;
    }
    .chat-disclosure a {
      color: var(--navy,#313d7f);
      font-weight: 500;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .chat-disclosure a:hover { color: #44AEC8; }

    @media (max-width: 480px) {
      .chat-disclosure { font-size: 10.5px; padding: 7px 12px; }
    }


    .cookie-banner {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      background: var(--navy,#313d7f);
      color: white;
      padding: 16px 24px;
      z-index: 9500;
      box-shadow: 0 -4px 24px rgba(0,0,0,0.18);
      font-family: 'Rubik', sans-serif;
      transform: translateY(110%);
      visibility: hidden;
      transition: transform 0.4s cubic-bezier(.2,.7,.2,1), visibility 0s linear 0.4s;
    }
    .cookie-banner.visible { transform: translateY(0); visibility: visible; transition-delay: 0s; }

    .cookie-banner-inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      gap: 28px;
      align-items: center;
      flex-wrap: wrap;
    }
    .cookie-banner-text {
      flex: 1 1 380px;
      min-width: 280px;
    }
    .cookie-banner-text strong {
      display: block;
      font-size: 14px;
      margin-bottom: 4px;
    }
    .cookie-banner-text p {
      font-size: 13px;
      line-height: 1.55;
      margin: 0;
      color: rgba(255,255,255,0.92);
    }
    .cookie-banner-text a {
      color: var(--green,#93d73b);
      text-decoration: underline;
      text-underline-offset: 2px;
      font-weight: 500;
    }
    .cookie-banner-text a:hover { color: white; }

    .cookie-banner-actions {
      display: flex;
      gap: 10px;
      flex-shrink: 0;
      flex-wrap: wrap;
    }

    .cookie-btn {
      padding: 10px 18px;
      border-radius: 8px;
      font-family: 'Rubik', sans-serif;
      font-size: 13px;
      font-weight: 600;
      cursor: pointer;
      border: 1px solid transparent;
      min-height: 44px;
    }
    .cookie-btn-primary {
      background: var(--green,#93d73b);
      color: #1a2240;
      border-color: var(--green,#93d73b);
    }
    .cookie-btn-primary:hover { background: #b4e664; }
    .cookie-btn-secondary {
      background: transparent;
      color: white;
      border-color: rgba(255,255,255,0.3);
    }
    .cookie-btn-secondary:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.55); }

    @media (max-width: 768px) {
      .cookie-banner { padding: 14px 16px 18px; }
      .cookie-banner-inner { gap: 14px; }
      .cookie-banner-text { flex: 1 1 100%; min-width: 0; }
      .cookie-banner-actions { width: 100%; }
      .cookie-banner-actions .cookie-btn { flex: 1 1 auto; min-width: 0; padding: 10px 12px; }
    }
    @media (max-width: 480px) {
      .cookie-banner-actions { flex-direction: column; }
      .cookie-banner-actions .cookie-btn { width: 100%; }
    }

    .cookie-prefs-overlay {
      position: fixed;
      inset: 0;
      background: rgba(49,61,127,0.45);
      backdrop-filter: blur(4px);
      z-index: 9600;
      display: none;
      padding: 40px 20px;
      overflow-y: auto;
      align-items: flex-start;
      justify-content: center;
    }
    .cookie-prefs-overlay.active { display: flex; }

    .cookie-prefs-modal {
      background: white;
      border-radius: 16px;
      max-width: 620px;
      width: 100%;
      padding: 36px 40px 40px;
      position: relative;
      max-height: calc(100vh - 80px);
      overflow-y: auto;
      box-shadow: 0 16px 48px rgba(49,61,127,0.2);
      font-family: 'Rubik', sans-serif;
      color: var(--ink,#39373a);
      line-height: 1.55;
    }
    .cookie-prefs-modal h2 {
      font-family: 'Source Serif Pro', serif;
      font-size: 24px;
      color: var(--navy,#313d7f);
      margin: 0 0 6px;
      padding-right: 40px;
    }

    .cookie-category {
      padding: 16px 0;
      border-bottom: 1px solid var(--hair,#eef0f5);
    }
    .cookie-category:last-of-type { border-bottom: none; }
    .cookie-category-head {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      justify-content: space-between;
    }
    .cookie-category-head > div { flex: 1; }
    .cookie-category h4 {
      font-size: 15px;
      color: var(--navy,#313d7f);
      margin: 0 0 4px;
      font-weight: 600;
    }
    .cookie-category p {
      font-size: 13px;
      color: #5a5a5a;
      margin: 0;
      line-height: 1.55;
    }

    .cookie-toggle {
      position: relative;
      display: inline-block;
      width: 48px;
      height: 28px;
      flex-shrink: 0;
      cursor: pointer;
    }
    .cookie-toggle input { opacity: 0; width: 0; height: 0; }
    .cookie-toggle-slider {
      position: absolute;
      inset: 0;
      background: #c8ccd6;
      border-radius: 28px;
      transition: background 0.2s;
    }
    .cookie-toggle-slider::before {
      content: '';
      position: absolute;
      height: 22px; width: 22px;
      left: 3px; top: 3px;
      background: white;
      border-radius: 50%;
      transition: transform 0.2s;
      box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }
    .cookie-toggle input:checked + .cookie-toggle-slider { background: var(--green,#93d73b); }
    .cookie-toggle input:checked + .cookie-toggle-slider::before { transform: translateX(20px); }
    .cookie-toggle input:focus-visible + .cookie-toggle-slider { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
    .cookie-toggle.disabled {
      background: var(--hair,#eef0f5);
      color: var(--mut,#767676);
      font-size: 11px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      border-radius:var(--r-card,14px);
      padding: 6px 12px;
      width: auto;
      height: auto;
      cursor: default;
      align-self: flex-start;
    }

    .cookie-prefs-footer {
      display: flex;
      gap: 10px;
      justify-content: flex-end;
      margin-top: 24px;
      padding-top: 20px;
      border-top: 1px solid var(--hair,#eef0f5);
    }
    .cookie-prefs-footer .cookie-btn { min-width: 140px; }
    .cookie-prefs-footer .cookie-btn-secondary { color: var(--navy,#313d7f); border-color: var(--navy,#313d7f); }
    .cookie-prefs-footer .cookie-btn-secondary:hover { background: var(--navy-bg,#f0f2ff); }

    @media (max-width: 768px) {
      .cookie-prefs-overlay { padding: 20px 12px; }
      .cookie-prefs-modal { padding: 24px 18px 28px; max-height: calc(100vh - 40px); }
      .cookie-prefs-footer { flex-direction: column-reverse; }
      .cookie-prefs-footer .cookie-btn { width: 100%; }
    }


    .cookie-banner { z-index: 10020 !important; }
    .cookie-prefs-overlay { z-index: 10030 !important; }

    body:has(.cookie-banner.visible) #chat-bubble,
    body:has(.cookie-prefs-overlay.active) #chat-bubble {
      display: none !important;
      visibility: hidden !important;
      pointer-events: none !important;
    }

    .cookie-banner,
    .cookie-banner-inner,
    .cookie-banner-actions,
    .cookie-banner-actions .cookie-btn {
      pointer-events: auto !important;
    }

    .cookie-btn {
      -webkit-tap-highlight-color: rgba(255,255,255,0.2);
      touch-action: manipulation;
      user-select: none;
      -webkit-user-select: none;
    }


    .map-controls.collapsed {
      max-width: none !important;
      width: auto !important;
      padding: 8px 16px !important;
      overflow: visible !important;
    }

    .map-controls.collapsed .map-ctrl-toggle {
      font-size: 14px !important;
      white-space: nowrap;
      padding: 4px 4px !important;
      display: inline-flex !important;
      align-items: center;
      gap: 4px;
    }

    .map-ctrl-toggle {
      font-size: 18px !important;
      line-height: 1;
      color: var(--navy,#313d7f) !important;
      font-weight: 600;
      padding: 4px 8px !important;
      min-width: 28px;
      min-height: 28px;
      border-radius: 6px;
    }
    .map-ctrl-toggle:hover { background: var(--navy-bg,#f0f2ff); }

    .map-legend-title {
      padding: 4px 6px;
      border-radius: 6px;
      transition: background 0.15s;
    }
    .map-legend-title:hover { background: var(--wash,#f7f8fa); }
    .map-legend-title .legend-arrow {
      margin-left: 6px;
      transform: none !important;
    }

    .cat-dot {
      display: inline-block;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      margin-right: 6px;
      vertical-align: middle;
      border: 1px solid rgba(0,0,0,0.08);
      flex-shrink: 0;
    }

    @media (max-width: 768px) {
      body.map-fullscreen .map-controls.collapsed {
        max-width: 180px !important;
        width: auto !important;
      }
      body:not(.map-fullscreen) .map-controls.collapsed {
        max-width: 100% !important;
        width: 100% !important;
      }
    }


    .stories-filters {
      display: flex;
      flex-direction: column;
      gap: 18px;
      margin-bottom: 32px;
    }
    .stories-filter-row {
      display: flex;
      gap: 24px;
      flex-wrap: wrap;
      align-items: flex-start;
    }
    .stories-filter-row-year {
      justify-content: space-between;
      border-bottom: 1px solid var(--hair,#eef0f5);
      padding-bottom: 18px;
    }
    .stories-filter-row-year > .filter-group {
      flex: 1 1 auto;
      min-width: 280px;
    }
    .stories-filter-row-year > .results-count {
      flex: 0 0 auto;
      align-self: center;
      margin: 0;
      font-size: 14px;
      color: #5a5a5a;
      font-weight: 500;
      white-space: nowrap;
    }

    .stories-filter-row-dropdowns {
      align-items: flex-end;
    }
    .stories-filter-row-dropdowns > .filter-group {
      flex: 0 1 auto;
    }
    .stories-filter-row-dropdowns .filter-group-search {
      flex: 1 1 220px;
      min-width: 180px;
    }
    .stories-filter-row-dropdowns .filter-group-search .search-input {
      width: 100%;
    }

    @media (max-width: 768px) {
      .stories-filter-row {
        gap: 12px;
      }
      .stories-filter-row-year {
        flex-direction: column;
        align-items: stretch;
      }
      .stories-filter-row-year > .results-count {
        align-self: flex-start;
      }
      .stories-filter-row-dropdowns > .filter-group {
        flex: 1 1 calc(50% - 6px);
        min-width: 0;
      }
      .stories-filter-row-dropdowns .filter-group-search {
        flex: 1 1 100%;
      }
    }


    .stories-filters {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-bottom: 32px;
    }
    .stories-filter-row {
      display: flex;
      gap: 16px;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-start !important;
      border-bottom: none !important;
      padding-bottom: 0 !important;
    }
    .stories-filter-row-year .filter-group {
      flex: 0 0 auto;
      min-width: 0;
    }
    .stories-filter-row-note {
      margin-top: 2px;
    }
    .stories-filter-row-note #stories-disclaimer {
      margin: 0;
    }
    .stories-filter-row-dropdowns {
      align-items: flex-end;
      margin-top: 10px;
      gap: 16px;
    }
    .stories-filter-row-dropdowns .filter-group {
      flex: 0 0 auto;
    }
    .stories-filter-row-dropdowns .filter-group-search {
      flex: 1 1 220px;
      min-width: 180px;
      max-width: 320px;
    }
    .stories-filter-row-dropdowns .filter-group-search .search-input {
      width: 100%;
    }
    .stories-filter-row-dropdowns .results-count {
      flex: 0 0 auto;
      margin: 0;
      font-size: 14px;
      color: #5a5a5a;
      font-weight: 500;
      white-space: nowrap;
      margin-left: auto;
    }

    @media (max-width: 768px) {
      .stories-filter-row { gap: 10px; }
      .stories-filter-row-dropdowns { gap: 10px; }
      .stories-filter-row-dropdowns .filter-group {
        flex: 1 1 calc(50% - 6px);
        min-width: 0;
      }
      .stories-filter-row-dropdowns .filter-group-search {
        flex: 1 1 100%;
        max-width: none;
      }
      .stories-filter-row-dropdowns .results-count {
        margin-left: 0;
        flex: 1 1 100%;
      }
    }

    .mini-map { position: relative; }
    .mini-map .leaflet-container { background: #f0f3f8 !important; }
    .mini-map .leaflet-control-attribution { display: none !important; }
    .synergy-card .mini-map { margin: 8px 0; }

    #synergy-overlay-map-svg { width: 100%; }
    #synergy-overlay-map-svg .mini-map { width: 100%; min-height: 300px; }


    .stories-filters {
      align-items: flex-start !important;
      align-content: flex-start !important;
    }

    .stories-filter-row {
      align-self: flex-start !important;
      width: 100%;
      margin-left: 0 !important;
    }

    .stories-filter-row-note {
      margin-left: 0 !important;
      padding-left: 0 !important;
    }
    .stories-filter-row-note > #stories-disclaimer {
      margin-left: 0;
    }

    .osh-link {
      display: none;
      align-items: center;
      gap: 5px;
      margin-left: 12px;
      padding: 5px 12px;
      border: 1px solid var(--navy,#313d7f);
      border-radius: 16px;
      background: var(--navy-bg,#f0f2ff);
      color: var(--navy,#313d7f);
      font-size: 12px;
      font-weight: 600;
      font-family: 'Rubik', sans-serif;
      text-decoration: none;
      white-space: nowrap;
      transition: background 0.15s, transform 0.15s;
    }
    .osh-link.visible {
      display: inline-flex;
      animation: oshLinkAppear 0.3s ease;
    }
    .osh-link:hover {
      background: var(--navy,#313d7f);
      color: white;
      transform: translateY(-1px);
    }
    .osh-link svg { flex-shrink: 0; }

    @keyframes oshLinkAppear {
      from { opacity: 0; transform: translateY(4px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 768px) {
      .osh-link {
        margin-left: 0;
        margin-top: 8px;
        flex: 1 1 auto;
        justify-content: center;
      }
    }

    .pill-factory-only.hidden-by-cat {
      display: none !important;
    }

    .themes-carousel-wrap { position: relative; }
    .themes-carousel {
      display: flex; gap: 20px; overflow-x: auto;
      scroll-snap-type: x mandatory; padding: 4px 4px 16px;
      scroll-padding-left: 4px;
      scroll-behavior: smooth; scrollbar-width: thin; -webkit-overflow-scrolling: touch;
    }
    @media (prefers-reduced-motion: reduce) {
      .themes-carousel { scroll-behavior: auto; }
    }
    .themes-nav-btn {
      position: absolute; top: calc(4px + (100% - 20px) / 2); transform: translateY(-50%);
      width: 40px; height: 40px; border-radius: 50%;
      border: 1px solid var(--line,#e0e0e0); background: var(--card-bg,#ffffff); color: var(--navy,#313d7f);
      font-size: 22px; line-height: 1; cursor: pointer; z-index: 5;
      box-shadow: 0 2px 10px rgba(0,0,0,0.12);
      display: flex; align-items: center; justify-content: center;
      transition: background 0.15s, color 0.15s;
    }
    .themes-nav-btn:hover:not(:disabled) { background: var(--navy,#313d7f); color: var(--card-bg,#ffffff); }
    .themes-nav-btn:disabled { color: var(--soft); border-color: var(--hair); box-shadow: none; cursor: default; }
    #themes-prev { left: -16px; }
    #themes-next { right: -16px; }
    .theme-stories-panel {
      margin-top: 24px; background: var(--wash,#f7f8fa); border: 1px solid var(--line,#e8e8e8);
      border-radius: 16px; padding: 24px;
    }
    .theme-stories-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
    .theme-stories-head h3 { font-size: 20px; margin: 0; }
    .theme-stories-desc { margin: -8px 0 16px; max-width: 900px; font-size: var(--fs-md); color: var(--mut); line-height: var(--lh-body); }
    .theme-stories-close { background: none; border: none; font-size: 26px; color: var(--mut,#666666); cursor: pointer; line-height: 1; padding: 4px 8px; }
    .theme-stories-close:hover { color: var(--navy,#313d7f); }
    @media (max-width: 768px) {
      .themes-carousel { gap: 14px; padding: 4px 0 8px; }
      .themes-nav-btn { display: none; }
      .theme-stories-panel { padding: 16px; }
      .theme-stories-head h3 { font-size: 17px; }
    }



    @keyframes iih-shimmer { 0% { background-position: -600px 0; } 100% { background-position: 600px 0; } }
    #stories-grid:empty, #theme-stories-grid:empty,
    #donut-chart-container:empty, #bar-chart-container:empty,
    #world-map:empty {
      background: linear-gradient(90deg, var(--wash,#f2f3f7) 25%, var(--hair,#e9ebf2) 37%, var(--wash,#f2f3f7) 63%);
      background-size: 1200px 100%;
      animation: iih-shimmer 1.4s linear infinite;
      border-radius: 12px;
    }
    #stories-grid:empty, #theme-stories-grid:empty { display: block; min-height: 240px; border-radius: 16px; }
    #donut-chart-container:empty, #bar-chart-container:empty { min-height: 200px; }
    #world-map:empty { min-height: 100%; border-radius: 0; }
    @media (prefers-reduced-motion: reduce) {
      #stories-grid:empty, #theme-stories-grid:empty,
      #donut-chart-container:empty, #bar-chart-container:empty,
      #world-map:empty { animation: none; }
    }

    .iih-empty-state {
      grid-column: 1 / -1; text-align: center; padding: 48px 24px;
      border: 1px dashed var(--navy-line,#d5d9e6); border-radius: 16px;
      background: var(--zebra,#fafbfd); color: var(--mut,#767676); font-size: 15px; line-height: 1.6;
    }
    .iih-empty-state strong {
      display: block; color: var(--navy,#313d7f); font-family: "Source Serif Pro", serif;
      font-size: 18px; font-weight: 700; margin-bottom: 6px;
    }

    a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
    input:focus-visible, select:focus-visible, textarea:focus-visible,
    [tabindex]:focus-visible {
      outline: 2px solid var(--navy,#313d7f); outline-offset: 2px; border-radius: 4px;
    }

    .story-image img { content-visibility: auto; }

    @media print {
      .main-nav, .mobile-nav, .beta-banner, .utility-bar,
      .map-controls, .map-legend, .map-guide-chip,
      #map-expand-btn, #map-close-btn, #map-container, #map,
      .chat-sheet-backdrop, #chat-widget, .chat-widget, #chat-fab, .chat-fab,
      #stories-expand-btn, .themes-nav-btn, .theme-stories-close,
      .cookie-prefs-footer, .lang-toggle, button {
        display: none !important;
      }
      body { background: var(--card-bg,#ffffff); color: #000; }
      .section { padding: 24px 0; max-width: 100%; }
      .story-card, .analytics-table, .dashboard-chart-card {
        break-inside: avoid; box-shadow: none; border: 1px solid #ccc;
      }
      a { color: #000; text-decoration: underline; }
    }

[hidden] { display: none !important; }


:is(main,div,section,article).pg{max-width:var(--pg-max);margin:0 auto;padding:var(--sp-5) var(--pg-gutter) var(--sp-6);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}
:is(main,div,section,article).pg :is(button,input,select,textarea,table){font-family:inherit;font-size:inherit}
.pg-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:0 var(--sp-4);padding-bottom:var(--sp-4);margin-bottom:var(--sp-5);border-bottom:var(--tbl-rule) solid var(--line)}
.pg-eyebrow{grid-column:1;font-size:var(--fs-chip);font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--mut);margin:0 0 var(--sp-1)}
.pg-head h1,.pg-title{grid-column:1;font-family:var(--font-head);font-size:var(--fs-h1);line-height:var(--lh-tight);font-weight:700;color:var(--navy);margin:0}
.pg-purpose{grid-column:1;margin:var(--sp-2) 0 0;max-width:64ch;font-size:var(--fs-md);line-height:var(--lh-body);color:var(--mut)}
.pg-actions{grid-column:2;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--sp-2)}
.pg-chips{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3)}
.pg-body{display:flex;flex-direction:column;gap:var(--sec-gap)}
.pg .pg-head .pg-subline{margin:var(--sp-2) 0 0;font-size:var(--fs-sub);color:var(--mut);line-height:var(--lh-body)}
.pg .pg-head .pg-subline b{color:var(--ink);font-weight:600}
.pg .pg-actions .drill{margin-top:var(--sp-2);flex:0 0 100%;max-width:64ch;margin-left:auto}
.pg .pg-actions .drill > .drill-body{max-width:64ch}
@media (max-width:720px){
  :is(main,div,section,article).pg{padding:var(--sp-4) var(--sp-3) var(--sp-5)}
  .pg-head{grid-template-columns:minmax(0,1fr)}
  .pg-actions{grid-column:1;grid-row:auto;justify-content:flex-start;margin-top:var(--sp-3)}
  .pg .pg-actions .drill{margin-left:0}
}

.pg .sec{display:flex;flex-direction:column;gap:var(--sp-3)}
.pg .sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3)}
.pg .sec-head h2,.pg .sec-title{margin:0;font-family:var(--font-head);font-size:var(--fs-h2);line-height:var(--lh-tight);font-weight:700;color:var(--navy)}
.pg .sec-head h2 .sec-count,.pg .sec-title .sec-count{font-family:var(--font-head);font-variant-numeric:tabular-nums;color:var(--navy)}
.pg .sec-head .pg-eyebrow{margin:0 0 2px}
.pg .sec-head.sec-band{margin-top:var(--sp-6)}
.pg .sec-meta{font-size:var(--fs-sub);color:var(--mut)}
.pg .sec-action{margin-left:auto}
.pg .sec-body{display:flex;flex-direction:column;gap:var(--card-gap)}
.pg .sec-foot{padding-top:var(--sp-2);border-top:var(--tbl-rule) solid var(--hair);font-size:var(--fs-chip);color:var(--mut)}
.pg .sec-foot:has(.ck-prov){padding-top:0;border-top:0}
.pg .sec.sec-rail{gap:0}
.pg .sec-rail > .sec-head{margin:0 0 var(--sp-3)}
.pg .sec-rail > .sec-foot{flex:none}

.pg .card{background:var(--card-bg);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-card);padding:var(--card-pad);box-shadow:var(--elev-0)}
.pg .card-panel{padding:var(--sp-4)}
.pg .card-quiet{background:var(--wash);border-color:var(--hair)}
.pg .card-tile{border-radius:var(--r-tile);display:flex;flex-direction:column;gap:var(--sp-2);min-height:calc(var(--hit) * 2.4)}
.pg .card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2)}
.pg .card-title{font-family:var(--font-head);font-size:var(--fs-card-h);font-weight:700;color:var(--navy);margin:0}
.pg button.card,.pg a.card,.pg .card[role="button"],.pg .card-action{cursor:pointer}
.pg button.card:hover,.pg a.card:hover,.pg .card[role="button"]:hover,.pg .card-action:hover{border-color:var(--navy)}

.pg .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--tile-min),1fr));gap:var(--card-gap)}
.pg .tile-kicker{font-size:var(--fs-chip);font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--mut)}
.pg .tile-fig{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1);font-family:var(--font-head);font-size:var(--fs-fig);line-height:var(--lh-tight);font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.pg .tile-fig.lg{font-size:var(--fs-fig-lg)}
.pg .tile-fig.sm{font-size:var(--fs-fig-sm);font-family:var(--font-ui)}
.pg .tile-unit{font-family:var(--font-ui);font-size:var(--fs-sub);font-weight:500;color:var(--mut)}
.pg .tile-delta{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sub);color:var(--delta-c);font-variant-numeric:tabular-nums}
.pg .tile-delta.bad{color:var(--delta-bad)}
.pg .tile-base{color:var(--mut)}
.pg .tile-spark{min-height:var(--sp-6);margin-top:var(--sp-1)}
.pg .tile-spark svg{display:block;width:100%;height:var(--sp-6)}
.pg .tile-state{font-size:var(--fs-sub);color:var(--mut)}
.pg .tile-rail{margin-top:auto}
.pg .tile-chart{margin-top:var(--sp-1)}
.pg .tile-chart svg{display:block;width:100%;max-width:none;height:auto}
.pg .tile-chart .cf-absent-box{display:flex;align-items:center;justify-content:center;min-height:calc(var(--hit) * 2)}
.pg .tile-chart .cf-absent-box em{color:var(--soft);font-style:italic;font-size:var(--fs-sub)}
.pg .tile-stats{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sub);color:var(--mut);line-height:var(--lh-body)}
.pg .tile-stat b{font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums}
.pg .tile-stat em{color:var(--soft);font-style:italic}
.pg .tiles.tiles-dense{--tile-min:190px}
.pg[data-lint="on"] .tiles > .card-tile:not(:has(.tile-kicker)),
.pg[data-lint="on"] .tiles > .card-tile:not(:has(.tile-fig)),
.pg[data-lint="on"] .tiles > .card-tile:not(:has(.tile-delta)),
.pg[data-lint="on"] .drill > summary:not(:has(.drill-answer)),
.pg[data-lint="on"] .card-action:not(button):not(a):not([role="button"]),
.pg[data-lint="on"] .seg button.on:not([aria-pressed]):not([aria-selected]),
.pg[data-lint="on"] .btn-primary.btn-sm,
.pg[data-lint="on"] .sec .btn-primary ~ .btn-primary{outline:var(--focus-w) dashed var(--amber);outline-offset:var(--focus-off)}

.pg .tbl-scroll{overflow:auto;overscroll-behavior:contain;max-height:70vh;background:var(--card-bg);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-tile)}
.pg .tbl-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--tbl-pad-x);border-bottom:var(--tbl-rule) solid var(--tbl-rule-c)}
.pg .tbl-tools .tbl-end{margin-left:auto}
.pg .tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-body);font-variant-numeric:tabular-nums}
.pg .tbl caption{padding:var(--tbl-pad-y) var(--tbl-pad-x);text-align:left;font-size:var(--fs-sub);color:var(--mut)}
.pg .tbl thead th{position:sticky;top:0;z-index:2;background:var(--card-bg);box-shadow:var(--elev-1);padding:var(--tbl-pad-y) var(--tbl-pad-x);text-align:left;white-space:nowrap;font-size:var(--fs-chip);font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--mut)}
.pg .tbl tbody td{height:var(--tbl-row-h);padding:var(--tbl-pad-y) var(--tbl-pad-x);border-top:var(--tbl-rule) solid var(--tbl-rule-c);vertical-align:middle;color:var(--ink)}
.pg .tbl th[scope="row"]{text-align:left;font-weight:500;color:var(--ink);border-top:var(--tbl-rule) solid var(--tbl-rule-c);padding:var(--tbl-pad-y) var(--tbl-pad-x)}
.pg .tbl thead .th-sub{font-weight:400;text-transform:none}
.pg .tbl tbody tr:nth-child(even) td{background:var(--zebra)}
.pg .tbl tbody tr:hover td{background:var(--tbl-hover)}
.pg .tbl tfoot td{padding:var(--tbl-pad-y) var(--tbl-pad-x);border-top:var(--tbl-rule) solid var(--line);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.pg .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pg .tbl th.num,.pg .tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pg .tbl .tbl-abs,.pg .abs{color:var(--mut);font-style:italic}
.pg .delta{color:var(--delta-c)}
.pg .delta.bad{color:var(--delta-bad);font-weight:600}
.pg .tbl .chip-state{margin-left:var(--sp-1)}
.pg .mono{font-family:var(--font-mono);font-size:.94em;letter-spacing:-.01em}

.pg .chip-state,.pg .chip-persona{display:inline-flex;align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-chip);background:var(--card-bg);color:var(--ink);font-size:var(--fs-chip);font-weight:600;letter-spacing:.3px;white-space:nowrap}
.pg .chip-persona{color:var(--navy);border-color:var(--navy)}
.pg .chip-state.info{color:var(--navy);background:var(--navy-bg);border-color:var(--navy-line)}
.pg .chip-state.warn{color:var(--amber);background:var(--amber-bg);border-color:var(--amber-line)}
.pg .chip-state.risk{color:var(--red);background:var(--red-bg);border-color:var(--red-line)}
.pg .chip-state.live{color:var(--live);background:var(--live-bg);border-color:var(--live-line);text-transform:uppercase;letter-spacing:.4px}

.pg .seg{display:inline-flex;align-items:stretch;background:var(--wash);border:var(--tbl-rule) solid var(--ctrl-line);border-radius:var(--r-pill)}
.pg .seg button{min-height:var(--hit);padding:0 var(--sp-4);border:0;border-radius:var(--r-pill);background:transparent;color:var(--mut);font-size:var(--fs-body);font-weight:500;white-space:nowrap;cursor:pointer;appearance:none}
.pg .seg button:hover{color:var(--ink)}
.pg .seg button[aria-pressed="true"],.pg .seg button[aria-selected="true"],.pg .seg button.on{background:var(--card-bg);color:var(--navy);font-weight:600;box-shadow:var(--elev-1)}
.pg .seg.sm button{min-height:var(--hit-sm);padding:0 var(--sp-3);font-size:var(--fs-sub)}
.pg .seg.seg-wrap{flex-wrap:wrap;row-gap:var(--sp-1)}

.pg .filt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);padding-bottom:var(--sp-3);border-bottom:var(--tbl-rule) solid var(--hair)}
.pg .filt-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}
.pg .filt-label{font-size:var(--fs-chip);font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--mut)}
.pg .filt-end{margin-left:auto}
.pg .filt select,.pg .filt input,.pg .tbl-tools select,.pg .tbl-tools input,.pg .pg-actions select,.pg .pg-actions input{min-height:var(--hit);padding:0 var(--sp-3);background:var(--card-bg);color:var(--ink);border:var(--tbl-rule) solid var(--ctrl-line);border-radius:var(--r-tile);font-size:var(--fs-body)}
.pg .tbl-tools input[type="search"]{min-width:min(240px,100%)}
.pg .ctrl-lead{min-width:220px;max-width:100%;font-weight:600;cursor:pointer}
.pg .ctrl-lead optgroup{font-size:var(--fs-chip);letter-spacing:.04em;color:var(--mut)}
.pg .ctrl-lead option{font-weight:400;color:var(--ink)}

.pg .empty{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--card-pad);background:var(--wash);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-tile);color:var(--mut);font-size:var(--fs-body);line-height:var(--lh-body)}
.pg .empty-title{font-family:var(--font-head);font-size:var(--fs-card-h);font-weight:700;color:var(--ink)}
.pg .empty-note{font-size:var(--fs-sub)}

.pg .drill{background:var(--card-bg);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-tile)}
.pg .drill > summary{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--hit);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-tile);list-style:none;cursor:pointer;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}
.pg .drill > summary::-webkit-details-marker{display:none}
.pg .drill > summary::before{content:"+";flex:0 0 auto;width:var(--sp-4);text-align:center;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--navy)}
.pg .drill[open] > summary::before{content:"\2212"}
.pg .drill[open] > summary{border-radius:var(--r-tile) var(--r-tile) 0 0;border-bottom:var(--tbl-rule) solid var(--hair)}
.pg .drill-sum{font-weight:600;color:var(--navy)}
.pg .drill-answer{color:var(--mut)}
.pg .drill-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3)}

.pg .btn-primary,.pg .btn-quiet{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--hit);padding:0 var(--sp-4);border-radius:var(--r-pill);border:var(--tbl-rule) solid transparent;font-size:var(--fs-md);font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;appearance:none}
.pg .btn-primary{background:var(--green);border-color:var(--green);color:var(--green-ink)}
.pg .btn-primary:hover{background:var(--green-h);border-color:var(--green-h);color:var(--green-h-ink)}
.pg .btn-quiet{background:var(--card-bg);border-color:var(--ctrl-line);color:var(--ink);font-weight:500}
.pg .btn-quiet:hover{background:var(--wash)}
.pg .btn-link{min-height:var(--hit);padding:0 var(--sp-1);border:0;background:none;color:var(--navy);font-size:var(--fs-body);text-decoration:underline;cursor:pointer}
.pg .btn-primary[disabled],.pg .btn-quiet[disabled]{opacity:.55;cursor:not-allowed}
.pg .btn-quiet.btn-sm,.pg .btn-link.btn-sm{min-height:var(--hit-sm);padding:0 var(--sp-3);font-size:var(--fs-sub)}

:is(main,div,section,article).pg :is(a,button,summary,select,input,textarea,[tabindex]):focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:var(--focus-off)}
.pg .seg button:focus-visible,.pg .drill > summary:focus-visible{outline-offset:calc(var(--focus-off) * -1)}

.pg .chartframe{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--card-pad);background:var(--card-bg);border:var(--tbl-rule) solid var(--line);border-radius:var(--r-tile)}
.pg .chartframe svg{display:block;width:100%;height:auto;overflow:visible}
.pg .cf-axis,.pg .cf-axis line,.pg .cf-axis path{fill:none;stroke:var(--ax-c);stroke-width:var(--ax-w);shape-rendering:crispEdges}
.pg .cf-grid,.pg .cf-grid line{fill:none;stroke:var(--grid-c);stroke-width:var(--grid-w);shape-rendering:crispEdges}
.pg .cf-tick{font-family:var(--font-ui);font-size:var(--fs-chip);fill:var(--tick-c)}
.pg .cf-tick.num{text-anchor:end}
.pg .cat-1{--cat:var(--cat-1)}
.pg .cat-2{--cat:var(--cat-2)}
.pg .cat-3{--cat:var(--cat-3)}
.pg .cat-4{--cat:var(--cat-4)}
.pg .cat-5{--cat:var(--cat-5)}
.pg .cat-6{--cat:var(--cat-6)}
.pg .cat-7{--cat:var(--cat-7)}
.pg .cf-fill{fill:var(--cat,var(--cat-1));stroke:var(--cat-edge);stroke-width:var(--cat-edge-w)}
.pg .cf-line{fill:none;stroke:var(--cat,var(--cat-1));stroke-width:var(--series-w);stroke-linejoin:round;stroke-linecap:round}
.pg .cf-point{fill:var(--cat,var(--cat-1));stroke:var(--cat-edge);stroke-width:var(--cat-edge-w)}
.pg .cf-absent{fill:url(#cf-hatch);stroke:var(--absent-c);stroke-width:var(--ax-w)}
.pg .cf-absent-box{background-image:repeating-linear-gradient(45deg,var(--card-bg) 0,var(--card-bg) calc(var(--absent-step) / 2),var(--absent-c) calc(var(--absent-step) / 2),var(--absent-c) var(--absent-step));border:var(--ax-w) dashed var(--absent-c);border-radius:var(--sp-1)}
.pg .cf-notcounted{fill:none;stroke:var(--cat,var(--cat-1));stroke-width:var(--series-w);stroke-dasharray:var(--notcounted-dash)}
.pg .cf-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sub);color:var(--mut)}
.pg .cf-legend > *{display:inline-flex;align-items:center;gap:var(--sp-1)}
.pg .cf-sw{flex:0 0 auto;width:var(--sp-3);height:var(--sp-3);border-radius:var(--sp-1);background:var(--cat,var(--cat-1));border:var(--cat-edge-w) solid var(--line)}
.pg .cf-sw.cf-absent-box{background-color:var(--card-bg)}
.pg .cf-note{margin:0;font-size:var(--fs-chip);color:var(--mut)}

@media (prefers-reduced-motion:reduce){
  .pg .btn-primary,.pg .btn-quiet,.pg .seg button,.pg .drill > summary{transition:none}
}


.pg .tbl .tbl-name{min-width:26ch}
.pg .tbl .tbl-name .tbl-name-a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.pg .tbl .tbl-name .tbl-name-sub{display:block;font-weight:400;margin-top:1px}
.pg .tbl tbody tr:nth-child(even) th[scope="row"]{background:var(--zebra)}
.pg .tbl tbody tr:hover th[scope="row"]{background:var(--tbl-hover)}

.pg .tbl .tbl-stick{position:sticky;right:0;background:var(--card-bg);border-left:var(--tbl-rule) solid var(--tbl-rule-c)}
.pg .tbl tbody td.tbl-stick{z-index:1}
.pg .tbl thead th.tbl-stick{z-index:3}
.pg .tbl tbody tr:nth-child(even) td.tbl-stick{background:var(--zebra)}
.pg .tbl tbody tr:hover td.tbl-stick{background:var(--tbl-hover)}

.pg .sec-head h2 .sec-count,.pg .sec-title .sec-count{margin-left:var(--sp-2);padding-left:var(--sp-2);border-left:var(--tbl-rule) solid var(--line);font-size:var(--fs-md);font-weight:400;line-height:1}
.pg .sec-head h2 .sec-count:empty,.pg .sec-title .sec-count:empty{display:none}

.pg{--sec-gap:calc(var(--sp-5) * 1.5)}
.pg .go{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:var(--hit-sm);color:var(--navy);font-size:var(--fs-md);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.pg .go::after{content:"\2192";text-decoration:none;font-weight:400}
.pg .go:hover{color:var(--ink)}
.pg .prose-fold{max-width:72ch}
.pg .prose-fold > .prose-answer{color:var(--ink)}
.pg .prose-fold > .prose-answer[hidden]{display:none}
.pg .prose-fold > .prose-more{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:var(--hit-sm);margin-left:var(--sp-1);padding:0 var(--sp-1);border:0;background:none;color:var(--navy);font-size:var(--fs-sub);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer;vertical-align:baseline}
.pg .prose-fold > .prose-more::before{content:"+";text-decoration:none}
.pg .prose-fold > .prose-more[aria-expanded="true"]::before{content:"\2212"}
.pg .prose-fold > .prose-more:hover{color:var(--ink)}
.pg .prose-fold > .prose-rest{display:block;margin:var(--sp-2) 0 0}
.pg .prose-fold > .prose-rest[hidden]{display:none}
.pg .prose-fold > .prose-rest > :first-child{margin-top:0}
.pg .prose-fold > .prose-rest > :last-child{margin-bottom:0}
.pg span.prose-fold{display:inline}
.pg span.prose-fold > .prose-rest{display:inline;margin:0}
.pg span.prose-fold > .prose-rest[hidden]{display:none}



.map-legend .map-legend-title {
  font-family: 'Rubik', sans-serif;
  color: inherit;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: none;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  cursor: pointer;
  min-height: var(--hit-sm, 32px);
}
@media (max-width: 768px) {
  .map-controls.collapsed::before,
  .map-controls.collapsed::after,
  .map-controls:not(.collapsed)::before,
  .map-controls:not(.collapsed)::after { content: none !important; }
  .map-controls .map-ctrl-toggle {
    display: flex !important;
    width: 100%;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 44px;
    min-width: 44px;
    margin: 0 !important;
    padding: 4px 2px !important;
    font-size: 13px !important;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: left;
  }
  .map-controls .map-ctrl-toggle .map-ctrl-caret { font-size: 18px; line-height: 1; }
  .map-controls.collapsed .map-ctrl-head {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: 0 !important;
    vertical-align: baseline;
  }
  .map-legend .map-legend-title {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 10px 6px;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
  }
}
.map-legend .map-legend-title:focus-visible,
.map-ctrl-toggle:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}

.map-ctrl-toggle { min-height: var(--hit-sm, 32px); min-width: var(--hit-sm, 32px); }

.modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--hit, 40px);
  min-height: var(--hit, 40px);
}

#eco-card-overlay [data-eco-org],
#eco-card-overlay [data-eco-story],
#eco-card-overlay [data-eco-back],
#modal-overlay .modal summary,
#eco-card-overlay .modal summary {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}

@media (max-width: 768px) {
  .story-read-copy { min-height: 44px; }
  #stories .lib-shelf,
  #stories .lib-search,
  #stories .lib-find-clear,
  #stories .lib-random,
  #stories .lib-row-arrow,
  #stories .lib-pill,
  #stories .fold-btn,
  #stories .fold-sec-btn { min-height: 44px; }
  #eco-card-overlay [data-eco-org],
  #eco-card-overlay [data-eco-story],
  #eco-card-overlay [data-eco-back],
  .profile-eco-slot [data-eco-open],
  .profile-eco-slot [data-eco-list] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  #modal-overlay .modal summary,
  #eco-card-overlay .modal summary { min-height: 44px; align-items: center; }
  .modal-close { min-width: 44px; min-height: 44px; }
}


.tt-say {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .map-controls, .map-legend, .map-legend .legend-body { transition: none !important; }
}


.lang-btn { min-height: 24px; }

:where(:root){
  --pub-w: 1680px;
  --pub-gut: clamp(18px, 3.2vw, 64px);
  --say-measure: 68ch;
}

#theme-stories-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }


.modal.modal-card { max-width: 1120px; }
@media (min-width: 1280px) {
  .modal.modal-card { max-width: min(1280px, calc(100vw - 160px)); }
}

@media (min-width: 1024px) {
  .modal.modal-card { --card-cover-art: 400px; --card-story-h: 340px; --card-col-gap: 28px; --card-place-h: 220px; }
}

@media (max-width: 768px) {
  .modal.modal-card { --card-act-h: 44px; --card-cover-art: 200px; }
}

.profile-place-map { height: var(--card-place-h, 180px) !important; min-height: 0 !important; }

.profile-place-map .leaflet-container { font-family: inherit; background: var(--wash); }


:where(:root){
  --an-fig: 490px;
  --an-card: 548px;
  --an-read: 180px;
  --an-gap: 24px;
  --an-tbl: 900px;
}

.an-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--an-card, 548px)), 1fr));
  gap: var(--an-gap, 24px);
  margin-bottom: 32px;
}
.an-span { grid-column: 1 / -1; }

.an-fig-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--an-gap, 24px);
  align-items: flex-start;
}
.an-fig { flex: 0 1 var(--an-fig, 490px); min-width: 0; }
.an-read {
  flex: 1 1 var(--an-read, 180px);
  min-width: 0;
  max-width: var(--say-measure, 68ch);
  font-size: 12px;
  line-height: 1.6;
  color: var(--mut, #666666);
}
.an-read > p { margin: 0 0 8px; }
.an-read > p:last-child { margin-bottom: 0; }

.an-src {
  border-left: 2px solid var(--hair, #f0f0f2);
  padding-left: 10px;
  color: var(--soft, #888888);
}
.an-note { color: var(--mut, #666666); }
.an-read .an-src { border-left: 2px solid var(--hair, #f0f0f2); }
.an-span > .an-src { max-width: var(--say-measure, 68ch); margin: 14px 0 0; font-size: 12px; line-height: 1.6; color: var(--soft, #888888); }

.an-hint {
  font-size: 14px;
  color: var(--mut, #666666);
  margin: -4px 0 12px;
  max-width: var(--say-measure, 68ch);
  line-height: 1.55;
}

.an-tbl { flex: 1 1 620px; min-width: 0; max-width: var(--an-tbl, 900px); overflow-x: auto; }

.map-controls,
.map-search-dock {
  background: var(--card-bg, #ffffff);
  border-color: var(--ctrl-line, #8a8890);
}
.map-legend { border-color: var(--ctrl-line, #8a8890); }

.map-legend { padding: 14px 20px; }
.map-legend .map-legend-title {
  font-size: var(--fs-md, 14px);
  color: var(--navy, #313d7f);
  min-height: var(--hit, 40px);
}

.map-controls.collapsed { padding: 10px 16px !important; }
.map-controls .map-ctrl-toggle,
.map-controls.collapsed .map-ctrl-toggle {
  font-size: var(--fs-card-h, 15px) !important;
  min-height: var(--hit, 40px);
  padding: 5px 8px !important;
}
.map-ctrl-regions {
  font-size: var(--fs-body, 13px);
  min-height: 28px;
  border-color: var(--ctrl-line, #8a8890);
}

#map-container { --map-dock-h: 54px; }
.map-search-dock { padding: 6px 12px; }
.map-search-dock .map-control-label {
  font-size: var(--fs-sub, 12px);
  color: var(--navy, #313d7f);
}

#map-expand-btn {
  font-size: var(--fs-card-h, 15px);
  padding: 11px 18px;
  border: 1px solid var(--card-bg, #ffffff);
  max-width: calc(100% - 24px);
  text-align: left;
}

@media (max-width: 768px) {
  .map-controls .map-ctrl-toggle,
  .map-controls.collapsed .map-ctrl-toggle,
  body.map-fullscreen .map-controls.collapsed .map-ctrl-toggle {
    font-size: var(--fs-md, 14px) !important;
  }
  .map-legend .map-legend-title { font-size: var(--fs-md, 14px) !important; }
  #world-map #map-expand-btn {
    font-size: var(--fs-body, 13px) !important;
    padding: 10px 16px !important;
  }
}


body.map-fullscreen #map-close-btn {
  width: 52px;
  height: 52px;
  background: var(--red, #a23b3b);
  color: var(--card-bg, #ffffff);
  border: 2px solid var(--card-bg, #ffffff);
  font-size: 32px;
}
body.map-fullscreen #map-close-btn:focus-visible {
  outline: var(--focus-w, 2px) solid var(--card-bg, #ffffff);
  outline-offset: var(--focus-off, 2px);
}

body.map-fullscreen .leaflet-top.leaflet-right { top: 66px; }

@media (max-width: 768px) {
  body.map-fullscreen .map-guide-chip { top: 226px; }
}
body.map-fullscreen.map-tutorial-on .map-guide-chip { display: none; }


.an-intro {
  border-top: 2px solid var(--line, #e8e8e8);
  padding-top: 32px;
}
.an-intro .section-heading { margin-bottom: 12px; }

.an-introrow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px 40px;
}
.an-introrow > p { margin: 0; }
.an-lede {
  flex: 1 1 100%;
  min-width: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink, #39373a);
}
.an-caveat {
  min-width: 0;
  font-size: 15px;
  line-height: 1.55;
  font-style: italic;
  color: var(--mut, #666666);
}

.an-people {
  margin-top: 32px;
  padding-top: 16px;
}


.modal.modal-card { --card-story-fs: var(--fs-read, 19px); --card-read-measure: 60ch; }

.modal.modal-card { --card-story-h: 400px; }
@media (min-width: 1024px) {
  .modal.modal-card { --card-story-h: 620px; }
}

@media (min-width: 1024px) {
  .modal.modal-card { --card-fig: var(--fs-fig-lg, 34px); }
}

.an-caveatfold {
  flex: 1 1 100%;
  min-width: 0;
}

.an-caveatlabel {
  cursor: pointer;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
  color: var(--navy, #313d7f);
  padding: 4px 0;
}
.an-caveatlabel:focus-visible {
  outline: 2px solid var(--navy, #313d7f);
  outline-offset: 2px;
}

.an-caveatfold .an-caveat {
  margin: 8px 0 0;
  max-width: var(--say-measure, 68ch);
}


.an-funds {
  margin-top: 32px;
  padding-top: 16px;
}
.an-funds > .analytics-collapse-header {
  font-size: 22px;
  font-family: 'Source Serif Pro', serif;
  color: var(--navy, #313d7f);
}


.an-nofig {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--line, #e8e8e8);
  border-radius: 50%;
  box-sizing: border-box;
  padding: 18px;
}
.an-nofigword {
  font-size: 12px;
  line-height: 1.35;
  text-align: center;
  color: var(--soft, #888888);
}

.an-drillmetrics {
  display: grid;
  gap: var(--an-gap, 24px);
  margin: 0 0 14px;
}
.an-dmgroup + .an-dmgroup {
  border-top: 1px solid var(--hair, #f0f0f2);
  padding-top: 12px;
}
.an-dmcat {
  font-family: 'Source Serif Pro', serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--navy, #313d7f);
  margin: 0 0 8px;
}
.an-dmlist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 10px 18px;
  margin: 0;
}
.an-dm > dt {
  font-size: 12px;
  line-height: 1.4;
  color: var(--mut, #666666);
  margin: 0 0 2px;
}
.an-dm > dd {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.an-dmfig {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px;
  font-weight: 700;
  color: var(--navy, #313d7f);
}
.an-dmof {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--soft, #888888);
}
.an-dmabs {
  font-size: 13px;
  font-style: italic;
  color: var(--soft, #888888);
}

.an-dmhead {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--soft, #888888);
  margin: 0 0 8px;
}
.an-barhead {
  margin-top: 14px;
}
.an-drilljoint,
.an-drillabsent {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--mut, #666666);
  margin: 0 0 10px;
  max-width: var(--say-measure, 68ch);
}
.an-drillsrc {
  border-left: 2px solid var(--hair, #f0f0f2);
  padding-left: 10px;
  margin: 14px 0 0;
  max-width: var(--say-measure, 68ch);
  font-size: 12px;
  line-height: 1.6;
  color: var(--soft, #888888);
}
.an-drillsrc + .an-drillsrc {
  margin-top: 6px;
}

.an-drillclose {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.an-drillclose:focus-visible {
  outline: 2px solid var(--navy, #313d7f);
  outline-offset: 2px;
}


.an-drillrow {
  display: flex;
  flex-wrap: wrap;
  gap: var(--an-gap, 24px);
  align-items: flex-start;
}
.an-drillfig { flex: 0 1 560px; min-width: 0; }
.an-drillrail { flex: 1 1 var(--an-read, 180px); min-width: 0; }
.an-drillrail > .an-drillsrc,
.an-drillrail > .an-src { margin: 0 0 8px; }
.an-drillrail > .an-drillsrc:last-child,
.an-drillrail > .an-src:last-child { margin-bottom: 0; }

.an-dm {
  border: 1px solid var(--live-line, #cfe8b0);
  border-radius: var(--r-pill, 20px);
  padding: 10px 16px;
}


.an-introgrid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--sp-5, 24px) 40px;
}
.an-introcopy {
  flex: 1.4 1 min(100%, 520px);
  min-width: 0;
}
.an-figs {
  flex: 1 1 min(100%, 400px);
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: var(--sp-4, 16px);
}

.an-figs .dashboard-metric-card {
  padding: var(--sp-5, 24px) 20px;
}

.an-deffold {
  margin: var(--sp-4, 16px) 0 0;
  font-size: 13px;
  color: var(--mut, #666666);
  line-height: 1.7;
  max-width: var(--say-measure, 68ch);
}
.an-deflabel {
  cursor: pointer;
  font-weight: 600;
  color: var(--navy, #313d7f);
  padding: 8px 0;
}
.an-deflabel:focus-visible {
  outline: 2px solid var(--navy, #313d7f);
  outline-offset: 2px;
}
.an-defbody {
  padding: 12px 16px;
  background: var(--wash, #f7f8fa);
  border-left: 3px solid var(--navy, #313d7f);
  border-radius: var(--r-chip, 9px);
  margin-top: 8px;
}
.an-defbody > p {
  margin: 0 0 10px;
}
.an-defbody > p:last-child {
  margin: 0;
}
.an-defsource {
  font-style: italic;
  color: var(--mut, #767676);
}
.an-mapcount { margin: var(--sp-3, 12px) 0 0; font-size: 13px; line-height: 1.5; color: var(--mut, #767676); }


.tt-satt { opacity: 0; }
.tt-satt.tt-on { opacity: 1; transition: opacity 420ms ease; }
@media (prefers-reduced-motion: reduce) {
  .tt-satt.tt-on { transition: none; }
}

.tt-mini.tt-sat-on .tt-dots circle { stroke-width: 1.6px; }
.tt-mini.tt-sat-on .tt-dots { filter: drop-shadow(0 0 1.4px rgba(0, 0, 0, 0.7)); }
.tt-mini.tt-sat-on .tt-thread { stroke: var(--card-bg, #ffffff); stroke-opacity: 0.5; }

.themes-imagery {
  margin: -8px 0 0;
  max-width: var(--say-measure, 68ch);
  font-size: var(--fs-cite);
  color: var(--mut);
  line-height: var(--lh-body);
}
.themes-carousel .lib-tile > .lib-tile-name {
  font-size: var(--fs-h2);
  text-wrap: balance;
}

body.map-fullscreen #map-close-btn { z-index: 10400; }


.modal.modal-card .profile-card-cols[data-card-surface="public"] {
  --card-thumb-grow: 1;
  --card-thumb-h: auto;
  --card-thumb-ar: 3 / 2;
  --card-thumb-max: 200px;
  --card-thumb-min: 0;
}

.modal.modal-card .profile-card-cols[data-card-surface="public"] {
  --card-chip-lbl: var(--fs-body, 13px);
  --card-chip-track: 0.6px;
  --card-chip-val: 22px;
  --card-chip-face: var(--font-head, "Source Serif Pro", Georgia, serif);
  --card-chip-arrow: 16px;
  --card-chip-pad: 6px 12px;
  --card-chip-gap: var(--sp-2, 8px);
  --card-chars-pad: var(--sp-4, 16px);
}

.modal.modal-card .profile-card-cols[data-card-surface="public"] {
  --card-title-fs: 22px;
}

@media (min-width: 1024px) {
  .modal.modal-card .profile-card-cols[data-card-surface="public"] {
    --card-read-measure: none;
    --card-story-h: none;
    --card-story-cols: 420px;
    --card-story-colgap: var(--sp-6, 32px);
    --card-tile-max: calc(50% - var(--card-tile-gap, 12px) / 2);
    --card-title-fs: var(--fs-fig, 26px);
  }
}


.map-search-dock ~ .map-controls { max-width: min(804px, calc(100% - 32px)); }

.map-ctrl-osh { padding-left: calc(var(--mapctrl-label, 76px) + var(--sp-2, 8px)); }
.map-ctrl-osh:not(:has(> .osh-link.visible)) { display: none; }
.map-ctrl-osh > .osh-link { margin-left: 0; }

.cat-info {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid var(--line, #e8e8e8);
  border-radius: 50%;
  background: var(--card-bg, #ffffff);
  color: var(--navy, #313d7f);
  cursor: pointer;
  font-family: inherit;
  line-height: 1;
}
@media (min-width: 769px) {
  .cat-info::after {
    content: "";
    position: absolute;
    top: -4px;
    bottom: -4px;
    left: -4px;
    right: -16px;
  }
}
.cat-info:hover { background: var(--hair, #f4f7ee); }
.cat-info[aria-expanded="true"] { background: var(--navy, #313d7f); color: var(--card-bg, #ffffff); border-color: var(--navy, #313d7f); }
.cat-info:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }

.cat-pop {
  position: relative;
  box-sizing: border-box;
  max-width: var(--cat-pop-measure, 62ch);
  margin: var(--sp-1, 4px) 0 var(--sp-1, 4px);
  padding: var(--sp-3, 12px) var(--sp-5, 24px) var(--sp-3, 12px) var(--sp-3, 12px);
  border: 1px solid var(--line, #e8e8e8);
  border-radius: var(--r-tile, 10px);
  background: var(--zebra, #fafbf7);
  color: var(--ink, #39373a);
}
.cat-pop[hidden] { display: none; }
.cat-pop:focus { outline: none; }
.cat-pop:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
.cat-pop-h {
  margin: 0 0 var(--sp-1, 4px);
  font-family: 'Rubik', sans-serif;
  font-size: var(--fs-sub, 12px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--navy, #313d7f);
}
.cat-pop-t {
  margin: 0;
  font-size: var(--fs-body, 13px);
  line-height: var(--lh-body, 1.6);
}
.cat-pop-x {
  position: absolute;
  top: var(--sp-1, 4px);
  right: var(--sp-1, 4px);
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: var(--r-chip, 9px);
  background: none;
  color: var(--mut, #666666);
  font-size: var(--fs-h2, 19px);
  line-height: 1;
  cursor: pointer;
}
.cat-pop-x:hover { background: var(--wash, #f5f6f8); color: var(--ink, #39373a); }
.cat-pop-x:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
#map-ctrl-rows > .cat-pop { margin-left: calc(var(--mapctrl-label, 76px) + var(--sp-2, 8px)); }

.vf-list li > .cat-pair > .cat-info { margin-left: 2px; }
.vf-label.is-wrap { white-space: normal; max-width: var(--vf-w, none); }
.vf-label.is-wrap b { text-wrap: balance; }
.vf-rail > .cat-pop { max-width: 100%; }


.cat-pair {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2, 8px);
  flex: 0 0 auto;
  min-width: 0;
}
@media (max-width: 768px) {
  .cat-pair { gap: 5px; }
}


.modal.modal-card .profile-card-cols[data-card-surface="public"] {
  --card-chip-val: var(--fs-fig-sm, 20px);
  --card-title-fs: var(--fs-fig-sm, 20px);
}

@media (min-width: 1024px) {
  .modal.modal-card .profile-card-cols[data-card-surface="public"] {
    --card-cover-art: auto;
    --card-cover-ar: 16 / 9;
    --card-cover-max: 620px;
    --card-thumb-wmax: 200px;
    --card-stack: var(--sp-5, 24px);
    --card-cap-gap: var(--sp-4, 16px);
    --card-title-fs: var(--fs-fig, 26px);
  }
}


@media (min-width: 1024px) {
  .modal.modal-card .profile-card-cols[data-card-surface="public"] {
    --card-cover-w: auto;
    --card-cover-art: min(calc(var(--card-story-w, 724px) * 9 / 16), 45vh);
    --card-cover-max: none;
    --card-cover-btn-w: fit-content;
    --card-story-cols: auto;
  }
}

@media (min-width: 1024px) {
  .modal.modal-card .profile-card-cols[data-card-surface="public"] {
    max-width: var(--card-story-w, 724px);
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 1024px) {
  .modal.modal-card:has(.profile-card-cols[data-card-surface="public"]) {
    --card-story-w: 724px;
    --card-sheet-pad: 48px;
    max-width: calc(var(--card-story-w, 724px) + 2 * var(--card-sheet-pad, 48px));
  }
}

.modal.modal-card .profile-card-cols[data-card-surface="public"] {
  --card-para-gap: calc(1em * var(--lh-body, 1.55));
}
.modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-body > p:last-child {
  --card-para-gap: 0px;
}

@media (min-width: 1024px) {
  .modal.modal-card:has(.profile-card-cols[data-card-surface="public"]) {
    max-width: min(calc(var(--card-story-w, 724px) + 4 * var(--card-sheet-pad, 48px)), calc(100vw - 160px));
  }
}

@media (min-width: 1024px) {
  .modal.modal-card:has(.profile-card-cols[data-card-surface="public"]) {
    max-width: min(calc(var(--card-story-w, 724px) + 2 * var(--card-sheet-pad, 48px)), calc(100vw - 160px));
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] {
    --card-cap-align: left;
    --card-tags-just: flex-start;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-panel:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--sp-4, 16px);
    align-items: start;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-panel > *,
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-cover > * {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-cover {
    display: contents;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-cover > :first-child {
    margin-bottom: var(--card-stack, 12px);
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-cover > figcaption {
    grid-column: 1;
    width: 100%;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-panel > .profile-story-figs {
    width: 100%;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-story-panel > [role="group"] {
    grid-column: 2;
    margin-top: var(--card-cap-gap, 10px);
    --card-thumb-grow: 0;
    --card-thumb-w: 120px;
    --card-thumb-wmax: 120px;
    --card-thumb-max: 80px;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-card-place {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: var(--card-col-gap, 20px);
    row-gap: var(--sp-3, 12px);
    align-items: start;
    --card-place-row-display: contents;
    --card-ftid-align: left;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-place-row > :first-child {
    grid-column: 1;
    grid-row: 1 / span 3;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-place-row > .profile-eco-slot {
    grid-column: 2;
    grid-row: 1;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-card-place > :nth-child(2) {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
  }
  .modal.modal-card .profile-card-cols[data-card-surface="public"] .profile-card-place > :nth-child(3) {
    grid-column: 2;
    grid-row: 3;
  }
}


@media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
  :where(:root) {
    --mnav-h: 73px;
    --mnav-gap: 12px;
    --nav-clear: calc(var(--mnav-h) + var(--mnav-gap) + env(safe-area-inset-bottom, 0px) + 8px);
    --map-bottom-clear: calc(var(--nav-clear) + 46px);
    --map-top-clear: 76px;
  }
  .mobile-nav { bottom: calc(var(--mnav-gap) + env(safe-area-inset-bottom, 0px)); }

  body.map-fullscreen .map-legend { bottom: var(--map-bottom-clear) !important; }
  body.map-fullscreen .leaflet-bottom { bottom: var(--nav-clear); }
  body.map-fullscreen .leaflet-top.leaflet-left,
  body.map-fullscreen .leaflet-top.leaflet-right {
    bottom: calc(var(--map-bottom-clear) + 58px) !important;
  }

  body.map-fullscreen .map-controls.collapsed { max-width: calc(100vw - 24px) !important; }
  .map-controls.collapsed .map-ctrl-head { flex-wrap: nowrap !important; }
  .map-controls.collapsed .map-ctrl-toggle {
    width: auto !important;
    flex: 1 1 auto;
    justify-content: flex-start !important;
    gap: 6px !important;
  }
  .map-controls.collapsed .map-ctrl-regions {
    flex: 0 0 auto;
    margin-left: auto;
    white-space: nowrap;
  }
}

@media (min-width: 769px) {
  #category-control-row .map-control-group { column-gap: var(--sp-1, 4px); }
  #category-control-row .pill { padding-left: 6px; padding-right: 6px; }
  #category-control-row .cat-pair { column-gap: var(--sp-1, 4px); }
}

.cat-pair { flex-wrap: nowrap; }


@media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
  :where(:root) {
    --map-bottom-clear: calc(var(--nav-clear) + var(--map-attr-h, 34px) + 12px);
  }

  body.map-fullscreen .map-guide-chip { top: var(--map-chip-top, 226px); }

  body.map-fullscreen .map-guide-chip.map-noroom,
  body.map-fullscreen .map-topten.map-noroom {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.map-fullscreen.map-filters-open .map-legend,
  body.map-fullscreen.map-filters-open:not(.map-tour-on) .tt-map,
  body.map-fullscreen.map-filters-open .map-guide-chip {
    display: none !important;
  }

  body.map-fullscreen.map-legend-open:not(.map-tour-on) .tt-map,
  body.map-fullscreen.map-legend-open .map-guide-chip {
    display: none !important;
  }
  body.map-fullscreen .map-legend:not(.collapsed) {
    max-height: calc(100vh - var(--map-bottom-clear, 139px) - var(--map-top-clear, 76px));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.map-fullscreen .map-controls {
    max-height: calc(100vh - var(--map-ctrl-top, 128px) - var(--map-bottom-clear, 139px) - 12px);
  }

  body.map-fullscreen .map-controls { top: var(--map-top-clear, 76px) !important; }

  body.map-fullscreen.map-tour-on .map-controls { display: none !important; }
}

@media (max-width: 1024px) and (max-height: 480px) {
  body.map-fullscreen #map-container { min-height: 0 !important; }

  body.map-fullscreen.map-tour-on .map-search-dock,
  body.map-fullscreen.map-legend-open .map-search-dock,
  body.map-fullscreen.map-legend-open .map-controls {
    display: none !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) and (max-height: 480px) {
  :where(:root) { --mnav-h: 0px; --mnav-gap: 0px; }
}

@media (min-width: 769px) and (max-width: 1024px) {
  body.map-fullscreen .map-controls { max-width: calc(100vw - 86px); }
  body.map-fullscreen .map-search-dock { max-width: calc(50% - 110px); }
}

@media (min-width: 769px) and (max-width: 1024px) and (min-height: 481px) {
  body.map-fullscreen .map-legend:not(.collapsed) { max-width: calc(100vw - 380px); }
}

@media (min-width: 769px) and (min-height: 481px), (min-width: 1025px) {
  .map-controls:not(.collapsed) .map-ctrl-head {
    position: absolute;
    right: var(--sp-3, 12px);
    bottom: var(--sp-2, 8px);
    margin: 0;
  }
  .map-controls:not(.collapsed) .map-ctrl-appearance > .map-control-row:last-child {
    min-height: var(--hit, 40px);
  }
}


.eco-pills { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.eco-pill-item { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; max-width: 100%; }
.eco-pill { display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: 5px;
  white-space: normal; text-align: left; max-width: 100%; line-height: 1.35; }
.eco-pill-where { color: var(--mut, #767676); font-weight: 500; }
.eco-pill-quiet { display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: 5px;
  max-width: 100%; padding: 5px 0; font-size: 12px; font-weight: 400; line-height: 1.35;
  color: var(--ink, #39373a); cursor: default; }
.eco-pill-story { padding: 5px 10px; border-color: var(--green, #93d73b); color: var(--green-dk, #4a7a1b); }

#eco-card-body details.eco-sourcefold { margin: 14px 0 0; border-top: 1px solid var(--line, #e8e8e8); padding-top: 8px; }
#eco-card-body summary.pub-foldlabel { display: list-item; cursor: pointer; font-size: 14px; line-height: 1.35; font-weight: 600; color: var(--navy, #313d7f); padding: 4px 0; }
#eco-card-body summary.pub-foldlabel:focus-visible { outline: 2px solid var(--navy, #313d7f); outline-offset: 2px; }

@media (min-width: 769px) and (max-width: 1024px) and (min-height: 481px) {
  body.map-fullscreen .map-search-dock { width: calc(50% - 110px); }
  body.map-fullscreen .map-search-dock .map-search { flex-wrap: wrap; }
  body.map-fullscreen .map-search-dock .map-search-field { flex: 1 1 100%; }
  body.map-fullscreen #map-container { --map-dock-h: 84px; }
}

@media (min-width: 769px) and (max-width: 1024px) and (max-height: 480px) {
  body.map-fullscreen .map-search-dock { width: calc(50% - 110px); }
  body.map-fullscreen .map-search-dock .map-search { flex-wrap: nowrap; }
  body.map-fullscreen .map-search-dock .map-search-field { flex: 1 1 auto; min-width: 0; }
}

#category-control-row .cat-pills { display: contents; }
@media (min-width: 769px) {
  #category-control-row .cat-pills {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: inherit;
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    padding-block: 4px;
    margin-block: -4px;
    padding-inline-end: 16px;
    margin-inline-end: -16px;
  }
}

@media (min-width: 769px) and (min-height: 481px), (min-width: 1025px) {
  .map-controls:not(.collapsed) > .cat-pop:last-child {
    margin-bottom: var(--hit, 40px);
  }
}


.map-controls:not(.collapsed) > .cat-pop {
  margin-left: calc(var(--mapctrl-label, 76px) + var(--sp-2, 8px));
}

.map-controls:not(.collapsed) .map-ctrl-head > .cat-pair { display: none; }

.map-controls.collapsed > .cat-pop:not([hidden]) {
  width: 0;
  min-width: 100%;
  max-width: none;
  margin: var(--sp-1, 4px) 0 0 0;
}

@media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
  .map-controls.collapsed .map-ctrl-head > .cat-pair { flex: 0 0 auto; margin-left: auto; }
}

.map-controls.collapsed .map-ctrl-head .cat-info::after { right: -4px; }


.legend-section.eco-legend-head { display: flex; align-items: center; gap: var(--sp-2, 8px); }

@media (min-width: 769px) and (min-height: 481px), (min-width: 1025px) {
  .map-legend:not(.collapsed) {
    display: flex;
    flex-direction: column;
    max-height: calc(100% - 40px);
  }
  .map-legend:not(.collapsed) > .map-legend-title { flex: 0 0 auto; }
  .map-legend:not(.collapsed) > .legend-body {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-inline-end: 16px;
    margin-inline-end: -16px;
  }
  #eco-legend-class-panel > .cat-pop:not([hidden]) {
    position: absolute;
    inset: 0;
    z-index: 1;
    margin: 0;
    max-width: none;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
#eco-legend-class-panel > .cat-pop {
  max-width: min(var(--cat-pop-measure, 62ch), 100%);
  margin: var(--sp-2, 8px) 0 var(--sp-2, 8px);
}

.map-legend .map-legend-title { position: relative; }
@media (max-width: 768px) {
  .map-legend .map-legend-title .legend-arrow {
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
}

.cat-pop details.cat-pop-src { margin: var(--sp-2, 8px) 0 0; }
.cat-pop summary.cat-pop-srclabel {
  display: list-item;
  cursor: pointer;
  font-size: var(--fs-sub, 12px);
  font-weight: 600;
  line-height: 1.45;
  color: var(--navy, #313d7f);
  padding: 4px 0;
}
.cat-pop summary.cat-pop-srclabel:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}
@media (max-width: 768px) {
  .cat-pop summary.cat-pop-srclabel { min-height: var(--hit, 40px); display: list-item; }
}
.cat-pop .cat-pop-srcbody {
  margin: var(--sp-1, 4px) 0 0;
  font-size: 11px;
  line-height: 1.55;
  color: var(--mut, #767676);
  overflow-wrap: break-word;
}
.cat-pop .cat-pop-srcbody a { color: var(--navy, #313d7f); }


.legend-section.eco-legend-head { flex-wrap: wrap; }
.eco-legend-headline { display: inline-flex; align-items: center; gap: var(--sp-2, 8px); min-width: 0; }

.legend-section.eco-legend-head > .pill { flex: 0 0 auto; text-transform: none; letter-spacing: normal; }

.map-search-dock { --map-dock-rim: 12px; }
.map-search-dock .map-search-row { padding-inline-end: var(--map-dock-rim, 12px); }



.hero-title-band {
  position: relative;
  --hero-bar-h: 8px;
  --hero-bar-gap: var(--sp-4, 16px);
}
.hero-title-band::after {
  content: '';
  display: block;
  width: 320px;
  height: var(--hero-bar-h);
  margin: var(--hero-bar-gap) auto 0;
  background: var(--green, #93d73b);
  border-radius: 2px;
}
@media (max-width: 600px) {
  .hero-title-band { --hero-bar-h: 6px; --hero-bar-gap: var(--sp-3, 12px); }
  .hero-title-band::after { width: 160px; }
}

.hero-title-band { display: flex; flex-direction: column; }

@media (max-width: 768px) {
  body.map-fullscreen .map-legend.collapsed { max-width: 140px !important; }
  body.map-fullscreen .map-legend.collapsed .map-legend-title {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2, 8px);
    padding: 0 !important;
  }
  body.map-fullscreen .map-legend.collapsed .map-legend-title .legend-arrow {
    position: static !important;
    transform: none !important;
    right: auto !important;
    top: auto !important;
  }
}

@media (max-width: 768px) {
  body:not(.map-fullscreen) #map.hero-map #world-map {
    height: 420px !important;
    min-height: 420px !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
  }
  body:not(.map-fullscreen) #map.hero-map #world-map > .leaflet-control-container {
    order: 2;
    width: 100%;
  }
  body:not(.map-fullscreen) #map.hero-map #world-map .leaflet-bottom.leaflet-right {
    position: relative;
    display: flow-root;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
  }
  body:not(.map-fullscreen) #map.hero-map #world-map #map-expand-btn {
    position: relative !important;
    order: 1;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    margin: 0 12px 10px 0 !important;
  }
}

@media (min-width: 769px) {
  body:not(.map-fullscreen) #map.hero-map #map-container > #map-expand-btn {
    bottom: 30px !important;
  }
}


@media (max-width: 768px) {
  .section-heading + p[style*="margin-top:-24px"] { margin-top: 0 !important; }
}


.fold-hidden { display: none !important; }

.fold {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: var(--sp-2, 8px) var(--sp-3, 12px);
  margin: var(--sp-3, 12px) 0 0;
}
.fold-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--hit, 40px); padding: 0 var(--sp-4, 16px);
  border: 1px solid var(--ctrl-line, #d8d8dc); border-radius: var(--r-pill, 999px);
  background: var(--card-bg, #fff); color: var(--ink, #39373a);
  font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-md, 14px);
  font-weight: 500; white-space: nowrap; cursor: pointer; appearance: none;
}
.fold-btn:hover { background: var(--wash, #f5f6f8); border-color: var(--navy, #313d7f); }
.fold-btn:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}
.fold-count {
  margin: 0; font-family: var(--font-ui, "Rubik", sans-serif);
  font-size: var(--fs-sub, 12px); line-height: var(--lh-body, 1.55);
  color: var(--mut, #6a6870); font-variant-numeric: tabular-nums;
}
.fold-count:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}
.fold-btn[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  .fold-btn { transition: none; }
}

[data-fold-section][data-fold-section-open="0"] > :not(.fold-sec-head):not(.fold-sec-inner),
[data-fold-section][data-fold-section-open="0"] .fold-sec-inner > :not(.fold-sec-head):not(.fold-sec-inner) { display: none !important; }
.fold-sec-btn {
  display: inline-flex; align-items: center; min-height: var(--hit-sm, 32px);
  margin: 0 0 0 var(--sp-2, 8px); padding: 0 var(--sp-1, 4px); border: 0; background: none;
  font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-sub, 12px); font-weight: 500;
  color: var(--navy, #313d7f); text-decoration: underline; cursor: pointer; vertical-align: middle;
}
.fold-sec-btn:hover { color: var(--navy-dk, #273268); }
.fold-sec-btn:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}


.map-search-row { border-top: 1px solid var(--hair, #f0f0f2); padding-top: var(--sp-2, 8px); margin-top: var(--sp-1, 4px); }
.map-search-row:first-child { border-top: 0; padding-top: 0; margin-top: 0; }

.map-controls.collapsed .map-search-row { display: none !important; }

.map-search { position: relative; display: flex; align-items: center; gap: var(--sp-2, 8px); flex-wrap: wrap; }
.map-search-field { position: relative; flex: 1 1 260px; min-width: 200px; }

.map-search-input {
  width: 100%; box-sizing: border-box;
  min-height: var(--hit, 40px);
  padding: 0 34px 0 var(--sp-3, 12px);
  font-family: var(--font-ui, "Rubik", sans-serif);
  font-size: var(--fs-body, 13px);
  color: var(--ink, #39373a);
  background: var(--card-bg, #ffffff);
  border: 1px solid var(--ctrl-line, #8a8890);
  border-radius: var(--r-pill, 20px);
}
.map-search-input::placeholder { color: var(--mut, #6a6870); }
.map-search-input:placeholder-shown { padding-right: var(--sp-3, 12px); }
.map-search-input:focus-visible,
.map-search-input:focus {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
  border-color: var(--navy, #313d7f);
}

.map-search-clear {
  position: absolute; top: 50%; right: 4px; transform: translateY(-50%);
  width: 32px; height: 32px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: var(--fs-lg, 16px); line-height: 1;
  color: var(--mut, #6a6870);
  background: transparent; border: 0; border-radius: 50%;
  cursor: pointer;
}
.map-search-clear:hover { background: var(--wash, #f5f6f8); color: var(--ink, #39373a); }
.map-search-clear:focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }

.map-search-list {
  position: absolute; z-index: 1100; top: calc(100% + 6px); left: 0; right: 0;
  margin: 0; padding: var(--sp-1, 4px); list-style: none;
  max-height: 340px; overflow-y: auto;
  background: var(--card-bg, #ffffff);
  border: 1px solid var(--line, #e0e0e0);
  border-radius: var(--r-tile, 10px);
  box-shadow: var(--elev-2, 0 6px 18px rgba(49, 61, 127, .10));
}

.map-search-opt {
  display: flex; align-items: baseline; flex-wrap: wrap;
  gap: 2px var(--sp-2, 8px);
  min-height: var(--hit, 40px);
  padding: var(--sp-2, 8px) var(--sp-3, 12px);
  border-radius: var(--r-chip, 9px);
  cursor: pointer;
}
.map-search-opt.on,
.map-search-opt:hover { background: var(--navy-bg, #eef1f9); }
.map-search-name { font-family: var(--font-ui, "Rubik", sans-serif); font-size: var(--fs-md, 14px); font-weight: 600; color: var(--navy, #313d7f); flex: 1 1 100%; }
.map-search-meta { font-size: var(--fs-sub, 12px); color: var(--mut, #6a6870); }
.map-search-id { font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace); font-size: var(--fs-chip, 11px); color: var(--mut, #6a6870); margin-left: auto; }
.map-search-nocoord { color: var(--amber, #8a5f00); }

.map-search-note,
.map-search-count {
  padding: var(--sp-2, 8px) var(--sp-3, 12px);
  font-size: var(--fs-sub, 12px);
  line-height: var(--lh-body, 1.55);
  color: var(--mut, #6a6870);
}
.map-search-count { border-top: 1px solid var(--hair, #f0f0f2); margin-top: var(--sp-1, 4px); }
.map-search-all { font-weight: 600; color: var(--navy, #313d7f); }
.map-search-more { color: var(--ink, #39373a); }
.map-search-none { color: var(--ink, #39373a); }

.map-search-status {
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  overflow: hidden; white-space: nowrap;
}

@media (max-width: 768px) {
  .map-search { gap: var(--sp-1, 4px); }
  .map-search-field { flex: 1 1 100%; min-width: 0; }
  .map-search-input { min-height: 44px; font-size: 16px; }
  .map-search-clear { width: 44px; height: 44px; right: 2px; }
  .map-search-opt { min-height: 44px; }
  .map-search-list { max-height: 260px; }
}


    .tt-map { display: none; }
    body.map-fullscreen .tt-map {
      display: block;
      position: fixed;
      z-index: 10250;
      right: var(--sp-3, 12px);
      bottom: 40px;
      width: 340px;
      max-width: calc(100vw - 24px);
      background: var(--card-bg, #ffffff);
      border: 1px solid var(--line, #e0e0e0);
      border-radius: var(--r-card, 14px);
      box-shadow: var(--elev-2, 0 6px 18px rgba(49,61,127,.10));
      font-family: var(--font-ui, "Rubik", sans-serif);
      padding: var(--sp-3, 12px) var(--sp-4, 16px);
      box-sizing: border-box;
    }
    .tt-launch { display: flex; flex-direction: column; gap: var(--sp-2, 8px); }
    .tt-launch-title {
      font-size: var(--fs-chip, 11px); font-weight: 700; letter-spacing: 0.06em;
      text-transform: uppercase; color: var(--navy, #313d7f);
    }
    .tt-row { display: flex; gap: var(--sp-2, 8px); align-items: center; }
    .tt-row .tt-btn { flex: 0 0 auto; }
    .tt-select {
      flex: 1 1 auto; min-width: 0; min-height: var(--hit, 40px);
      font-family: inherit; font-size: var(--fs-body, 13px);
      color: var(--ink, #39373a); background: var(--card-bg, #ffffff);
      border: 1px solid var(--ctrl-line, #8a8890); border-radius: var(--r-chip, 9px);
      padding: 0 var(--sp-2, 8px);
    }
    .tt-btn {
      min-height: var(--hit, 40px); padding: 0 var(--sp-3, 12px);
      font-family: inherit; font-size: var(--fs-body, 13px); font-weight: 600;
      border-radius: var(--r-chip, 9px); border: 1px solid transparent;
      cursor: pointer; white-space: nowrap;
    }
    .tt-btn-go, .tt-btn-next {
      background: var(--navy, #313d7f); color: var(--card-bg, #ffffff);
      border-color: var(--navy, #313d7f);
    }
    .tt-btn-go:hover, .tt-btn-next:hover { background: var(--navy-dk, #273268); border-color: var(--navy-dk, #273268); }
    .tt-btn-quiet {
      background: var(--card-bg, #ffffff); color: var(--navy, #313d7f);
      border-color: var(--ctrl-line, #8a8890);
    }
    .tt-btn-quiet:hover { background: var(--wash, #f5f6f8); }
    .tt-btn[disabled] { opacity: 0.45; cursor: default; }
    .tt-btn:focus-visible, .tt-select:focus-visible {
      outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
      outline-offset: var(--focus-off, 2px);
    }

    .tt-run { display: flex; flex-direction: column; gap: var(--sp-1, 4px); }
    .tt-kicker {
      font-size: var(--fs-chip, 11px); font-weight: 700; letter-spacing: 0.06em;
      text-transform: uppercase; color: var(--navy, #313d7f);
    }
    .tt-title {
      font-family: var(--font-head, "Source Serif Pro", Georgia, serif);
      font-size: var(--fs-lg, 16px); font-weight: 700; line-height: var(--lh-tight, 1.3);
      color: var(--ink, #39373a);
    }
    .tt-who { font-size: var(--fs-body, 13px); color: var(--mut, #6a6870); line-height: var(--lh-body, 1.55); }
    .tt-count { font-size: var(--fs-sub, 12px); color: var(--soft, #8a8890); font-variant-numeric: tabular-nums; }
    .tt-tip {
      margin: var(--sp-1, 4px) 0 0; padding-top: var(--sp-2, 8px);
      border-top: 1px solid var(--hair, #f0f0f2);
      font-size: var(--fs-sub, 12px); color: var(--mut, #6a6870); line-height: var(--lh-body, 1.55);
    }
    .tt-actions {
      display: flex; gap: var(--sp-2, 8px); flex-wrap: wrap;
      margin-top: var(--sp-2, 8px); padding-top: var(--sp-2, 8px);
      border-top: 1px solid var(--hair, #f0f0f2);
    }
    .tt-actions .tt-btn-exit { margin-left: auto; }

    body.map-tour-on .modal-overlay {
      background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none;
      pointer-events: none; overflow: hidden;
      padding: var(--sp-4, 16px);
    }
    body.map-tour-on .modal-overlay.active { justify-content: flex-start; }
    body.map-tour-on .modal {
      pointer-events: auto; max-width: 440px; padding: var(--sp-5, 24px);
      max-height: calc(100vh - 32px);
      box-shadow: var(--elev-2, 0 6px 18px rgba(49,61,127,.10));
    }
    body.map-tour-on .modal h2 { font-size: var(--fs-h1, 30px); }
    body.map-fullscreen.map-tour-on .map-legend { display: none !important; }

    @media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
      body.map-fullscreen .tt-map {
        left: auto; right: var(--sp-3, 12px); bottom: 46px;
        width: 250px; max-width: calc(100vw - 24px);
      }
      body.map-fullscreen.map-tour-on .tt-map {
        left: var(--sp-3, 12px); right: var(--sp-3, 12px); width: auto; max-width: none;
      }
      body.map-tour-on .modal {
        max-height: calc(100vh - var(--tt-panel-h, 340px) - 66px) !important;
      }
      .tt-btn { min-height: 44px; }
      .tt-select { min-height: 44px; }
    }

    .theme-preview { margin: 0 0 var(--sp-4, 16px); }
    .theme-preview-box {
      height: var(--tt-box-h, 260px) !important; min-height: 0 !important;
      border: 1px solid var(--line, #e0e0e0);
      border-radius: var(--r-tile, 10px); overflow: hidden;
      background: var(--wash, #f5f6f8);
    }
    .theme-preview-foot {
      display: flex; gap: var(--sp-3, 12px); align-items: center; flex-wrap: wrap;
      margin-top: var(--sp-2, 8px);
    }
    .theme-preview-cap {
      margin: 0; flex: 1 1 260px; min-width: 0;
      font-family: var(--font-ui, "Rubik", sans-serif);
      font-size: var(--fs-sub, 12px); color: var(--mut, #6a6870);
      line-height: var(--lh-body, 1.55);
    }
    .theme-preview-tour {
      min-height: var(--hit, 40px); padding: 0 var(--sp-4, 16px);
      font-family: var(--font-ui, "Rubik", sans-serif);
      font-size: var(--fs-body, 13px); font-weight: 600;
      color: var(--card-bg, #ffffff); background: var(--navy, #313d7f);
      border: 1px solid var(--navy, #313d7f); border-radius: var(--r-pill, 20px);
      cursor: pointer;
    }
    .theme-preview-tour:hover { background: var(--navy-dk, #273268); border-color: var(--navy-dk, #273268); }
    .theme-preview-tour:focus-visible {
      outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
      outline-offset: var(--focus-off, 2px);
    }
    @media (max-width: 768px) {
      .theme-preview-box { height: var(--tt-box-h, 200px) !important; }
      .theme-preview-tour { min-height: 44px; width: 100%; }
    }

    @media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
      body.map-fullscreen .tt-map {
        bottom: var(--map-bottom-clear, 139px);
        max-height: calc(100vh - var(--map-bottom-clear, 139px) - var(--map-top-clear, 76px));
        overflow-y: auto;
        overscroll-behavior: contain;
      }
      body.map-tour-on .modal {
        max-height: calc(100vh - var(--tt-panel-h, 340px) - var(--map-bottom-clear, 139px) - 20px) !important;
      }
    }

    @media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
      html.iih-embed body.map-fullscreen:not(.map-tour-on) .tt-map { display: none !important; }
    }

    @media (max-width: 768px) and (min-height: 790px) {
      body.map-fullscreen.map-tt-lift:not(.map-tour-on) .tt-map {
        bottom: calc(var(--map-bottom-clear, 139px) + 58px + var(--sp-2, 8px));
        max-height: calc(100vh - var(--map-bottom-clear, 139px) - 58px - var(--sp-2, 8px) - var(--map-top-clear, 76px));
      }
    }


    .lib { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--card-bg); padding: var(--sp-4); margin-bottom: var(--sp-5); }
    .lib-find { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
    .lib-find-lbl { font-family: var(--font-ui); font-size: var(--fs-md); font-weight: 600; color: var(--navy); text-transform: uppercase; letter-spacing: 0.3px; }
    .lib-search { flex: 1 1 280px; min-width: 180px; min-height: var(--hit); padding: var(--sp-2) var(--sp-3); border: 1px solid var(--ctrl-line); border-radius: var(--r-chip); font-family: var(--font-ui); font-size: var(--fs-lg); color: var(--ink); background: var(--card-bg); }
    .lib-find-clear { min-height: var(--hit); padding: var(--sp-2) var(--sp-4); border: 1px solid var(--ctrl-line); border-radius: var(--r-chip); background: var(--card-bg); color: var(--navy); font-family: var(--font-ui); font-size: var(--fs-body); font-weight: 600; cursor: pointer; }
    .lib-random { min-height: var(--hit); padding: var(--sp-2) var(--sp-4); border: 1px solid var(--navy-line); border-radius: var(--r-pill); background: var(--navy-bg); color: var(--navy); font-family: var(--font-ui); font-size: var(--fs-body); font-weight: 600; cursor: pointer; }
    .lib-random:hover { background: var(--card-bg); border-color: var(--navy); }
    .lib-find-help { flex: 1 1 100%; margin: var(--sp-1) 0 0; font-family: var(--font-ui); font-size: var(--fs-sub); color: var(--mut); line-height: var(--lh-body); }
    .lib-shelves { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--hair); }
    .lib-shelves-say { flex: 1 1 100%; margin: 0; font-family: var(--font-ui); font-size: var(--fs-sub); color: var(--mut); line-height: var(--lh-body); }
    .lib-shelf[data-lib-shelf="year"] { --lib-hue: var(--cat-1); }
    .lib-shelf[data-lib-shelf="country"] { --lib-hue: var(--cat-2); }
    .lib-shelf[data-lib-shelf="commodity"] { --lib-hue: var(--cat-3); }
    .lib-shelf[data-lib-shelf="theme"] { --lib-hue: var(--cat-4); }
    .lib-shelf { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--hit); padding: var(--sp-2) var(--sp-4); border: 1px solid var(--lib-hue, var(--ctrl-line)); border-radius: var(--r-pill); background: color-mix(in srgb, var(--lib-hue, var(--card-bg)) 10%, var(--card-bg)); color: var(--ink); font-family: var(--font-ui); font-size: var(--fs-md); font-weight: 600; cursor: pointer; }
    .lib-shelf:hover { background: color-mix(in srgb, var(--lib-hue, var(--card-bg)) 18%, var(--card-bg)); box-shadow: inset 0 0 0 1px var(--lib-hue, var(--ctrl-line)); }
    .lib-shelf:hover .lib-shelf-n { color: var(--ink); }
    .lib-shelf[aria-expanded="true"] { background: color-mix(in srgb, var(--lib-hue, var(--card-bg)) 26%, var(--card-bg)); border-color: var(--lib-hue, var(--navy-line)); box-shadow: inset 0 0 0 1px var(--lib-hue, var(--ctrl-line)); color: var(--ink); }
    .lib-shelf-n { font-family: var(--font-mono); font-size: var(--fs-sub); color: var(--mut); font-weight: 400; }
    .lib-shelf[aria-expanded="true"] .lib-shelf-n { color: var(--ink); }
    .lib-picks { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
    .lib-picks:not(:empty) { margin-top: var(--sp-3); }
    .lib-pick[data-lib-drop="country-filter"] { --lib-hue: var(--cat-2); }
    .lib-pick[data-lib-drop="commodity-filter"] { --lib-hue: var(--cat-3); }
    .lib-pick[data-lib-drop="keyword-filter"] { --lib-hue: var(--cat-4); }
    .lib-pick { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--hit-sm); padding: var(--sp-1) var(--sp-3); border: 1px solid var(--lib-hue, var(--navy-line)); border-radius: var(--r-pill); background: color-mix(in srgb, var(--lib-hue, var(--navy)) 26%, var(--card-bg)); color: var(--ink); font-family: var(--font-ui); font-size: var(--fs-body); font-weight: 600; cursor: pointer; }
    .lib-pick-x { font-family: var(--font-ui); font-size: var(--fs-md); line-height: 1; }
    .lib-count { margin: var(--sp-3) 0 0; font-family: var(--font-ui); font-size: var(--fs-md); color: var(--ink); line-height: var(--lh-body); }
    .lib-sort { margin: var(--sp-1) 0 0; font-family: var(--font-ui); font-size: var(--fs-sub); color: var(--mut); line-height: var(--lh-body); }

    .lib-drawer { margin-top: var(--sp-3); padding: var(--sp-3); background: var(--wash); border: 1px solid var(--hair); border-radius: var(--r-tile); }
    .lib-drawer-h { margin: 0 0 var(--sp-2); font-family: var(--font-ui); font-size: var(--fs-sub); color: var(--mut); line-height: var(--lh-body); }
    .lib-drawer-in { display: block; }
    .lib-drawer-geo .lib-drawer-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--sp-3); align-items: start; }
    .lib-geo { min-width: 0; }
    .lib-geo-map { height: 240px !important; min-height: 0 !important; border: 1px solid var(--line); border-radius: var(--r-tile); overflow: hidden; background: var(--card-bg); }
    .lib-geo-cap { margin: var(--sp-2) 0 0; font-family: var(--font-ui); font-size: var(--fs-sub); color: var(--mut); line-height: var(--lh-body); }
    .lib-browser { min-width: 0; }
    .lib-pills { display: flex; flex-wrap: wrap; gap: var(--sp-2); max-height: 172px; overflow-y: auto; }
    .lib-pill { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: var(--hit-sm); padding: var(--sp-1) var(--sp-3); border: 1px solid var(--ctrl-line); border-radius: var(--r-pill); background: var(--card-bg); color: var(--ink); font-family: var(--font-ui); font-size: var(--fs-body); cursor: pointer; }
    .lib-pill[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--card-bg); }
    .lib-pill-n { font-family: var(--font-mono); font-size: var(--fs-cite); color: var(--mut); }
    .lib-pill[aria-pressed="true"] .lib-pill-n { color: var(--card-bg); }


    .lib-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: var(--sp-2); max-height: 268px; overflow-y: auto; }
    .lib-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-1); min-height: var(--hit); padding: var(--sp-2) var(--sp-3); border: 1px solid var(--ctrl-line); border-radius: var(--r-tile); background: var(--card-bg); color: var(--ink); font-family: var(--font-ui); text-align: left; cursor: pointer; overflow: hidden; }
    .lib-tile:hover { border-color: var(--navy); }
    .lib-tile[aria-pressed="true"],
    .lib-tile[aria-expanded="true"] { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); background: var(--navy-bg); }
    .lib-tile-dot { width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--card-bg); box-shadow: 0 0 0 1px var(--line); }
    .lib-tile-name { font-size: var(--fs-body); font-weight: 600; line-height: var(--lh-tight); }
    .lib-tile-n { font-family: var(--font-mono); font-size: var(--fs-cite); color: var(--mut); }
    .lib-tile[aria-pressed="true"] .lib-tile-n,
    .lib-tile[aria-expanded="true"] .lib-tile-n { color: var(--navy); }
    .lib-tile-fam { font-family: var(--font-mono); font-size: var(--fs-chip); letter-spacing: 0.4px; text-transform: uppercase; color: var(--soft); }
    .lib-tile-credit { font-family: var(--font-ui); font-size: var(--fs-chip); color: var(--mut); line-height: var(--lh-body); }
    .lib-tile-sub { font-family: var(--font-mono); font-size: var(--fs-cite); color: var(--mut); }
    .lib-tile-theme { padding: 0 0 var(--sp-2); }
    .lib-tile-theme .lib-tile-name,
    .lib-tile-theme .lib-tile-n,
    .lib-tile-theme .lib-tile-sub,
    .lib-tile-theme .lib-tile-credit { padding: 0 var(--sp-3); }
    .lib-tile-art { display: block; width: 100%; height: 74px; background: var(--wash); overflow: hidden; }
    .lib-tile-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-crop); }
    .lib-tile-art.hidden { display: none; }
    .lib-tile-type { display: flex; align-items: center; justify-content: center; width: 100%; height: 74px; background: var(--navy); }
    .lib-tile-type-mark { font-family: var(--font-mono); font-size: var(--fs-h2); font-weight: 700; letter-spacing: 1px; color: var(--green); }
    .lib-tile-lg { flex: 0 0 300px; scroll-snap-align: start; gap: var(--sp-2); padding-bottom: var(--sp-4); }
    .lib-tile-lg .lib-tile-art,
    .lib-tile-lg .lib-tile-type { height: 170px; }
    .lib-tile-lg .lib-tile-name { font-size: var(--fs-lg); }
    .lib-tile-lg .lib-tile-name,
    .lib-tile-lg .lib-tile-n,
    .lib-tile-lg .lib-tile-sub,
    .lib-tile-lg .lib-tile-credit { padding: 0 var(--sp-4); }

    .lib-rows { display: flex; flex-direction: column; gap: var(--sp-5); }
    .lib-row { min-width: 0; }
    .lib-row-head { display: flex; align-items: baseline; gap: var(--sp-3); margin-bottom: var(--sp-2); }
    .lib-row-n { font-family: var(--font-mono); font-size: var(--fs-lg); color: var(--navy); font-weight: 500; }
    .lib-row-name { margin: 0; font-family: var(--font-head); font-size: var(--fs-h2); font-weight: 700; color: var(--navy); line-height: var(--lh-tight); }
    .lib-row-nav { display: flex; gap: var(--sp-2); margin-left: auto; }
    .lib-row-arrow { display: inline-flex; align-items: center; justify-content: center; width: var(--hit); min-height: var(--hit); border: 1px solid var(--ctrl-line); border-radius: 50%; background: var(--card-bg); color: var(--navy); font-family: var(--font-ui); font-size: var(--fs-h2); line-height: 1; cursor: pointer; }
    .lib-row-arrow:hover:not(:disabled) { background: var(--navy-bg); border-color: var(--navy); }
    .lib-row-arrow:disabled { color: var(--soft); border-color: var(--hair); cursor: default; }
    .lib-row[data-fold-section-open="0"] .lib-row-nav { display: none; }
    .lib-strip { display: flex; gap: var(--sp-4); overflow-x: auto; overflow-y: hidden; padding: var(--sp-1) var(--sp-1) var(--sp-4); border-bottom: 3px solid var(--navy-line); box-shadow: 0 4px 0 -1px var(--hair); scroll-snap-type: x mandatory; scroll-behavior: smooth; scroll-padding-left: var(--sp-1); scrollbar-width: thin; }
    .lib-strip > .lib-cover { flex: 0 0 264px; scroll-snap-align: start; }

    .lib-cover { position: relative; display: flex; flex-direction: column; background: var(--card-bg); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; cursor: pointer; text-align: left; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; }
    .lib-cover:hover,
    .lib-cover:focus-visible,
    .lib-cover:focus-within { border-color: var(--green); box-shadow: var(--elev-2); transform: translateY(-4px); }
    .lib-cover-draft { border-style: dashed; }
    .lib-cover-art { display: block; height: 210px; background: var(--wash); overflow: hidden; }
    .lib-cover-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-crop); }
    .lib-cover-art.hidden { display: none; }
    .lib-cover-type { height: 210px; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--sp-2); padding: var(--sp-4); background: var(--navy); color: var(--card-bg); }
    .lib-cover-type-mark { font-family: var(--font-mono); font-size: var(--fs-cite); letter-spacing: 0.6px; text-transform: uppercase; color: var(--green); }
    .lib-cover-type-title { font-family: var(--font-head); font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-tight); }
    .lib-cover-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-4); }
    .lib-cover-title { font-family: var(--font-head); font-size: var(--fs-lg); font-weight: 700; color: var(--navy); line-height: var(--lh-tight); }
    .lib-cover-org { font-family: var(--font-ui); font-size: var(--fs-card-h); font-weight: 600; color: var(--ink); }
    .lib-cover-where { font-family: var(--font-ui); font-size: var(--fs-body); color: var(--mut); }
    .lib-cover-chip { align-self: flex-start; margin-top: var(--sp-2); padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); background: var(--wash); color: var(--mut); font-family: var(--font-ui); font-size: var(--fs-sub); font-weight: 500; }
    .lib-cover-lead { max-height: 0; opacity: 0; overflow: hidden; margin-top: var(--sp-2); font-family: var(--font-ui); font-size: var(--fs-body); color: var(--ink); line-height: var(--lh-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; transition: max-height 0.22s ease, opacity 0.22s ease; }
    .lib-cover:hover .lib-cover-lead,
    .lib-cover:focus-visible .lib-cover-lead,
    .lib-cover:focus-within .lib-cover-lead { max-height: 4.2em; opacity: 1; }
    .lib-cover-credit { display: block; margin: 0; padding: 0 var(--sp-4) var(--sp-3); font-family: var(--font-ui); font-size: var(--fs-cite); color: var(--mut); line-height: var(--lh-body); }
    .lib-cover-badge { position: absolute; top: var(--sp-2); right: var(--sp-2); z-index: 2; padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); background: var(--navy); color: var(--card-bg); font-family: var(--font-ui); font-size: var(--fs-chip); font-weight: 600; letter-spacing: 0.3px; }
    .lib-search:focus-visible,
    .lib-find-clear:focus-visible,
    .lib-random:focus-visible,
    .lib-shelf:focus-visible,
    .lib-pill:focus-visible,
    .lib-tile:focus-visible,
    .lib-row-arrow:focus-visible,
    .lib-pick:focus-visible,
    .lib-cover:focus-visible { outline: var(--focus-w) solid var(--focus); outline-offset: var(--focus-off); }
    @media (prefers-reduced-motion: reduce) {
      .lib-cover { transition: none; }
      .lib-cover:hover,
      .lib-cover:focus-visible,
      .lib-cover:focus-within { transform: none; }
      .lib-cover-lead { transition: none; }
      .lib-strip { scroll-behavior: auto; }
    }
    @media (max-width: 1100px) {
      .lib-drawer-geo .lib-drawer-in { grid-template-columns: 1fr; }
      .lib-geo-map { height: 200px !important; }
    }
    @media (max-width: 640px) {
      .lib { padding: var(--sp-3); }
      .lib-find-lbl { flex: 1 1 100%; }
      .lib-search { flex: 1 1 100%; }
      .lib-find-clear, .lib-random { flex: 1 1 calc(50% - var(--sp-2)); }
      .lib-shelf { flex: 1 1 calc(50% - var(--sp-2)); justify-content: space-between; }
      .lib-pills { max-height: 220px; }
      .lib-tiles { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); max-height: 300px; }
      .lib-tile-lg { flex: 0 0 78%; }
      .lib-tile-lg .lib-tile-art,
      .lib-tile-lg .lib-tile-type { height: 150px; }
      .lib-rows { gap: var(--sp-4); }
      .lib-row-name { font-size: var(--fs-lg); }
      .lib-strip { gap: var(--sp-3); }
      .lib-strip > .lib-cover { flex: 0 0 82%; }
      .lib-cover-art, .lib-cover-type { height: 180px; }
      .lib-cover-lead { max-height: 4.2em; opacity: 1; }
    }

    .lib-tile-mini { background: var(--navy-bg); }
    .lib-tile-mini > svg { display: block; width: 100%; height: 100%; }
    .tt-preview-flat > svg { display: block; width: 100%; height: 100%; }

.lib-read-note {
  font-size: 14px;
  line-height: 1.6;
  color: var(--mut);
  max-width: none;
  margin: 10px 0 14px;
}
@media (max-width: 640px) {
  .lib-read-note { font-size: 13px; margin: 8px 0 12px; }
}


    html.iih-embed .main-nav,
    html.iih-embed .section-index,
    html.iih-embed .site-footer,
    html.iih-embed #cookie-banner,
    html.iih-embed .mobile-nav { display: none !important; }

    html.iih-embed:not(.iih-consent-ai) #chat-bubble,
    html.iih-embed:not(.iih-consent-ai) #chat-panel,
    html.iih-embed:not(.iih-consent-ai) .chat-sheet-backdrop { display: none !important; }
    html.iih-embed:not(.iih-band) #chat-bubble { display: none !important; }

    html.iih-embed .chat-sheet-backdrop:not(.open) { opacity: 0 !important; pointer-events: none !important; }


    html.iih-embed.iih-no-nudge .tour-nudge { display: none !important; }

    html.iih-embed .iih-sr {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      margin: -1px !important;
      padding: 0 !important;
      overflow: hidden !important;
      clip: rect(0 0 0 0) !important;
      clip-path: inset(50%) !important;
      white-space: nowrap !important;
      border: 0 !important;
    }

    html.iih-embed.iih-heading-host .hero-title-band { display: none !important; }

    html.iih-embed { --section-index-offset: 12px; }

    html.iih-embed { --iih-vh: 720px; }
    html.iih-embed .hero-map { --hero-map-h: clamp(540px, calc(var(--iih-vh) * 0.64), 740px); }
    html.iih-embed.iih-band .modal-overlay { padding: 24px 16px !important; }
    html.iih-embed.iih-band .modal { max-height: calc(var(--iih-band-h) - 48px) !important; }
    html.iih-embed.iih-band .photo-full-img { max-height: calc(var(--iih-band-h) - 140px) !important; }
    html.iih-embed.iih-band body.map-fullscreen .tt-map { max-height: calc(var(--iih-band-h) - 96px) !important; }
    html.iih-embed.iih-band body.map-fullscreen #map-container > #world-map,
    html.iih-embed.iih-band body.map-fullscreen #world-map { height: var(--iih-band-h) !important; }

    html.iih-embed.iih-band { --iih-band-top: 0px; --iih-band-h: 100vh; }

    html.iih-embed.iih-band .modal-overlay,
    html.iih-embed.iih-band .policy-overlay,
    html.iih-embed.iih-band .cookie-prefs-overlay,
    html.iih-embed.iih-band .fv-overlay,
    html.iih-embed.iih-band .photo-full,
    html.iih-embed.iih-band .tour-overlay,
    html.iih-embed.iih-band .chat-sheet-backdrop,
    html.iih-embed.iih-band body.map-fullscreen #map-container {
      position: absolute !important;
      top: var(--iih-band-top) !important;
      bottom: auto !important;
      left: 0 !important;
      right: 0 !important;
      width: auto !important;
      height: var(--iih-band-h) !important;
    }

    html.iih-embed.iih-band .tour-progress {
      position: absolute !important;
      top: var(--iih-band-top) !important;
      bottom: auto !important;
    }
    html.iih-embed.iih-band body.map-fullscreen #map-close-btn {
      position: absolute !important;
      top: calc(var(--iih-band-top) + 14px) !important;
      bottom: auto !important;
    }
    html.iih-embed.iih-band body.map-fullscreen .mt-dock {
      position: absolute !important;
      top: calc(var(--iih-band-top) + var(--sp-3, 12px)) !important;
    }
    html.iih-embed.iih-band #back-to-top,
    html.iih-embed.iih-band body.map-fullscreen .tt-map {
      position: absolute !important;
      bottom: auto !important;
      transform: translateY(-100%) !important;
    }
    html.iih-embed.iih-band #back-to-top {
      top: calc(var(--iih-band-top) + var(--iih-band-h) - 24px) !important;
    }
    html.iih-embed.iih-band #chat-bubble {
      position: absolute !important;
      top: calc(var(--iih-band-top) + var(--iih-band-h) - var(--iih-fab-gap, 28px) - var(--iih-fab-h, 56px)) !important;
      bottom: auto !important;
    }
    @media (max-width: 768px) {
      html.iih-embed.iih-band.iih-consent-ai #chat-bubble.visible {
        --iih-fab-h: 52px;
        --iih-fab-gap: 16px;
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        left: auto !important;
      }
    }
    html.iih-embed.iih-band body.map-fullscreen .tt-map {
      top: calc(var(--iih-band-top) + var(--iih-band-h) - 40px) !important;
    }
    html.iih-embed.iih-band.iih-consent-ai #chat-panel {
      position: absolute !important;
      top: calc(var(--iih-band-top) + var(--iih-band-h) - 96px) !important;
      bottom: auto !important;
      transform: translateY(-100%) !important;
      height: calc(var(--iih-band-h) - 120px) !important;
      max-height: calc(var(--iih-band-h) - 120px) !important;
    }

    @media (max-width: 768px) {
      html.iih-embed.iih-band body:has(#modal-overlay.active) {
        overflow: visible !important;
        position: static !important;
        width: auto !important;
        height: auto !important;
      }
    }

    @media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
      :where(html.iih-embed) { --mnav-h: 0px; --mnav-gap: 0px; }
      html.iih-embed.iih-band body.map-fullscreen .tt-map {
        top: calc(var(--iih-band-top) + var(--iih-band-h) - var(--map-bottom-clear, 139px)) !important;
      }
    }

    @media (max-width: 768px), (max-width: 1024px) and (max-height: 480px) {
      html.iih-embed.iih-band body.map-fullscreen #chat-bubble {
        top: calc(var(--iih-band-top) + var(--iih-band-h) - var(--map-bottom-clear, 139px) - var(--iih-fab-h, 56px)) !important;
      }
    }


.mt-root { position: static; }

.mt-dock {
  display: none;
}
body.map-fullscreen .mt-dock {
  display: block;
  position: fixed;
  z-index: 10300;
  top: var(--sp-3, 12px);
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  max-width: calc(100vw - 24px);
  box-sizing: border-box;
  font-family: var(--font-ui, "Rubik", sans-serif);
}
body.map-fullscreen .mt-dock-btn { width: auto; padding: 0; border: 0; box-shadow: none; background: none; }
.mt-dock .tour-btn { min-height: var(--hit, 40px); }
.mt-dock .tour-btn-next { border: 1px solid var(--navy, #313d7f); }
.mt-dock .tour-btn-next {
  border-radius: var(--r-pill, 20px);
  box-shadow: var(--elev-2, 0 6px 18px rgba(49,61,127,.10));
  white-space: nowrap;
}
.mt-dock-new .mt-new-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: var(--sp-2, 8px);
  border-radius: 50%;
  background: var(--green, #93d73b);
  vertical-align: middle;
}
.mt-dock .tour-btn:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}

.mt-ring {
  position: fixed;
  z-index: 10290;
  pointer-events: none;
  border-radius: var(--r-tile, 10px);
  outline: 3px solid var(--navy, #313d7f);
  outline-offset: 0;
  box-shadow: 0 0 0 6px var(--card-bg, #ffffff);
  transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease;
}

.mt-tip.tour-tooltip {
  position: fixed;
  z-index: 10300;
  border: 1px solid var(--ctrl-line, #8a8890);
  min-width: 260px;
}
.mt-tip.tour-tooltip { overflow-y: auto; overscroll-behavior: contain; }
.mt-tip .tour-step-counter { font-variant-numeric: tabular-nums; }
.mt-tip .tour-actions.mt-actions { display: flex; gap: var(--sp-2, 8px); flex-wrap: wrap; justify-content: flex-start; }
.mt-tip .mt-exit { margin-left: auto; }
.mt-tip .tour-btn { min-height: var(--hit, 40px); }
.mt-tip .tour-btn[disabled] { opacity: 0.45; cursor: default; }
.mt-tip .tour-btn:focus-visible {
  outline: var(--focus-w, 2px) solid var(--focus, #313d7f);
  outline-offset: var(--focus-off, 2px);
}

body.map-tutorial-on .modal-overlay {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
  overflow: hidden;
  padding: var(--sp-4, 16px);
}
body.map-tutorial-on .modal-overlay.active { justify-content: flex-start; }
body.map-tutorial-on .modal {
  pointer-events: auto;
  max-width: 560px;
  max-height: calc(100vh - 32px);
  box-shadow: var(--elev-2, 0 6px 18px rgba(49,61,127,.10));
}

@media (max-width: 768px) {
  body.map-fullscreen.map-tutorial-on .mt-dock { display: none; }
  .mt-tip.tour-tooltip { min-width: 0; }
  body.map-tutorial-on .modal-overlay.active { align-items: flex-start; }
  body.map-tutorial-on .modal {
    max-width: none;
    max-height: calc(100vh - var(--mt-tip-h, 280px) - var(--map-bottom-clear, 12px) - 24px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mt-ring { transition: none; }
}

.mt-tip.tour-tooltip.arrow-top::before,
.mt-tip.tour-tooltip.arrow-bottom::before {
  left: var(--mt-arrow-x, 32px);
  transform: translateX(-50%) rotate(45deg);
}
.mt-tip.tour-tooltip.arrow-left::before,
.mt-tip.tour-tooltip.arrow-right::before {
  top: var(--mt-arrow-y, 24px);
  transform: translateY(-50%) rotate(45deg);
}

.fv-overlay { position: fixed; inset: 0; z-index: 10025; display: flex; align-items: center; justify-content: center; padding: 24px 16px; background: rgba(49,61,127,0.45); backdrop-filter: blur(4px); overflow-y: auto; }
.fv-dialog { text-align: center; background: var(--card-bg, #ffffff); border-radius: 16px; max-width: 560px; width: 100%; padding: 32px 32px 28px; box-shadow: 0 16px 48px rgba(49,61,127,0.2); font-family: 'Rubik', sans-serif; color: var(--ink, #39373a); line-height: 1.55; max-height: calc(100vh - 48px); overflow-y: auto; }
.fv-title { font-family: 'Source Serif Pro', serif; font-size: 24px; color: var(--navy, #313d7f); margin: 0 0 8px; }
.fv-text { margin: 0 0 16px; font-size: 15px; }
.fv-body { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; }
.fv-group { flex: 1 1 100%; margin: 4px 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.fv-group-label { flex: 1 1 100%; margin: 0 0 2px; font-size: 13px; font-weight: 600; color: var(--mut, #6a6870); }
.fv-btn { padding: 10px 18px; border-radius: 8px; font-family: 'Rubik', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; min-height: 44px; background: var(--card-bg, #ffffff); color: var(--navy, #313d7f); border: 1px solid var(--navy, #313d7f); }
.fv-btn.fv-go { background: var(--navy, #313d7f); color: var(--card-bg, #ffffff); }
#fv-explore.fv-btn { background: var(--green); color: var(--green-ink); border-color: var(--green); }
#fv-explore.fv-btn:hover { background: var(--green-h); color: var(--green-h-ink); border-color: var(--green-h); }
.fv-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border-radius: 8px; font-family: 'Rubik', sans-serif; font-size: 14px; font-weight: 600; background: var(--card-bg, #ffffff); color: var(--navy, #313d7f); border: 1px solid var(--navy, #313d7f); text-decoration: none; }
.fv-link:hover { background: var(--navy, #313d7f); color: var(--card-bg, #ffffff); }
.fv-dialog :focus-visible { outline: var(--focus-w, 2px) solid var(--focus, #313d7f); outline-offset: var(--focus-off, 2px); }
.fv-dialog:focus:not(:focus-visible) { outline: none; }
html.fv-open:not(.iih-embed) { overflow: hidden; }
@media (max-width: 480px) {
  .fv-dialog { padding: 24px 20px; }
  .fv-body { flex-direction: column; align-items: stretch; }
  .fv-btn { width: 100%; }
  .fv-link { justify-content: center; }
}
html.iih-embed.iih-band .fv-dialog { max-height: calc(var(--iih-band-h) - 48px); }
html.iih-embed.iih-consent-own .site-footer { display: block !important; }
