:root{--legal-ink:#17343a;--legal-muted:#526b6d;--legal-line:#dce5df;--legal-paper:#f7f9f5}
.site-footer{box-sizing:border-box;flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 12px;padding:9px 20px;border-top:1px solid var(--legal-line);background:#fff;color:var(--legal-muted);text-align:center;font:11px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.site-footer p{margin:0;max-width:1100px;line-height:1.5;font-size:11px;}
.site-footer a{color:#155d54;text-decoration:underline;text-underline-offset:3px;}
.footer-links{display:flex;flex-basis:100%;justify-content:center;flex-wrap:wrap;gap:0 18px;}
.footer-links a{display:inline-flex;align-items:center;min-height:28px;}
.site-footer .footer-version{font-size:10px;opacity:.75;white-space:nowrap;}
.site-footer a:focus-visible,.legal-page a:focus-visible,.skip-link:focus{outline:3px solid #16685e;outline-offset:3px;}
body.app-shell{display:flex;flex-direction:column;min-height:100dvh;height:100dvh;}
.app-shell>.topbar{flex:none;}
.app-shell>#app-main{flex:1;height:auto;min-height:420px;}
.skip-link{position:fixed;left:12px;top:-100px;z-index:3000;background:#fff;color:#17343a;padding:10px 14px;border-radius:4px;}
.skip-link:focus{top:8px;}
body.legal-page{display:flex;flex-direction:column;min-height:100dvh;margin:0;background:var(--legal-paper);color:var(--legal-ink);font:16px/1.75 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.legal-header{border-bottom:1px solid var(--legal-line);background:#fff;padding:18px max(24px,calc((100vw - 900px)/2));}
.legal-header a{color:var(--legal-ink);font-size:20px;font-weight:750;text-decoration:none;}
.legal-header small{display:block;font-size:12px;color:var(--legal-muted);font-weight:400;}
.legal-main{box-sizing:border-box;flex:1;width:100%;max-width:900px;margin:0 auto;padding:38px 24px 56px;}
.legal-main h1{font-size:clamp(28px,5vw,38px);line-height:1.2;letter-spacing:-.8px;margin:12px 0;}
.legal-main h2{font-size:21px;line-height:1.4;margin:32px 0 10px;}
.legal-main p{margin:12px 0;}
.legal-main a{color:#155d54;text-underline-offset:3px;overflow-wrap:anywhere;}
.legal-main li{margin-bottom:8px;}
.legal-main dt{font-weight:650;margin-top:16px;}
.legal-main dd{margin:4px 0;overflow-wrap:anywhere;}
.legal-meta{font-size:13px;color:var(--legal-muted);}
.legal-callout{border-left:3px solid #16685e;border-radius:0 6px 6px 0;padding:14px 18px;background:#eaf2ed;}
.publication-note{border-left-color:#a06b20;background:#fbf4e8;}
.legal-main table{width:100%;border-collapse:collapse;font-size:14px;}
.legal-main th,.legal-main td{text-align:left;vertical-align:top;border-bottom:1px solid var(--legal-line);padding:10px;}
.legal-main pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 ui-monospace,monospace;background:white;padding:16px;border:1px solid var(--legal-line);border-radius:6px;}
[hidden]{display:none!important;}
@media(min-width:1025px){
  /* Keep the brand/status above the sidebar while the map starts at the top. */
  body.app-shell{--sidebar-width:330px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:100px minmax(0,1fr) auto;}
  .app-shell>.topbar{grid-column:1;grid-row:1;z-index:10;height:100%;padding:16px 25px 12px;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;background:var(--paper);border-bottom:0;border-right:1px solid var(--line);}
  .app-shell>.topbar::after{content:'';position:absolute;left:25px;right:25px;bottom:0;border-bottom:1px solid var(--line);}
  .app-shell>.topbar{position:relative;}
  .app-shell .brand{font-size:21px;gap:10px;}
  .app-shell .brand-mark{width:36px;height:36px;border-radius:11px;font-size:33px;}
  .app-shell .brand small{font-size:8px;letter-spacing:1.5px;}
  .app-shell .top-meta{font-size:11px;gap:8px;padding-left:3px;}
  .app-shell>#app-main{grid-column:1/-1;grid-row:1/3;grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:100%;min-height:0;}
  .app-shell .sidebar{padding-top:116px;}
  .app-shell .intro h1{font-size:27px;}
  .app-shell .intro p{margin-bottom:18px;}
  .app-shell>.site-footer{grid-column:1/-1;grid-row:3;}
  .app-shell>.startup-error{position:fixed;top:12px;left:calc(var(--sidebar-width) + 16px);right:16px;z-index:1600;}
  .site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 14px;padding:5px 16px;}
  .site-footer>p{line-height:1.4;}
  .site-footer .footer-links{margin-top:0;gap:0 14px;}
  .site-footer .footer-links a{min-height:24px;}
  .site-footer .footer-version{margin:0;}
}
@media(min-width:1500px){
  body.app-shell{--sidebar-width:370px;}
  .app-shell>.topbar{padding-left:34px;padding-right:34px;}
  .app-shell>.topbar::after{left:34px;right:34px;}
}
@media(max-width:1024px){
  body.app-shell{height:100dvh;min-height:100dvh;overflow:hidden;overscroll-behavior-y:none;}
  .app-shell>#app-main{position:fixed;inset:calc(var(--mobile-header) + env(safe-area-inset-top)) 0 calc(var(--mobile-nav) + env(safe-area-inset-bottom));flex:none;margin:0;height:auto;min-height:0;}
  .app-shell.loading-data,.app-shell.panel-open{overflow:hidden;}
  .footer-links{gap:0 14px;}
  .legal-main{padding-top:24px;}
}
@media(prefers-reduced-motion:reduce){.legal-page *{scroll-behavior:auto!important}}
/* Optional analytics preferences stay outside the radar controls. */
.analytics-settings{font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer;min-height:24px}.analytics-prompt{position:fixed;z-index:2000;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(540px,calc(100% - 24px));padding:20px;background:#fff;color:#17363a;border:1px solid #cbdcd2;border-radius:14px;box-shadow:0 10px 45px #12363830;font:14px/1.5 system-ui,sans-serif}.analytics-prompt[hidden]{display:none}.analytics-prompt p{margin:8px 0}.analytics-prompt a{color:#176c62}.analytics-prompt>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.analytics-prompt button{font:inherit;min-height:44px;padding:8px 13px;border:1px solid #b6cac3;border-radius:8px;background:#f0f5ef;color:#17363a;cursor:pointer}.analytics-prompt button:first-child{background:#176c62;color:#fff}.analytics-prompt button:disabled{opacity:.5}.analytics-prompt :focus-visible,.analytics-settings:focus-visible{outline:3px solid #8cad2e;outline-offset:3px}@media(max-width:768px){.analytics-settings{min-height:44px}.analytics-prompt{bottom:max(12px,env(safe-area-inset-bottom));max-height:70dvh;overflow:auto}}
