:root{--primary:#4f46e5;--primary-hover:#4338ca;--accent:#10b981;--accent-hover:#059669;--bg-dark:#0f172a;--sidebar-bg:#1e293be6;--card-bg:#33415566;--border:#94a3b81f;--text:#f8fafc;--text-dim:#94a3b8;--glass:blur(10px)}*{box-sizing:border-box;margin:0;padding:0;font-family:Pretendard,sans-serif}body,html{background:var(--bg-dark);width:100%;height:100%;overflow:hidden}#app{width:100%;height:100%;display:flex}#sidebar{background:var(--sidebar-bg);width:420px;height:100%;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border-right:1px solid var(--border);z-index:1000;color:var(--text);flex-direction:column;gap:14px;padding:18px;display:flex;overflow-y:auto}header .logo{align-items:center;gap:10px;display:flex}header .icon{font-size:1.4rem}header h1{background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700;line-height:1.35}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.card h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem}.filter-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.filter-header h3{margin-bottom:0}.filter-group{flex-direction:column;gap:10px;display:flex}.filter-label{align-items:center;gap:6px;display:inline-flex}.actions{flex-direction:column;gap:8px;display:flex}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;font-weight:600;transition:all .18s;display:flex}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn.primary{background:var(--primary);color:#fff}.btn.primary:not(:disabled):hover{background:var(--primary-hover);transform:translateY(-1px)}.btn.secondary{color:var(--text);background:#94a3b81a}.btn.secondary:not(:disabled):hover{background:#94a3b833}.btn.accent{background:var(--accent);color:#fff}.btn.accent:not(:disabled):hover{background:var(--accent-hover);transform:translateY(-1px)}.btn.enrich{color:#fff;background:#7c3aed}.btn.enrich:not(:disabled):hover{background:#6d28d9;transform:translateY(-1px)}.btn.small{border-radius:8px;padding:5px 10px;font-size:.8rem}.api-config input{border:1px solid var(--border);width:100%;color:var(--text);background:#0f172a80;border-radius:8px;outline:none;padding:8px 10px;font-size:.8rem}.api-config input:focus{border-color:var(--primary)}.api-config .hint{color:var(--text-dim);margin-top:6px;font-size:.68rem}.status{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.status-item{text-align:center;flex-direction:column;gap:4px;display:flex}.status-item span:first-child{color:var(--text-dim);letter-spacing:.03em;font-size:.72rem}.status-badge{color:#818cf8;font-size:.82rem;font-weight:600}.count-badge{color:var(--accent);font-size:.82rem;font-weight:700}.results-container{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.results-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.results-title{align-items:center;gap:6px;display:flex}.results-title h3{margin-bottom:0}.type-summary{flex-wrap:wrap;gap:6px;display:flex}.list{border:1px solid var(--border);background:#0f172a59;border-radius:10px;flex:1;padding:4px;overflow-y:auto}.address-item{border-bottom:1px solid var(--border);color:var(--text);align-items:flex-start;gap:6px;padding:7px 6px;font-size:.82rem;line-height:1.35;transition:background .12s;display:flex}.address-item:last-child{border-bottom:none}.address-item:hover{background:#4f46e50f;border-radius:6px}.item-check{cursor:pointer;flex-shrink:0;margin-top:2px;padding-left:20px}.item-check .checkmark{width:15px;height:15px;top:0}.item-check .checkmark:after{width:4px;height:8px;top:1px;left:4px}.item-content{flex:1;min-width:0}.item-header{align-items:center;gap:5px;margin-bottom:2px;display:flex}.item-no{min-width:22px;height:18px;color:var(--text-dim);background:#94a3b81a;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0 4px;font-size:.65rem;font-weight:700;display:inline-flex}.item-subtype{color:var(--text-dim);font-size:.65rem;font-weight:400}.item-address{color:var(--text);word-break:break-all;font-weight:600}.item-enrich{color:var(--accent);word-break:break-all;margin-top:2px;font-size:.7rem}.empty-state{height:100%;color:var(--text-dim);text-align:center;justify-content:center;align-items:center;padding:24px;font-size:.85rem;display:flex}.item-badge{letter-spacing:.02em;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.58rem;font-weight:700;display:inline-block}.item-badge.inline{vertical-align:middle}.item-badge.land{color:#f59e0b;background:#f59e0b2e}.item-badge.general{color:#10b981;background:#10b9812e}.item-badge.collective{color:#818cf8;background:#818cf82e}.checkbox-container{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;padding-left:28px;font-size:.875rem;display:block;position:relative}.checkbox-container input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark{background-color:#0f172a80;border:1px solid #94a3b840;border-radius:4px;width:18px;height:18px;transition:all .15s;position:absolute;top:0;left:0}.checkbox-container:hover input~.checkmark{background-color:#0f172acc}.checkbox-container input:checked~.checkmark,.checkbox-container input:indeterminate~.checkmark{background-color:var(--primary);border-color:var(--primary)}.checkmark:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;top:2px;left:5px;transform:rotate(45deg)}.checkbox-container input:indeterminate~.checkmark:after{background:#fff;border:none;width:10px;height:2px;display:block;top:7px;left:3px;transform:none}.checkbox-container.small{padding-left:22px;font-size:.75rem}.checkbox-container.small .checkmark{width:15px;height:15px}.checkbox-container.small .checkmark:after{width:4px;height:8px;top:1px;left:4px}#map-container{flex:1;position:relative}#vmap{width:100%;height:100%}.map-overlay{flex-direction:column;gap:8px;display:flex;position:absolute;top:16px;right:16px}.map-btn{background:var(--sidebar-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:600;transition:background .15s;box-shadow:0 4px 8px #0003}.map-btn:hover{background:#334155f2}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;background:#0f172ad9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--sidebar-bg);border:1px solid var(--border);text-align:center;border-radius:22px;max-width:380px;padding:36px 40px;box-shadow:0 24px 48px #00000080}.modal-content h2{color:var(--text);margin:18px 0 8px;font-size:1.35rem}.modal-content p{color:var(--text-dim);font-size:.9rem;line-height:1.6}.progress-info{color:#818cf8;letter-spacing:.03em;margin-top:20px;font-size:.78rem;font-weight:600}.loader-v2{border:4px solid #4f46e526;border-top-color:var(--primary);border-radius:50%;width:56px;height:56px;margin:0 auto;animation:.9s ease-in-out infinite spin}.hidden{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}
