:root{--font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, monospace;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--left-w: 300px;--right-w: 390px;--top-h: 56px;--blue-0: #e7f5ff;--blue-1: #d0ebff;--blue-4: #4dabf7;--blue-5: #339af0;--blue-6: #228be6;--blue-7: #1c7ed6;--blue-8: #1971c2;--blue-9: #1864ab;--red-6: #fa5252;--red-8: #e03131;--green-6: #40c057;--green-8: #2f9e44;--yellow-6: #fab005;--orange-6: #fd7e14;--orange-8: #e8590c;--cyan-6: #15aabf}:root,[data-theme=light]{color-scheme:light;--body: #ffffff;--surface: #ffffff;--surface-2: #f8f9fa;--hover: #f1f3f5;--border: #dee2e6;--input-border: #ced4da;--text: #212529;--dimmed: #868e96;--primary: var(--blue-6);--primary-hover: var(--blue-7);--primary-text: var(--blue-7);--primary-light: rgba(34, 139, 230, .1);--primary-light-hover: rgba(34, 139, 230, .16);--danger-text: var(--red-8);--danger-light: rgba(250, 82, 82, .1);--ok-text: var(--green-8);--ok-light: rgba(64, 192, 87, .12);--warn-text: var(--orange-8);--warn-light: rgba(253, 126, 20, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 1px 3px rgba(0, 0, 0, .05), 0 10px 15px -5px rgba(0, 0, 0, .05), 0 7px 7px -5px rgba(0, 0, 0, .04);--shadow-lg: 0 1px 3px rgba(0, 0, 0, .05), 0 20px 25px -5px rgba(0, 0, 0, .05), 0 10px 10px -5px rgba(0, 0, 0, .04);--overlay: rgba(255, 255, 255, .85);--map-bg: #e9eef3;--scroll: #ced4da}[data-theme=dark]{color-scheme:dark;--body: #242424;--surface: #242424;--surface-2: #2e2e2e;--hover: #3b3b3b;--border: #424242;--input-border: #424242;--text: #c9c9c9;--dimmed: #828282;--primary: var(--blue-8);--primary-hover: var(--blue-9);--primary-text: var(--blue-4);--primary-light: rgba(34, 139, 230, .15);--primary-light-hover: rgba(34, 139, 230, .2);--danger-text: #ff8787;--danger-light: rgba(250, 82, 82, .15);--ok-text: #69db7c;--ok-light: rgba(64, 192, 87, .15);--warn-text: #ffa94d;--warn-light: rgba(253, 126, 20, .15);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .45);--overlay: rgba(36, 36, 36, .88);--map-bg: #1a1b1e;--scroll: #4a4a4a}*{box-sizing:border-box}html{font-family:var(--font);font-size:14px;line-height:1.55;color:var(--text);background:var(--body);-webkit-font-smoothing:antialiased}html,body{margin:0;height:100%}body{background:var(--body);color:var(--text)}body.app{overflow:hidden;display:grid;grid-template-columns:var(--left-w) 1fr var(--right-w);grid-template-rows:var(--top-h) 1fr;grid-template-areas:"top top top" "left center right";transition:grid-template-columns .2s}body.app.hide-left{grid-template-columns:0 1fr var(--right-w)}body.app.hide-right{grid-template-columns:var(--left-w) 1fr 0}body.app.hide-left.hide-right{grid-template-columns:0 1fr 0}a{color:var(--primary-text);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{color:var(--text)}[hidden]{display:none!important}.ic{display:inline-flex;align-items:center;justify-content:center;flex:none}.ic svg{display:block}input,select,textarea{font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--input-border);border-radius:var(--radius);padding:0 12px;width:100%;min-height:36px;transition:border-color .1s}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface-2)}textarea{padding:8px 12px;resize:vertical;line-height:1.5}select{padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23868e96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}input::placeholder,textarea::placeholder{color:var(--dimmed)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}input[type=checkbox]{width:16px;height:16px;min-height:0;padding:0;margin:0;accent-color:var(--blue-6);cursor:pointer;flex:none}input[type=range]{padding:0;min-height:0;border:none;background:none;accent-color:var(--blue-6)}input[type=search]::-webkit-search-cancel-button{cursor:pointer}code,kbd{font-family:var(--mono);font-size:12px}kbd{border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);padding:0 5px;background:var(--surface-2);color:var(--dimmed);font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;font-size:14px;font-weight:600;white-space:nowrap;border-radius:var(--radius);background:var(--surface);border:1px solid var(--input-border);color:var(--text);transition:background .1s}[data-theme=dark] .btn{background:var(--surface-2)}.btn:hover{background:var(--hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.small{height:28px;padding:0 10px;font-size:13px}.btn.primary{background:var(--primary);border-color:transparent;color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--primary-text)}.btn.ghost:hover{background:var(--primary-light)}.btn.danger{background:var(--danger-light);border-color:transparent;color:var(--danger-text)}.btn.danger:hover{background:#fa525233}.btn.light{background:var(--primary-light);border-color:transparent;color:var(--primary-text)}.btn.light:hover{background:var(--primary-light-hover)}.btn.full{width:100%}.action-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;padding:0;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--surface);color:var(--text)}[data-theme=dark] .action-icon{background:var(--surface-2)}.action-icon:hover{background:var(--hover)}.action-icon.subtle{border-color:transparent;background:transparent}.action-icon.subtle:hover{background:var(--hover)}.icon-btn{background:none;border:none;border-radius:var(--radius-sm);padding:2px 6px;color:var(--dimmed)}.icon-btn:hover{background:var(--hover);color:var(--text)}.link{background:none;border:none;color:var(--primary-text);padding:0;margin-left:auto;font-size:13px}.link:hover{text-decoration:underline}.hint{color:var(--dimmed);font-size:12.5px;line-height:1.5}.hint.warn{color:var(--warn-text)}.muted{color:var(--dimmed)}.badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:999px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.25px;background:var(--primary-light);color:var(--primary-text)}#topbar{grid-area:top;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border-bottom:1px solid var(--border);z-index:1000;min-width:0}.logo{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none!important;flex:none;margin-right:8px}.logo-badge{display:flex;padding:5px;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,var(--blue-9),var(--cyan-6))}.logo-text{font-weight:800;font-size:18px;letter-spacing:-.3px;white-space:nowrap}.search{position:relative;display:flex;align-items:center;flex:0 1 440px;min-width:120px}.search>.ic{position:absolute;left:10px;color:var(--dimmed);pointer-events:none}.search input{padding-left:34px;padding-right:36px;background:var(--surface-2);border-color:transparent}.search input:focus{border-color:var(--primary);background:var(--surface)}.search kbd{position:absolute;right:9px;pointer-events:none}.search input:focus~kbd{display:none}.spacer{flex:1}#basemap{width:auto;max-width:210px;height:34px;min-height:34px;font-size:13px}.net{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:var(--radius);white-space:nowrap;font-size:13px;font-weight:600;border:none;background:var(--ok-light);color:var(--ok-text)}.net .dot{width:8px;height:8px;border-radius:50%;background:var(--green-6);box-shadow:0 0 0 3px #40c05733}.net.off{background:var(--warn-light);color:var(--warn-text)}.net.off .dot{background:var(--orange-6);box-shadow:0 0 0 3px #fd7e1433}.user-menu{position:relative;flex:none;margin-left:4px}.avatar-btn{display:flex;align-items:center;gap:4px;background:none;border:none;padding:2px;border-radius:999px;color:var(--dimmed)}.avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-light);color:var(--primary-text);font-weight:700;font-size:13px}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;padding:4px;z-index:3000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}[data-theme=dark] .menu{background:var(--surface-2)}.menu-label{padding:8px 12px 6px}.menu-label strong{display:block;font-size:14px}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 12px;font-size:14px;border:none;background:none;border-radius:var(--radius-sm);color:var(--text);text-align:left;text-decoration:none!important}.menu-item:hover{background:var(--hover)}.menu-item.danger{color:var(--danger-text)}.menu-item.danger:hover{background:var(--danger-light)}aside{background:var(--surface);overflow:hidden auto;min-width:0}#left{grid-area:left;border-right:1px solid var(--border)}#right{grid-area:right;border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.panel-title{padding:14px 14px 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--dimmed)}#center{grid-area:center;position:relative;min-width:0}#map{position:absolute;top:0;right:0;bottom:26px;left:0;background:var(--map-bg)}.filters{margin:0 12px 12px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.filters summary{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:8px}.filters label{display:block;margin-top:10px;color:var(--text);font-size:13px;font-weight:500}.filters label input,.filters label select{margin-top:4px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.row.space{justify-content:space-between}label.inline{display:inline-flex!important;align-items:center;gap:8px;color:var(--text)!important;margin:0!important;cursor:pointer;font-weight:400!important}.tree{padding:0 8px 24px}.group{display:flex;align-items:center;gap:2px;padding:5px 4px;border-radius:var(--radius-sm)}.group:hover,.leaf:hover{background:var(--hover)}.group label{display:flex;align-items:center;gap:8px;cursor:pointer;flex:1;min-width:0}.group.depth-0{font-weight:600;margin-top:6px}.group.depth-1{font-weight:500}.gicon{display:inline-flex;color:var(--primary-text)}.caret{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--dimmed);width:20px;height:20px;padding:0;border-radius:var(--radius-sm);transition:transform .15s}.caret:hover{background:var(--hover)}.caret.open{transform:rotate(90deg)}.kids{padding-left:14px;border-left:1px solid var(--border);margin-left:13px}.kids-extra{padding-left:28px}.leaf{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;border-radius:var(--radius-sm);font-size:13.5px}.leaf label{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0;flex:1}.lname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{color:var(--dimmed);font-size:12px;font-variant-numeric:tabular-nums;padding-left:6px}.sw{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;box-shadow:0 0 0 1px #00000040}.sw.line{height:3px;width:14px;border-radius:2px;box-shadow:none}.sw.poly{border-radius:2px;border:1.5px solid;background:transparent;box-shadow:none}.sw.ring{border:2px solid;background:transparent;box-shadow:none}.live-box{margin:4px 0 8px;padding:10px;border-radius:var(--radius);background:var(--primary-light);display:flex;flex-wrap:wrap;gap:6px}.live-box .hint{margin:0 0 4px;width:100%}body.offline .live-box button{opacity:.5;pointer-events:none}.tabs{display:flex;border-bottom:1px solid var(--border);flex:none;padding:0 6px;gap:2px}.tabs button{flex:1;background:none;border:none;padding:12px 4px 10px;color:var(--dimmed);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500;font-size:13.5px;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.tabs button:hover{background:var(--hover);color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--primary);font-weight:600}.tab{padding:14px 16px 32px;overflow-y:auto;flex:1;font-size:13.5px}.empty p{color:var(--dimmed)}.tips{color:var(--dimmed);padding-left:18px;line-height:1.9}.detail h2{margin:4px 0 2px;font-size:20px;font-weight:700;line-height:1.25;letter-spacing:-.2px}.detail h3,.tab h3{margin:20px 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--dimmed)}.crumb{display:flex;align-items:center;gap:6px;color:var(--dimmed);font-size:12px}.subtitle{color:var(--dimmed);margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 10px;font-size:12.5px;color:var(--text)}[data-theme=dark] .chip{background:var(--surface-2)}button.chip:hover,a.chip:hover{background:var(--hover);text-decoration:none}.chip.hist{background:var(--hover);color:var(--dimmed)}.chip.warn{border-color:transparent;color:var(--danger-text);background:var(--danger-light)}.thumb{width:100%;max-height:220px;object-fit:cover;border-radius:var(--radius);margin:8px 0;background:var(--surface-2)}table.props{width:100%;border-collapse:collapse;margin:6px 0}table.props th,table.props td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--border);vertical-align:top}table.props th{color:var(--dimmed);font-weight:500;width:42%}table.props th small{display:block;font-size:10.5px;color:var(--dimmed);opacity:.8}table.props td{word-break:break-word}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.year{color:var(--dimmed);font-size:11.5px;width:40px}.coords{margin:8px 0;display:flex;align-items:center;gap:8px;color:var(--dimmed)}.coords .link{margin-left:0}.actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.sources{padding-left:18px;margin:4px 0;line-height:1.75}.sources .dataset{color:var(--dimmed);list-style:"— "}.raw summary{cursor:pointer;color:var(--dimmed);margin-top:12px}.src{color:var(--dimmed);font-size:12px}.sub{margin:8px 0}.searchbar{display:flex;gap:6px}.searchbar select{width:150px;flex:none}.results{display:flex;flex-direction:column;gap:1px;margin-top:8px}.result{display:flex;align-items:center;gap:10px;text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:7px 8px;width:100%}.result:hover{background:var(--hover)}.rmain{display:flex;flex-direction:column;min-width:0;flex:1}.rname{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsub{color:var(--dimmed);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rextra{color:var(--primary-text);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.rcount{color:var(--dimmed);font-size:12.5px;margin:8px 0}.pgroup{border:1px solid var(--border);border-radius:var(--radius);margin:6px 0;padding:2px 8px}.pgroup summary{display:flex;align-items:center;gap:8px;padding:7px 2px;cursor:pointer}.pgroup .gname{flex:1}.center-box{background:var(--primary-light);border-radius:var(--radius);padding:10px 12px}.tab label{display:block;margin:12px 0 0;color:var(--text);font-size:13px;font-weight:500}.tab label>input,.tab label>select,.tab label>textarea,.tab label>.row{margin-top:4px}.num{width:90px}.cclist{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.nearest td{font-size:12.5px}.cpick{position:relative;margin-top:4px}.cpick input{padding-right:30px}.cp-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--dimmed);font-size:18px;line-height:1;padding:0 6px}.cp-clear:hover{color:var(--text)}.cp-list{position:absolute;z-index:3000;left:0;right:0;top:calc(100% + 4px);max-height:280px;overflow-y:auto;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}[data-theme=dark] .cp-list{background:var(--surface-2)}.cp-opt{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;cursor:pointer;color:var(--text);border-radius:var(--radius-sm);font-size:13.5px}.cp-opt small{color:var(--dimmed)}.cp-opt.on,.cp-opt:hover{background:var(--hover)}.cp-empty{padding:6px 10px;color:var(--dimmed)}#tab-country>.cpick{margin-bottom:12px}.toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.colors{display:flex;gap:8px;margin-top:6px}.color{width:24px;height:24px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);padding:0}.color.on{box-shadow:0 0 0 2px var(--primary)}.pin span{display:block;width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 1px 4px #00000073}.leaflet-container{font:inherit;font-size:12px;background:var(--map-bg)}.leaflet-annot-pane svg,.leaflet-hl-pane svg{pointer-events:none}.leaflet-poly-pane canvas,.leaflet-line-pane canvas,.leaflet-base-pane canvas,.leaflet-hl-pane canvas,.leaflet-annot-pane canvas{pointer-events:none}.leaflet-pane.leaflet-annot-pane>svg path.leaflet-interactive{pointer-events:visibleStroke}.leaflet-control-attribution{background:var(--overlay)!important;color:var(--dimmed)!important;font-size:10px;border-radius:var(--radius-sm) 0 0 0}.leaflet-control-attribution a{color:var(--primary-text)!important}.leaflet-touch .leaflet-bar,.leaflet-bar{border:1px solid var(--border)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-sm)!important;overflow:hidden}.leaflet-bar a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important;width:32px!important;height:32px!important;line-height:32px!important}.leaflet-bar a:hover{background:var(--hover)!important}[data-theme=dark] .leaflet-bar a{background:var(--surface-2)!important}.leaflet-control-scale-line{background:var(--overlay);color:var(--text);border-color:var(--dimmed)}.pt-tip{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-size:12px;padding:4px 8px}[data-theme=dark] .pt-tip{background:var(--surface-2)}.pt-tip:before{display:none}.cluster div{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px;opacity:.9;border:2px solid rgba(255,255,255,.8);box-shadow:0 1px 4px #0000004d}.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{stroke-opacity:.25}}body.picking #map,body.picking .leaflet-interactive{cursor:crosshair!important}#statusbar{position:absolute;left:0;right:0;bottom:0;height:26px;display:flex;align-items:center;gap:16px;padding:0 12px;background:var(--surface);border-top:1px solid var(--border);color:var(--dimmed);font-size:11.5px;font-variant-numeric:tabular-nums}.offline-flag{margin-left:auto;color:var(--warn-text);display:none;font-weight:600}body.offline .offline-flag{display:inline}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--overlay);z-index:2000;color:var(--dimmed)}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:5000;pointer-events:none}.toast{position:relative;max-width:400px;padding:10px 14px 10px 22px;border-radius:var(--radius);font-size:13.5px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);transition:opacity .3s,transform .3s}[data-theme=dark] .toast{background:var(--surface-2)}.toast:before{content:"";position:absolute;left:8px;top:9px;bottom:9px;width:4px;border-radius:4px;background:var(--primary)}.toast-ok:before{background:var(--green-6)}.toast-warn:before{background:var(--orange-6)}.toast-error:before{background:var(--red-6)}.toast.out{opacity:0;transform:translate(12px)}dialog.about{background:var(--surface);color:var(--text);border:none;border-radius:var(--radius-lg);max-width:840px;width:92vw;max-height:85vh;padding:22px 26px;box-shadow:var(--shadow-lg)}dialog.about::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog.about h2{margin-top:0;font-size:18px}dialog.about table th{width:auto}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}@media (max-width: 1100px){:root{--left-w: 260px;--right-w: 330px}#basemap{max-width:150px}}@media (max-width: 860px){.logo-text,.search kbd,.net .label{display:none}}
