:root{--bg:#0b1220;--panel:rgba(15,23,42,.88);--panel-solid:#0f172a;--line:rgba(148,163,184,.18);--text:#e2e8f0;--muted:#94a3b8;--accent:#30d158;--err:#ff9f0a;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}.root{position:fixed;inset:0}.root>.map{position:absolute;inset:0}.panel{position:absolute;top:12px;left:12px;bottom:12px;width:320px;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;z-index:2;box-shadow:0 10px 40px rgba(0,0,0,.35)}.panel.collapsed{bottom:auto;width:auto}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-head h1{margin:0;font-size:18px;letter-spacing:-.01em}.sub{margin:2px 0 0;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(48,209,88,.6);animation:pulse 1.2s 1}@keyframes pulse{70%{box-shadow:0 0 0 7px rgba(48,209,88,0)}to{box-shadow:0 0 0 0 rgba(48,209,88,0)}}.icon-btn{background:hsla(0,0%,100%,.06);border:1px solid var(--line);border-radius:8px;width:30px;height:30px;font-size:18px;line-height:1}.row-actions{display:flex;gap:6px}.row-actions button{flex:1 1;background:hsla(0,0%,100%,.05);border:1px solid var(--line);border-radius:8px;padding:6px;font-size:12px}.swatch{width:10px;height:28px;border-radius:4px;flex:none}.err{color:var(--err);font-style:normal}.stats{margin:8px 0 0;display:grid;grid-gap:4px;gap:4px;font-size:12px}.stats div{display:flex;justify-content:space-between;gap:8px}.stats dt{color:var(--muted)}.stats dd{margin:0;text-align:right}.section h2{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:hsla(0,0%,100%,.05);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px}.chip.on{background:var(--accent);color:#04140a;border-color:transparent;font-weight:600}.panel-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}.share{background:#0a84ff;border:0;border-radius:10px;padding:8px;color:#fff;font-weight:600;font-size:13px}.detail{position:absolute;top:12px;right:12px;width:300px;max-height:calc(100% - 24px);overflow-y:auto;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:14px;z-index:2;box-shadow:0 10px 40px rgba(0,0,0,.35)}.detail header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.detail h2{margin:2px 0 0;font-size:17px;word-break:break-word}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.detail dl{margin:12px 0 0;display:grid;grid-gap:6px;gap:6px;font-size:13px}.detail dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:4px}.detail dt{color:var(--muted)}.detail dd{margin:0;text-align:right}.detail a{color:#64d2ff}.detail-foot{margin:10px 0 0;font-size:11px;color:var(--muted)}.maplibregl-ctrl-attrib{font-size:10px}@media (max-width:640px){.panel{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:55%}.panel.collapsed{max-height:none}.detail{top:8px;left:8px;right:8px;width:auto;max-height:40%}.maplibregl-ctrl-bottom-right{display:none}}.detail-foot a,.stats a{color:#64d2ff}.search{position:relative}.search input{width:100%;background:hsla(0,0%,100%,.06);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text);font:inherit;font-size:13px}.search input:focus{outline:2px solid #0a84ff;outline-offset:0}.search-results{position:absolute;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--panel-solid);border:1px solid var(--line);border-radius:10px;z-index:5;box-shadow:0 10px 30px rgba(0,0,0,.4)}.search-results li{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:7px;cursor:pointer;font-size:13px}.search-results li.active,.search-results li:hover{background:rgba(10,132,255,.25)}.legend,.search-results small{color:var(--muted)}.legend{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px}.legend li{display:flex;align-items:center;gap:5px}.legend span{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 0 1px hsla(0,0%,100%,.25)}.follow{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;cursor:pointer}.foot-links a{color:var(--muted)}.doc{position:fixed;inset:0;overflow-y:auto;background:var(--bg)}.doc-nav{max-width:760px;margin:0 auto;padding:18px 20px 0;display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted)}.doc-nav a{color:#64d2ff;text-decoration:none}.doc-home{font-weight:700}.doc main{max-width:760px;margin:0 auto;padding:10px 20px 60px;line-height:1.6;font-size:16px}.doc h1{font-size:30px;margin:18px 0 12px}.doc h2{font-size:20px;margin:28px 0 8px}.doc a{color:#64d2ff}.doc-list{display:grid;grid-gap:12px;gap:12px}.doc-list dt{font-weight:700}.doc-list dd{margin:2px 0 0;color:#cbd5e1}.doc-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}.doc-table td,.doc-table th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.doc-table th{color:var(--muted);font-weight:600}@media (max-width:640px){.doc-table{font-size:13px}.doc h1{font-size:24px}}.layers{flex-direction:column}.group-head,.layers{display:flex;gap:6px}.group-head{width:100%;align-items:center;background:none;border:0;padding:4px 2px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;text-align:left}.group-head:hover{color:var(--text)}.group-name{flex:1 1}.group-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chev{width:10px}.group ul{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.row{border-radius:8px}.row.on{background:hsla(0,0%,100%,.07)}.row-line{gap:4px}.row-line,.row-main{display:flex;align-items:center}.row-main{flex:1 1;min-width:0;gap:9px;background:none;border:0;padding:7px 6px;border-radius:8px;text-align:left;font-size:14px}.row-main:hover:not(:disabled){background:hsla(0,0%,100%,.05)}.row-main:disabled{cursor:default}.row .swatch{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 0 2px hsla(0,0%,100%,.12)}.row:not(.on) .swatch{opacity:.3}.row:not(.on) .row-name{color:var(--muted)}.row-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-count{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.row.soon .row-name{color:#64748b}.soon-badge{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border:1px solid var(--line);border-radius:999px;padding:1px 7px}.warn{color:var(--err)}.row-info{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--muted);font-size:12px;font-style:italic;font-family:Georgia,serif}.row-info.open,.row-info:hover{color:var(--text);background:hsla(0,0%,100%,.08)}.row-note{margin:-2px 6px 6px 27px;font-size:11px;color:var(--muted)}.row-note.trouble{color:var(--err)}.row-details{padding:0 8px 8px 27px}.row-details .legend{margin-top:0}.layers-btn{background:#0a84ff;border:0;border-radius:10px;padding:7px 12px;color:#fff;font-weight:600;font-size:13px;white-space:nowrap}