﻿ .map-page-conditions,.map-page-habitat{max-width:1100px;margin:0 auto;padding:0 1rem 2rem;}.map-static-copy{margin-top:0.9rem;padding:1rem 1.05rem;}.map-noscript-list{margin:0.4rem 0 0;padding-left:1.2rem;display:grid;gap:0.35rem;}.map-hero{padding:0;}.map-hero-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.5rem 0 1rem;flex-wrap:wrap;}.map-hero-text{flex:1 1 auto;min-width:0;}.map-hero-title{margin:0;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:800;letter-spacing:-0.02em;background:linear-gradient(135deg,#ffffff 0%,#8de4ff 60%,var(--shimmer) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}.map-hero-subtitle{margin:0.3rem 0 0;color:rgba(180,220,245,0.7);font-size:0.95rem;font-weight:500;}.map-hero-link{flex-shrink:0;white-space:nowrap;color:rgba(180,220,245,0.5);font-size:0.9rem;font-weight:500;text-decoration:none;transition:color 0.2s;}.map-hero-link:hover{color:var(--shimmer);}.map-viewport{position:relative;margin:0 0 1.5rem;border-radius:20px;overflow:hidden;border:1px solid rgba(78,205,255,0.25);box-shadow:0 0 40px rgba(20,130,200,0.2),0 0 80px rgba(10,80,140,0.1),inset 0 0 0 1px rgba(145,228,255,0.08);}.map-canvas{position:relative;isolation:isolate;width:100%;min-height:600px;overflow:hidden;background:#0a1628;}.map-canvas .leaflet-interactive:focus,.map-canvas .leaflet-marker-icon:focus,.map-canvas *:focus{outline:none !important;}.map-canvas.leaflet-container,.map-canvas .leaflet-container{width:100%;height:100%;background:#0a1628;}.map-canvas .leaflet-tile{filter:saturate(1.22) hue-rotate(192deg) brightness(0.6) contrast(1.1);}.map-canvas .leaflet-overlay-pane path{filter:drop-shadow(0 0 4px rgba(68,211,255,0.2));}.map-canvas .leaflet-overlay-pane path.map-river-core{transition:stroke 260ms cubic-bezier(0.22,1,0.36,1),stroke-opacity 260ms cubic-bezier(0.22,1,0.36,1),stroke-width 280ms cubic-bezier(0.22,1,0.36,1);pointer-events:none !important;}.map-canvas .leaflet-overlay-pane path.map-river-glow{transition:stroke-opacity 420ms cubic-bezier(0.22,1,0.36,1),stroke-width 420ms cubic-bezier(0.22,1,0.36,1),filter 460ms cubic-bezier(0.22,1,0.36,1);filter:drop-shadow(0 0 4px rgba(130,255,240,0.45));pointer-events:none !important;}.map-neon-overlay{position:absolute;inset:0;z-index:250;pointer-events:none;background-image:linear-gradient(to right,rgba(100,180,255,0.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(100,180,255,0.03) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(circle at center,#000 20%,transparent 100%);-webkit-mask-image:radial-gradient(circle at center,#000 20%,transparent 100%);}.map-status-float{position:absolute;top:12px;left:12px;z-index:500;display:flex;align-items:center;gap:0.5rem;padding:0.4rem 0.85rem;border-radius:999px;background:rgba(6,14,30,0.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(78,205,255,0.2);box-shadow:0 4px 16px rgba(0,0,0,0.3);transition:opacity 180ms ease,transform 220ms ease;}.map-status-dot{width:8px;height:8px;border-radius:50%;background:var(--shimmer);box-shadow:0 0 6px var(--shimmer);animation:map-pulse 2s ease-in-out infinite;}@keyframes map-pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}.map-status{margin:0;color:rgba(200,230,255,0.85);font-size:0.8rem;font-weight:600;letter-spacing:0.01em;}.map-river-badge{position:absolute;top:12px;right:12px;z-index:500;max-width:min(68vw,320px);padding:0.35rem 0.75rem;border-radius:999px;background:rgba(6,14,30,0.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(78,205,255,0.22);box-shadow:0 4px 16px rgba(0,0,0,0.28);color:rgba(200,235,255,0.9);font-size:0.78rem;font-weight:700;letter-spacing:0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;opacity:0;transform:translateY(-6px);transition:opacity 220ms ease,transform 220ms ease;}.map-river-badge.is-visible{opacity:1;transform:translateY(0);}.map-river-sheet-shell{position:absolute;inset:0;z-index:620;pointer-events:none;}.map-river-sheet-backdrop{position:absolute;inset:0;background:rgba(3,10,22,0.48);opacity:0;visibility:hidden;transition:opacity 240ms ease,visibility 240ms ease;pointer-events:none;}.map-river-sheet{position:absolute;top:0;left:0;width:min(34vw,440px);min-width:320px;height:100%;display:flex;flex-direction:column;gap:0.72rem;padding:0.98rem 0.9rem 0.86rem;background:radial-gradient(120% 110% at 40% -14%,rgba(96,223,255,0.14) 0%,rgba(96,223,255,0) 50%),linear-gradient(180deg,rgba(7,18,36,0.965),rgba(5,14,30,0.95));border-right:1px solid rgba(94,188,228,0.24);box-shadow:12px 0 40px rgba(0,0,0,0.36),inset 0 1px 0 rgba(188,233,252,0.1);transform:translateX(calc(-105% + var(--map-sheet-drag-offset,0px)));visibility:hidden;transition:transform 280ms cubic-bezier(0.22,1,0.36,1),box-shadow 220ms ease,visibility 280ms ease;pointer-events:auto;will-change:transform;}.map-river-sheet-shell.is-open .map-river-sheet-backdrop{opacity:1;visibility:visible;pointer-events:auto;}.map-river-sheet-shell.is-open .map-river-sheet{transform:translateX(var(--map-sheet-drag-offset,0px));visibility:visible;}.map-viewport.has-river-sheet-open .map-legend-float,.map-viewport.has-river-sheet-open .map-status-float,.map-viewport.has-river-sheet-open .map-river-badge{opacity:0;pointer-events:none;transform:translateY(8px);}.map-river-sheet-grab-area{display:none;}.map-river-sheet-grab-handle{display:block;width:44px;height:5px;border-radius:999px;background:linear-gradient(90deg,rgba(181,230,250,0.78),rgba(142,210,240,0.6));box-shadow:0 1px 0 rgba(255,255,255,0.22),0 0 8px rgba(138,219,255,0.3);}.map-river-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.82rem;padding:0.22rem 0.42rem 0.58rem;border-bottom:1px solid rgba(86,169,206,0.24);}.map-river-sheet-head>div{min-width:0;padding-right:0.25rem;}.map-river-sheet-kicker{margin:0 0 0.24rem;color:rgba(170,221,246,0.72);font-size:0.69rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;}.map-river-sheet-title{margin:0;color:#e4f8ff;font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.2;letter-spacing:-0.01em;}.map-river-sheet-meta{margin:0.32rem 0 0;color:rgba(174,210,229,0.86);font-size:0.79rem;}.map-river-sheet-close{width:2.06rem;height:2.06rem;border-radius:12px;border:1px solid rgba(108,193,236,0.42);background:rgba(8,24,45,0.74);color:#cdeefe;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.15rem;line-height:1;flex-shrink:0;transition:transform 150ms ease,border-color 150ms ease,background 150ms ease,color 150ms ease;}.map-river-sheet-close:hover,.map-river-sheet-close:focus-visible{border-color:rgba(145,242,255,0.76);background:rgba(15,42,74,0.84);color:#f0fdff;transform:translateY(-1px);outline:none;}.map-river-sheet-body{min-height:0;display:flex;flex-direction:column;padding:0.08rem 0.38rem 0.24rem;}.map-river-station-list{list-style:none;margin:0;padding:0.12rem 0.08rem 0.2rem;display:grid;gap:0.7rem;overflow:auto;max-height:100%;}.map-river-station-row{--map-station-accent:#67d6ff;--map-station-accent-soft:rgba(103,214,255,0.32);--map-station-shadow:rgba(34,126,170,0.24);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0.56rem;align-items:stretch;border-radius:14px;border:1px solid rgba(108,180,213,0.2);background:linear-gradient(152deg,color-mix(in srgb,var(--map-station-accent) 8%,rgba(7,22,40,0.82)) 0%,rgba(5,17,33,0.9) 72%);box-shadow:inset 0 1px 0 rgba(196,235,251,0.06),0 6px 14px rgba(0,0,0,0.18);padding:0.42rem;}.map-river-station-focus{border:1px solid color-mix(in srgb,var(--map-station-accent) 30%,rgba(199,231,246,0.24));border-radius:12px;background:linear-gradient(148deg,color-mix(in srgb,var(--map-station-accent) 14%,rgba(9,27,49,0.9)) 0%,rgba(6,18,37,0.92) 76%);color:#d5effb;text-align:left;padding:0.66rem 0.78rem;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:0.74rem;cursor:pointer;transition:border-color 150ms ease,background 150ms ease,transform 150ms ease,box-shadow 150ms ease;}.map-river-station-focus:hover,.map-river-station-focus:focus-visible{border-color:color-mix(in srgb,var(--map-station-accent) 56%,rgba(164,232,255,0.8));background:linear-gradient(148deg,color-mix(in srgb,var(--map-station-accent) 24%,rgba(11,34,59,0.94)) 0%,rgba(8,25,48,0.94) 75%);transform:translateY(-1px);box-shadow:0 10px 20px rgba(0,0,0,0.28);outline:none;}.map-river-station-primary{min-width:0;display:grid;gap:0.18rem;}.map-river-station-name{display:block;color:#eaf9ff;font-size:0.97rem;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.map-river-station-meta{color:rgba(182,216,236,0.84);font-size:0.77rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.map-river-station-side{display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:0.28rem;flex-shrink:0;}.map-river-station-score{display:inline-flex;align-items:center;justify-content:center;min-width:58px;height:28px;padding:0 0.46rem;border-radius:9px;border:1px solid color-mix(in srgb,var(--map-station-accent) 48%,rgba(226,245,255,0.34));background:linear-gradient(148deg,color-mix(in srgb,var(--map-station-accent) 20%,rgba(9,27,49,0.88)) 0%,rgba(7,20,39,0.92) 72%);color:#eaf8ff;font-size:0.72rem;font-weight:700;letter-spacing:0.01em;box-shadow:0 0 0 1px color-mix(in srgb,var(--map-station-accent) 16%,transparent) inset;}.map-river-station-side .map-stale-pill{margin:0;padding:0.08rem 0.42rem;border-radius:999px;font-size:0.62rem;font-weight:700;line-height:1.1;}.map-river-station-link{align-self:stretch;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;color:#e7faff;font-size:0.74rem;font-weight:700;text-decoration:none;border:1px solid color-mix(in srgb,var(--map-station-accent) 46%,rgba(179,229,249,0.28));border-radius:11px;padding:0 0.78rem;letter-spacing:0.01em;background:linear-gradient(170deg,color-mix(in srgb,var(--map-station-accent) 12%,rgba(10,35,58,0.88)) 0%,rgba(7,24,43,0.84) 74%);transition:border-color 150ms ease,color 150ms ease,background 150ms ease,transform 150ms ease;}.map-river-station-link:hover,.map-river-station-link:focus-visible{color:#ecfeff;border-color:color-mix(in srgb,var(--map-station-accent) 64%,rgba(188,240,255,0.76));background:linear-gradient(170deg,color-mix(in srgb,var(--map-station-accent) 22%,rgba(13,48,79,0.9)) 0%,rgba(9,33,57,0.88) 72%);transform:translateY(-1px);outline:none;}.map-river-station-row[data-tier="good"]{--map-station-accent:#34d399;--map-station-shadow:rgba(38,151,108,0.25);}.map-river-station-row[data-tier="moderate"]{--map-station-accent:#f7b731;--map-station-shadow:rgba(166,118,25,0.24);}.map-river-station-row[data-tier="poor"]{--map-station-accent:#f87171;--map-station-shadow:rgba(173,59,59,0.24);}.map-river-station-row[data-tier="unavailable"]{--map-station-accent:#7f96a8;--map-station-shadow:rgba(77,95,109,0.24);}.map-river-sheet-empty{margin:0.42rem 0 0;padding:0.8rem 0.84rem;color:rgba(174,208,229,0.84);font-size:0.82rem;line-height:1.46;border:1px dashed rgba(110,198,236,0.34);border-radius:12px;background:linear-gradient(162deg,rgba(9,27,49,0.78),rgba(6,20,39,0.86));box-shadow:inset 0 1px 0 rgba(183,231,253,0.08);}@media (prefers-reduced-motion:reduce){.map-river-sheet,.map-river-sheet-backdrop,.map-river-station-focus,.map-river-station-link,.map-river-badge{transition-duration:1ms !important;}}.map-legend-float{position:absolute;bottom:12px;left:12px;right:12px;z-index:500;display:flex;flex-wrap:wrap;gap:0.6rem 1.2rem;padding:0.55rem 1rem;border-radius:14px;background:rgba(6,14,30,0.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(78,205,255,0.15);box-shadow:0 4px 20px rgba(0,0,0,0.25);transition:opacity 180ms ease,transform 220ms ease;}.map-legend-item{display:inline-flex;align-items:center;gap:0.4rem;color:rgba(200,225,250,0.75);font-size:0.82rem;font-weight:500;}.map-legend-item>span:last-child{display:inline-block;white-space:nowrap;}.map-dot{width:18px;height:12px;border-radius:4px;display:inline-block;border:1px solid rgba(255,255,255,0.1);background:rgba(6,14,30,0.7);position:relative;overflow:hidden;box-shadow:0 0 5px rgba(0,0,0,0.3);}.map-dot::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5px;background:currentColor;}.map-dot-good{background:#34d399;color:#34d399;}.map-dot-moderate{background:#f7b731;color:#f7b731;}.map-dot-poor{background:#f87171;color:#f87171;}.map-dot-unavailable{background:#7f96a8;color:#7f96a8;}[data-theme="river"] .map-viewport{border-color:rgba(83,211,161,0.25);box-shadow:0 0 40px rgba(30,140,90,0.2),0 0 80px rgba(15,90,50,0.1),inset 0 0 0 1px rgba(83,211,161,0.08);}[data-theme="river"] .map-canvas{background:radial-gradient(ellipse at 30% 40%,rgba(15,80,50,0.6) 0%,transparent 60%),radial-gradient(ellipse at 70% 70%,rgba(10,60,40,0.5) 0%,transparent 55%),radial-gradient(ellipse at 50% 20%,rgba(20,100,60,0.3) 0%,transparent 50%),linear-gradient(180deg,#061e12 0%,#0b3a22 35%,#0d4730 65%,#09301c 100%);}[data-theme="river"] .map-canvas .leaflet-tile{filter:saturate(1.16) hue-rotate(120deg) brightness(0.62) contrast(1.08);}[data-theme="river"] .map-canvas .leaflet-overlay-pane path{filter:drop-shadow(0 0 4px rgba(146,255,176,0.18));}[data-theme="river"] .map-canvas .leaflet-overlay-pane path.map-river-glow{filter:drop-shadow(0 0 4px rgba(216,255,122,0.42));}[data-theme="river"] .map-status-float,[data-theme="river"] .map-legend-float{border-color:rgba(83,211,161,0.2);background:rgba(6,30,18,0.82);}[data-theme="river"] .map-river-badge{border-color:rgba(83,211,161,0.3);background:rgba(6,30,18,0.84);color:#9fffd0;}[data-theme="river"] .map-river-sheet{background:radial-gradient(140% 120% at 50% -24%,rgba(129,255,193,0.15) 0%,rgba(129,255,193,0) 50%),linear-gradient(180deg,rgba(6,28,17,0.96),rgba(5,22,14,0.94));border-right-color:rgba(83,211,161,0.32);border-top-color:rgba(83,211,161,0.32);}[data-theme="river"] .map-river-sheet-backdrop{background:rgba(4,18,11,0.54);}[data-theme="river"] .map-river-sheet-grab-handle{background:linear-gradient(90deg,rgba(182,255,220,0.76),rgba(145,241,193,0.6));box-shadow:0 1px 0 rgba(244,255,250,0.24),0 0 10px rgba(123,235,176,0.34);}[data-theme="river"] .map-river-sheet-kicker{color:rgba(138,255,201,0.82);}[data-theme="river"] .map-river-sheet-meta,[data-theme="river"] .map-river-sheet-empty,[data-theme="river"] .map-river-station-meta{color:rgba(181,241,214,0.84);}[data-theme="river"] .map-river-sheet-empty{border-color:rgba(111,224,169,0.44);background:linear-gradient(160deg,rgba(9,38,25,0.82),rgba(7,28,19,0.9));box-shadow:inset 0 1px 0 rgba(182,255,222,0.08);}[data-theme="river"] .map-river-station-row{border-color:rgba(102,205,157,0.28);background:linear-gradient(152deg,color-mix(in srgb,var(--map-station-accent) 9%,rgba(8,34,22,0.9)) 0%,rgba(7,28,18,0.94) 72%);box-shadow:inset 0 1px 0 rgba(166,255,210,0.08),0 6px 14px rgba(0,0,0,0.2);}[data-theme="river"] .map-river-sheet-close{border-color:rgba(117,236,173,0.42);background:rgba(7,40,25,0.76);color:#c9ffe6;}[data-theme="river"] .map-river-sheet-close:hover,[data-theme="river"] .map-river-sheet-close:focus-visible{border-color:rgba(142,255,197,0.84);background:rgba(12,62,37,0.82);}[data-theme="river"] .map-river-station-focus{border-color:color-mix(in srgb,var(--map-station-accent) 36%,rgba(150,243,200,0.34));background:linear-gradient(148deg,color-mix(in srgb,var(--map-station-accent) 14%,rgba(10,44,29,0.9)) 0%,rgba(7,31,20,0.92) 76%);--map-station-accent:#84f4b9;--map-station-accent-soft:rgba(116,238,180,0.44);}[data-theme="river"] .map-river-station-focus:hover,[data-theme="river"] .map-river-station-focus:focus-visible{border-color:color-mix(in srgb,var(--map-station-accent) 64%,rgba(171,255,217,0.82));background:linear-gradient(148deg,color-mix(in srgb,var(--map-station-accent) 24%,rgba(14,63,41,0.94)) 0%,rgba(10,41,28,0.92) 75%);}[data-theme="river"] .map-river-station-link{color:#b4ffe0;border-color:color-mix(in srgb,var(--map-station-accent) 50%,rgba(165,251,211,0.44));background:linear-gradient(170deg,color-mix(in srgb,var(--map-station-accent) 12%,rgba(9,42,28,0.9)) 0%,rgba(7,33,22,0.86) 74%);}[data-theme="river"] .map-river-station-link:hover,[data-theme="river"] .map-river-station-link:focus-visible{color:#e4fff4;border-color:color-mix(in srgb,var(--map-station-accent) 68%,rgba(188,255,227,0.88));background:linear-gradient(170deg,color-mix(in srgb,var(--map-station-accent) 22%,rgba(12,54,36,0.94)) 0%,rgba(8,40,27,0.9) 74%);}[data-theme="river"] .map-canvas .leaflet-popup-content-wrapper,[data-theme="river"] .map-canvas .leaflet-popup-tip{background:rgba(6,30,18,0.92);border-color:rgba(83,211,161,0.22);}[data-theme="river"] .map-canvas .leaflet-control-zoom a{background:rgba(6,30,18,0.85);border-color:rgba(83,211,161,0.25);color:#7fffb8;}[data-theme="river"] .map-water-tooltip{background:rgba(6,30,18,0.88);border-color:rgba(83,211,161,0.35);color:#9fffd0;}[data-theme="river"] .map-neon-overlay{background-image:linear-gradient(to right,rgba(83,211,161,0.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(83,211,161,0.03) 1px,transparent 1px);}[data-theme="river"] .map-popup-time{color:#9ad7b8;}[data-theme="river"] .map-popup-species-name{color:rgba(214,250,229,0.92);}[data-theme="river"] .map-popup-species-row strong{color:#ecfff4;}[data-theme="river"] .map-popup-bar{background:rgba(106,145,116,0.22);}[data-theme="river"] .map-popup-bar span{background:linear-gradient(90deg,#75d676,#e4ff8a);}[data-theme="river"] .map-stale-pill{background:rgba(111,175,137,0.2);color:#bdeed5;}[data-theme="river"] .ms-badge{background:rgba(6,30,18,0.85);}.map-station-icon{background:none !important;border:none !important;}.ms-marker{display:inline-flex;flex-direction:column;align-items:center;gap:3px;}.ms-badge{display:flex;align-items:center;justify-content:center;width:38px;height:26px;border-radius:7px;background:rgba(6,14,30,0.85);border:1.5px solid var(--ms-border,rgba(123,135,148,0.25));box-shadow:0 2px 8px rgba(0,0,0,0.45),0 0 12px var(--ms-glow,transparent),inset 0 1px 0 rgba(255,255,255,0.06);transition:transform 0.22s cubic-bezier(0.22,1,0.36,1),box-shadow 0.22s ease,border-color 0.22s ease;cursor:pointer;position:relative;overflow:hidden;transform:scale(var(--ms-scale,1));}.ms-species-dots{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:6px;padding:0 1px;pointer-events:none;}.ms-species-dot{width:5px;height:5px;border-radius:50%;background:var(--ms-species-color,#7b8794);box-shadow:0 0 0 1px color-mix(in srgb,var(--ms-species-color,#7b8794) 44%,rgba(0,0,0,0.4)),0 0 6px color-mix(in srgb,var(--ms-species-color,#7b8794) 50%,transparent);}.ms-species-dot.is-unsupported{background:rgba(123,135,148,0.78);box-shadow:0 0 0 1px rgba(123,135,148,0.35);}.ms-badge::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5px;background:var(--ms-accent,#7b8794);opacity:0.9;}.ms-val{font-size:13px;font-weight:800;font-family:system-ui,-apple-system,sans-serif;color:#e8f4ff;letter-spacing:-0.02em;line-height:1;padding-left:2px;text-shadow:0 1px 2px rgba(0,0,0,0.4);}.map-station-icon:hover .ms-badge{transform:scale(1.18);box-shadow:0 4px 16px rgba(0,0,0,0.5),0 0 20px var(--ms-glow,transparent),0 0 30px var(--ms-glow,transparent),inset 0 1px 0 rgba(255,255,255,0.1);border-color:var(--ms-accent,rgba(123,135,148,0.4));z-index:1000 !important;}.map-station-stale .ms-badge{opacity:0.55;}.map-station-stale .ms-val{color:#8899a6;}.map-station-stale-data .ms-badge{opacity:0.82;}.map-canvas .leaflet-popup-content-wrapper,.map-canvas .leaflet-popup-tip{background:rgba(10,22,45,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#d5f4ff;border:1px solid rgba(78,205,255,0.22);box-shadow:0 8px 32px rgba(0,0,0,0.5);border-radius:12px;}.map-canvas .leaflet-popup-content{margin:0.8rem 1rem;}.map-canvas .leaflet-popup.map-station-popup{margin-bottom:10px;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-content-wrapper{border-radius:14px;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-content{margin:0.76rem 0.9rem;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-close-button{top:6px;right:6px;color:rgba(191,231,250,0.88);font-size:1.1rem;opacity:0.92;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-close-button:hover{color:#e4fbff;}.map-canvas .leaflet-control-zoom a{background:rgba(6,14,30,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#9defff;border-color:rgba(78,205,255,0.25);transition:background 0.2s,color 0.2s;}.map-canvas .leaflet-control-zoom a:hover{background:rgba(20,60,100,0.7);color:#fff;}.map-water-tooltip{background:rgba(6,14,30,0.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(78,205,255,0.35);color:#b7f4ff;font-weight:600;letter-spacing:0.02em;border-radius:8px;padding:4px 10px;}.map-canvas .leaflet-tooltip{background:rgba(6,14,30,0.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(78,205,255,0.2);color:#c8e8f8;font-size:0.82rem;font-weight:600;letter-spacing:0.01em;border-radius:8px;padding:5px 10px;box-shadow:0 4px 16px rgba(0,0,0,0.4);white-space:nowrap;}.map-canvas .leaflet-tooltip-top::before{border-top-color:rgba(6,14,30,0.9);}.map-canvas .leaflet-tooltip-bottom::before{border-bottom-color:rgba(6,14,30,0.9);}.map-canvas .leaflet-tooltip-left::before{border-left-color:rgba(6,14,30,0.9);}.map-canvas .leaflet-tooltip-right::before{border-right-color:rgba(6,14,30,0.9);}[data-theme="river"] .map-canvas .leaflet-tooltip{background:rgba(6,30,18,0.9);border-color:rgba(83,211,161,0.25);color:#b8f0d0;}[data-theme="river"] .map-canvas .leaflet-tooltip-top::before{border-top-color:rgba(6,30,18,0.9);}[data-theme="river"] .map-canvas .leaflet-tooltip-bottom::before{border-bottom-color:rgba(6,30,18,0.9);}[data-theme="river"] .map-canvas .leaflet-tooltip-left::before{border-left-color:rgba(6,30,18,0.9);}[data-theme="river"] .map-canvas .leaflet-tooltip-right::before{border-right-color:rgba(6,30,18,0.9);}.map-popup h3{margin:0 0 0.45rem;font-size:1.05rem;font-weight:700;}.map-popup-line{margin:0 0 0.4rem;font-size:0.88rem;}.map-popup-time{color:#8ebcd2;font-size:0.78rem;}.map-popup-link{font-weight:700;color:var(--shimmer);}.map-stale-pill{display:inline-flex;margin-left:0.4rem;padding:0.1rem 0.45rem;border-radius:999px;background:rgba(120,154,173,0.22);color:#a8cde0;font-size:0.72rem;font-weight:700;}.map-popup-species{display:grid;gap:0.25rem;margin:0.35rem 0 0.45rem;}.map-popup-species-row{display:grid;grid-template-columns:4.8rem minmax(80px,1fr) 2.4rem;align-items:center;gap:0.45rem;font-size:0.74rem;padding:0.15rem 0;}.map-popup-species-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(206,236,250,0.92);}.map-popup-species-row strong{color:#def6ff;font-size:0.74rem;text-align:right;}.map-popup-species-row--unsupported{opacity:0.58;}.map-popup-species-row--unsupported .map-popup-species-name{color:rgba(170,191,205,0.92);}.map-popup-species-row--unsupported strong{color:rgba(170,191,205,0.95);}.map-popup-bar{height:6px;background:rgba(100,130,148,0.25);border-radius:999px;overflow:hidden;}.map-popup-bar.is-unsupported{background:rgba(132,149,162,0.24);}.map-popup-bar span{display:block;height:100%;background:linear-gradient(90deg,#27b6ff,#61ffe8);border-radius:999px;}.habitat-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;}.habitat-sidebar{background:linear-gradient(180deg,rgba(4,17,34,0.92),rgba(3,13,28,0.9));border:1px solid rgba(95,218,255,0.2);border-radius:16px;padding:0.8rem;max-height:700px;display:flex;flex-direction:column;gap:0.65rem;}.habitat-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;}.map-section-title{margin:0;font-size:1rem;}.map-input{width:100%;border-radius:12px;border:1px solid rgba(97,225,255,0.26);background:rgba(8,28,50,0.58);color:var(--text-primary);padding:0.65rem 0.75rem;}.habitat-selected-title{margin:0;color:var(--text-primary);font-size:0.88rem;line-height:1.4;}.habitat-fish-grid{display:grid;gap:0.45rem;overflow:auto;padding-right:0.2rem;}.habitat-fish-card{border:1px solid rgba(95,218,255,0.24);background:linear-gradient(150deg,rgba(8,24,48,0.9),rgba(5,16,36,0.86));color:var(--text-primary);border-radius:12px;padding:0.45rem;display:grid;grid-template-columns:62px minmax(0,1fr);gap:0.55rem;align-items:center;text-align:left;cursor:pointer;transition:transform 0.15s ease,border-color 0.15s ease,background 0.15s ease;box-shadow:inset 0 0 0 1px rgba(145,230,255,0.08);}.habitat-fish-card:hover,.habitat-fish-card:focus-visible{transform:translateY(-1px) scale(1.01);border-color:rgba(89,240,255,0.58);background:linear-gradient(150deg,rgba(9,34,64,0.94),rgba(7,22,48,0.9));}.habitat-fish-card.active{border-color:rgba(124,255,236,0.95);background:linear-gradient(150deg,rgba(13,58,82,0.92),rgba(10,36,60,0.9));box-shadow:inset 0 0 0 1px rgba(162,255,244,0.45),0 0 18px rgba(34,210,255,0.35);}.habitat-fish-thumb{width:62px;height:44px;object-fit:contain;border-radius:8px;background:linear-gradient(180deg,rgba(4,22,40,0.94),rgba(2,11,24,0.94));border:1px solid rgba(91,216,255,0.18);}.habitat-fish-text{display:grid;gap:0.2rem;min-width:0;}.habitat-fish-text strong,.habitat-fish-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.habitat-fish-text strong{font-size:0.9rem;}.habitat-fish-text small{color:var(--text-secondary);font-size:0.74rem;}.habitat-map-wrap{min-width:0;}.map-note{margin-top:0.7rem;color:var(--text-secondary);font-size:0.85rem;}@media (max-width:980px){body.map-river-sheet-open{overflow:hidden;overscroll-behavior:none;touch-action:none;}.map-canvas .leaflet-marker-pane,.map-canvas .leaflet-marker-pane .leaflet-marker-icon{pointer-events:none !important;}.map-river-sheet-shell{position:fixed;top:var(--nav-height);right:0;bottom:0;left:0;z-index:calc(var(--z-fixed) - 1);display:flex;align-items:flex-end;justify-content:center;padding:0 max(0.7rem,env(safe-area-inset-right)) 0 max(0.7rem,env(safe-area-inset-left));}.map-river-sheet-backdrop{background:radial-gradient(100% 120% at 50% 100%,rgba(22,72,110,0.26) 0%,rgba(4,14,31,0.92) 74%);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);visibility:hidden;opacity:0;transition:opacity 280ms ease,visibility 280ms ease;}.map-river-sheet{top:auto;left:auto;right:auto;bottom:0;width:min(100%,760px);min-width:0;max-width:100%;height:auto;min-height:min(44vh,360px);max-height:var(--map-sheet-mobile-max-height);padding:0.34rem 0.88rem calc(0.9rem + env(safe-area-inset-bottom));gap:0.56rem;border:1px solid rgba(78,205,255,0.24);border-bottom:none;border-radius:24px 24px 0 0;box-shadow:0 -22px 48px rgba(0,0,0,0.46),inset 0 1px 0 rgba(188,234,255,0.16);transform:translateY(calc(100% + 20px + var(--map-sheet-drag-offset,0px)));visibility:hidden;transition:transform 320ms cubic-bezier(0.22,1,0.36,1),visibility 320ms ease;touch-action:none;}.map-river-sheet-shell.is-empty .map-river-sheet{min-height:min(48vh,400px);}.map-river-sheet-shell.is-dragging .map-river-sheet{transition:none;}.map-river-sheet-grab-area{display:flex;align-items:center;justify-content:center;height:24px;margin:0;touch-action:none;cursor:grab;}.map-river-sheet-shell.is-dragging .map-river-sheet-grab-area{cursor:grabbing;}.map-river-sheet-grab-handle{width:48px;height:5px;opacity:0.9;}.map-river-sheet::before{display:none;}.map-river-sheet-head{position:sticky;top:24px;z-index:2;margin:0;padding:0.16rem 0.24rem 0.68rem;background:linear-gradient(180deg,rgba(7,18,36,0.995),rgba(7,18,36,0.95) 74%,rgba(7,18,36,0));border-bottom:1px solid rgba(92,180,220,0.24);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}.map-river-sheet-body{overflow:auto;padding:0.08rem 0.28rem 0.28rem;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;}.map-river-station-list{gap:0.62rem;padding:0.14rem 0.06rem 0.3rem;}.map-river-sheet-empty{margin-top:0.24rem;padding:0.8rem 0.86rem;}.map-river-station-row{grid-template-columns:minmax(0,1fr) auto;gap:0.52rem;padding:0.36rem;}.map-river-station-focus{min-height:62px;padding:0.66rem 0.72rem;}.map-river-station-link{min-width:98px;min-height:auto;width:auto;padding:0 0.72rem;white-space:nowrap;}.habitat-layout{grid-template-columns:1fr;}.habitat-sidebar{max-height:360px;}.map-canvas{min-height:460px;}}@media (max-width:768px){.map-river-sheet-shell{bottom:calc(var(--nav-height-mobile) + var(--safe-area-bottom) + 52px);}}@media (max-width:640px){.map-river-sheet{--map-sheet-mobile-max-height:min(80vh,520px);--map-sheet-mobile-max-height-expanded:min(88vh,620px);min-height:min(42vh,340px);max-height:var(--map-sheet-mobile-max-height);padding:0.3rem 0.72rem calc(0.74rem + env(safe-area-inset-bottom));visibility:hidden;}.map-river-sheet-shell.is-open .map-river-sheet{transform:translateY(var(--map-sheet-drag-offset,0px));visibility:visible;}.map-river-sheet-shell.is-open .map-river-sheet-backdrop{opacity:1;visibility:visible;}.map-river-sheet-shell.is-empty .map-river-sheet{min-height:min(50vh,420px);}.map-river-sheet-head{margin:0;top:22px;padding:0.12rem 0.16rem 0.56rem;}.map-river-sheet-body{padding:0.04rem 0.08rem 0.28rem;}.map-river-sheet-title{font-size:0.98rem;line-height:1.22;}.map-river-sheet-meta{font-size:0.77rem;}.map-river-sheet-close{width:1.9rem;height:1.9rem;font-size:1.15rem;}.map-river-station-row{grid-template-columns:minmax(0,1fr) auto;gap:0.42rem;align-items:stretch;padding:0.3rem;}.map-river-station-focus{align-items:center;padding:0.62rem 0.66rem;}.map-river-station-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;}.map-river-station-meta{white-space:normal;}.map-river-station-link{width:auto;min-height:auto;min-width:92px;padding:0 0.54rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;white-space:nowrap;font-size:0.71rem;}.map-river-sheet-empty{margin-top:0.2rem;padding:0.72rem 0.74rem;font-size:0.82rem;}.map-canvas .leaflet-popup.map-station-popup{margin-bottom:7px;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-content-wrapper{border-radius:14px;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-content{width:min(74vw,248px);margin:0.62rem 0.7rem 0.68rem;}.map-canvas .leaflet-popup.map-station-popup .leaflet-popup-close-button{top:4px;right:4px;width:26px;height:26px;font-size:1.04rem;}.map-popup h3{margin:0 0 0.2rem;font-size:0.96rem;line-height:1.24;}.map-popup-line{margin:0 0 0.28rem;font-size:0.79rem;line-height:1.32;}.map-popup-time{font-size:0.72rem;}.map-popup-link{display:inline-flex;align-items:center;justify-content:center;margin-top:0.14rem;padding:0.24rem 0.5rem;border:1px solid rgba(103,226,255,0.36);border-radius:999px;background:rgba(8,30,55,0.7);font-size:0.74rem;text-decoration:none;}.map-popup-species{gap:0.3rem;margin:0.22rem 0 0.28rem;}.map-popup-species-row{grid-template-columns:minmax(0,1fr) auto;gap:0.16rem 0.4rem;font-size:0.72rem;padding:0.06rem 0;}.map-popup-species-row .map-popup-bar{grid-column:1 / -1;height:5px;}.map-popup-species-row strong{font-size:0.7rem;}.map-hero-header{padding:1rem 0.8rem 0.8rem;flex-direction:column;align-items:stretch;}.map-viewport{margin:0 0.5rem 1rem;border-radius:14px;}.map-canvas{min-height:420px;}.map-legend-float{position:static;width:100%;gap:0.4rem 0.8rem;padding:0.65rem 0.7rem;border-radius:0 0 14px 14px;font-size:0.75rem;background:rgba(6,14,30,0.95);border:none;border-top:1px solid rgba(78,205,255,0.15);box-shadow:none;margin:0;}.map-legend-item{font-size:0.75rem;}}@media (max-width:420px){.map-river-station-row{grid-template-columns:minmax(0,1fr);}.map-river-station-link{width:100%;min-width:0;min-height:40px;padding:0.28rem 0.5rem;}}