:root{color-scheme:light;font-family:Arial,'Microsoft JhengHei',sans-serif;color:#183249;background:#f2f6fa;font-size:16px}
*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer;background:#fff;color:#164468;border:1px solid #bed0df;border-radius:7px;padding:10px 14px;min-height:44px}button:hover{background:#eef6fc}button:disabled{opacity:.55;cursor:default}button:focus-visible,select:focus-visible,.map-scroll:focus-visible{outline:3px solid #087fb9;outline-offset:-3px}[hidden]{display:none!important}
.site-header{background:#fff;padding:22px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dde6ed}.site-header strong{font-size:24px}.site-header small{font-size:14px;letter-spacing:2px}.site-header span{font-size:14px;color:#536b80}main{max-width:1040px;margin:auto;padding:20px}.picker{background:#fff;padding:24px;border-radius:12px;margin-bottom:18px}.picker h1{margin:0 0 20px}.picker label{display:block;margin-bottom:8px}.selection{display:flex;gap:12px}.selection select{flex:1;min-width:0;border:1px solid #bed0df;border-radius:7px;padding:10px;background:#fff}.selection button{background:#0868ae;color:#fff}.picker p{margin:12px 0 0;color:#536b80}
.viewer{background:#fff;border:1px solid #dde6ed;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;height:min(840px,92vh);height:min(840px,92dvh)}.viewer-head{padding:14px 20px;border-bottom:1px solid #dde6ed;flex:none}.viewer-head h1{font-size:21px;margin:0 0 6px}.viewer-head p{margin:0;color:#4a6072;font-size:14px;line-height:1.5}.map-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:#f6f8fa;scroll-behavior:auto}.stage{position:relative;width:100%;max-width:850px;margin:auto}.stage img{width:100%;height:auto;display:block}.stage svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#halo,#route{fill:none;stroke:#00aace;stroke-width:15;stroke-linejoin:round;stroke-linecap:round}#halo{filter:url(#glow);opacity:.75}#route{stroke:#bfffff;stroke-width:5}#spark{fill:#fff;filter:drop-shadow(0 0 6px #008cc9);opacity:0}#origin>circle{fill:#fff;stroke:#006ca5;stroke-width:4}#origin .core{fill:#006ca5;stroke:none}#origin rect{fill:#006ca5}#origin text{fill:#fff;font-size:21px;font-weight:bold}.shelf-box{stroke:#b97100;stroke-width:2;fill:#ffd34077}#label-bg{fill:#ffe24a;stroke:#624d00;stroke-width:2}#label{fill:#172b3c;font-size:25px;font-weight:800}
.viewer-bottom{padding:12px 18px;flex:none;border-top:1px solid #dde6ed}.viewer-bottom #status{margin:0 0 10px;font-size:14px;line-height:1.5;min-height:21px}.actions{display:flex;gap:8px;flex-wrap:wrap}.note{font-size:13px;color:#536b80;margin:9px 0 0;line-height:1.5}.progress{height:3px;background:#e8f3f8;flex:none}.progress i{display:block;height:100%;width:0;background:#087fb9}
.embedded{background:#fff}.embedded .site-header{display:none}.embedded main{padding:0;max-width:none}.embedded .viewer{height:100vh;height:100dvh;border:0;border-radius:0}.embedded .picker{margin:0}.fit-map .stage{width:var(--ck-map-fit-width,100%);max-width:100%;min-width:0}
@media(max-width:650px){main{padding:10px}.site-header{padding:16px}.site-header span{display:none}.viewer{height:calc(100vh - 100px);height:calc(100dvh - 100px)}.viewer-head{padding:10px 14px}.viewer-head h1{font-size:19px}.viewer-bottom{padding:10px 12px}.stage{min-width:660px}.actions{gap:6px}.actions button{font-size:14px;padding:9px 11px}.note{font-size:12px}.embedded .viewer{height:100vh;height:100dvh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
