:root{--card-w: 17.5rem;--pad-x: .85rem;--pad-y: .6rem;--gutter: .75rem;--tap: 2.1rem;--shadow: 0 1px 6px rgba(31, 41, 28, .13)}html,body{margin:0;height:100%}#map{position:fixed;inset:0;z-index:0;background:var(--tint-soft)}.leaflet-top .leaflet-control,.leaflet-bottom .leaflet-control{margin:var(--gutter)}.card{width:var(--card-w);max-width:calc(100vw - 2 * var(--gutter));background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow);font-size:.88rem;line-height:1.45;overflow:hidden}.card>summary{display:flex;align-items:center;gap:.5rem;min-height:var(--tap);padding:var(--pad-y) var(--pad-x);cursor:pointer;list-style:none;user-select:none}.card>summary::-webkit-details-marker{display:none}.card>summary:after{content:"";width:.42rem;height:.42rem;margin-left:auto;flex:none;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-.1rem,-.1rem)}.card[open]>summary:after{transform:rotate(-135deg) translate(-.1rem,-.1rem)}.card[open]>summary{border-bottom:1px solid var(--line)}.card>summary:hover{background:var(--paper)}.cardbody{max-height:calc(100vh - 7.5rem);max-height:calc(100dvh - 7.5rem);overflow-y:auto;overscroll-behavior:contain}.section{padding:var(--pad-y) var(--pad-x);display:grid;gap:.45rem}.section+.section{border-top:1px solid var(--line)}.controlcard>summary>span{font-family:var(--sans);font-weight:600;font-size:.92rem}.panel{position:fixed;top:var(--gutter);left:var(--gutter);z-index:900}.panel h1{font-family:var(--serif);font-size:1.05rem;margin:0;font-weight:600;letter-spacing:0}.panel .sub{font-family:var(--sans);color:var(--muted);font-size:.72rem;margin:.1rem 0 0}.own-toggle{width:1rem;height:1rem;flex:none;accent-color:var(--green);cursor:pointer}.legend{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.legend li{display:flex;align-items:center;gap:.5rem}.dot{width:.8rem;height:.8rem;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #bbb;flex:none}.legendcount{margin-left:auto;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.legendnote{font-size:.78rem;color:var(--muted);margin:0;line-height:1.4}.offmap ul{margin:0;padding-left:1.1rem}.offmap a{color:var(--green)}.sitelinks{gap:.3rem}.aboutlink{color:var(--green);font-weight:600;text-decoration:none}.aboutlink:hover{text-decoration:underline}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line);overflow:hidden}.seg button{font:inherit;font-size:.85rem;min-height:var(--tap);padding:.3rem .4rem;border:0;background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap}.seg button+button{border-left:1px solid var(--line)}.seg button:hover{background:var(--paper)}.seg button[aria-pressed=true]{background:var(--green);color:#fff;font-weight:600}.check{display:flex;align-items:center;gap:.5rem;min-height:var(--tap);font-weight:600;cursor:pointer}.check input{width:1rem;height:1rem;accent-color:var(--green);flex:none}.card select{width:100%;font:inherit;font-size:.85rem;min-height:var(--tap);padding:.25rem .4rem;color:var(--ink);background:#fff;border:1px solid var(--line)}.card select:disabled{color:var(--faint);background:var(--paper)}.card input[type=search]{width:100%;font:inherit;font-size:.85rem;min-height:var(--tap);padding:.25rem .4rem;color:var(--ink);background:#fff;border:1px solid var(--line);-webkit-appearance:none}.card input[type=search]:disabled{color:var(--faint);background:var(--paper)}.sectionnote{font-family:var(--sans);font-size:.7rem;line-height:1.4;color:var(--muted);margin:0}.sectionnote a{color:inherit}.leaflet-bar,.leaflet-control-attribution{border:1px solid var(--line);box-shadow:var(--shadow)}.leaflet-bar a,.leaflet-bar a:hover{border-bottom-color:var(--line);color:var(--ink)}.leaflet-control-attribution{font-family:var(--sans);font-size:.68rem;padding:.15rem .45rem}.leaflet-bar a.locate-btn{display:block}.leaflet-bar a.locate-btn svg{display:block;margin:auto;width:1.05rem;height:1.05rem}.leaflet-bar a.locate-btn.on,.leaflet-bar a.locate-btn.on:hover{background:var(--green);color:#fff}.leaflet-bar a.locate-btn.on svg{stroke:#fff}.leaflet-bar a.locate-btn.searching svg{animation:locate-pulse 1.2s ease-in-out infinite}@keyframes locate-pulse{50%{opacity:.25}}.locate-dot{width:14px;height:14px;border-radius:50%;background:#1f6feb;border:2px solid #fff;box-shadow:0 0 0 1px #00000059}.locate-msg{position:absolute;left:var(--gutter);bottom:6.5rem;z-index:1000;max-width:min(22rem,calc(100vw - 2 * var(--gutter)));font-family:var(--sans);font-size:.78rem;line-height:1.4;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);padding:.5rem .7rem}.locate-msg[hidden]{display:none}.leaflet-popup-content-wrapper{border:1px solid var(--line);box-shadow:var(--shadow)}.leaflet-popup-content{margin:var(--pad-y) var(--pad-x);font-family:var(--sans);line-height:1.45}.popup-name{font-family:var(--serif);font-weight:600;font-size:1rem}.popup-species{font-family:var(--serif);font-style:italic;color:var(--ink-soft);display:block;font-size:.9rem}.popup-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.popup-class,.popup-verify,.popup-conf,.popup-meta{font-family:var(--sans)}.popup-class,.popup-verify,.popup-conf{display:inline-block;padding:.1rem .5rem;font-size:.72rem;font-weight:600;color:#fff}.popup-thumb-link{display:block;margin-top:.5rem}.popup-thumb{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;background:var(--tint-soft);cursor:pointer;transition:filter .15s}.popup-thumb-link:hover .popup-thumb{filter:brightness(1.08)}.popup-link{display:inline-block;margin-top:.5rem;color:var(--green);font-weight:600}.popup-meta{font-size:.78rem;color:var(--muted);margin-top:.35rem;line-height:1.5}.bristol-popup .popup-credit{font-family:var(--sans);font-size:.68rem;line-height:1.45;color:var(--muted);margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--line)}.bristol-cluster{background:#78787880}.bristol-cluster div{background:#787878b3;color:#fff}.popup-notes{margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--line)}.popup-notes-toggle{display:inline-block;font:inherit;font-family:var(--sans);font-size:.75rem;font-weight:600;color:var(--green);background:none;border:0;padding:0;cursor:pointer}.popup-notes-toggle:hover{text-decoration:underline}.popup-notes-panel{display:none;margin-top:.4rem;gap:.4rem}.popup-notes-panel.open{display:grid}.popup-note+.popup-note{margin-top:.35rem}.popup-note-date{display:block;font-family:var(--sans);font-size:.68rem;font-weight:600;color:var(--muted)}.popup-note-text{font-family:var(--sans);font-size:.78rem;margin:.1rem 0 0;white-space:pre-wrap}.popup-note-actions{display:flex;gap:.6rem;margin-top:.15rem}.popup-note-edit,.popup-note-delete{font:inherit;font-family:var(--sans);font-size:.68rem;font-weight:600;color:var(--muted);background:none;border:0;padding:0;cursor:pointer}.popup-note-edit:hover,.popup-note-delete:hover{text-decoration:underline;color:var(--ink)}.popup-note-delete:disabled{opacity:.5;cursor:default;text-decoration:none}.popup-notes-empty{font-family:var(--sans);font-size:.75rem;color:var(--muted);margin:0}.popup-notes-input{width:100%;font:inherit;font-family:var(--sans);font-size:.78rem;padding:.3rem .4rem;border:1px solid var(--line);resize:vertical;box-sizing:border-box}.popup-notes-buttons{display:flex;align-items:center;gap:.6rem}.popup-notes-save{font:inherit;font-family:var(--sans);font-size:.75rem;font-weight:600;padding:.3rem .6rem;border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer}.popup-notes-save:disabled{opacity:.6;cursor:default}.popup-notes-cancel{font:inherit;font-family:var(--sans);font-size:.72rem;color:var(--muted);background:none;border:0;padding:0;cursor:pointer}.popup-notes-cancel:hover{text-decoration:underline}.popup-notes-status{font-family:var(--sans);font-size:.7rem;color:var(--muted);margin:0;min-height:1em}@media(max-width:44rem){:root{--card-w: 15.5rem;--gutter: .5rem}.cardbody{max-height:calc(100vh - 6.5rem);max-height:calc(100dvh - 6.5rem)}.panel h1{font-size:.92rem}.card:not([open]){width:auto;max-width:calc(50vw - 1.5 * var(--gutter))}.card[open]{width:calc(100vw - 2 * var(--gutter));max-width:none}body.card-open .card:not([open]){display:none}.card:not([open]) .sub{display:none}.card:not([open]) h1,.card:not([open])>summary>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}}
