: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}.brand{display:flex;align-items:center;gap:7px}.brand .logo{flex:none;margin-left:-2px}.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;overflow-x:hidden;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);flex:none}.detail dd{margin:0;text-align:right;min-width:0;overflow-wrap:anywhere}.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}.road-sub{color:var(--muted);font-size:14px;margin:-6px 0 10px}.road-lead{font-size:18px}.road-map{display:inline-block;background:#0a84ff;color:#fff!important;text-decoration:none;font-weight:600;padding:8px 14px;border-radius:10px}.road-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px;margin:18px 0 6px}.road-tile{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.road-tile span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.road-tile strong{font-size:20px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.road-tile.alert{border-color:rgba(255,159,10,.55)}.road-tile.alert strong{color:var(--err)}.road-list{padding-left:18px}.road-list li{margin:4px 0}.road-muted{color:var(--muted)}.road-wrap{overflow-wrap:anywhere}.road-src{font-size:13px;margin-top:32px}.road-links{display:flex;flex-wrap:wrap;gap:6px}.road-links a{text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:3px 9px;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.road-links a.busy{border-color:rgba(255,159,10,.55);color:var(--err)}@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{border:0;border-radius:10px;padding:7px 12px;font-size:13px;white-space:nowrap}.layers-btn,.share-item{background:#0a84ff;color:#fff;font-weight:600}.share-item{margin-left:auto;margin-right:6px;border:0;border-radius:8px;padding:4px 10px;font-size:12px;flex:none}.toast{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:5;background:var(--panel-solid);border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:14px;box-shadow:0 6px 24px rgba(0,0,0,.4)}.places-empty{margin:0;font-size:12px;color:var(--muted);line-height:1.45}.places-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.places-list>li{background:hsla(0,0%,100%,.04);border:1px solid var(--line);border-radius:10px}.places-list>li.open{border-color:rgba(255,214,10,.45)}.place-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;background:none;border:0;padding:8px 10px;color:var(--text);font:inherit;cursor:pointer}.place-name{font-weight:700;font-size:13px}.place-name:first-letter{color:#ffd60a}.place-head{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:12px;color:var(--muted)}.place-head .alert{color:#ff9f0a;font-weight:600}.place-details{padding:0 10px 6px;font-size:12px}.place-details h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 4px}.place-details p{margin:2px 0;color:var(--muted)}.place-details ul{list-style:none;margin:0;padding:0}.place-item{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:4px;color:var(--text);font:inherit;cursor:pointer}.place-item:hover{background:rgba(10,132,255,.18)}.place-item em{color:var(--muted);font-style:normal}.place-item small{color:var(--muted);white-space:nowrap}.place-more{color:var(--muted);padding:2px 4px}.place-actions{display:flex;gap:6px;padding:4px 10px 10px}.place-actions button,.place-add button,.place-form button{background:hsla(0,0%,100%,.06);border:1px solid var(--line);border-radius:8px;padding:5px 9px;color:var(--text);font:inherit;font-size:12px;cursor:pointer}.place-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.place-add button:first-child:not(:only-child){border-color:rgba(255,214,10,.5)}.place-form{display:flex;gap:6px;margin-top:6px}.place-form input{flex:1 1;min-width:0;background:hsla(0,0%,100%,.06);border:1px solid var(--line);border-radius:8px;padding:5px 8px;color:var(--text);font:inherit;font-size:13px}.place-form button[type=submit]{background:#ffd60a;color:#0b1220;border-color:transparent;font-weight:700}