iflow-engine-base 4.0.16 → 4.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/bim-engine-sdk.es.js +29 -40
  2. package/dist/bim-engine-sdk.umd.js +2754 -2392
  3. package/dist/chunks/{EngineKernel-BLJsCrxR.js → EngineKernel-CZX0Omjs.js} +2676 -2402
  4. package/dist/chunks/{engine-2d-DneQvSOi.js → engine-2d-CA5-uNuf.js} +5 -5
  5. package/dist/chunks/{engine-3d-B0D38zLu.js → engine-3d-BsWcD-bl.js} +7215 -6460
  6. package/dist/chunks/{engine-720-OdgX2p-d.js → engine-720-DiTJEtdN.js} +8 -8
  7. package/dist/chunks/{engine-gaussian-CQdrGBYh.js → engine-gaussian-BHUGuaw_.js} +227 -227
  8. package/dist/chunks/gis-tiles-vendor-DIbUOKJM.js +11781 -0
  9. package/dist/chunks/index-D7NwsYhB.js +2640 -0
  10. package/dist/chunks/{sdk-assets-Dh7PGW73.js → sdk-assets-DtcFvuth.js} +2 -2
  11. package/dist/chunks/{sdk-runtime-KslKRuwI.js → sdk-runtime-DN15bwdD.js} +761 -762
  12. package/dist/chunks/{sdk-vendor-CVc1LiJj.js → sdk-vendor-6wYtfmXR.js} +31044 -31044
  13. package/dist/chunks/{three-vendor-Ds9cgGKb.js → three-vendor-CGmeNMm5.js} +7963 -7954
  14. package/dist/gis-fixtures/terrain/0/0/0.terrain +0 -0
  15. package/dist/gis-fixtures/terrain/0/1/0.terrain +0 -0
  16. package/dist/gis-fixtures/terrain/1/2/0.terrain +0 -0
  17. package/dist/gis-fixtures/terrain/1/2/1.terrain +0 -0
  18. package/dist/gis-fixtures/terrain/1/3/0.terrain +0 -0
  19. package/dist/gis-fixtures/terrain/1/3/1.terrain +0 -0
  20. package/dist/gis-fixtures/terrain/10/1694/650.terrain +0 -0
  21. package/dist/gis-fixtures/terrain/10/1694/651.terrain +0 -0
  22. package/dist/gis-fixtures/terrain/10/1694/652.terrain +0 -0
  23. package/dist/gis-fixtures/terrain/10/1695/650.terrain +0 -0
  24. package/dist/gis-fixtures/terrain/10/1695/651.terrain +0 -0
  25. package/dist/gis-fixtures/terrain/10/1695/652.terrain +0 -0
  26. package/dist/gis-fixtures/terrain/10/1696/650.terrain +0 -0
  27. package/dist/gis-fixtures/terrain/10/1696/651.terrain +0 -0
  28. package/dist/gis-fixtures/terrain/10/1696/652.terrain +0 -0
  29. package/dist/gis-fixtures/terrain/11/3390/1301.terrain +0 -0
  30. package/dist/gis-fixtures/terrain/11/3390/1302.terrain +0 -0
  31. package/dist/gis-fixtures/terrain/11/3390/1303.terrain +0 -0
  32. package/dist/gis-fixtures/terrain/11/3391/1301.terrain +0 -0
  33. package/dist/gis-fixtures/terrain/11/3391/1302.terrain +0 -0
  34. package/dist/gis-fixtures/terrain/11/3391/1303.terrain +0 -0
  35. package/dist/gis-fixtures/terrain/11/3392/1301.terrain +0 -0
  36. package/dist/gis-fixtures/terrain/11/3392/1302.terrain +0 -0
  37. package/dist/gis-fixtures/terrain/11/3392/1303.terrain +0 -0
  38. package/dist/gis-fixtures/terrain/12/6782/2604.terrain +0 -0
  39. package/dist/gis-fixtures/terrain/12/6782/2605.terrain +0 -0
  40. package/dist/gis-fixtures/terrain/12/6782/2606.terrain +0 -0
  41. package/dist/gis-fixtures/terrain/12/6783/2604.terrain +0 -0
  42. package/dist/gis-fixtures/terrain/12/6783/2605.terrain +0 -0
  43. package/dist/gis-fixtures/terrain/12/6783/2606.terrain +0 -0
  44. package/dist/gis-fixtures/terrain/12/6784/2604.terrain +0 -0
  45. package/dist/gis-fixtures/terrain/12/6784/2605.terrain +0 -0
  46. package/dist/gis-fixtures/terrain/12/6784/2606.terrain +0 -0
  47. package/dist/gis-fixtures/terrain/13/13565/5209.terrain +0 -0
  48. package/dist/gis-fixtures/terrain/13/13565/5210.terrain +0 -0
  49. package/dist/gis-fixtures/terrain/13/13565/5211.terrain +0 -0
  50. package/dist/gis-fixtures/terrain/13/13566/5209.terrain +0 -0
  51. package/dist/gis-fixtures/terrain/13/13566/5210.terrain +0 -0
  52. package/dist/gis-fixtures/terrain/13/13566/5211.terrain +0 -0
  53. package/dist/gis-fixtures/terrain/13/13567/5209.terrain +0 -0
  54. package/dist/gis-fixtures/terrain/13/13567/5210.terrain +0 -0
  55. package/dist/gis-fixtures/terrain/13/13567/5211.terrain +0 -0
  56. package/dist/gis-fixtures/terrain/14/27131/10419.terrain +0 -0
  57. package/dist/gis-fixtures/terrain/14/27131/10420.terrain +0 -0
  58. package/dist/gis-fixtures/terrain/14/27131/10421.terrain +0 -0
  59. package/dist/gis-fixtures/terrain/14/27132/10419.terrain +0 -0
  60. package/dist/gis-fixtures/terrain/14/27132/10420.terrain +0 -0
  61. package/dist/gis-fixtures/terrain/14/27132/10421.terrain +0 -0
  62. package/dist/gis-fixtures/terrain/14/27133/10419.terrain +0 -0
  63. package/dist/gis-fixtures/terrain/14/27133/10420.terrain +0 -0
  64. package/dist/gis-fixtures/terrain/14/27133/10421.terrain +0 -0
  65. package/dist/gis-fixtures/terrain/2/5/1.terrain +0 -0
  66. package/dist/gis-fixtures/terrain/2/5/2.terrain +0 -0
  67. package/dist/gis-fixtures/terrain/2/5/3.terrain +0 -0
  68. package/dist/gis-fixtures/terrain/2/6/1.terrain +0 -0
  69. package/dist/gis-fixtures/terrain/2/6/2.terrain +0 -0
  70. package/dist/gis-fixtures/terrain/2/6/3.terrain +0 -0
  71. package/dist/gis-fixtures/terrain/2/7/1.terrain +0 -0
  72. package/dist/gis-fixtures/terrain/2/7/2.terrain +0 -0
  73. package/dist/gis-fixtures/terrain/2/7/3.terrain +0 -0
  74. package/dist/gis-fixtures/terrain/3/12/4.terrain +0 -0
  75. package/dist/gis-fixtures/terrain/3/12/5.terrain +0 -0
  76. package/dist/gis-fixtures/terrain/3/12/6.terrain +0 -0
  77. package/dist/gis-fixtures/terrain/3/13/4.terrain +0 -0
  78. package/dist/gis-fixtures/terrain/3/13/5.terrain +0 -0
  79. package/dist/gis-fixtures/terrain/3/13/6.terrain +0 -0
  80. package/dist/gis-fixtures/terrain/3/14/4.terrain +0 -0
  81. package/dist/gis-fixtures/terrain/3/14/5.terrain +0 -0
  82. package/dist/gis-fixtures/terrain/3/14/6.terrain +0 -0
  83. package/dist/gis-fixtures/terrain/4/25/10.terrain +0 -0
  84. package/dist/gis-fixtures/terrain/4/25/11.terrain +0 -0
  85. package/dist/gis-fixtures/terrain/4/25/9.terrain +0 -0
  86. package/dist/gis-fixtures/terrain/4/26/10.terrain +0 -0
  87. package/dist/gis-fixtures/terrain/4/26/11.terrain +0 -0
  88. package/dist/gis-fixtures/terrain/4/26/9.terrain +0 -0
  89. package/dist/gis-fixtures/terrain/4/27/10.terrain +0 -0
  90. package/dist/gis-fixtures/terrain/4/27/11.terrain +0 -0
  91. package/dist/gis-fixtures/terrain/4/27/9.terrain +0 -0
  92. package/dist/gis-fixtures/terrain/5/51/19.terrain +0 -0
  93. package/dist/gis-fixtures/terrain/5/51/20.terrain +0 -0
  94. package/dist/gis-fixtures/terrain/5/51/21.terrain +0 -0
  95. package/dist/gis-fixtures/terrain/5/52/19.terrain +0 -0
  96. package/dist/gis-fixtures/terrain/5/52/20.terrain +0 -0
  97. package/dist/gis-fixtures/terrain/5/52/21.terrain +0 -0
  98. package/dist/gis-fixtures/terrain/5/53/19.terrain +0 -0
  99. package/dist/gis-fixtures/terrain/5/53/20.terrain +0 -0
  100. package/dist/gis-fixtures/terrain/5/53/21.terrain +0 -0
  101. package/dist/gis-fixtures/terrain/6/104/39.terrain +0 -0
  102. package/dist/gis-fixtures/terrain/6/104/40.terrain +0 -0
  103. package/dist/gis-fixtures/terrain/6/104/41.terrain +0 -0
  104. package/dist/gis-fixtures/terrain/6/105/39.terrain +0 -0
  105. package/dist/gis-fixtures/terrain/6/105/40.terrain +0 -0
  106. package/dist/gis-fixtures/terrain/6/105/41.terrain +0 -0
  107. package/dist/gis-fixtures/terrain/6/106/39.terrain +0 -0
  108. package/dist/gis-fixtures/terrain/6/106/40.terrain +0 -0
  109. package/dist/gis-fixtures/terrain/6/106/41.terrain +0 -0
  110. package/dist/gis-fixtures/terrain/7/210/80.terrain +0 -0
  111. package/dist/gis-fixtures/terrain/7/210/81.terrain +0 -0
  112. package/dist/gis-fixtures/terrain/7/210/82.terrain +0 -0
  113. package/dist/gis-fixtures/terrain/7/211/80.terrain +0 -0
  114. package/dist/gis-fixtures/terrain/7/211/81.terrain +0 -0
  115. package/dist/gis-fixtures/terrain/7/211/82.terrain +0 -0
  116. package/dist/gis-fixtures/terrain/7/212/80.terrain +0 -0
  117. package/dist/gis-fixtures/terrain/7/212/81.terrain +0 -0
  118. package/dist/gis-fixtures/terrain/7/212/82.terrain +0 -0
  119. package/dist/gis-fixtures/terrain/8/422/161.terrain +0 -0
  120. package/dist/gis-fixtures/terrain/8/422/162.terrain +0 -0
  121. package/dist/gis-fixtures/terrain/8/422/163.terrain +0 -0
  122. package/dist/gis-fixtures/terrain/8/423/161.terrain +0 -0
  123. package/dist/gis-fixtures/terrain/8/423/162.terrain +0 -0
  124. package/dist/gis-fixtures/terrain/8/423/163.terrain +0 -0
  125. package/dist/gis-fixtures/terrain/8/424/161.terrain +0 -0
  126. package/dist/gis-fixtures/terrain/8/424/162.terrain +0 -0
  127. package/dist/gis-fixtures/terrain/8/424/163.terrain +0 -0
  128. package/dist/gis-fixtures/terrain/9/846/324.terrain +0 -0
  129. package/dist/gis-fixtures/terrain/9/846/325.terrain +0 -0
  130. package/dist/gis-fixtures/terrain/9/846/326.terrain +0 -0
  131. package/dist/gis-fixtures/terrain/9/847/324.terrain +0 -0
  132. package/dist/gis-fixtures/terrain/9/847/325.terrain +0 -0
  133. package/dist/gis-fixtures/terrain/9/847/326.terrain +0 -0
  134. package/dist/gis-fixtures/terrain/9/848/324.terrain +0 -0
  135. package/dist/gis-fixtures/terrain/9/848/325.terrain +0 -0
  136. package/dist/gis-fixtures/terrain/9/848/326.terrain +0 -0
  137. package/dist/gis-fixtures/terrain/layer.json +141 -0
  138. package/dist/iflow-engine-base.css +1 -1
  139. package/dist/index.d.ts +928 -1711
  140. package/package.json +10 -21
  141. package/dist/chunks/gis-tiles-vendor-Dr7piDQM.js +0 -11386
  142. package/dist/chunks/index-DjNAYhvI.js +0 -5252
@@ -0,0 +1,141 @@
1
+ {
2
+ "name": "V3 GIS Xiamen Quantized Mesh Fixture",
3
+ "format": "quantized-mesh-1.0",
4
+ "version": "1.0.0",
5
+ "scheme": "tms",
6
+ "projection": "EPSG:4326",
7
+ "tiles": [
8
+ "{z}/{x}/{y}.terrain?v={version}"
9
+ ],
10
+ "minzoom": 0,
11
+ "maxzoom": 14,
12
+ "bounds": [
13
+ -180,
14
+ -90,
15
+ 180,
16
+ 90
17
+ ],
18
+ "available": [
19
+ [
20
+ {
21
+ "startX": 0,
22
+ "startY": 0,
23
+ "endX": 1,
24
+ "endY": 0
25
+ }
26
+ ],
27
+ [
28
+ {
29
+ "startX": 2,
30
+ "startY": 0,
31
+ "endX": 3,
32
+ "endY": 1
33
+ }
34
+ ],
35
+ [
36
+ {
37
+ "startX": 5,
38
+ "startY": 1,
39
+ "endX": 7,
40
+ "endY": 3
41
+ }
42
+ ],
43
+ [
44
+ {
45
+ "startX": 12,
46
+ "startY": 4,
47
+ "endX": 14,
48
+ "endY": 6
49
+ }
50
+ ],
51
+ [
52
+ {
53
+ "startX": 25,
54
+ "startY": 9,
55
+ "endX": 27,
56
+ "endY": 11
57
+ }
58
+ ],
59
+ [
60
+ {
61
+ "startX": 51,
62
+ "startY": 19,
63
+ "endX": 53,
64
+ "endY": 21
65
+ }
66
+ ],
67
+ [
68
+ {
69
+ "startX": 104,
70
+ "startY": 39,
71
+ "endX": 106,
72
+ "endY": 41
73
+ }
74
+ ],
75
+ [
76
+ {
77
+ "startX": 210,
78
+ "startY": 80,
79
+ "endX": 212,
80
+ "endY": 82
81
+ }
82
+ ],
83
+ [
84
+ {
85
+ "startX": 422,
86
+ "startY": 161,
87
+ "endX": 424,
88
+ "endY": 163
89
+ }
90
+ ],
91
+ [
92
+ {
93
+ "startX": 846,
94
+ "startY": 324,
95
+ "endX": 848,
96
+ "endY": 326
97
+ }
98
+ ],
99
+ [
100
+ {
101
+ "startX": 1694,
102
+ "startY": 650,
103
+ "endX": 1696,
104
+ "endY": 652
105
+ }
106
+ ],
107
+ [
108
+ {
109
+ "startX": 3390,
110
+ "startY": 1301,
111
+ "endX": 3392,
112
+ "endY": 1303
113
+ }
114
+ ],
115
+ [
116
+ {
117
+ "startX": 6782,
118
+ "startY": 2604,
119
+ "endX": 6784,
120
+ "endY": 2606
121
+ }
122
+ ],
123
+ [
124
+ {
125
+ "startX": 13565,
126
+ "startY": 5209,
127
+ "endX": 13567,
128
+ "endY": 5211
129
+ }
130
+ ],
131
+ [
132
+ {
133
+ "startX": 27131,
134
+ "startY": 10419,
135
+ "endX": 27133,
136
+ "endY": 10421
137
+ }
138
+ ]
139
+ ],
140
+ "attribution": "V3 GIS fixed Quantized Mesh fixture"
141
+ }
@@ -1 +1 @@
1
- .bim-render-quality{position:absolute;top:0;left:50%;z-index:1400;color:#f8fafc;font:12px/1.4 Arial,sans-serif;letter-spacing:0;transform:translate(-50%)}.bim-render-quality__dock{position:relative;display:flex;align-items:center;gap:8px;box-sizing:border-box;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:6px;background:#0c121bb3;box-shadow:0 8px 28px #0000004d;-webkit-backdrop-filter:blur(12px) saturate(130%);backdrop-filter:blur(12px) saturate(130%)}.bim-render-quality.is-collapsed .bim-render-quality__dock{width:44px;height:4px;gap:0;border-radius:0 0 3px 3px;padding:0;box-shadow:0 4px 12px #00000038}.bim-render-quality.is-collapsed .bim-render-quality__scale,.bim-render-quality.is-collapsed .bim-render-quality__settings-button{display:none}.bim-render-quality__scale{position:relative;display:grid;grid-template-columns:repeat(12,minmax(22px,1fr));width:min(396px,calc(100vw - 86px))}.bim-render-quality__scale:before{position:absolute;top:11px;right:10px;left:10px;height:1px;background:#cbd5e180;content:""}.bim-render-quality button,.bim-render-quality__advanced button{border:1px solid rgba(148,163,184,.32);border-radius:4px;background:#1e293bd6;color:#f8fafc;cursor:pointer}.bim-render-quality button:hover,.bim-render-quality button.is-active,.bim-render-quality__advanced button:hover{border-color:#67e8f9;background:#164e63;color:#ecfeff}.bim-render-quality .bim-render-quality__tick{position:relative;min-width:0;height:30px;border:0;padding:12px 0 0;background:transparent;color:#cbd5e1;font-size:10px;font-variant-numeric:tabular-nums}.bim-render-quality .bim-render-quality__tick:before{position:absolute;top:6px;left:50%;width:2px;height:10px;background:#94a3b8;content:"";transform:translate(-50%)}.bim-render-quality .bim-render-quality__tick.is-active{color:#67e8f9;font-weight:700}.bim-render-quality .bim-render-quality__tick.is-active:before{width:4px;height:13px;background:#22d3ee}.bim-render-quality .bim-render-quality__icon-button{width:32px;height:32px;padding:0;font-size:18px;line-height:1}.bim-render-quality .bim-render-quality__collapse-button{position:absolute;bottom:-16px;left:50%;width:44px;height:16px;box-sizing:border-box;border-top:0;border-radius:0 0 4px 4px;padding:0;background:#0c121bb3;transform:translate(-50%)}.bim-render-quality .bim-render-quality__collapse-button:before{position:absolute;top:6px;left:50%;width:6px;height:6px;border-top:1px solid #cbd5e1;border-left:1px solid #cbd5e1;content:"";transform:translate(-50%) rotate(45deg)}.bim-render-quality.is-collapsed .bim-render-quality__collapse-button:before{top:2px;transform:translate(-50%) rotate(225deg)}.bim-render-quality__quick{position:absolute;top:calc(100% + 20px);right:0;display:none;width:300px;box-sizing:border-box;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:9px;background:#0f1722c2;box-shadow:0 12px 32px #00000052;-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%)}.bim-render-quality__quick.is-visible{display:grid;gap:7px}.bim-render-quality__row{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:8px;min-height:28px}.bim-render-quality__row>span{color:#94a3b8;font-size:10px;font-weight:700}.bim-render-quality__row input[type=number],.bim-render-quality__row select{min-width:0;height:28px;box-sizing:border-box;border:1px solid rgba(148,163,184,.38);border-radius:4px;padding:2px 6px;background:#02060cb3;color:#e5e7eb}.bim-render-quality__segmented{display:grid;grid-template-columns:repeat(2,1fr)}.bim-render-quality__segmented button{min-height:28px;border-radius:0}.bim-render-quality__segmented button:first-child{border-radius:4px 0 0 4px}.bim-render-quality__segmented button:last-child{border-radius:0 4px 4px 0}.bim-render-quality__advanced-button{justify-self:end;min-height:28px;padding:4px 10px}.bim-render-quality__overlay{position:absolute;inset:0;z-index:1450;display:none;align-items:center;justify-content:center;box-sizing:border-box;padding:20px;background:#02060c38;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bim-render-quality__overlay.is-visible{display:flex}.bim-render-quality__advanced{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(760px,100%);max-height:min(760px,calc(100% - 24px));box-sizing:border-box;overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:8px;padding:12px;background:#0f1722ad;box-shadow:0 24px 70px #0000007a;color:#f8fafc;font:12px/1.4 Arial,sans-serif;letter-spacing:0;-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%)}.bim-render-quality__advanced-header{display:grid;grid-template-columns:1fr 112px 32px;align-items:center;gap:8px;padding-bottom:10px}.bim-render-quality__advanced-header strong{color:#67e8f9}.bim-render-quality__advanced-header select{height:30px;border:1px solid rgba(148,163,184,.4);border-radius:4px;background:#02060cb8;color:#f8fafc}.bim-render-quality__advanced .bim-render-quality__icon-button{width:32px;height:30px;padding:0;font-size:18px}.bim-render-quality__advanced-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;overflow:auto;padding-right:5px}.bim-render-quality__section{min-width:0;margin:0;border-top:1px solid rgba(148,163,184,.2);padding:9px 0}.bim-render-quality__section h4{margin:0 0 6px;color:#93c5fd;font-size:11px}.bim-render-quality__section .bim-render-quality__row{grid-template-columns:minmax(130px,1fr) 104px}.bim-render-quality__light-group{display:grid;gap:5px;margin-bottom:8px}.bim-render-quality__light-group strong{color:#e2e8f0;font-size:10px}.bim-render-quality__footer{position:sticky;bottom:0;grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;padding:10px 0 2px;background:#0f1722e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bim-render-quality__footer button{min-height:30px;padding:4px 12px}@media(max-width:680px){.bim-render-quality__advanced-body{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.bim-render-quality__dock{gap:4px;padding:4px}.bim-render-quality__scale{grid-template-columns:repeat(12,minmax(17px,1fr));width:calc(100vw - 94px)}.bim-render-quality__overlay{padding:8px}.bim-render-quality__advanced{max-height:calc(100% - 16px);padding:10px}.bim-render-quality__advanced-body{grid-template-columns:1fr}}.bim-render-stats{position:absolute;top:0;left:80px;z-index:1000;display:grid;grid-template-columns:68px minmax(60px,auto);align-content:center;width:156px;height:48px;box-sizing:border-box;padding:5px 8px;background:#000000e6;color:#d1d5db;font:10px/19px Helvetica,Arial,sans-serif;letter-spacing:0;pointer-events:none}.bim-render-stats span:nth-child(2n){color:#22c55e;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.originRotate{width:10px;height:10px;background-color:red}.versionText{position:absolute;right:10px;color:#86d9ff;z-index:1000;bottom:10px;font-size:10px;background:transparent;pointer-events:none}.originDiv{position:absolute;top:100px;left:100px;width:30px;height:30px;border-radius:50%;z-index:1000;pointer-events:none}.tagDiv{color:gray;background:#fffc;padding:5px;font-size:12px}.catchPoint{pointer-events:none;stroke:#08dfd7;fill:transparent;stroke-width:2}.catchLine{position:absolute;width:10px;height:10px;pointer-events:none;background-color:green}.catchPlane{position:absolute;width:10px;height:10px;pointer-events:none;background-color:#ff0}.bim-mobile-roam-controls{position:absolute;left:0;right:0;bottom:max(40px,env(safe-area-inset-bottom));z-index:1200;display:flex;align-items:flex-end;justify-content:space-between;padding:0 60px;pointer-events:none;user-select:none;-webkit-user-select:none;touch-action:none}.bim-mobile-roam-pad,.bim-mobile-roam-look-group,.bim-mobile-roam-vertical-pad{pointer-events:auto}.engine-3d-search{position:absolute;inset:0;z-index:1500;display:none;pointer-events:none}.engine-3d-search--visible{display:block}.engine-3d-search__box{position:absolute;top:14%;left:50%;width:min(480px,calc(100% - 32px));transform:translate(-50%);overflow:hidden;border:1px solid rgba(148,163,184,.42);border-radius:10px;background:#0f172af5;box-shadow:0 18px 40px #00000059;color:#e2e8f0;pointer-events:auto}.engine-3d-search__input-row{display:flex;align-items:center;height:48px;gap:10px;padding:0 12px}.engine-3d-search__icon{display:flex;color:#93c5fd}.engine-3d-search__input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#f8fafc;font-size:14px}.engine-3d-search__input::placeholder{color:#94a3b8}.engine-3d-search__clear{width:24px;height:24px;border:0;border-radius:50%;background:#94a3b833;color:#e2e8f0;font-size:18px;cursor:pointer}.engine-3d-search__status{min-height:28px;box-sizing:border-box;padding:6px 14px;border-top:1px solid rgba(148,163,184,.16);color:#94a3b8;font-size:12px}.engine-3d-search__list{max-height:300px;margin:0;padding:4px 0;overflow:auto;list-style:none}.engine-3d-search__pagination{display:none;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid rgba(148,163,184,.16);color:#94a3b8;font-size:12px}.engine-3d-search__page-button{border:0;border-radius:4px;padding:4px 8px;background:#94a3b833;color:inherit;cursor:pointer;font-size:12px}.engine-3d-search__page-button:disabled{cursor:not-allowed;opacity:.38}.engine-3d-search__item{display:flex;align-items:center;gap:8px;padding:9px 14px;cursor:pointer}.engine-3d-search__item:hover,.engine-3d-search__item--active{background:#3b82f633}.engine-3d-search__badge{flex:0 0 auto;padding:2px 5px;border-radius:3px;background:#3b82f638;color:#93c5fd;font-size:11px}.engine-3d-search__name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.engine-3d-search__id{flex:0 1 120px;overflow:hidden;color:#94a3b8;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.engine-3d-search--light .engine-3d-search__box{border-color:#47556947;background:#fffffff7;box-shadow:0 18px 40px #0f172a2e;color:#172554}.engine-3d-search--light .engine-3d-search__input{color:#0f172a}.engine-3d-search--light .engine-3d-search__input::placeholder,.engine-3d-search--light .engine-3d-search__status,.engine-3d-search--light .engine-3d-search__id{color:#64748b}.engine-3d-search--light .engine-3d-search__clear{background:#e2e8f0;color:#334155}.engine-3d-search--light .engine-3d-search__status{border-top-color:#47556924}.engine-3d-search--light .engine-3d-search__pagination{border-top-color:#47556924;color:#64748b}.engine-3d-search--light .engine-3d-search__page-button{background:#e2e8f0;color:#334155}.engine-3d-search--light .engine-3d-search__item:hover,.engine-3d-search--light .engine-3d-search__item--active{background:#e0f2fe}.engine-3d-search--light .engine-3d-search__badge{background:#dbeafe;color:#1d4ed8}.bim-mobile-roam-move-pad{width:116px;height:116px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#14182073;box-shadow:0 4px 16px #0000003d inset,0 4px 14px #0003;touch-action:none}.bim-mobile-roam-button{width:44px;height:44px;border:1px solid rgba(255,255,255,.46);border-radius:8px;color:#fff;background:#14182094;box-shadow:0 4px 14px #00000038;font-size:15px;font-weight:600;line-height:1;touch-action:none}.bim-mobile-roam-button.is-round{width:48px;height:48px;border-radius:50%;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center}.bim-mobile-roam-button.is-active{background:#267effc7;border-color:#ffffffb8}.bim-mobile-roam-move-pad.is-active{border-color:#267effd6;background:#142c4a8a}.bim-mobile-roam-look-group{display:flex;align-items:center;gap:12px}.bim-mobile-roam-vertical-pad{display:flex;flex-direction:column;gap:10px;align-items:center}.bim-mobile-roam-look-pad{width:116px;height:116px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#14182073;box-shadow:0 4px 16px #0000003d inset,0 4px 14px #0003;touch-action:none}.bim-mobile-roam-look-pad.is-active{border-color:#267effd6;background:#142c4a8a}.bim-mobile-roam-look-knob,.bim-mobile-roam-move-knob{width:46px;height:46px;border-radius:50%;background:#ffffffb8;box-shadow:0 2px 10px #00000042}@media(max-width:520px){.bim-mobile-roam-controls{padding:0 60px;bottom:max(40px,env(safe-area-inset-bottom))}.bim-mobile-roam-move-pad{width:96px;height:96px}.bim-mobile-roam-button{width:38px;height:38px;font-size:13px}.bim-mobile-roam-button.is-round{width:42px;height:42px;font-size:18px}.bim-mobile-roam-look-pad{width:96px;height:96px}.bim-mobile-roam-look-knob,.bim-mobile-roam-move-knob{width:38px;height:38px}}.ViewCube{position:absolute;width:120px;height:120px;top:0;right:0;z-index:999}.homeViewWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;background-color:#fff0;color:#fff;top:10px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.viewSettingWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;font-weight:800;background-color:#fff0;color:#fff;top:30px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:70px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper.show{display:flex}.cameraToggleWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.screenshotWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:20px;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:120px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.screenshotWrapper.show{display:flex}.screenshotWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.fullscreenWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:170px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fullscreenWrapper.show{display:flex}.fullscreenWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.measure-elevation{position:absolute;pointer-events:none}.measureSvg{position:absolute;width:1920px;height:1080px}.catch-point{position:absolute;width:10px;height:10px;background-color:red;border-radius:50%;pointer-events:none}.annotation-container{position:absolute;pointer-events:none;top:0;left:0}.measureLine{position:absolute;pointer-events:none;stroke:#009bea;fill:#009bea;filter:drop-shadow(0px 0px 2px rgba(0,0,0,.3))}.measureBack{cursor:pointer;pointer-events:auto;fill:#fff;rx:5;ry:5;filter:drop-shadow(0px 0px 3px rgba(0,0,0,.3));text-align:center}.measureLabel{position:absolute;fill:#fff;font-family:tahoma;font-size:14px;stroke:#009bea;font-weight:200;pointer-events:none;text-anchor:middle}.measurePointer{fill:#009bea}.Hight{stroke:#fff;font-weight:500;filter:drop-shadow(0px 0px 2px rgb(0,195,255))}.allow-select{pointer-events:auto}.disallow-select{pointer-events:none}.angle-annotation{position:absolute;pointer-events:auto}.measure-2d-selected.measureLine{stroke:#fff;fill:#fff;filter:drop-shadow(0 0 3px rgb(0,195,255))}.measure-2d-selected.measurePointer{fill:#fff;stroke:#00c3ff;stroke-width:2px;filter:drop-shadow(0 0 3px rgb(0,195,255))}.measure-2d-selected.measureBack{fill:#009bea;stroke:#fff;stroke-width:1px;filter:drop-shadow(0 0 4px rgb(0,195,255))}.measure-2d-selected.measureLabel{fill:#fff;stroke:none;font-weight:600}polygon.measure-2d-selected{fill:#00c3ff38}.markup-2d-layer{position:absolute;inset:0;pointer-events:none;z-index:30}.markup-2d-svg{position:absolute;inset:0;overflow:visible;pointer-events:none}.markup-2d-toolbar{position:absolute;top:8px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:6px;padding:6px;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 4px 14px #00000024;pointer-events:auto;-webkit-user-select:none;user-select:none;z-index:1300}.markup-2d-toolbar button,.markup-2d-toolbar input{height:28px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#1f2937;font-size:12px}.markup-2d-toolbar button{width:28px;min-width:28px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.markup-2d-toolbar button:hover,.markup-2d-toolbar button.active{color:#1677ff;border-color:#1677ff;background:#eef6ff}.markup-2d-toolbar input[type=color]{width:34px;padding:2px}.markup-2d-toolbar input[type=number]{width:54px;padding:0 4px}.markup-2d-icon-button img{width:16px;height:16px;display:block;pointer-events:none}.markup-2d-divider{width:1px;height:22px;background:#e5e7eb}.markup-2d-shape{pointer-events:auto;cursor:pointer}.markup-2d-shape.selected{filter:drop-shadow(0 0 4px rgba(22,119,255,.9))}.MapController{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.engine-2d-container{position:relative;width:100%;height:100%;overflow:hidden}.engine-2d-canvas{display:block;width:100%;height:100%;outline:none}.engine-2d-version-text{position:absolute;right:10px;bottom:0;z-index:1000;color:#86d9ff;font-size:10px;background:transparent;pointer-events:none}.engine-2d-cad-cursor{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.engine-2d-cad-cursor__h{position:absolute;left:0;width:100%;height:1px;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translateY(-50%)}.engine-2d-cad-cursor__v{position:absolute;top:0;width:1px;height:100%;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%)}.engine-2d-cad-cursor__box{position:absolute;width:8px;height:8px;border:1px solid var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%,-50%)}.engine-2d-cad-cursor--short-crosshair .engine-2d-cad-cursor__h{width:72px;left:0;transform:translate(-50%,-50%)}.engine-2d-cad-cursor--short-crosshair .engine-2d-cad-cursor__v{height:72px;top:0;transform:translate(-50%,-50%)}.engine-2d-context-menu{position:absolute;z-index:9999;min-width:140px;background:var(--e2d-bg2, #252526);border:1px solid var(--e2d-border, rgba(255, 255, 255, .12));border-radius:4px;box-shadow:0 4px 16px var(--e2d-shadow, rgba(0, 0, 0, .5));padding:4px 0;display:none;-webkit-user-select:none;user-select:none}.engine-2d-context-menu--visible{display:block}.engine-2d-context-menu__item{padding:7px 16px;font-size:13px;color:var(--e2d-text2, #cccccc);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.engine-2d-context-menu__item:hover{background:var(--e2d-bg-accent, #094771);color:var(--e2d-text-accent, #ffffff)}.engine-2d-context-menu__divider{height:1px;background:var(--e2d-border, rgba(255, 255, 255, .1));margin:4px 0}.engine-2d-stats{position:absolute;top:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .7));color:var(--e2d-text, #e0e0e0);padding:8px 12px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-stats div{margin:2px 0}.engine-2d-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--e2d-float-bg, rgba(0, 0, 0, .8));color:var(--e2d-text, #e0e0e0);padding:20px 40px;border-radius:8px;font-size:16px;text-align:center}.engine-2d-loading-spinner{border:3px solid var(--e2d-border, rgba(255, 255, 255, .3));border-top:3px solid var(--e2d-accent, #4fc3f7);border-radius:50%;width:40px;height:40px;animation:engine-2d-spin 1s linear infinite;margin:0 auto 10px}@keyframes engine-2d-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.engine-2d-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d32f2feb;color:#fff;padding:20px 40px;border-radius:8px;font-size:14px;max-width:80%;text-align:center}.engine-2d-controls-hint{position:absolute;bottom:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .6));color:var(--e2d-text, #e0e0e0);border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08));padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-controls-hint kbd{background:var(--e2d-icon-bg, rgba(255, 255, 255, .2));color:var(--e2d-text, #e0e0e0);padding:2px 6px;border-radius:3px;font-family:monospace}.engine-2d-workspace-tabs{position:absolute;left:12px;bottom:10px;z-index:40;display:flex;align-items:center;max-width:calc(100% - 24px);overflow-x:auto;background:var(--e2d-bg2, rgba(28, 33, 40, .92));border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:4px;box-shadow:0 4px 14px var(--e2d-shadow, rgba(0, 0, 0, .28))}.engine-2d-workspace-tabs__item{flex:0 0 auto;max-width:180px;height:28px;padding:0 12px;border:0;border-right:1px solid var(--e2d-border2, rgba(255, 255, 255, .1));background:transparent;color:var(--e2d-text2, #d7dde4);font-size:12px;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.engine-2d-workspace-tabs__item:last-child{border-right:0}.engine-2d-workspace-tabs__item:hover:not(:disabled){background:var(--e2d-bg-hover, rgba(79, 195, 247, .12));color:var(--e2d-text-accent, #ffffff)}.engine-2d-workspace-tabs__item--active{background:var(--e2d-accent, #2f80ed);color:#fff;cursor:default}.engine-2d-workspace-tabs__item:disabled{opacity:.9}.engine-2d-search{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;display:none}.engine-2d-search--visible{display:block}.engine-2d-search__box{position:absolute;top:14%;left:50%;transform:translate(-50%);width:480px;max-width:calc(100% - 40px);background:var(--e2d-bg, #1e1f22);border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:10px;box-shadow:0 8px 40px var(--e2d-shadow-lg, rgba(0, 0, 0, .65)),0 2px 8px var(--e2d-shadow, rgba(0, 0, 0, .4));overflow:hidden;pointer-events:auto;animation:engine-2d-search-in .18s cubic-bezier(.34,1.2,.64,1)}@keyframes engine-2d-search-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.engine-2d-search__input-row{display:flex;align-items:center;padding:0 12px;gap:8px;height:48px}.engine-2d-search__icon{flex-shrink:0;color:var(--e2d-icon, rgba(255, 255, 255, .4));display:flex;align-items:center}.engine-2d-search__input{flex:1;background:transparent;border:none;outline:none;color:var(--e2d-text, #e0e0e0);font-size:14px;line-height:1.4;caret-color:var(--e2d-accent, #4fc3f7)}.engine-2d-search__input::placeholder{color:var(--e2d-text3, rgba(255, 255, 255, .25))}.engine-2d-search__clear{flex-shrink:0;background:var(--e2d-icon-bg, rgba(255, 255, 255, .08));border:none;border-radius:4px;color:var(--e2d-icon, rgba(255, 255, 255, .5));cursor:pointer;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;opacity:0;pointer-events:none;transition:opacity .15s,background .15s,color .15s}.engine-2d-search__clear:hover{background:var(--e2d-icon-bg-hover, rgba(255, 255, 255, .16));color:var(--e2d-close-hover, #ffffff)}.engine-2d-search__divider{height:1px;background:var(--e2d-border2, rgba(255, 255, 255, .08));display:none}.engine-2d-search__status{padding:6px 16px;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .35));display:none;-webkit-user-select:none;user-select:none}.engine-2d-search__list{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto;display:none;scrollbar-width:thin;scrollbar-color:var(--e2d-scrollbar, rgba(255, 255, 255, .15)) transparent}.engine-2d-search__list::-webkit-scrollbar{width:4px}.engine-2d-search__list::-webkit-scrollbar-track{background:transparent}.engine-2d-search__list::-webkit-scrollbar-thumb{background:var(--e2d-scrollbar, rgba(255, 255, 255, .15));border-radius:2px}.engine-2d-search__item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .1s;min-height:38px;flex-wrap:nowrap}.engine-2d-search__item:hover,.engine-2d-search__item--active{background:var(--e2d-bg-hover, rgba(79, 195, 247, .08))}.engine-2d-search__item-badge{flex-shrink:0;font-size:10px;font-weight:500;padding:2px 6px;border-radius:3px;letter-spacing:.03em;white-space:nowrap;color:var(--e2d-accent, #4fc3f7);background:#4fc3f71f}.engine-2d-search__item-name{flex:1;font-size:13px;color:var(--e2d-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-layer{flex-shrink:0;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .3));white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-desc{flex-shrink:0;font-size:11px;color:var(--e2d-text4, rgba(255, 255, 255, .25));white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__mark{background:transparent;color:var(--e2d-accent, #4fc3f7);font-weight:600}.engine-2d-mouse-coord{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--e2d-float-bg, rgba(0, 0, 0, .65));color:var(--e2d-text, #e0e0e0);padding:5px 14px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08))}.engine-2d-mouse-coord__label{color:var(--e2d-coord-label, rgba(255, 255, 255, .45));font-size:11px;letter-spacing:.05em}.engine-2d-mouse-coord__value{min-width:90px;color:var(--e2d-coord-value, #76c8ff)}.panorama-annotation-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.panorama-annotation{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);transition:opacity .2s ease,transform .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.panorama-annotation:hover{z-index:1001;transform:translate(-50%,-50%) scale(1.1)}.panorama-annotation-icon{width:40px;height:40px}.panorama-annotation-icon img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.panorama-annotation-text{max-width:200px;text-align:center;line-height:1.4}.panorama-annotation-link{transition:background-color .2s ease,transform .2s ease}.panorama-annotation-link:hover{z-index:1002}.panorama-annotation-link img{display:block;flex-shrink:0}.panorama-annotation.hidden{display:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panorama-annotation.loading{animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.panorama-annotation-icon{width:32px;height:32px}.panorama-annotation-text,.panorama-annotation-link{font-size:12px!important;padding:6px 10px!important}}
1
+ .ViewCube{position:absolute;width:120px;height:120px;top:0;right:0;z-index:999}.homeViewWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;background-color:#fff0;color:#fff;top:10px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.viewSettingWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-size:100% 100%;background-repeat:no-repeat;font-weight:800;background-color:#fff0;color:#fff;top:30px;right:100;width:20px;height:20px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:70px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cameraToggleWrapper.show{display:flex}.cameraToggleWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.screenshotWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:20px;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:120px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.screenshotWrapper.show{display:flex}.screenshotWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.fullscreenWrapper{position:absolute;cursor:pointer;pointer-events:auto;background-color:#ffffffe6;color:#333;font-size:26px;font-weight:700;display:none;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 4px #0003;transition:all .3s ease;top:170px;right:90px;width:44px;height:44px;z-index:999;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.fullscreenWrapper.show{display:flex}.fullscreenWrapper:hover{background-color:#fff;box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.measure-elevation{position:absolute;pointer-events:none}.measureSvg{position:absolute;width:1920px;height:1080px}.catch-point{position:absolute;width:10px;height:10px;background-color:red;border-radius:50%;pointer-events:none}.annotation-container{position:absolute;pointer-events:none;top:0;left:0}.measureLine{position:absolute;pointer-events:none;stroke:#009bea;fill:#009bea;filter:drop-shadow(0px 0px 2px rgba(0,0,0,.3))}.measureBack{cursor:pointer;pointer-events:auto;fill:#fff;rx:5;ry:5;filter:drop-shadow(0px 0px 3px rgba(0,0,0,.3));text-align:center}.measureLabel{position:absolute;fill:#fff;font-family:tahoma;font-size:14px;stroke:#009bea;font-weight:200;pointer-events:none;text-anchor:middle}.measurePointer{fill:#009bea}.Hight{stroke:#fff;font-weight:500;filter:drop-shadow(0px 0px 2px rgb(0,195,255))}.allow-select{pointer-events:auto}.disallow-select{pointer-events:none}.angle-annotation{position:absolute;pointer-events:auto}.originRotate{width:10px;height:10px;background-color:red}.versionText{position:absolute;right:10px;color:#86d9ff;z-index:1000;bottom:10px;font-size:10px;background:transparent;pointer-events:none}.bim-render-quality{position:absolute;top:0;left:50%;z-index:1400;color:#f8fafc;font:12px/1.4 Arial,sans-serif;letter-spacing:0;transform:translate(-50%)}.bim-render-quality__dock{position:relative;display:flex;align-items:center;gap:8px;box-sizing:border-box;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:6px;background:#0c121bb3;box-shadow:0 8px 28px #0000004d;-webkit-backdrop-filter:blur(12px) saturate(130%);backdrop-filter:blur(12px) saturate(130%)}.bim-render-quality.is-collapsed .bim-render-quality__dock{width:44px;height:4px;gap:0;border-radius:0 0 3px 3px;padding:0;box-shadow:0 4px 12px #00000038}.bim-render-quality.is-collapsed .bim-render-quality__scale,.bim-render-quality.is-collapsed .bim-render-quality__settings-button{display:none}.bim-render-quality__scale{position:relative;display:grid;grid-template-columns:repeat(12,minmax(22px,1fr));width:min(396px,calc(100vw - 86px))}.bim-render-quality__scale:before{position:absolute;top:11px;right:10px;left:10px;height:1px;background:#cbd5e180;content:""}.bim-render-quality button,.bim-render-quality__advanced button{border:1px solid rgba(148,163,184,.32);border-radius:4px;background:#1e293bd6;color:#f8fafc;cursor:pointer}.bim-render-quality button:hover,.bim-render-quality button.is-active,.bim-render-quality__advanced button:hover{border-color:#67e8f9;background:#164e63;color:#ecfeff}.bim-render-quality .bim-render-quality__tick{position:relative;min-width:0;height:30px;border:0;padding:12px 0 0;background:transparent;color:#cbd5e1;font-size:10px;font-variant-numeric:tabular-nums}.bim-render-quality .bim-render-quality__tick:before{position:absolute;top:6px;left:50%;width:2px;height:10px;background:#94a3b8;content:"";transform:translate(-50%)}.bim-render-quality .bim-render-quality__tick.is-active{color:#67e8f9;font-weight:700}.bim-render-quality .bim-render-quality__tick.is-active:before{width:4px;height:13px;background:#22d3ee}.bim-render-quality .bim-render-quality__icon-button{width:32px;height:32px;padding:0;font-size:18px;line-height:1}.bim-render-quality .bim-render-quality__collapse-button{position:absolute;bottom:-16px;left:50%;width:44px;height:16px;box-sizing:border-box;border-top:0;border-radius:0 0 4px 4px;padding:0;background:#0c121bb3;transform:translate(-50%)}.bim-render-quality .bim-render-quality__collapse-button:before{position:absolute;top:6px;left:50%;width:6px;height:6px;border-top:1px solid #cbd5e1;border-left:1px solid #cbd5e1;content:"";transform:translate(-50%) rotate(45deg)}.bim-render-quality.is-collapsed .bim-render-quality__collapse-button:before{top:2px;transform:translate(-50%) rotate(225deg)}.bim-render-quality__quick{position:absolute;top:calc(100% + 20px);right:0;display:none;width:300px;box-sizing:border-box;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:9px;background:#0f1722c2;box-shadow:0 12px 32px #00000052;-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%)}.bim-render-quality__quick.is-visible{display:grid;gap:7px}.bim-render-quality__row{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:8px;min-height:28px}.bim-render-quality__row>span{color:#94a3b8;font-size:10px;font-weight:700}.bim-render-quality__row input[type=number],.bim-render-quality__row select{min-width:0;height:28px;box-sizing:border-box;border:1px solid rgba(148,163,184,.38);border-radius:4px;padding:2px 6px;background:#02060cb3;color:#e5e7eb}.bim-render-quality__segmented{display:grid;grid-template-columns:repeat(2,1fr)}.bim-render-quality__segmented button{min-height:28px;border-radius:0}.bim-render-quality__segmented button:first-child{border-radius:4px 0 0 4px}.bim-render-quality__segmented button:last-child{border-radius:0 4px 4px 0}.bim-render-quality__advanced-button{justify-self:end;min-height:28px;padding:4px 10px}.bim-render-quality__overlay{position:absolute;inset:0;z-index:1450;display:none;align-items:center;justify-content:center;box-sizing:border-box;padding:20px;background:#02060c38;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bim-render-quality__overlay.is-visible{display:flex}.bim-render-quality__advanced{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(760px,100%);max-height:min(760px,calc(100% - 24px));box-sizing:border-box;overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:8px;padding:12px;background:#0f1722ad;box-shadow:0 24px 70px #0000007a;color:#f8fafc;font:12px/1.4 Arial,sans-serif;letter-spacing:0;-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%)}.bim-render-quality__advanced-header{display:grid;grid-template-columns:1fr 112px 32px;align-items:center;gap:8px;padding-bottom:10px}.bim-render-quality__advanced-header strong{color:#67e8f9}.bim-render-quality__advanced-header select{height:30px;border:1px solid rgba(148,163,184,.4);border-radius:4px;background:#02060cb8;color:#f8fafc}.bim-render-quality__advanced .bim-render-quality__icon-button{width:32px;height:30px;padding:0;font-size:18px}.bim-render-quality__advanced-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;overflow:auto;padding-right:5px;scrollbar-color:rgba(103,232,249,.55) rgba(2,6,12,.36);scrollbar-gutter:stable;scrollbar-width:thin}.bim-render-quality__advanced-body::-webkit-scrollbar{width:10px;height:10px}.bim-render-quality__advanced-body::-webkit-scrollbar-track{border-radius:5px;background:#02060c5c}.bim-render-quality__advanced-body::-webkit-scrollbar-thumb{min-width:30px;min-height:30px;border:2px solid transparent;border-radius:5px;background:#67e8f975;background-clip:content-box}.bim-render-quality__advanced-body::-webkit-scrollbar-thumb:hover{background-color:#67e8f9b8}.bim-render-quality__advanced-body::-webkit-scrollbar-thumb:active{background-color:#22d3ee}.bim-render-quality__advanced-body::-webkit-scrollbar-corner{background:transparent}.bim-render-quality__section{min-width:0;margin:0;border-top:1px solid rgba(148,163,184,.2);padding:9px 0}.bim-render-quality__section h4{margin:0 0 6px;color:#93c5fd;font-size:11px}.bim-render-quality__section .bim-render-quality__row{grid-template-columns:minmax(130px,1fr) 104px}.bim-render-quality__light-group{display:grid;gap:5px;margin-bottom:8px}.bim-render-quality__light-group strong{color:#e2e8f0;font-size:10px}.bim-render-quality__footer{position:sticky;bottom:0;grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;padding:10px 0 2px;background:#0f1722e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bim-render-quality__footer button{min-height:30px;padding:4px 12px}@media(max-width:680px){.bim-render-quality__advanced-body{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:440px){.bim-render-quality__dock{gap:4px;padding:4px}.bim-render-quality__scale{grid-template-columns:repeat(12,minmax(17px,1fr));width:calc(100vw - 94px)}.bim-render-quality__overlay{padding:8px}.bim-render-quality__advanced{max-height:calc(100% - 16px);padding:10px}.bim-render-quality__advanced-body{grid-template-columns:1fr}}.bim-render-stats{position:absolute;top:0;left:80px;z-index:1000;display:grid;grid-template-columns:68px minmax(60px,auto);align-content:center;width:156px;height:48px;box-sizing:border-box;padding:5px 8px;background:#000000e6;color:#d1d5db;font:10px/19px Helvetica,Arial,sans-serif;letter-spacing:0;pointer-events:none}.bim-render-stats span:nth-child(2n){color:#22c55e;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.originDiv{position:absolute;top:100px;left:100px;width:30px;height:30px;border-radius:50%;z-index:1000;pointer-events:none}.tagDiv{color:gray;background:#fffc;padding:5px;font-size:12px}.catchPoint{pointer-events:none;stroke:#08dfd7;fill:transparent;stroke-width:2}.catchLine{position:absolute;width:10px;height:10px;pointer-events:none;background-color:green}.catchPlane{position:absolute;width:10px;height:10px;pointer-events:none;background-color:#ff0}.bim-mobile-roam-controls{position:absolute;left:0;right:0;bottom:max(40px,env(safe-area-inset-bottom));z-index:1200;display:flex;align-items:flex-end;justify-content:space-between;padding:0 60px;pointer-events:none;user-select:none;-webkit-user-select:none;touch-action:none}.bim-mobile-roam-pad,.bim-mobile-roam-look-group,.bim-mobile-roam-vertical-pad{pointer-events:auto}.engine-3d-search{position:absolute;inset:0;z-index:1500;display:none;pointer-events:none}.engine-3d-search--visible{display:block}.engine-3d-search__box{position:absolute;top:14%;left:50%;width:min(480px,calc(100% - 32px));transform:translate(-50%);overflow:hidden;border:1px solid rgba(148,163,184,.42);border-radius:10px;background:#0f172af5;box-shadow:0 18px 40px #00000059;color:#e2e8f0;pointer-events:auto}.engine-3d-search__input-row{display:flex;align-items:center;height:48px;gap:10px;padding:0 12px}.engine-3d-search__icon{display:flex;color:#93c5fd}.engine-3d-search__input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#f8fafc;font-size:14px}.engine-3d-search__input::placeholder{color:#94a3b8}.engine-3d-search__clear{width:24px;height:24px;border:0;border-radius:50%;background:#94a3b833;color:#e2e8f0;font-size:18px;cursor:pointer}.engine-3d-search__status{min-height:28px;box-sizing:border-box;padding:6px 14px;border-top:1px solid rgba(148,163,184,.16);color:#94a3b8;font-size:12px}.engine-3d-search__list{max-height:300px;margin:0;padding:4px 0;overflow:auto;list-style:none}.engine-3d-search__pagination{display:none;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid rgba(148,163,184,.16);color:#94a3b8;font-size:12px}.engine-3d-search__page-button{border:0;border-radius:4px;padding:4px 8px;background:#94a3b833;color:inherit;cursor:pointer;font-size:12px}.engine-3d-search__page-button:disabled{cursor:not-allowed;opacity:.38}.engine-3d-search__item{display:flex;align-items:center;gap:8px;padding:9px 14px;cursor:pointer}.engine-3d-search__item:hover,.engine-3d-search__item--active{background:#3b82f633}.engine-3d-search__badge{flex:0 0 auto;padding:2px 5px;border-radius:3px;background:#3b82f638;color:#93c5fd;font-size:11px}.engine-3d-search__name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.engine-3d-search__id{flex:0 1 120px;overflow:hidden;color:#94a3b8;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.engine-3d-search--light .engine-3d-search__box{border-color:#47556947;background:#fffffff7;box-shadow:0 18px 40px #0f172a2e;color:#172554}.engine-3d-search--light .engine-3d-search__input{color:#0f172a}.engine-3d-search--light .engine-3d-search__input::placeholder,.engine-3d-search--light .engine-3d-search__status,.engine-3d-search--light .engine-3d-search__id{color:#64748b}.engine-3d-search--light .engine-3d-search__clear{background:#e2e8f0;color:#334155}.engine-3d-search--light .engine-3d-search__status{border-top-color:#47556924}.engine-3d-search--light .engine-3d-search__pagination{border-top-color:#47556924;color:#64748b}.engine-3d-search--light .engine-3d-search__page-button{background:#e2e8f0;color:#334155}.engine-3d-search--light .engine-3d-search__item:hover,.engine-3d-search--light .engine-3d-search__item--active{background:#e0f2fe}.engine-3d-search--light .engine-3d-search__badge{background:#dbeafe;color:#1d4ed8}.bim-mobile-roam-move-pad{width:116px;height:116px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#14182073;box-shadow:0 4px 16px #0000003d inset,0 4px 14px #0003;touch-action:none}.bim-mobile-roam-button{width:44px;height:44px;border:1px solid rgba(255,255,255,.46);border-radius:8px;color:#fff;background:#14182094;box-shadow:0 4px 14px #00000038;font-size:15px;font-weight:600;line-height:1;touch-action:none}.bim-mobile-roam-button.is-round{width:48px;height:48px;border-radius:50%;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center}.bim-mobile-roam-button.is-active{background:#267effc7;border-color:#ffffffb8}.bim-mobile-roam-move-pad.is-active{border-color:#267effd6;background:#142c4a8a}.bim-mobile-roam-look-group{display:flex;align-items:center;gap:12px}.bim-mobile-roam-vertical-pad{display:flex;flex-direction:column;gap:10px;align-items:center}.bim-mobile-roam-look-pad{width:116px;height:116px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#14182073;box-shadow:0 4px 16px #0000003d inset,0 4px 14px #0003;touch-action:none}.bim-mobile-roam-look-pad.is-active{border-color:#267effd6;background:#142c4a8a}.bim-mobile-roam-look-knob,.bim-mobile-roam-move-knob{width:46px;height:46px;border-radius:50%;background:#ffffffb8;box-shadow:0 2px 10px #00000042}@media(max-width:520px){.bim-mobile-roam-controls{padding:0 60px;bottom:max(40px,env(safe-area-inset-bottom))}.bim-mobile-roam-move-pad{width:96px;height:96px}.bim-mobile-roam-button{width:38px;height:38px;font-size:13px}.bim-mobile-roam-button.is-round{width:42px;height:42px;font-size:18px}.bim-mobile-roam-look-pad{width:96px;height:96px}.bim-mobile-roam-look-knob,.bim-mobile-roam-move-knob{width:38px;height:38px}}.measure-2d-selected.measureLine{stroke:#fff;fill:#fff;filter:drop-shadow(0 0 3px rgb(0,195,255))}.measure-2d-selected.measurePointer{fill:#fff;stroke:#00c3ff;stroke-width:2px;filter:drop-shadow(0 0 3px rgb(0,195,255))}.measure-2d-selected.measureBack{fill:#009bea;stroke:#fff;stroke-width:1px;filter:drop-shadow(0 0 4px rgb(0,195,255))}.measure-2d-selected.measureLabel{fill:#fff;stroke:none;font-weight:600}polygon.measure-2d-selected{fill:#00c3ff38}.markup-2d-layer{position:absolute;inset:0;pointer-events:none;z-index:30}.markup-2d-svg{position:absolute;inset:0;overflow:visible;pointer-events:none}.markup-2d-toolbar{position:absolute;top:8px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:6px;padding:6px;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 4px 14px #00000024;pointer-events:auto;-webkit-user-select:none;user-select:none;z-index:1300}.markup-2d-toolbar button,.markup-2d-toolbar input{height:28px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#1f2937;font-size:12px}.markup-2d-toolbar button{width:28px;min-width:28px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.markup-2d-toolbar button:hover,.markup-2d-toolbar button.active{color:#1677ff;border-color:#1677ff;background:#eef6ff}.markup-2d-toolbar input[type=color]{width:34px;padding:2px}.markup-2d-toolbar input[type=number]{width:54px;padding:0 4px}.markup-2d-icon-button img{width:16px;height:16px;display:block;pointer-events:none}.markup-2d-divider{width:1px;height:22px;background:#e5e7eb}.markup-2d-shape{pointer-events:auto;cursor:pointer}.markup-2d-shape.selected{filter:drop-shadow(0 0 4px rgba(22,119,255,.9))}.MapController{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.engine-2d-container{position:relative;width:100%;height:100%;overflow:hidden}.engine-2d-canvas{display:block;width:100%;height:100%;outline:none}.engine-2d-version-text{position:absolute;right:10px;bottom:0;z-index:1000;color:#86d9ff;font-size:10px;background:transparent;pointer-events:none}.engine-2d-cad-cursor{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.engine-2d-cad-cursor__h{position:absolute;left:0;width:100%;height:1px;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translateY(-50%)}.engine-2d-cad-cursor__v{position:absolute;top:0;width:1px;height:100%;background:var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%)}.engine-2d-cad-cursor__box{position:absolute;width:8px;height:8px;border:1px solid var(--e2d-cursor, rgba(255, 255, 255, .85));transform:translate(-50%,-50%)}.engine-2d-cad-cursor--short-crosshair .engine-2d-cad-cursor__h{width:72px;left:0;transform:translate(-50%,-50%)}.engine-2d-cad-cursor--short-crosshair .engine-2d-cad-cursor__v{height:72px;top:0;transform:translate(-50%,-50%)}.engine-2d-context-menu{position:absolute;z-index:9999;min-width:140px;background:var(--e2d-bg2, #252526);border:1px solid var(--e2d-border, rgba(255, 255, 255, .12));border-radius:4px;box-shadow:0 4px 16px var(--e2d-shadow, rgba(0, 0, 0, .5));padding:4px 0;display:none;-webkit-user-select:none;user-select:none}.engine-2d-context-menu--visible{display:block}.engine-2d-context-menu__item{padding:7px 16px;font-size:13px;color:var(--e2d-text2, #cccccc);cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}.engine-2d-context-menu__item:hover{background:var(--e2d-bg-accent, #094771);color:var(--e2d-text-accent, #ffffff)}.engine-2d-context-menu__divider{height:1px;background:var(--e2d-border, rgba(255, 255, 255, .1));margin:4px 0}.engine-2d-stats{position:absolute;top:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .7));color:var(--e2d-text, #e0e0e0);padding:8px 12px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-stats div{margin:2px 0}.engine-2d-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--e2d-float-bg, rgba(0, 0, 0, .8));color:var(--e2d-text, #e0e0e0);padding:20px 40px;border-radius:8px;font-size:16px;text-align:center}.engine-2d-loading-spinner{border:3px solid var(--e2d-border, rgba(255, 255, 255, .3));border-top:3px solid var(--e2d-accent, #4fc3f7);border-radius:50%;width:40px;height:40px;animation:engine-2d-spin 1s linear infinite;margin:0 auto 10px}@keyframes engine-2d-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.engine-2d-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d32f2feb;color:#fff;padding:20px 40px;border-radius:8px;font-size:14px;max-width:80%;text-align:center}.engine-2d-controls-hint{position:absolute;bottom:10px;left:10px;background:var(--e2d-float-bg, rgba(0, 0, 0, .6));color:var(--e2d-text, #e0e0e0);border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08));padding:8px 12px;border-radius:4px;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.engine-2d-controls-hint kbd{background:var(--e2d-icon-bg, rgba(255, 255, 255, .2));color:var(--e2d-text, #e0e0e0);padding:2px 6px;border-radius:3px;font-family:monospace}.engine-2d-workspace-tabs{position:absolute;left:12px;bottom:10px;z-index:40;display:flex;align-items:center;max-width:calc(100% - 24px);overflow-x:auto;background:var(--e2d-bg2, rgba(28, 33, 40, .92));border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:4px;box-shadow:0 4px 14px var(--e2d-shadow, rgba(0, 0, 0, .28))}.engine-2d-workspace-tabs__item{flex:0 0 auto;max-width:180px;height:28px;padding:0 12px;border:0;border-right:1px solid var(--e2d-border2, rgba(255, 255, 255, .1));background:transparent;color:var(--e2d-text2, #d7dde4);font-size:12px;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.engine-2d-workspace-tabs__item:last-child{border-right:0}.engine-2d-workspace-tabs__item:hover:not(:disabled){background:var(--e2d-bg-hover, rgba(79, 195, 247, .12));color:var(--e2d-text-accent, #ffffff)}.engine-2d-workspace-tabs__item--active{background:var(--e2d-accent, #2f80ed);color:#fff;cursor:default}.engine-2d-workspace-tabs__item:disabled{opacity:.9}.engine-2d-search{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;display:none}.engine-2d-search--visible{display:block}.engine-2d-search__box{position:absolute;top:14%;left:50%;transform:translate(-50%);width:480px;max-width:calc(100% - 40px);background:var(--e2d-bg, #1e1f22);border:1px solid var(--e2d-border, rgba(255, 255, 255, .14));border-radius:10px;box-shadow:0 8px 40px var(--e2d-shadow-lg, rgba(0, 0, 0, .65)),0 2px 8px var(--e2d-shadow, rgba(0, 0, 0, .4));overflow:hidden;pointer-events:auto;animation:engine-2d-search-in .18s cubic-bezier(.34,1.2,.64,1)}@keyframes engine-2d-search-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.97)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.engine-2d-search__input-row{display:flex;align-items:center;padding:0 12px;gap:8px;height:48px}.engine-2d-search__icon{flex-shrink:0;color:var(--e2d-icon, rgba(255, 255, 255, .4));display:flex;align-items:center}.engine-2d-search__input{flex:1;background:transparent;border:none;outline:none;color:var(--e2d-text, #e0e0e0);font-size:14px;line-height:1.4;caret-color:var(--e2d-accent, #4fc3f7)}.engine-2d-search__input::placeholder{color:var(--e2d-text3, rgba(255, 255, 255, .25))}.engine-2d-search__clear{flex-shrink:0;background:var(--e2d-icon-bg, rgba(255, 255, 255, .08));border:none;border-radius:4px;color:var(--e2d-icon, rgba(255, 255, 255, .5));cursor:pointer;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;opacity:0;pointer-events:none;transition:opacity .15s,background .15s,color .15s}.engine-2d-search__clear:hover{background:var(--e2d-icon-bg-hover, rgba(255, 255, 255, .16));color:var(--e2d-close-hover, #ffffff)}.engine-2d-search__divider{height:1px;background:var(--e2d-border2, rgba(255, 255, 255, .08));display:none}.engine-2d-search__status{padding:6px 16px;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .35));display:none;-webkit-user-select:none;user-select:none}.engine-2d-search__list{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto;display:none;scrollbar-width:thin;scrollbar-color:var(--e2d-scrollbar, rgba(255, 255, 255, .15)) transparent}.engine-2d-search__list::-webkit-scrollbar{width:4px}.engine-2d-search__list::-webkit-scrollbar-track{background:transparent}.engine-2d-search__list::-webkit-scrollbar-thumb{background:var(--e2d-scrollbar, rgba(255, 255, 255, .15));border-radius:2px}.engine-2d-search__item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .1s;min-height:38px;flex-wrap:nowrap}.engine-2d-search__item:hover,.engine-2d-search__item--active{background:var(--e2d-bg-hover, rgba(79, 195, 247, .08))}.engine-2d-search__item-badge{flex-shrink:0;font-size:10px;font-weight:500;padding:2px 6px;border-radius:3px;letter-spacing:.03em;white-space:nowrap;color:var(--e2d-accent, #4fc3f7);background:#4fc3f71f}.engine-2d-search__item-name{flex:1;font-size:13px;color:var(--e2d-text, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-layer{flex-shrink:0;font-size:11px;color:var(--e2d-text3, rgba(255, 255, 255, .3));white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__item-desc{flex-shrink:0;font-size:11px;color:var(--e2d-text4, rgba(255, 255, 255, .25));white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.engine-2d-search__mark{background:transparent;color:var(--e2d-accent, #4fc3f7);font-weight:600}.engine-2d-mouse-coord{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--e2d-float-bg, rgba(0, 0, 0, .65));color:var(--e2d-text, #e0e0e0);padding:5px 14px;border-radius:4px;font-family:monospace;font-size:12px;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid var(--e2d-float-border, rgba(255, 255, 255, .08))}.engine-2d-mouse-coord__label{color:var(--e2d-coord-label, rgba(255, 255, 255, .45));font-size:11px;letter-spacing:.05em}.engine-2d-mouse-coord__value{min-width:90px;color:var(--e2d-coord-value, #76c8ff)}.panorama-annotation-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden}.panorama-annotation{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);transition:opacity .2s ease,transform .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.panorama-annotation:hover{z-index:1001;transform:translate(-50%,-50%) scale(1.1)}.panorama-annotation-icon{width:40px;height:40px}.panorama-annotation-icon img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.panorama-annotation-text{max-width:200px;text-align:center;line-height:1.4}.panorama-annotation-link{transition:background-color .2s ease,transform .2s ease}.panorama-annotation-link:hover{z-index:1002}.panorama-annotation-link img{display:block;flex-shrink:0}.panorama-annotation.hidden{display:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.panorama-annotation.loading{animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.panorama-annotation-icon{width:32px;height:32px}.panorama-annotation-text,.panorama-annotation-link{font-size:12px!important;padding:6px 10px!important}}