:root{font-family:Microsoft YaHei,PingFang SC,sans-serif;color:#dfe7f3;background:#0c1422;font-synthesis:none;--muted:#8b9bb2;--line:#8aa4c522;--blue:#92beff}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;color:inherit;background:#1c2d46;border:1px solid #7b9ccb30;border-radius:5px}button:hover{background:#294267}button:focus-visible,a:focus-visible,path:focus-visible{outline:2px solid #a4caff;outline-offset:3px}a{color:#a9caff;text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}header{height:82px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;gap:30px;background:#101b2b}.brand{display:flex;gap:13px;align-items:center}.brand-icon{font-size:30px;border:1px solid #839bb84d;width:42px;height:43px;text-align:center;color:#a4c1e8}.brand strong{font-size:18px;font-weight:500;letter-spacing:1px}.brand em{color:#567497;font-style:normal;margin:0 5px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);margin-top:7px}.header-status{margin-left:auto;font-size:11px;color:#a7b6cd;display:flex;align-items:center;gap:8px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}time{font:17px Consolas,monospace;color:#c6d4e9}main{max-width:1580px;margin:auto;padding:30px 36px 20px}.intro{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:24px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#819bbd}h1{font-size:27px;font-weight:500;letter-spacing:1px;margin:12px 0}p{font-size:12px;color:#98a9c0;line-height:1.9;margin:0}.counts{display:flex;gap:40px;flex-shrink:0}.counts>div{display:flex;flex-direction:column;gap:8px}.counts strong{font:29px Consolas,monospace;color:#e2edff}.counts span{font-size:10px;color:var(--muted)}.notice{background:#17253b;border:1px solid #789acf2e;border-left:3px solid #81a6df;border-radius:5px;padding:13px 17px;font-size:11px;line-height:1.8;color:#b4c5df;margin-bottom:22px}.notice>span{color:#e0ebfc;margin-right:13px}.workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(350px,1fr);gap:22px;align-items:start}.panel{border:1px solid var(--line);background:#111d2e;border-radius:8px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 22px 17px}.panel-title h2{font-size:16px;font-weight:500;margin:8px 0 0}.panel-title a{font-size:10px;white-space:nowrap}.pill{border:1px solid #819abb30;background:#1c2b40;color:#b2c6e0;font-size:9px;padding:5px 8px;border-radius:4px;white-space:nowrap}.map-stage{height:700px;position:relative;background:#09111e;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#gis-map{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#gis-map.dragging{cursor:grabbing}.roof-shape{fill:#82b7ff18;stroke:#a8caff;stroke-width:1.3px;vector-effect:non-scaling-stroke;cursor:pointer}.roof-shape:hover,.roof-shape.selected{fill:#b7d2ff38;stroke:#fff;stroke-width:2px}.roof-label{font:700 17px Consolas,monospace;fill:#fff;stroke:#0b182c;stroke-width:5px;paint-order:stroke;pointer-events:none}.boundary{fill:none;stroke:#e1b06f;stroke-width:2px;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}.map-controls{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:5px}.map-controls button{width:33px;height:33px;font-size:20px;background:#15253eeb}.map-key{position:absolute;bottom:13px;left:13px;border:1px solid #84a6d64d;background:#0d1b30ed;border-radius:4px;padding:8px 10px;font-size:9px;color:#d4e2f6;pointer-events:none}.map-key i{display:inline-block;width:12px;height:8px;border:1px solid #a8caff;margin-right:6px}.map-key span{color:#9aacbe;margin-left:10px}#image-status{position:absolute;left:15px;top:15px;font-size:10px;background:#18283bed;border-radius:4px;padding:8px 12px;max-width:75%}.map-options{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:15px 18px;font-size:10px;color:#bccbe0}.map-options label{display:flex;align-items:center;gap:6px;cursor:pointer}.map-options input{accent-color:#8fbaff}.map-options button{margin-left:auto;padding:7px 9px;font-size:10px}.attribution{padding:0 18px 15px;font-size:9px;line-height:1.8;color:#7e92ad}aside{display:flex;flex-direction:column;gap:18px}.photo-panel img{display:block;width:100%;height:auto}.photo-panel p{padding:13px 20px;font-size:10px}.detail-panel>p,.detail-panel dl{margin:0 22px 16px}.detail-panel dl{display:grid;gap:13px;padding-bottom:17px;border-bottom:1px solid var(--line)}dl>div{display:flex;justify-content:space-between;gap:15px;font-size:11px}dt{color:#8297b5}dd{margin:0;color:#c3d1e6;text-align:right}.detail-panel .precision-note{font-size:10px;color:#8f9fb5}.next-panel{padding:20px 22px}.next-panel h2{font-size:15px;font-weight:500;margin:10px 0}.next-panel p{font-size:11px}.next-panel a{display:inline-block;margin-top:13px;font-size:10px}footer{border-top:1px solid var(--line);padding:20px;text-align:center;color:#647c9d;font-size:9px;letter-spacing:2px}@media(min-width:1500px){.map-stage{height:900px}}@media(max-width:1000px){main{padding:24px}.counts{gap:22px}.counts strong,.intro h1{font-size:23px}.workspace{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr)}.map-stage{height:680px}}@media(max-width:760px){header{padding:0 16px;height:72px;gap:10px}.brand strong{font-size:14px}.brand small{font-size:6px;letter-spacing:1px}.brand-icon{width:32px;height:35px;font-size:25px}.header-status{display:none}time{margin-left:auto;font-size:12px}.intro{display:block}.intro h1{font-size:23px}.intro p{font-size:11px}.counts{margin-top:24px;justify-content:space-between}.counts strong{font-size:25px}.counts span{font-size:9px}main{padding:23px 14px}.workspace{grid-template-columns:1fr;gap:16px}.map-stage{height:620px}.panel-title{padding:16px}.notice{font-size:10px}.map-options{gap:10px;padding:12px}.map-options button{margin-left:0}.detail-panel dl{gap:14px}.roof-label{font-size:21px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
