/* Zone-year overlay, separate from the underlying parcel map styles. */
/* Desktop: its own card in the free bottom-left corner, apart from the plot details on the right. */
.zone-years-panel{
  position:absolute;z-index:7;left:9px;bottom:32px;width:340px;
  padding:14px 16px 13px;border:1px solid rgba(0,63,87,.08);
  background:rgba(246,243,236,.98);box-shadow:0 12px 32px rgba(0,30,43,.14);
  transition:left .42s cubic-bezier(.22,1,.36,1);
}
/* The filter sidebar pushes the map right; the card follows it, like the attribution. */
body.filters-open .zone-years-panel{left:calc(var(--filter-panel-width) + 9px)}
.zone-years-panel[hidden]{display:none}
.zone-years-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}
.zone-years-heading h2{font-size:.88rem;font-weight:600;line-height:1.3}
.zone-years-heading p{margin-top:4px;font-size:.64rem;line-height:1.5;color:var(--muted)}
.zone-years-toggle{display:flex;align-items:center;gap:6px;min-height:36px;flex:none;padding:0 7px;border:1px solid var(--line);background:transparent;color:var(--navy);font-size:.6rem;cursor:pointer}
.zone-years-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.zone-years-toggle[aria-pressed="true"]{border-color:#008f8866;color:#007d78;background:#008f880a}
.zone-years-buttons{display:grid;grid-template-columns:1.15fr repeat(3,1fr);gap:6px}
.zone-years-buttons button{display:flex;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:0 4px;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:.74rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .18s,box-shadow .18s}
.zone-years-buttons button[data-zone-phase]:not([data-zone-phase="all"])::before{content:"";width:8px;height:8px;flex:none;border-radius:50%;background:var(--phase-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--phase-color) 12%,transparent)}
.zone-years-buttons button[aria-pressed="true"]{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff}
.zone-years-buttons button:not([data-zone-phase="all"])[aria-pressed="true"]{box-shadow:inset 0 -3px 0 var(--phase-color)}
.zone-years-buttons button:hover:not([aria-pressed="true"]){background:#eef3f0;border-color:#007d78}
.zone-years-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 12px;margin-top:11px;font-size:.64rem;color:var(--muted)}
.zone-years-fit{border:0;min-height:26px;background:transparent;color:#007d78;cursor:pointer;font-size:.64rem}
.zone-years-fit:disabled{opacity:.45;cursor:default}
.zone-years-list{margin-top:9px;border-top:1px solid var(--line);font-size:.66rem}
.zone-years-list summary{min-height:30px;padding:8px 0 0;cursor:pointer;color:var(--navy)}
.zone-years-list div{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-height:160px;overflow:auto;padding-top:10px}
.zone-years-list button{display:flex;align-items:center;gap:8px;min-height:36px;padding:3px 6px;border:0;background:transparent;color:var(--navy);text-align:left;cursor:pointer}
.zone-years-list button:hover{background:#e9efeb}
.zone-years-list button b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--zone-color);font-size:.59rem;color:#002b3c}
.zones-disabled .zone-years-buttons{opacity:.7}
/* Until zones are on, the card is just the switch and the periods. */
.zones-disabled .zone-years-footer,.zones-disabled .zone-years-list{display:none}
body.filters-open .map-toolbar .zone-years-panel{visibility:hidden;pointer-events:none}
.investment-zone-marker{display:grid;place-items:center;gap:4px;max-width:112px;border:0;background:transparent;color:var(--navy-deep);cursor:pointer}
.investment-zone-marker[hidden]{display:none}
.investment-zone-marker b{display:grid;place-items:center;width:29px;height:29px;border:2px solid #fff;border-radius:50%;background:var(--zone-color);box-shadow:0 2px 12px #002b3c30;color:#002b3c;font-size:11px;font-weight:600;transition:box-shadow .2s}
.investment-zone-marker span{padding:3px 6px;border:1px solid #ffffffb3;border-radius:3px;background:#f6f3eced;color:var(--navy-deep);font-size:10px;font-weight:500;line-height:1.15;white-space:nowrap;box-shadow:0 3px 12px #002b3c18}
.investment-zone-marker small{display:none;align-items:center;justify-content:center;gap:4px;margin-top:2px;font-size:9px;font-weight:400;color:#526d76}
.zone-markers-detailed .investment-zone-marker small{display:flex}
.zone-markers-compact .investment-zone-marker span{display:none}
.investment-zone-marker small::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:var(--phase-color)}
.investment-zone-marker:hover b,.investment-zone-marker.is-selected b{box-shadow:0 0 0 5px #fdda7270,0 0 20px #fdda72}
/* MapLibre sets its own font on the map; markers and the zone card use the page font. */
.investment-zone-marker,.investment-zone-popup-shell{font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* Above the zoom buttons, which would otherwise cover the card on a phone. */
.investment-zone-popup-shell{z-index:3}
.investment-zone-popup-shell .maplibregl-popup-content{padding:0;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--navy);box-shadow:0 12px 32px #002b3c30}
.investment-zone-popup-shell.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.investment-zone-popup-shell.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.investment-zone-popup-shell.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--paper)}
.investment-zone-popup-shell.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.investment-zone-popup-shell.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.investment-zone-popup-shell.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--paper)}
.investment-zone-popup-shell.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--paper)}
.investment-zone-popup-shell.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--paper)}
/* Same round close button as the plot card; the cross is drawn, not a font glyph. */
.investment-zone-popup-shell .maplibregl-popup-close-button{top:16px;right:16px;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--navy);font-size:0;transition:background .18s,border-color .18s,color .18s}
.investment-zone-popup-shell .maplibregl-popup-close-button::before,
.investment-zone-popup-shell .maplibregl-popup-close-button::after{content:"";position:absolute;top:50%;left:50%;width:11px;height:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.investment-zone-popup-shell .maplibregl-popup-close-button::after{transform:translate(-50%,-50%) rotate(-45deg)}
.investment-zone-popup-shell .maplibregl-popup-close-button:hover{border-color:#008f88;background:rgba(0,168,159,.1);color:#007d78}
.investment-zone-popup{overflow-y:auto;overscroll-behavior:contain;padding:16px 18px 14px}
.investment-zone-popup-head{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;min-height:30px;padding-right:40px}
.investment-zone-popup-number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--zone-color);color:#002b3c;font-size:12px;font-weight:600}
.investment-zone-popup h3{margin:0;font-size:17px;font-weight:500;line-height:1.2}
.investment-zone-popup-title small{display:block;margin-top:3px;font-size:11px;line-height:1.3;color:var(--muted)}
.investment-zone-popup-period{margin-top:14px;padding:10px 12px;border-left:3px solid var(--phase-color);background:color-mix(in srgb,var(--phase-color) 9%,transparent)}
.investment-zone-popup-period strong{display:block;font-size:20px;font-weight:500;line-height:1.15;font-variant-numeric:tabular-nums}
.investment-zone-popup-period p{margin-top:4px;font-size:11px;line-height:1.4;color:var(--muted)}
.investment-zone-popup-kicker{margin-top:14px;color:#007d78;font-size:9.5px;font-weight:600;line-height:1.3;letter-spacing:.12em;text-transform:uppercase}
.investment-zone-popup-identity{margin-top:5px;font-size:13px;line-height:1.45}
.investment-zone-popup-anchors{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.investment-zone-popup-anchors span{padding:5px 8px;border:1px solid var(--line);background:#fff;font-size:11px;line-height:1.35}
.investment-zone-popup-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:8px;border:1px solid var(--line);background:var(--line)}
.investment-zone-popup-fact{padding:8px 9px;background:var(--paper)}
.investment-zone-popup-fact b{display:block;font-size:12.5px;font-weight:500;line-height:1.25;font-variant-numeric:tabular-nums;white-space:nowrap}
.investment-zone-popup-fact span{display:block;margin-top:4px;font-size:9.5px;line-height:1.35;color:var(--muted)}
.investment-zone-popup>small{display:block;margin-top:12px;font-size:10px;line-height:1.5;color:var(--muted)}
@media (max-width:820px){
  .map-stage .map-toolbar .zone-years-panel{position:relative;inset:auto;grid-column:1 / -1;width:100%;padding:10px 0 2px;border:0;border-top:1px solid var(--line);box-shadow:none;background:transparent}
  .zone-years-heading{margin-bottom:9px;gap:8px;align-items:center}
  .zone-years-heading h2{font-size:.78rem}
  .zone-years-heading p{display:none}
  .zone-years-toggle{min-height:32px;padding:0 6px;font-size:.6rem}
  .zone-years-buttons{gap:5px}
  .zone-years-buttons button{min-height:40px;gap:7px;padding-inline:6px;font-size:.72rem}
  .zone-years-buttons button:not([data-zone-phase="all"])::before{width:6px;height:6px;box-shadow:none}
  .zone-years-footer{margin-top:7px;font-size:.58rem}
  .zone-years-fit{font-size:.58rem;min-height:24px}
  .zone-years-list{margin-top:6px}
  .zone-years-list summary{padding-top:5px;min-height:24px;font-size:.6rem}
  .investment-zone-marker b{width:24px;height:24px;font-size:10px}
  .investment-zone-marker span{font-size:9px;padding:2px 4px}
}
@media (max-width:360px){
  .zone-years-toggle span{display:none}
  .zone-years-buttons button{font-size:.66rem;gap:5px;padding-inline:4px}
}
