.fnsly-3d-page{display:grid;gap:18px;min-width:0}
.fnsly-3d-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.fnsly-3d-head h2{margin:5px 0 7px;font-size:28px;color:#102c42;letter-spacing:0}
.fnsly-3d-head p{margin:0;color:#637083}
.fnsly-3d-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.fnsly-3d-page .btn{white-space:nowrap}
.fnsly-3d-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;min-height:680px}
.fnsly-3d-stage{position:relative;min-height:680px;overflow:hidden;border:1px solid rgba(82,203,225,.42);border-radius:10px;background:#060d18;box-shadow:0 20px 45px rgba(5,18,38,.28),inset 0 0 70px rgba(42,182,217,.06)}
.fnsly-3d-stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(110,229,241,.028) 0,rgba(110,229,241,.028) 1px,transparent 1px,transparent 5px),linear-gradient(120deg,rgba(80,220,229,.06),transparent 42%,rgba(126,102,221,.08));mix-blend-mode:screen;opacity:.75}
.fnsly-3d-canvas{position:absolute;inset:0;z-index:1}
.fnsly-3d-canvas canvas{display:block;width:100%;height:100%;cursor:grab}
.fnsly-3d-canvas canvas:active{cursor:grabbing}
.fnsly-3d-loading{position:absolute;z-index:9;inset:0;display:grid;place-items:center;color:#6fd6e8;font-size:14px;letter-spacing:4px;background:#060d18;transition:opacity .6s}
.fnsly-3d-legend{position:absolute;z-index:3;top:14px;left:16px;padding:9px 12px;border:1px solid rgba(90,220,231,.38);border-radius:7px;background:linear-gradient(135deg,rgba(13,42,61,.72),rgba(11,25,52,.5));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(206,249,255,.12),0 0 22px rgba(36,186,218,.08)}
.fnsly-3d-legend b{display:block;margin-bottom:6px;color:#7fd4e6;font:700 11px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;letter-spacing:2px}
.fnsly-3d-legend .row{display:flex;align-items:center;gap:8px;margin:4px 0;color:#d5e6ef;font:600 12px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;cursor:pointer;opacity:.92;white-space:nowrap}
.fnsly-3d-legend .row.off{opacity:.32;text-decoration:line-through}
.fnsly-3d-legend i{width:22px;height:4px;border-radius:2px;display:inline-block;flex:0 0 auto}
.fnsly-3d-phases{position:absolute;z-index:3;top:14px;left:50%;transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:7px;max-width:min(560px,calc(100% - 420px))}
.fnsly-3d-phases button{background:rgba(10,28,42,.8);color:#9fd9e8;border:1px solid rgba(80,200,230,.3);border-radius:18px;padding:6px 14px;font-size:12px;cursor:pointer;transition:all .25s;font-family:Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;white-space:nowrap}
.fnsly-3d-phases button:hover{border-color:#4fd8f0;color:#fff}
.fnsly-3d-phases button.active{background:linear-gradient(135deg,#0e7c8a,#11576b);color:#fff;border-color:#35d3e8;box-shadow:0 0 14px rgba(53,211,232,.35)}
.fnsly-3d-flow-note{position:absolute;z-index:3;top:52px;right:14px;width:236px;padding:9px 12px;border:1px solid rgba(90,220,231,.26);border-radius:7px;background:rgba(6,24,40,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#c9e3ea;font:500 11px/1.75 Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
.fnsly-3d-flow-note b{display:block;margin-bottom:4px;color:#7fd4e6;font:700 11px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;letter-spacing:2px}
.fnsly-3d-controls-hint{position:absolute;z-index:3;right:14px;top:14px;padding:9px 12px;color:#c4e8f0;background:linear-gradient(135deg,rgba(13,42,61,.72),rgba(11,25,52,.5));border:1px solid rgba(90,220,231,.32);border-radius:7px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:500 11px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;white-space:nowrap}
.fnsly-3d-follow-status{position:absolute;z-index:4;left:16px;bottom:14px;width:min(360px,calc(100% - 32px));padding:11px 13px;border:1px solid rgba(88,242,229,.68);border-radius:8px;background:linear-gradient(135deg,rgba(5,39,52,.9),rgba(9,25,49,.84));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#eaffff;box-shadow:0 0 22px rgba(44,224,221,.2),inset 0 1px 0 rgba(234,255,255,.16);pointer-events:none}
.fnsly-3d-follow-status-head,.fnsly-3d-follow-status-route{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fnsly-3d-follow-status-head{font:700 12px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
.fnsly-3d-follow-status-head span{display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnsly-3d-follow-status-head span i{width:8px;height:8px;border-radius:50%;background:#58f1e5;box-shadow:0 0 10px #58f1e5;animation:fnsly-follow-pulse 1.3s ease-in-out infinite;flex:0 0 auto}
.fnsly-3d-follow-status-head strong{color:#73fff1;font:700 15px "DIN Alternate",Consolas,Roboto Mono,monospace}
.fnsly-3d-follow-track{height:4px;margin-top:9px;overflow:hidden;border-radius:2px;background:rgba(126,185,194,.2)}
.fnsly-3d-follow-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c9a24a,#42ded1,#a5fff3);box-shadow:0 0 8px #58f1e5;transition:width .12s linear}
.fnsly-3d-follow-status-route{margin-top:7px;color:#bde3e8;font:600 12px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
.fnsly-3d-follow-status-route span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnsly-3d-follow-status-route em{flex:0 0 auto;color:#8baeb8;font-style:normal;font-size:11px}
.fnsly-3d-narration{position:absolute;z-index:5;bottom:84px;left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 40px));padding:13px 20px 14px;text-align:center;background:linear-gradient(180deg,rgba(8,24,36,.92),rgba(6,16,26,.88));border:1px solid rgba(66,222,209,.45);border-radius:12px;opacity:0;transition:opacity .5s;pointer-events:none}
.fnsly-3d-narration b{display:block;margin-bottom:5px;color:#42ded1;font:700 13px Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;letter-spacing:2px}
.fnsly-3d-narration p{margin:0;color:#eafcff;font:400 15px/1.75 Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.fnsly-3d-detail{position:relative;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid transparent;border-radius:10px;background:linear-gradient(rgba(13,32,51,.78),rgba(8,22,39,.68)) padding-box,linear-gradient(135deg,rgba(62,218,235,.62),rgba(136,103,235,.42),rgba(62,218,235,.16)) border-box;color:#d9eef2;box-shadow:0 14px 30px rgba(7,22,42,.2),inset 0 1px 0 rgba(214,250,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:0;overflow:hidden}
.fnsly-3d-detail:before{content:"";position:absolute;top:0;left:0;width:72px;height:2px;background:linear-gradient(90deg,#5ce5f0,#987af5,transparent);box-shadow:0 0 12px #45dce8}
.fnsly-3d-detail:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 5px,rgba(101,225,237,.025) 6px);animation:caocun-scan 7s linear infinite}
.fnsly-3d-detail h3{margin:0;font-size:20px;color:#e0f8fb;letter-spacing:0;overflow-wrap:anywhere;font-family:Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
.fnsly-3d-detail p{margin:0;color:#a9c7d0;line-height:1.6;font-size:13px;font-family:Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
.fnsly-3d-detail-grid{display:grid;gap:8px;overflow:auto;min-height:0}
.fnsly-3d-detail-grid>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:9px 10px;border:1px solid rgba(91,197,214,.18);border-radius:7px;background:rgba(20,51,69,.42);min-width:0;position:relative;z-index:1}
.fnsly-3d-detail-grid span{font-size:12px;color:#aacbd3;overflow-wrap:anywhere}
.fnsly-3d-detail-grid strong{font:700 13px "DIN Alternate",Consolas,Roboto Mono,monospace;color:#e1fbfb;white-space:nowrap}
.fnsly-3d-head h2,.fnsly-3d-head p{font-family:Roboto,"HarmonyOS Sans",Microsoft YaHei,sans-serif}
@keyframes fnsly-follow-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(max-width:1100px){.fnsly-3d-layout{grid-template-columns:1fr}.fnsly-3d-detail{min-height:220px}.fnsly-3d-stage{min-height:580px}.fnsly-3d-phases{max-width:calc(100% - 32px);top:auto;bottom:14px}.fnsly-3d-follow-status{bottom:64px}.fnsly-3d-narration{bottom:130px}}
@media(max-width:720px){.fnsly-3d-head{display:grid}.fnsly-3d-actions{justify-content:flex-start}.fnsly-3d-stage{min-height:460px}.fnsly-3d-flow-note{display:none}.fnsly-3d-legend{left:8px;right:8px;gap:8px}.fnsly-3d-narration{width:calc(100% - 24px)}}
