:root{--surface:#ffffff;--surface-2:#f4f3f0;--border:#e2e0da;--ink:#12130f;--ink-2:#5c5b55;--ink-3:#8a8880;--accent:#1c5cab}html,body{margin:0;height:100%;overflow:hidden;font:14px/1.4 system-ui,sans-serif;background:var(--surface-2);color:var(--ink)}@supports (height: 100dvh){html,body{height:100dvh}}#map{position:absolute;inset:0}.panel{position:absolute;top:14px;left:14px;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px 0;z-index:2;box-shadow:0 6px 24px #12130f1a;max-height:calc(100% - 28px);overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;overflow-x:hidden}.panel:after{content:"";display:block;height:14px}@supports (scrollbar-gutter: stable){.panel{scrollbar-gutter:stable;scrollbar-width:thin}}.panel::-webkit-scrollbar{width:8px}.panel::-webkit-scrollbar-track{background:transparent}.panel::-webkit-scrollbar-thumb{background:#d8d5cf;border-radius:4px}.panel::-webkit-scrollbar-thumb:hover{background:#c2bfb8}.head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.panel h1{margin:0;font-size:18px;letter-spacing:-.02em;font-weight:800;display:flex;align-items:center;gap:7px}.mark{width:20px;height:20px;color:var(--accent);flex:none}.panel .what{font-size:12px;color:var(--ink-2);margin-top:1px}.tag{display:flex;align-items:flex-start;gap:6px;font-size:11px;line-height:1.45;color:var(--ink-2);margin:5px 0 11px}.tag .badge{flex:none;margin-top:1px}.badge{display:inline-block;padding:1px 6px;border-radius:5px;font-size:10px;font-weight:700;letter-spacing:.03em;background:var(--accent);color:#fff}.sub{color:var(--ink-2);font-size:12px;margin-bottom:12px;min-height:16px}.sub .native{color:var(--ink-3)}.seg{display:flex;gap:6px;margin-bottom:12px}.seg button{flex:1;padding:7px 0;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:8px;cursor:pointer;font-size:12px}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--surface-2);font-size:13px;color:var(--ink-2)}.row b{color:var(--ink);font-weight:600;white-space:nowrap}.row b.hi{color:var(--accent)}.verify{margin-top:10px;font-size:11px;color:var(--ink-3);line-height:1.6}.verify .vk{display:inline-block;min-width:52px;color:var(--ink-2)}.verify a{display:inline-block;margin-right:5px;padding:1px 6px;border:1px solid var(--border);border-radius:6px;color:var(--accent);text-decoration:none;background:var(--surface)}.verify a:hover{border-color:var(--accent);background:#f4f8fd}.note{margin-top:10px;font-size:11px;color:var(--ink-3)}.zoomhint{margin-top:6px;font-size:11px;color:var(--ink-3)}.pill{background:#fffffff2;border:1px solid var(--border);border-radius:9px;padding:3px 8px;font-size:11px;line-height:1.25;text-align:center;white-space:nowrap;color:var(--ink);cursor:pointer;box-shadow:0 1px 6px #12130f1f}.pill .nm{display:block;font-size:10px;color:var(--ink-2)}.pill .vl{display:block;font-weight:700}.pill.top{border-color:var(--accent);box-shadow:0 1px 8px #1c5cab33}.pill.blank{background:#fffc;border-style:dashed;box-shadow:none}.pill.blank .nm{color:var(--ink-3)}.proj{display:flex;flex-direction:column;align-items:center;cursor:pointer;line-height:1}.proj .badge{width:34px;height:34px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 2px 8px #12130f33;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--accent);overflow:hidden}.proj .badge img{width:100%;height:100%;object-fit:contain}.proj .cap{margin-top:4px;font-size:11px;font-weight:700;color:var(--ink);white-space:nowrap;text-shadow:0 1px 0 #fff,0 -1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff,1px 1px 0 #fff,-1px -1px 0 #fff}.proj .from{margin-top:2px;font-size:10px;font-weight:600;color:var(--ink-2);white-space:nowrap;text-shadow:0 1px 0 #fff,0 -1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}.proj:hover .badge{background:var(--accent);color:#fff}.rightstack{position:absolute;right:14px;bottom:52px;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.layers{display:flex;flex-direction:column;gap:6px}.layers button{width:150px;text-align:left;padding:7px 10px;border:1px solid var(--border);background:var(--surface);border-radius:10px;cursor:pointer;font:inherit;box-shadow:0 4px 14px #12130f14}.layers button b{display:block;font-size:12px;color:var(--ink)}.layers button span{display:block;font-size:10px;color:var(--ink-3);margin-top:1px}.layers button.on{background:var(--ink);border-color:var(--ink)}.layers button.on b{color:#fff}.layers button.on span{color:#ffffffb3}.proj-card{margin-top:11px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);font-size:12px;line-height:1.5}.proj-card .dev{color:var(--ink-2);margin-bottom:7px}.proj-card .lst{padding:5px 0;border-top:1px solid var(--border)}.proj-card .l1{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.proj-card .l1 b{white-space:nowrap}.proj-card .l2{color:var(--ink-2);font-size:11px;margin-top:1px}.proj-card .gap{margin-top:7px;padding-top:6px;border-top:1px solid var(--border);color:var(--accent);font-weight:700}.pill.top .vl{color:var(--accent)}.legend{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:11px;color:var(--ink-2);box-shadow:0 6px 24px #12130f14;align-self:stretch}.legend .lg-t{margin-bottom:6px;color:var(--ink);font-weight:600}.legend i{display:inline-block;width:26px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle}@media(max-width:640px){.panel{top:0;left:0;right:0;width:auto;max-height:40%;border-width:0 0 1px 0;border-radius:0 0 16px 16px;padding:calc(12px + env(safe-area-inset-top)) 14px 0;box-shadow:0 6px 20px #12130f22}.rightstack{right:12px;bottom:calc(52px + env(safe-area-inset-bottom))}.layers button{width:auto;padding:5px 9px}.layers button b{font-size:11px}.layers button span{display:none}.legend{padding:8px 10px;font-size:10px}.legend i{width:20px;height:8px}.maplibregl-ctrl-top-right{display:none}}.privacy{margin-top:10px;font-size:11px}.privacy button{padding:0;border:0;background:none;color:var(--ink-3);text-decoration:underline;cursor:pointer;font:inherit}.privacy button:hover{color:var(--accent)}
