:root{--ink:#e9f2fb;--muted:#97aec2;--line:#aacde62e;--panel:#07101aa8;--amber:#ffc66d;--cyan:#63d5ee;--green:#54d99a;--red:#ff6b5e}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;background:#050d15;margin:0;font-family:Microsoft YaHei,PingFang SC,Source Han Sans SC,system-ui,sans-serif;overflow:hidden}#cesiumContainer{position:absolute;inset:0}#vignette{z-index:4;pointer-events:none;background:radial-gradient(at 50% 44%,#0000 48%,#02080e75 100%),linear-gradient(#02080e47 0%,#02080e00 16% 84%,#02080e52 100%);position:absolute;inset:0}.hud{z-index:10;color:var(--ink);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px)saturate(1.05);backdrop-filter:blur(14px)saturate(1.05);border-radius:14px;position:absolute;box-shadow:0 18px 50px #00000052}.top-left{width:auto;max-width:calc(100vw - 44px);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0;top:22px;left:22px}.top-left,.bottom-right,#basemapDock,#skyDock,#statsHost,#scaleDock,.layer-dock,.quality-dock,.measure-dock{transition:opacity .4s,transform .4s,visibility .4s}body.cinema .top-left,body.cinema .bottom-right,body.cinema #basemapDock,body.cinema #skyDock,body.cinema #statsHost,body.cinema #scaleDock,body.cinema .layer-dock,body.cinema .quality-dock,body.cinema .measure-dock{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px)}h1{letter-spacing:.08em;text-shadow:0 2px 14px #02080ea6,0 1px 3px #02080e80;margin:0;font-family:Source Han Sans SC,Noto Sans SC,HarmonyOS Sans SC,Microsoft YaHei,SimHei,sans-serif;font-size:26px;font-weight:800;line-height:1.4}h1 span{color:var(--amber);margin-left:.2em}.cam-readout{letter-spacing:.08em;color:#dfeaf3a8;font-variant-numeric:tabular-nums;text-shadow:0 1px 8px #02080eb8;-webkit-user-select:text;user-select:text;align-items:center;gap:10px;margin-top:7px;font-size:12px;font-weight:300;line-height:1.5;display:flex}.cam-copy{color:var(--amber);font:inherit;letter-spacing:.16em;cursor:pointer;background:#02080e29;border:1px solid #ffc66d61;border-radius:999px;flex:none;padding:2px 10px;font-size:11px;transition:border-color .2s,background .2s}.cam-copy:hover{background:#ffc66d1f;border-color:#ffc66dd1}#statsHost{z-index:30;opacity:.86;pointer-events:none;position:absolute;top:22px;right:22px}#statsHost canvas{border-radius:6px;display:block;box-shadow:0 8px 24px #00000047}.bottom-right{border-radius:12px;align-items:stretch;gap:8px;width:auto;padding:8px;display:flex;bottom:22px;right:22px}.map-dock{display:none}.sky-dock{z-index:26;border-radius:12px;align-items:center;gap:10px;padding:6px 8px;display:none;bottom:auto;left:22px}.sky-dock.show{display:flex}.grid-dock{gap:8px}.dike-dock .seg{flex-direction:column;max-height:62vh;overflow-y:auto}.dike-dock .seg button{white-space:nowrap;color:#a9c0d2;text-align:left;background:0 0;border:0;border-radius:0;width:auto;height:24px;padding:0 10px;font-size:10.5px}.dike-dock .seg button+button{border-top:1px solid #aacde629}.dike-dock .seg button:hover{color:var(--amber);background:#ffc66d1f}.dike-dock .seg button.active,.dike-dock .seg button.active:hover{background:var(--amber);color:#1a1206}.sky-dock .sky-time{color:#a9c0d2;align-items:center;gap:7px;display:flex}.sky-dock .sky-time span{letter-spacing:.08em;font-size:10.5px}.sky-dock .sky-time input[type=range]{width:120px;height:3px;accent-color:var(--amber);cursor:pointer}.sky-dock .sky-time b{text-align:right;color:#ffd76a;min-width:38px;font:600 11.5px/1 Bahnschrift,DIN Alternate,monospace}.sky-dock .sky-speed input[type=range]{width:84px}.sky-dock .sky-close{border:1px solid #aacde629;border-radius:6px;place-items:center;width:20px;height:20px;padding:0;font-size:14px;line-height:1;display:grid}.sky-dock .sky-close:hover{color:var(--amber);border-color:#ffc66d80}.seg{border:1px solid #aacde629;border-radius:7px;display:flex;overflow:hidden}.map-dock .seg button{color:#a9c0d2;background:0 0;border:0;border-radius:0;width:52px;height:26px;padding:0;font-size:10.5px}.map-dock .seg button+button{border-left:1px solid #aacde629}.map-dock .seg button:hover{color:var(--amber);background:#ffc66d1f}.map-dock .seg button.active,.map-dock .seg button.active:hover{background:var(--amber);color:#1a1206}.map-dock .seg button:disabled{opacity:.38;cursor:not-allowed}.action-row{align-items:stretch;gap:8px;display:flex}.action-col{grid-template-rows:auto repeat(6,30px);grid-template-columns:repeat(2,minmax(94px,auto));grid-auto-flow:column;gap:5px;min-width:94px;display:grid}.action-col .action-head{grid-area:1/1/2/-1}.icon-btn svg{width:17px;height:17px;display:block}.icon-btn .glyph{font-size:12px;font-weight:600;line-height:1}.action-head{text-align:center;letter-spacing:.18em;color:#b0cfe385;padding:1px 0 2px;font:600 9px/1 Bahnschrift,DIN Alternate,sans-serif}.bottom-right button{width:100%;padding:0 4px;font-size:10.5px}.quality-dock{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:25;opacity:.68;background:0 0;border:0;padding:0;transition:opacity .25s;inset:78px 22px auto auto}.quality-dock:hover{opacity:1}.quality-dock select{appearance:none;color:#9db3c5;letter-spacing:.02em;cursor:pointer;background:#08101838 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2390a8bb'/%3E%3C/svg%3E") right 6px center/7px no-repeat;border:1px solid #aacde61f;border-radius:7px;outline:none;padding:1px 17px 1px 7px;font-size:10.5px;line-height:17px}.quality-dock select:hover,.quality-dock select:focus{color:var(--amber);border-color:#ffc66d42}.quality-dock select option{color:#dcebf6;background:#0d1822}button{appearance:none;color:#dcebf6;letter-spacing:.04em;cursor:pointer;background:#8cb9d714;border:1px solid #aacde629;border-radius:7px;height:30px;padding:0 11px;font:500 11.5px/1 Microsoft YaHei,system-ui,sans-serif;transition:background .16s,border-color .16s,color .16s,transform .16s}button:hover{color:var(--amber);background:#ffc66d1f;border-color:#ffc66d6b}button:active{transform:translateY(1px)}button.ghost{color:#a9c0d2;background:0 0}button.active{color:#1a1206;background:var(--amber);border-color:var(--amber)}#loading{z-index:50;background:radial-gradient(circle at 50% 42%,#183e538c,#030a11f7 62%),#030a11;flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .7s,visibility .7s;display:flex;position:absolute;inset:0}#loading.hidden{opacity:0;visibility:hidden}.loader{border:1px solid #ffc66d2e;border-top-color:var(--amber);border-right-color:#63d5eea6;border-radius:50%;width:46px;height:46px;animation:1.2s cubic-bezier(.55,.15,.45,.85) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{letter-spacing:.12em;color:#e6f2fb;font-size:15px}.loading-sub{letter-spacing:.08em;color:#7f9aae;font-size:11px}.cesium-widget-credits{opacity:.55;font-size:9px!important}.cesium-credit-logoContainer{display:none!important}.tour-launch{width:100%;height:29px;color:var(--amber);background:#ffc66d0f;border-color:#ffc66d47;margin-top:12px}#tourCaption{z-index:12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;pointer-events:none;opacity:0;background:#07101a94;border:1px solid #aacde629;border-radius:12px;width:min(520px,100vw - 760px);min-width:320px;padding:14px 20px 12px;transition:opacity .5s,transform .5s;position:absolute;top:24px;left:50%;transform:translate(-50%,-8px)}#tourCaption.visible{opacity:1;transform:translate(-50%)}.tour-kicker{color:var(--amber);letter-spacing:.18em;font:600 9px/1.2 Bahnschrift,DIN Alternate,monospace}.tour-title{letter-spacing:.06em;margin-top:5px;font-size:21px;font-weight:600}.tour-note{color:#bcd1df;letter-spacing:.02em;margin-top:4px;font-size:11px}.tour-bar{background:#aacde629;width:160px;height:2px;margin:10px auto 0;overflow:hidden}.tour-bar i{background:var(--amber);width:0;height:100%;transition:width .6s linear;display:block}.pick-card{z-index:14;pointer-events:auto;width:min(380px,100vw - 44px);padding:10px 12px}.pick-card.hidden{display:none}.pick-head{color:var(--muted);letter-spacing:.12em;justify-content:space-between;align-items:center;margin-bottom:6px;font:600 11px/1.2 Microsoft YaHei,sans-serif;display:flex}.pick-row{min-height:24px;color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.pick-row>span{color:#b0cfe39e;flex:none;width:34px}.pick-row code,.pick-row b{color:#e8f7ff;overflow-wrap:anywhere;flex:1;min-width:0;font:600 11px/1.35 Bahnschrift,DIN Alternate,monospace}.pick-copy{flex:none;height:22px;padding:0 8px;font-size:10px}.pick-copy.copied{color:#0b1a22;background:var(--amber)}.icon-btn{width:22px;height:22px;color:var(--muted);background:0 0;border:0;padding:0;font-size:17px;line-height:1}.fill-panel{width:min(560px,100vw - 44px);padding:11px 14px 9px;bottom:22px;left:50%;transform:translate(-50%)}.fill-head{color:var(--muted);letter-spacing:.08em;justify-content:space-between;align-items:baseline;font-size:10.5px;display:flex}.fill-head b{color:var(--amber);font:600 12px/1.2 Bahnschrift,DIN Alternate,monospace}.fill-controls{align-items:center;gap:10px;margin-top:8px;display:flex}.fill-controls button{height:27px;color:var(--amber);border-color:#ffc66d59;padding:0 13px}.fill-controls input[type=range]{height:3px;accent-color:var(--amber);cursor:pointer;flex:1}.fill-controls>span{text-align:right;color:#ffd76a;width:48px;font:600 12px/1 Bahnschrift,DIN Alternate,monospace}.fill-error{color:#ff9d7a;letter-spacing:.02em;margin:7px 0 0;font-size:11px;line-height:1.4}.fill-error[hidden]{display:none}.sand-readout{z-index:4;color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;text-shadow:0 1px 3px #06121ad9,0 0 8px #06121a80;background:0 0;border:none;border-radius:0;padding:0;font-size:13px;position:absolute;transform:translate(-50%,-50%)}.sand-readout[hidden]{display:none}.sand-legend{z-index:5;box-sizing:border-box;color:#dce9ef;pointer-events:none;font-variant-numeric:tabular-nums;background:#091e2bcc;border:1px solid #6e96ac73;border-radius:8px;width:104px;padding:8px 9px 9px;font-size:10.5px;line-height:1.4;position:absolute;bottom:96px;left:84px}.sand-legend[hidden]{display:none}.sand-legend header{letter-spacing:.06em;color:#fff;font-size:10px;font-weight:600}.sand-legend-rows{flex-direction:column;gap:3px;margin-top:6px;display:flex}.sand-legend-rows span{align-items:center;gap:5px;display:flex}.sand-legend-rows i{border:1px solid #9eb4c0b3;flex:none;width:10px;height:10px}.sand-legend p{margin:5px 0 0}.sand-legend-range{color:#fff}.sand-legend-scale{color:#9fb6c4;border-top:1px solid #6e96ac73;padding-top:5px;font-size:9.5px;line-height:1.3;margin-top:6px!important}.sand-dock{z-index:30;color:#d8e5e7;background:#091c24f5;border:1px solid #aacde633;border-radius:12px;width:360px;max-height:min(760px,100vh - 40px);padding:0 12px 12px;font-size:12px;display:none;overflow-y:auto}.sand-dock.show{display:block}.sand-panel-title{z-index:2;background:#102832;border-bottom:1px solid #aacde629;align-items:center;gap:8px;margin:0 -12px 8px;padding:12px;display:flex;position:sticky;top:0}.sand-panel-title span{color:#8faeb5;flex:1;font-size:10px}.sand-panel-title button{color:#b9cdd2;background:0 0;border:0;padding:0 5px;font-size:18px}.sand-dock section,.sand-dock details{border-bottom:1px solid #aacde61f;padding:10px 0}.sand-dock h4,.sand-dock summary{color:#f2c66d;margin:0 0 8px;font-size:12px}.sand-dock summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;list-style-position:inside}.sand-dock summary::marker{color:#a9c0c5}.sand-dock label{color:#a9c0c5;margin:7px 0;display:block}.sand-dock input,.sand-dock select{box-sizing:border-box;color:#edf4f3;background:#0b2028;border:1px solid #36545b;border-radius:5px;width:100%;margin-top:4px;padding:5px 6px}.sand-dock input[type=range]{accent-color:#ffc66d;padding:0}.sand-chip-row,.sand-form-row{align-items:center;gap:7px;display:flex}.sand-chip-row button,.sand-form-row button{color:#b9cdd2;background:0 0;border:1px solid #3a5961;border-radius:5px;flex:1;padding:5px 7px}.sand-chip-row button.active{color:#fff2c7;background:#6b4b26;border-color:#c08b42}.sand-form-row>*{flex:1;min-width:0}.sand-crest-grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.sand-crest-grid label{text-align:center;color:#f2c66d}.sand-status{color:#ffcf67;min-height:20px;padding:8px 0}.sand-stats{white-space:pre-wrap;color:#a9c0c5;margin:0;font:10.5px/1.65 Bahnschrift,Microsoft YaHei,monospace}@media (max-width:700px){.sand-dock{width:min(340px,100vw - 80px)}}.fill-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.fill-metrics>div{border-left:1px solid #aacde624;flex-direction:column;gap:2px;padding-left:9px;display:flex}.fill-metrics>div:first-child{border-left:0;padding-left:0}.fill-metrics span{color:var(--muted);letter-spacing:.04em;font-size:9.5px}.fill-metrics b{color:#e7f4fb;white-space:nowrap;font:600 12px/1.2 Bahnschrift,DIN Alternate,monospace}.scale-dock{z-index:25;border-radius:14px;flex-direction:column;align-items:center;gap:8px;width:58px;padding:10px 8px;display:flex;top:50%;right:22px;transform:translateY(-50%)}.scale-caption{color:var(--muted);letter-spacing:.08em;text-align:center;font-size:9.5px;line-height:1.25}.scale-dock input{writing-mode:vertical-lr;width:20px;height:160px;accent-color:var(--amber);cursor:pointer;direction:rtl}.scale-dock b{color:var(--amber);font:600 11px/1 Bahnschrift,DIN Alternate,monospace}.layer-dock{z-index:25;border-radius:12px;flex-direction:column;gap:4px;padding:9px 10px 10px;display:flex;bottom:96px;left:22px}.layer-head{text-align:center;letter-spacing:.18em;color:#b0cfe385;font:600 9px/1.6 Bahnschrift,DIN Alternate,sans-serif}.layer-row{display:contents}.layer-row+.layer-row .icon-btn:first-child{margin-top:7px}.layer-dock .icon-btn{place-items:center;width:30px;height:30px;padding:0;display:grid}.measure-dock{z-index:25;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:12px;flex-direction:column;gap:7px;padding:4px 2px;display:flex;bottom:22px;left:22px}.measure-tools{align-items:center;gap:6px;display:flex}@media (max-width:920px){.measure-tools{flex-direction:column;align-items:flex-start}.layer-dock{bottom:130px}}.measure-tools .seg button{color:#a9c0d2;background:0 0;border:0;border-radius:0;width:40px;height:26px;padding:0;font-size:11px}.measure-tools .seg button+button{border-left:1px solid #aacde629}.measure-tools .seg button:hover{color:var(--amber);background:#ffc66d1f}.measure-tools .seg button.active,.measure-tools .seg button.active:hover{background:var(--amber);color:#1a1206}.measure-tools #btnMeasureClear{height:26px;padding:0 9px;font-size:10.5px}.measure-cursor{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--amber);letter-spacing:.05em;white-space:pre;pointer-events:none;opacity:0;background:#07101adb;border:1px solid #ffc66d57;border-radius:7px;padding:4px 9px;font:500 10.5px/1.45 Microsoft YaHei,system-ui,sans-serif;transition:opacity .16s;position:fixed;top:0;left:0}.measure-cursor.on{opacity:1}@media (max-width:1280px){.fill-panel{width:500px}.bottom-right{width:auto}}@media (max-width:1120px){.fill-panel{width:440px}}@media (max-width:760px){#tourCaption{display:none}.top-left{top:12px;left:12px}h1{font-size:19px}.map-dock{display:none}.bottom-right{width:auto;bottom:12px;left:12px;right:12px;overflow-x:auto}.action-col{flex:1;min-width:0}.fill-panel{width:calc(100vw - 24px);padding:9px 11px;bottom:162px}#statsHost,.quality-dock{display:none}.fill-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}button{padding:0 8px;font-size:10.5px}}
