vim-web 1.0.0-beta.2 → 1.0.0-beta.3

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.
package/dist/style.css CHANGED
@@ -175,2111 +175,2111 @@ body {
175
175
  }
176
176
  canvas:focus {
177
177
  outline: none;
178
- }/* ============================================================
179
- Design Tokens
180
- ============================================================ */
181
- :root {
182
- /* Brand */
183
- --c-primary: #0590cc;
184
- --c-primary-royal: #284ea2;
185
- --c-secondary-yellow: #eca500;
186
-
187
- /* Grays */
188
- --c-darkest-gray: #050c1a;
189
- --c-darker-gray: #212329;
190
- --c-dark-gray-warm: #3c3c3c;
191
- --c-dark-gray-cool: #56585f;
192
- --c-medium-gray: #8a8d95;
193
- --c-gray-divider: #e3e3e3;
194
- --c-light-gray: #d1d3d8;
195
- --c-lightest-gray: #f6f6f6;
196
- --c-white: #ffffff;
197
-
198
- /* Accents */
199
- --c-lightest-blue: #d9edf9;
200
- --c-light-blue: #c8e2f4;
201
- --c-list-hover: #fff8e5;
202
- --c-overflow: rgba(5, 12, 26, 0.8);
203
- --c-focus-ring: rgba(106, 159, 216, 0.2);
204
-
205
- /* Axis colors */
206
- --c-axe-x: #fd0202;
207
- --c-axe-y: #11a936;
208
- --c-axe-z: #0000f5;
209
-
210
- --visible-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23212329' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
211
- --visible-beige: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23c3bfb4' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
212
- --visible-light-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%239cb5d5' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
213
- --visible-royal-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23284ea2' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
214
-
215
- --hidden-dark: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%2321232' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%2321232' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%2321232' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
216
- --hidden-beige: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23c3bfb4' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%23c3bfb4' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%23c3bfb4' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
217
- --hidden-light-blue: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%239cb5d5' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%239cb5d5' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%239cb5d5' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
218
- --hidden-royal-blue: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23284ea2' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%23284ea2' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%23284ea2' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
219
-
220
- /* Sizing */
221
- --size-control: 32px;
222
-
223
- /* Border radius */
224
- --radius-sm: 4px;
225
- --radius-md: 6px;
226
- --radius-full: 9999px;
227
-
228
- /* Shadows */
229
- --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.15);
230
- --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.2);
231
- --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.3);
232
-
233
- /* Spacing */
234
- --gap-xs: 0.25rem; /* 4px — inline/icon gaps */
235
- --gap-sm: 0.625rem; /* 10px — standard item gaps */
236
-
237
- /* Transitions */
238
- --transition-fast: 0.15s;
239
- --transition-base: 0.2s;
240
-
241
- /* Typography */
242
- --font-family: 'Roboto', sans-serif;
243
- --font-size-xs: 0.7rem;
244
- --font-size-sm: 0.75rem;
245
- --font-size-base: 0.875rem;
246
- --font-size-lg: 1rem;
247
- --font-size-xl: 1.25rem;
248
- --font-weight-medium: 500;
249
- --font-weight-semibold: 600;
250
-
251
- /* Z-index scale
252
- --z-overlay (10) loading overlay (behind everything interactive)
253
- --z-ui (20) control bar, axes panel, side panel
254
- --z-panel (30) panel overlay container, side panel nav
255
- --z-modal (40) modal dialogs
256
- --z-popup (50) dropdowns, context menus (always on top)
257
- */
258
- --z-overlay: 10;
259
- --z-ui: 20;
260
- --z-panel: 30;
261
- --z-modal: 40;
262
- --z-popup: 50;
263
- }
264
-
265
- /* ============================================================
266
- Base / Global
267
- ============================================================ */
268
-
269
-
270
- .vim-component {
271
- font-family: var(--font-family);
272
- -webkit-font-smoothing: antialiased;
273
- -moz-osx-font-smoothing: grayscale;
274
- overflow: hidden;
275
- cursor: default;
276
- }
277
-
278
-
279
- /*
280
- Focus rings are suppressed because this viewer is pointer/touch-driven.
281
- Hover effects are implemented manually on all interactive elements
282
- (buttons, tree items, list entries) to provide equivalent visual feedback.
283
- Keyboard focus is not a supported interaction mode.
284
- */
285
- .vim-component [type='checkbox']:focus,
286
- .vim-component [type='radio']:focus,
287
- .vim-component button:focus,
288
- .vim-component input[type='search']:focus {
289
- outline: 0;
290
- box-shadow: none;
291
- }
292
-
293
-
294
- /* Fix for search cancel button on IOS */
295
- .vim-component input[type='search']::-webkit-search-cancel-button {
296
- -webkit-appearance: none;
297
- height: 1rem;
298
- width: 1rem;
299
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16.25' height='16.25' viewBox='0 0 16.25 16.25'%3E%3Cpath id='icon' d='M32.125,24a8.125,8.125,0,1,0,8.125,8.125A8.125,8.125,0,0,0,32.125,24ZM35.6,34.275A.937.937,0,0,1,34.275,35.6l-2.15-2.15-2.15,2.15a.937.937,0,0,1-1.326-1.326l2.15-2.15-2.15-2.15a.937.937,0,0,1,1.326-1.326l2.15,2.15,2.15-2.15A.937.937,0,1,1,35.6,29.975l-2.15,2.15Z' transform='translate(-24 -24)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
300
- }
301
-
302
- /* ============================================================
303
- Layout Containers
304
- ============================================================ */
305
- .vim-help-overlay {
306
- container-type: size;
307
- }
308
-
309
- .vim-loading-container {
310
- container-type: size;
311
- }
312
-
313
- .vim-rest-of-screen {
314
- container-type: size;
315
- }
316
-
317
- .vim-side-panel {
318
- container-type: size;
319
- }
320
-
321
- .vim-modal {
322
- container-type: size;
323
- }
324
-
325
- /* ============================================================
326
- Panel
327
- ============================================================ */
328
- /* ================================================================
329
- Generic Panel
330
- Base classes for list/entry/group structure.
331
- Three instances: Settings Panel, BIM Header, BIM Body.
332
- ================================================================ */
333
-
334
- /* --- Shell --- */
335
-
336
- .vim-panel-overlay {
337
- position: fixed;
338
- inset: 0;
339
- display: flex;
340
- pointer-events: none;
341
- z-index: var(--z-panel);
342
- }
343
-
344
- .vim-panel {
345
- background: var(--c-lightest-gray);
346
- pointer-events: auto;
347
- }
348
-
349
- .vim-panel-header {
350
- display: flex;
351
- justify-content: space-between;
352
- align-items: center;
353
- padding: 0 0 0 0.5rem;
354
- background: var(--c-light-gray);
355
- margin-bottom: 4px;
356
- }
357
-
358
- .vim-panel-title {
359
- text-transform: uppercase;
360
- font-size: var(--font-size-sm);
361
- font-weight: bold;
362
- color: inherit;
363
- min-height: var(--size-control);
364
- display: flex;
365
- align-items: center;
366
- }
367
-
368
- .vim-panel-close {
369
- flex-shrink: 0;
370
- width: var(--size-control);
371
- height: var(--size-control);
372
- position: relative;
373
- background: none;
374
- border: none;
375
- cursor: pointer;
376
- padding: 0;
377
- color: var(--c-medium-gray);
378
- }
379
-
380
- .vim-panel-close::before,
381
- .vim-panel-close::after {
382
- content: '';
383
- position: absolute;
384
- top: 50%;
385
- left: 50%;
386
- width: 16px;
387
- height: 1px;
388
- background: currentColor;
389
- }
390
-
391
- .vim-panel-close::before { transform: translate(-50%, -50%) rotate(45deg); }
392
- .vim-panel-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
393
-
394
- .vim-panel-body {
395
- margin: 0 0 0.5rem 0;
396
- color: var(--c-darker-gray);
397
- }
398
-
399
- .vim-panel-content {
400
- padding: 0 0.625rem;
401
- }
402
-
403
- /* --- List structure --- */
404
-
405
- .vim-panel-list {
406
- display: flex;
407
- flex-direction: column;
408
- gap: 0;
409
- }
410
-
411
- .vim-panel-group {
412
- min-width: 0;
413
- margin-bottom: 8px;
414
- }
415
-
416
- .vim-panel-section {
417
- min-width: 0;
418
- margin-bottom: 4px;
419
- }
420
-
421
- /* Group title: full-width collapsible row */
422
- .vim-panel-group-title {
423
- display: flex;
424
- align-items: center;
425
- list-style: none;
426
- cursor: pointer;
427
- min-height: var(--size-control);
428
- padding: 0 0.25rem;
429
- font-weight: var(--font-weight-semibold);
430
- font-size: var(--font-size-sm);
431
- text-transform: uppercase;
432
- color: var(--c-dark-gray-cool);
433
- }
434
-
435
- .vim-panel-group-title::-webkit-details-marker { display: none; }
436
-
437
- .vim-panel-group-title::after {
438
- content: '';
439
- display: inline-block;
440
- flex-shrink: 0;
441
- width: 7px; /* chevron size — border-box rotated 45deg, so visual size ≈ 10px diagonal */
442
- height: 7px;
443
- border-right: 1.5px solid var(--c-medium-gray);
444
- border-bottom: 1.5px solid var(--c-medium-gray);
445
- transform: rotate(-135deg);
446
- margin-bottom: -2px;
447
- margin-left: auto;
448
- margin-right: 4px;
449
- }
450
-
451
- details:not([open]) .vim-panel-group-title::after {
452
- transform: rotate(45deg);
453
- margin-bottom: 2px;
454
- }
455
-
456
- /* Section title: indented collapsible sub-row */
457
- .vim-panel-section-title {
458
- display: flex;
459
- align-items: center;
460
- justify-content: space-between;
461
- list-style: none;
462
- cursor: pointer;
463
- box-sizing: border-box;
464
- min-height: var(--size-control);
465
- padding: 0 0 0 6px;
466
- font-weight: var(--font-weight-medium);
467
- font-size: var(--font-size-sm);
468
- color: var(--c-dark-gray-cool);
469
- }
470
-
471
- .vim-panel-section-title::-webkit-details-marker { display: none; }
472
-
473
- .vim-panel-section-title::after {
474
- content: '';
475
- display: inline-block;
476
- flex-shrink: 0;
477
- width: 7px; /* chevron size — same as group title */
478
- height: 7px;
479
- border-right: 1.5px solid var(--c-medium-gray);
480
- border-bottom: 1.5px solid var(--c-medium-gray);
481
- transform: rotate(-135deg);
482
- margin-bottom: -2px;
483
- margin-right: 4px;
484
- }
485
-
486
- details:not([open]) .vim-panel-section-title::after {
487
- transform: rotate(45deg);
488
- margin-bottom: 2px;
489
- margin-right: 4px;
490
- }
491
-
492
- /* --- Entries --- */
493
-
494
- .vim-panel-subtitle {
495
- font-weight: var(--font-weight-medium);
496
- font-size: var(--font-size-base);
497
- color: var(--c-dark-gray-cool);
498
- padding-top: 0.25rem;
499
- }
500
-
501
- .vim-panel-entry {
502
- display: flex;
503
- align-items: center;
504
- font-size: var(--font-size-sm);
505
- min-height: 24px;
506
- }
507
-
508
- .vim-panel-entry dt {
509
- flex: 0 0 50%;
510
- min-width: 0;
511
- overflow: hidden;
512
- text-overflow: ellipsis;
513
- white-space: nowrap;
514
- }
515
-
516
- .vim-panel-entry dd {
517
- flex: 1;
518
- min-width: 0;
519
- margin: 0;
520
- display: flex;
521
- flex-direction: row;
522
- align-items: center;
523
- gap: var(--gap-xs);
524
- }
525
-
526
-
527
- .vim-panel-entry:nth-child(odd) { background: var(--c-white); }
528
- .vim-panel-entry:nth-child(even) { background: transparent; }
529
-
530
- .vim-panel-entry[data-disabled] {
531
- opacity: 0.5;
532
- pointer-events: none;
533
- }
534
-
535
- .vim-panel-entry-value {
536
- min-width: 0;
537
- margin: 0;
538
- font-size: var(--font-size-sm);
539
- color: var(--c-darker-gray);
540
- overflow: hidden;
541
- text-overflow: ellipsis;
542
- white-space: nowrap;
543
- }
544
-
545
- .vim-panel-entry-info {
546
- color: var(--c-light-gray);
547
- font-size: var(--font-size-sm);
548
- }
549
-
550
- /* ================================================================
551
- Shared overrides — common patterns across panel instances
552
- ================================================================ */
553
-
554
- /* Tall entries (settings labels + bim properties) */
555
- .vim-settings-panel .vim-panel-entry,
556
- .vim-bim-body .vim-panel-entry {
557
- min-height: var(--size-control);
558
- }
559
-
560
- /* Tab-style group title: inline, bordered, rounded top */
561
- .vim-settings-panel .vim-panel-group-title,
562
- .vim-bim-body .vim-panel-group-title {
563
- display: inline-flex;
564
- align-items: center;
565
- gap: var(--gap-sm);
566
- border: 1px solid var(--c-light-gray);
567
- border-radius: 4px 4px 0 0;
568
- padding: 0 8px;
569
- height: var(--size-control);
570
- min-height: var(--size-control);
571
- font-size: var(--font-size-sm);
572
- font-weight: bold;
573
- text-transform: uppercase;
574
- color: var(--c-medium-gray);
575
- }
576
-
577
- /* Tab-style chevron: fixed gap instead of auto-push */
578
- .vim-settings-panel .vim-panel-group-title::after,
579
- .vim-bim-body .vim-panel-group-title::after {
580
- margin-left: 8px;
581
- }
582
-
583
- /* Filled section title: solid bg with bold small-caps label */
584
- .vim-settings-panel .vim-panel-section-title,
585
- .vim-bim-body .vim-panel-section-title {
586
- background: var(--c-light-gray);
587
- font-weight: bold;
588
- font-size: var(--font-size-xs);
589
- text-transform: uppercase;
590
- color: var(--c-darker-gray);
591
- }
592
-
593
- /* ================================================================
594
- Settings Panel
595
- ================================================================ */
596
-
597
- .vim-settings-panel {
598
- position: absolute;
599
- inset: 0;
600
- display: flex;
601
- flex-direction: column;
602
- }
603
-
604
- .vim-settings-panel .vim-panel-header {
605
- flex-shrink: 0;
606
- background: none;
607
- padding: 0;
608
- min-height: var(--size-control);
609
- }
610
-
611
- .vim-settings-panel .vim-panel-body {
612
- flex: 1;
613
- min-height: 0;
614
- margin: 0 -0.625rem 0 0;
615
- overflow-y: auto;
616
- }
617
-
618
- .vim-settings-panel .vim-panel-section-title {
619
- padding: 4px 0.5rem;
620
- }
621
-
622
- .vim-settings-panel .vim-panel-entry dt {
623
- padding: 0 0.5rem;
624
- }
625
-
626
- .vim-settings-panel .vim-panel-entry dd {
627
- padding: 0;
628
- }
629
-
630
- /* ============================================================
631
- Settings Inputs
632
- ============================================================ */
633
- .vim-settings-textbox{
634
- font-size: inherit;
635
- }
636
-
637
- /* ============================================================
638
- Select
639
- ============================================================ */
640
- .vim-select {
641
- position: relative;
642
- display: inline-block;
643
- }
644
-
645
- .vim-select[data-variant="full"] {
646
- width: 100%;
647
- }
648
-
649
- .vim-select[data-disabled] {
650
- opacity: 0.5;
651
- pointer-events: none;
652
- }
653
-
654
- .vim-select-trigger {
655
- cursor: pointer;
656
- text-align: left;
657
- background: var(--c-white);
658
- border: 1px solid var(--c-medium-gray);
659
- display: inline-flex;
660
- align-items: center;
661
- gap: var(--gap-xs);
662
- font-size: var(--font-size-sm);
663
- padding: 0.125rem 0.25rem;
664
- border-radius: var(--radius-sm);
665
- }
666
-
667
-
668
- .vim-select[data-variant="full"] .vim-select-trigger {
669
- width: 100%;
670
- max-width: 120px;
671
- height: 24px;
672
- display: flex;
673
- justify-content: space-between;
674
- border-radius: 0;
675
- border-color: var(--c-light-gray);
676
- }
677
-
678
- .vim-select-label {
679
- flex: 1;
680
- min-width: 0;
681
- overflow: hidden;
682
- text-overflow: ellipsis;
683
- white-space: nowrap;
684
- }
685
-
686
- .vim-select-chevron {
687
- width: 0.75rem;
688
- height: 0.75rem;
689
- flex-shrink: 0;
690
- color: var(--c-light-gray);
691
- }
692
-
693
- .vim-select:hover .vim-select-chevron {
694
- color: var(--c-dark-gray-warm);
695
- }
696
-
697
- .vim-select-list {
698
- position: absolute;
699
- left: 0;
700
- top: 100%;
701
- z-index: var(--z-popup);
702
- min-width: 100%;
703
- background: var(--c-white);
704
- border: 1px solid var(--c-medium-gray);
705
- box-shadow: var(--shadow-sm);
706
- border-radius: var(--radius-sm);
707
- font-size: var(--font-size-sm);
708
- }
709
-
710
- .vim-select[data-variant="full"] .vim-select-list {
711
- right: 0;
712
- border-radius: 0;
713
- border-color: var(--c-light-gray);
714
- }
715
-
716
- .vim-select-option {
717
- padding: 0.25rem 0.5rem;
718
- cursor: pointer;
719
- white-space: nowrap;
720
- }
721
-
722
- .vim-select-option:hover,
723
- .vim-select-option[data-selected] {
724
- background: var(--c-lightest-gray);
725
- }
726
-
727
- /* ============================================================
728
- BIM Panel
729
- ============================================================ */
730
- .vim-bim-lower {
731
- display: flex;
732
- flex-direction: column;
733
- max-height: 100%;
734
- }
735
-
736
- .vim-bim-lower-content {
737
- flex: 1;
738
- min-height: 0;
739
- display: flex;
740
- flex-direction: column;
741
- overflow-y: auto;
742
- overflow-x: hidden;
743
- }
744
-
745
- .vim-bim-header-entry {
746
- display: flex;
747
- width: 100%;
748
- }
749
-
750
- /* 33% label / 67% value split — matches BIM body and all panel entry columns */
751
- .vim-bim-header-label {
752
- margin-right: 0.25rem;
753
- flex-shrink: 0;
754
- white-space: nowrap;
755
- overflow: hidden;
756
- text-overflow: ellipsis;
757
- color: var(--c-medium-gray);
758
- width: 33%;
759
- }
760
-
761
- .vim-bim-header-value {
762
- overflow: hidden;
763
- text-overflow: ellipsis;
764
- flex-shrink: 1;
765
- }
766
-
767
- .vim-bim-section-title {
768
- display: inline-flex;
769
- width: auto;
770
- border-top: 1px solid var(--c-light-gray);
771
- border-left: 1px solid var(--c-light-gray);
772
- border-right: 1px solid var(--c-light-gray);
773
- border-radius: 4px 4px 0 0;
774
- padding: 0 0.5rem;
775
- color: var(--c-medium-gray);
776
- }
777
-
778
- .vim-bim-group-header {
779
- display: flex;
780
- justify-content: space-between;
781
- align-items: center;
782
- background: var(--c-light-gray);
783
- padding: 0 0.5rem;
784
- }
785
-
786
- .vim-bim-group-header-label {
787
- white-space: nowrap;
788
- overflow: hidden;
789
- text-overflow: ellipsis;
790
- }
791
-
792
- .vim-bim-collapse-icon {
793
- max-height: 100%;
794
- transition: transform var(--transition-base);
795
- transform: rotate(0deg);
796
- }
797
-
798
- .vim-bim-collapse-icon[data-open] {
799
- transform: rotate(180deg);
800
- }
801
-
802
- .vim-bim-body-entry {
803
- display: flex;
804
- }
805
-
806
- .vim-bim-body-entry:nth-child(odd) { background: var(--c-white); }
807
- .vim-bim-body-entry:nth-child(even) { background: transparent; }
808
-
809
-
810
- .vim-bim-body-entry-title {
811
- width: 33%;
812
- padding: 0 0.5rem;
813
- overflow: hidden;
814
- text-overflow: ellipsis;
815
- border-right: 1px solid var(--c-light-gray);
816
- }
817
-
818
- .vim-bim-body-entry-value {
819
- width: 67%;
820
- overflow: hidden;
821
- text-overflow: ellipsis;
822
- padding: 0 0.5rem;
823
- color: var(--c-medium-gray);
824
- }
825
-
826
- /* ================================================================
827
- BIM Header — flat readonly entries (name / id / category)
828
- ================================================================ */
829
-
830
- .vim-bim-header {
831
- min-width: 0;
832
- }
833
-
834
- .vim-bim-header .vim-panel-entry {
835
- overflow: hidden;
836
- background: transparent;
837
- }
838
-
839
- .vim-bim-header .vim-panel-entry dt {
840
- flex-shrink: 0;
841
- width: 33%;
842
- color: var(--c-medium-gray);
843
- overflow: hidden;
844
- text-overflow: ellipsis;
845
- white-space: nowrap;
846
- }
847
-
848
- .vim-bim-header .vim-panel-entry dd {
849
- display: block;
850
- flex: 1;
851
- min-width: 0;
852
- overflow: hidden;
853
- text-overflow: ellipsis;
854
- white-space: nowrap;
855
- padding: 0;
856
- }
857
-
858
- /* ================================================================
859
- BIM Body — group → section → zebra entries
860
- ================================================================ */
861
-
862
- .vim-bim-body {
863
- min-width: 0;
864
- }
865
-
866
- .vim-bim-body .vim-panel-entry {
867
- overflow: hidden;
868
- }
869
-
870
- .vim-bim-body .vim-panel-entry dt {
871
- flex-shrink: 0;
872
- width: 33%;
873
- padding: 0 6px;
874
- overflow: hidden;
875
- text-overflow: ellipsis;
876
- white-space: nowrap;
877
- border-right: 1px solid var(--c-light-gray);
878
- }
879
-
880
- .vim-bim-body .vim-panel-entry dd {
881
- display: block;
882
- flex: 1;
883
- min-width: 0;
884
- overflow: hidden;
885
- text-overflow: ellipsis;
886
- white-space: nowrap;
887
- padding: 0 0 0 6px;
888
- color: var(--c-medium-gray);
889
- }
890
-
891
- .vim-bim-body .vim-panel-section-title {
892
- width: 100%;
893
- padding: 4px 0.5rem 4px 6px;
894
- }
895
-
896
- /* ============================================================
897
- BIM Tree
898
- ============================================================ */
899
- .vim-bim-tree .rct-tree-root {
900
- width: 100%;
901
- flex:1;
902
- min-height: 0;
903
- overflow-y: auto;
904
- overflow-x: hidden;
905
- }
906
-
907
- .vim-bim-tree .rct-tree-item-button{
908
- gap: var(--gap-xs);
909
- padding: 0;
910
- margin-right: 0;
911
- min-width: 0;
912
- }
913
- .vim-bim-tree .rct-tree-item-title{
914
- flex:1;
915
- }
916
-
917
- .vim-bim-tree .rct-tree-item-li{
918
- padding: 0;
919
- font-size: inherit;
920
- }
921
-
922
- .vim-bim-tree .rct-tree-item-title-container,
923
- .vim-bim-tree .rct-tree-items-container,
924
- .vim-bim-tree .rct-tree-root.rct-tree-root-focus,
925
- .vim-bim-tree .rct-tree-item-title-container-focused,
926
- .vim-bim-tree .rct-tree-root-focus
927
- {
928
- border: 0;
929
- outline: none;
930
- }
931
-
932
- .vim-bim-tree .rct-tree-item-title {
933
- white-space: nowrap;
934
- overflow: hidden;
935
- text-overflow: ellipsis;
936
- }
937
-
938
- /* Treeview Arrow */
939
- .vim-bim-tree .rct-tree-item-arrow {
940
- flex-shrink: 0;
941
- display: flex;
942
- }
943
-
944
- .vim-bim-tree .rct-tree-item-arrow:has(svg) svg path {
945
- opacity: 0;
946
- }
947
-
948
- .vim-bim-tree .rct-tree-item-arrow:has(svg):before {
949
- content: '';
950
- background-position: center;
951
- background-repeat: no-repeat;
952
- background-image: url("data:image/svg+xml,%3Csvg id='Arrow' xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect id='frame' width='20' height='20' fill='%238a8d95' opacity='0'/%3E%3Cpath id='icon' d='M100.072,70.536l-3.987,3.987a.938.938,0,0,1-1.6-.663V65.886a.938.938,0,0,1,1.6-.663l3.987,3.987A.937.937,0,0,1,100.072,70.536Z' transform='translate(-87.104 -59.873)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
953
- position: relative;
954
- display: block;
955
- height: 20px;
956
- width: 20px;
957
- transition: 0.3s;
958
- }
959
-
960
- .vim-bim-tree .rct-tree-item-title-container-expanded > .rct-tree-item-arrow::before {
961
- transform: rotate(90deg);
962
- transition: 0.3s;
963
- }
964
-
965
- .vim-bim-tree .rct-tree-item-arrow-path {
966
- fill: var(--c-medium-gray);
967
- }
968
-
969
- .vim-bim-tree .rct-tree-items-container > li:nth-child(odd) { background-color: var(--c-white); }
970
- .vim-bim-tree .rct-tree-items-container > li:nth-child(even) { background-color: transparent; }
971
-
972
- /* Tree View Select*/
973
- .vim-bim-tree
974
- .rct-tree-root:not(.rct-tree-root-focus)
975
- .rct-tree-item-title-container-selected,
976
- .vim-bim-tree
977
- .rct-tree-root.rct-tree-root-focus
978
- .rct-tree-item-title-container-selected {
979
- background-color: var(--c-lightest-blue);
980
- }
981
-
982
- .vim-bim-tree .parameters:first-child > ul > li h3 {
983
- border-top-right-radius: 4px;
984
- }
985
-
986
- /* Tree View Hover*/
987
- .vim-bim-tree .rct-tree-item-title-container:hover {
988
- background-color: var(--c-list-hover);
989
- }
990
-
991
- /*
992
- Tree View Visibility Toggles
993
- The visibility icon has three states managed through CSS class combinations:
994
- - .vim-visible (default): hidden (display:none), revealed on hover
995
- - .vim-hidden (default): always shown with a "hidden" icon
996
- Hover states change the icon color based on selection context:
997
- - unselected hover: beige icon
998
- - selected hover: light-blue icon
999
- - direct icon hover: royal-blue icon (toggling is imminent)
1000
- !important needed to override react-complex-tree's inline flex display.
1001
- */
1002
- .vim-bim-tree .rct-tree-item-button {
1003
- display: flex !important;
1004
- justify-content: space-between !important;
1005
- margin-right: 0;
1006
- }
1007
-
1008
- .vim-bim-tree .rct-tree-item-visibility {
1009
- flex-shrink: 0;
1010
- background-repeat: no-repeat;
1011
- }
1012
-
1013
- /*default state*/
1014
- .vim-bim-tree .rct-tree-item-visibility.vim-visible {
1015
- display: none;
1016
- }
1017
-
1018
- .vim-bim-tree .rct-tree-item-visibility.vim-hidden {
1019
- display: block;
1020
- background-image: var(--hidden-dark);
1021
- }
1022
-
1023
- /* Hover unselected element */
1024
- .vim-bim-tree .rct-tree-item-button:hover .rct-tree-item-visibility.vim-visible {
1025
- display: block;
1026
- background-image: var(--visible-beige);
1027
- }
1028
-
1029
- .vim-bim-tree .rct-tree-item-button:hover .rct-tree-item-visibility.vim-hidden {
1030
- display: block;
1031
- background-image: var(--hidden-beige);
1032
- }
1033
-
1034
- /* Hover selected element */
1035
- .vim-bim-tree .rct-tree-item-title-container-selected
1036
- .rct-tree-item-button:hover
1037
- .rct-tree-item-visibility.vim-visible {
1038
- display: block;
1039
- background-image: var(--visible-light-blue);
1040
- }
1041
-
1042
- .vim-bim-tree .rct-tree-item-title-container-selected
1043
- .rct-tree-item-button:hover
1044
- .rct-tree-item-visibility.vim-hidden {
1045
- display: block;
1046
- background-image: var(--hidden-light-blue);
1047
- }
1048
-
1049
- /* Hover toggle button*/
1050
- .vim-bim-tree .rct-tree-item-title-container-selected
1051
- .rct-tree-item-button
1052
- .rct-tree-item-visibility.vim-visible:hover,
1053
- .vim-bim-tree .rct-tree-item-button .rct-tree-item-visibility.vim-visible:hover {
1054
- display: block;
1055
- background-image: var(--hidden-royal-blue);
1056
- }
1057
-
1058
- .vim-bim-tree .rct-tree-item-title-container-selected
1059
- .rct-tree-item-button
1060
- .rct-tree-item-visibility.vim-hidden:hover,
1061
- .vim-bim-tree .rct-tree-item-button .rct-tree-item-visibility.vim-hidden:hover {
1062
- display: block;
1063
- background-image: var(--visible-royal-blue);
1064
- }
1065
-
1066
- /* ============================================================
1067
- BIM Tree (headless-tree)
1068
- ============================================================ */
1069
- .vim-ht-container {
1070
- width: 100%;
1071
- flex: 1;
1072
- min-height: 0;
1073
- overflow-y: auto;
1074
- overflow-x: hidden;
1075
- outline: none;
1076
- }
1077
-
1078
- .vim-ht-item {
1079
- display: flex;
1080
- align-items: center;
1081
- gap: var(--gap-xs);
1082
- padding-right: 4px;
1083
- min-width: 0;
1084
- cursor: pointer;
1085
- height: 24px;
1086
- }
1087
-
1088
- .vim-ht-item:nth-child(odd) { background-color: var(--c-white); }
1089
- .vim-ht-item:nth-child(even) { background-color: transparent; }
1090
-
1091
- .vim-ht-item.vim-ht-selected {
1092
- background-color: var(--c-lightest-blue);
1093
- }
1094
-
1095
- .vim-ht-item:hover {
1096
- background-color: var(--c-list-hover);
1097
- }
1098
-
1099
- .vim-ht-item.vim-ht-selected:hover {
1100
- background-color: var(--c-light-blue);
1101
- }
1102
-
1103
- .vim-ht-arrow {
1104
- flex-shrink: 0;
1105
- width: 20px;
1106
- height: 20px;
1107
- display: flex;
1108
- transition: transform 0.3s;
1109
- }
1110
-
1111
- .vim-ht-arrow-folder {
1112
- background-position: center;
1113
- background-repeat: no-repeat;
1114
- background-image: url("data:image/svg+xml,%3Csvg id='Arrow' xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect id='frame' width='20' height='20' fill='%238a8d95' opacity='0'/%3E%3Cpath id='icon' d='M100.072,70.536l-3.987,3.987a.938.938,0,0,1-1.6-.663V65.886a.938.938,0,0,1,1.6-.663l3.987,3.987A.937.937,0,0,1,100.072,70.536Z' transform='translate(-87.104 -59.873)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
1115
- }
1116
-
1117
- .vim-ht-arrow-open {
1118
- transform: rotate(90deg);
1119
- }
1120
-
1121
- .vim-ht-title {
1122
- flex: 1;
1123
- min-width: 0;
1124
- white-space: nowrap;
1125
- overflow: hidden;
1126
- text-overflow: ellipsis;
1127
- }
1128
-
1129
- .vim-ht-visibility {
1130
- flex-shrink: 0;
1131
- background-repeat: no-repeat;
1132
- }
1133
-
1134
- /* Default: visible items hide the icon, hidden items show it */
1135
- .vim-ht-visibility[data-visibility="visible"] {
1136
- display: none;
1137
- }
1138
-
1139
- .vim-ht-visibility[data-visibility="hidden"] {
1140
- display: block;
1141
- background-image: var(--hidden-dark);
1142
- }
1143
-
1144
- /* Hover unselected */
1145
- .vim-ht-item:hover .vim-ht-visibility[data-visibility="visible"] {
1146
- display: block;
1147
- background-image: var(--visible-beige);
1148
- }
1149
-
1150
- .vim-ht-item:hover .vim-ht-visibility[data-visibility="hidden"] {
1151
- background-image: var(--hidden-beige);
1152
- }
1153
-
1154
- /* Hover selected */
1155
- .vim-ht-item.vim-ht-selected:hover .vim-ht-visibility[data-visibility="visible"] {
1156
- display: block;
1157
- background-image: var(--visible-light-blue);
1158
- }
1159
-
1160
- .vim-ht-item.vim-ht-selected:hover .vim-ht-visibility[data-visibility="hidden"] {
1161
- background-image: var(--hidden-light-blue);
1162
- }
1163
-
1164
- /* Hover toggle button directly */
1165
- .vim-ht-item .vim-ht-visibility[data-visibility="visible"]:hover {
1166
- display: block;
1167
- background-image: var(--hidden-royal-blue);
1168
- }
1169
-
1170
- .vim-ht-item .vim-ht-visibility[data-visibility="hidden"]:hover {
1171
- background-image: var(--visible-royal-blue);
1172
- }
1173
-
1174
- /* ============================================================
1175
- Control Bar
1176
- ============================================================ */
1177
- .vim-control-bar {
1178
- pointer-events: auto;
1179
- position: absolute;
1180
- left: 0;
1181
- right: 0;
1182
- z-index: var(--z-ui);
1183
- display: flex;
1184
- flex-wrap: wrap;
1185
- align-items: center;
1186
- justify-content: center;
1187
- margin: 0 0.5rem;
1188
- min-width: 0;
1189
- gap: min(var(--gap-sm), 2%);
1190
- bottom: min(36px, 10%);
1191
- transition: all var(--transition-base);
1192
- }
1193
-
1194
- .vim-control-bar-section {
1195
- display: flex;
1196
- align-items: center;
1197
- border-radius: var(--radius-full);
1198
- margin-bottom: 0.5rem;
1199
- box-shadow: var(--shadow-sm);
1200
- background: var(--c-white);
1201
- }
1202
-
1203
- .vim-control-bar-section[data-variant="blue"] {
1204
- background: var(--c-primary);
1205
- }
1206
-
1207
- .vim-control-bar-button {
1208
- border-radius: var(--radius-full);
1209
- display: flex;
1210
- align-items: center;
1211
- justify-content: center;
1212
- transition: transform var(--transition-fast);
1213
- background: none;
1214
- border: none;
1215
- cursor: pointer;
1216
- padding: 0;
1217
- color: var(--c-medium-gray);
1218
- }
1219
-
1220
- .vim-control-bar-button:hover {
1221
- transform: scale(1.1);
1222
- }
1223
-
1224
- /* default: on → primary */
1225
- .vim-control-bar-button[data-on="true"] {
1226
- color: var(--c-primary);
1227
- }
1228
-
1229
- /* expand: circular (same as default) */
1230
- .vim-control-bar-button[data-variant="expand"] {
1231
- border-radius: var(--radius-full);
1232
- }
1233
-
1234
- /* expand: on → primary bg + white text */
1235
- .vim-control-bar-button[data-variant="expand"][data-on="true"] {
1236
- background: var(--c-primary);
1237
- color: var(--c-white);
1238
- }
1239
-
1240
- /* disabled: off → light gray + no pointer events */
1241
- .vim-control-bar-button[data-variant="disabled"][data-on="false"],
1242
- .vim-control-bar-button[data-variant="disabled-default"][data-on="false"] {
1243
- color: var(--c-light-gray);
1244
- pointer-events: none;
1245
- }
1246
-
1247
- /* disabled: on → medium-gray (not primary) */
1248
- .vim-control-bar-button[data-variant="disabled"][data-on="true"] {
1249
- color: var(--c-medium-gray);
1250
- }
1251
-
1252
- /* blue section buttons → always white */
1253
- .vim-control-bar-button[data-variant="blue"] {
1254
- color: var(--c-white);
1255
- }
1256
-
1257
- /* ============================================================
1258
- Axes Panel
1259
- ============================================================ */
1260
- .vim-axes-panel,
1261
- .vim-axes-panel-empty {
1262
- position: absolute;
1263
- z-index: var(--z-ui);
1264
- display: flex;
1265
- flex-direction: column;
1266
- border: 1px solid white;
1267
- box-shadow: var(--shadow-md);
1268
- }
1269
-
1270
- .vim-axes-panel.vim-hidden,
1271
- .vim-axes-panel-empty.vim-hidden {
1272
- display: none;
1273
- }
1274
-
1275
- .vim-axes-canvas {
1276
- position: absolute;
1277
- inset: 0;
1278
- order: 1;
1279
- border-radius: inherit;
1280
- opacity: 0.5;
1281
- filter: saturate(0);
1282
- transition: opacity var(--transition-base), filter var(--transition-base);
1283
- }
1284
-
1285
- .vim-axes-panel:hover .vim-axes-canvas,
1286
- .vim-axes-panel-empty:hover .vim-axes-canvas {
1287
- opacity: 1;
1288
- filter: saturate(1);
1289
- }
1290
-
1291
- .vim-axes-panel-gizmo {
1292
- position: absolute;
1293
- }
1294
-
1295
- .vim-axes-panel-buttons {
1296
- position: absolute;
1297
- top: 75%;
1298
- bottom: 0;
1299
- left: 0;
1300
- right: 0;
1301
- pointer-events: auto;
1302
- display: flex;
1303
- align-items: center;
1304
- justify-content: space-evenly;
1305
- background: var(--c-white);
1306
- border-bottom-left-radius: inherit;
1307
- border-bottom-right-radius: inherit;
1308
- }
1309
-
1310
- .vim-axes-button {
1311
- display: flex;
1312
- align-items: center;
1313
- justify-content: center;
1314
- color: var(--c-medium-gray);
1315
- transition: color var(--transition-base);
1316
- background: none;
1317
- border: none;
1318
- cursor: pointer;
1319
- padding: 0;
1320
- }
1321
-
1322
- .vim-axes-button:hover {
1323
- color: var(--c-primary-royal);
1324
- }
1325
-
1326
- /* ============================================================
1327
- Cursors
1328
- ============================================================ */
1329
- .cursor-regular {
1330
- cursor: default;
1331
- }
1332
-
1333
- .cursor-orbit:hover {
1334
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LDIwLjIzNGMtNS42NTIsMC0xMC4yNS0yLjYzNi0xMC4yNS01Ljg3NSwwLTEuNzUxLDEuMzA2LTMuMzY2LDMuNjA0LTQuNDgtLjUwOC0uMzEyLS43MDYtLjk2Mi0uNDQtMS40ODgsLjE5NC0uMzg2LC41ODItLjYyNSwxLjAxLS42MjUsLjE0MiwwLC4yODIsLjAyNiwuNDE2LC4wNzlsLjA5NywuMDQyLDIuMTQ4LDEuMDg2Yy42OSwuMzQ5LC45NjksMS4xOTUsLjYyLDEuODg2bC0xLjA4MywyLjE0NWMtLjE5NSwuMzg2LS41ODIsLjYyNS0xLjAxMiwuNjI1LS4xNDEsMC0uMjgtLjAyNS0uNDE0LS4wNzdsLS4wOTgtLjA0NGMtLjU1LS4yNzgtLjY3OC0uODI4LS41NjctMS4zMDYtLjAyMSwuMDExLS4wNDEsLjAyMS0uMDYsLjAzMy0xLjE1NiwuNjUtMS44NDYsMS40NDQtMS44NDYsMi4xMjVzLjY5LDEuNDc2LDEuODQ2LDIuMTI2YzEuNTUzLC44NzMsMy43NTEsMS4zNzQsNi4wMjksMS4zNzRzNC40NzYtLjUwMSw2LjAyOS0xLjM3NGMxLjE1Ni0uNjUsMS44NDYtMS40NDUsMS44NDYtMi4xMjZzLS42OS0xLjQ3NS0xLjg0Ni0yLjEyNWMtMS41NTMtLjg3NC0zLjc1LTEuMzc1LTYuMDI5LTEuMzc1aC0uMTAyYy0uNjI0LDAtMS4xMzItLjQ1Ni0xLjE5Ni0xLjA2Mi0uMDM1LS4zMzQsLjA3My0uNjY4LC4yOTYtLjkxNywuMjIzLS4yNDgsLjU0Mi0uMzkzLC44NzUtLjM5NWguMTI2YzUuNjUyLDAsMTAuMjUsMi42MzUsMTAuMjUsNS44NzRzLTQuNTk4LDUuODc1LTEwLjI1LDUuODc1WiIvPjxwYXRoIGQ9Ik03LjkyNSw4LjAxNmMuMTA4LDAsLjIxNywuMDIsLjMyMywuMDYxLC4wMjYsLjAxMSwuMDUyLC4wMjIsLjA3OCwuMDM1bDIuMTQ1LDEuMDgzYy41NjgsLjI4NywuNzk3LC45ODIsLjUxLDEuNTVsLTEuMDgzLDIuMTQ2Yy0uMTU1LC4zMDgtLjQ2MywuNDg3LS43ODgsLjQ4Ny0uMTA4LDAtLjIxNy0uMDItLjMyNC0uMDYyLS4wMjYtLjAxLS4wNTItLjAyMi0uMDc4LS4wMzUtLjUxMi0uMjU5LS41MzEtLjc5MS0uMzkxLTEuMTY4bC4xNTItLjQxMWMtLjIxNiwuMDk5LS40MjUsLjIwMy0uNjIyLC4zMTMtMS4yNTQsLjcwNi0xLjk3MywxLjU2LTEuOTczLDIuMzQzcy43MTksMS42MzgsMS45NzMsMi4zNDNjMS41ODksLjg5NCwzLjgzMiwxLjQwNyw2LjE1MiwxLjQwN3M0LjU2Mi0uNTEzLDYuMTUyLTEuNDA3YzEuMjU0LS43MDUsMS45NzMtMS41NTksMS45NzMtMi4zNDNzLS43MTktMS42MzgtMS45NzMtMi4zNDNjLTEuNTg5LS44OTQtMy44MzItMS40MDctNi4xNTItMS40MDctLjAzNiwwLS4wNzMsMC0uMTA5LDBoLS4wMDhjLS40OCwwLS44ODMtLjM2Mi0uOTMyLS44NC0uMDU3LS41NSwuMzcyLTEuMDMxLC45MjUtMS4wMzUsLjA0MSwwLC4wODMsMCwuMTI0LDAsNS41MjMsMCwxMCwyLjUxOSwxMCw1LjYyNXMtNC40NzcsNS42MjUtMTAsNS42MjUtMTAtMi41MTgtMTAtNS42MjVjMC0xLjgxNywxLjUzMi0zLjQzMiwzLjkwOS00LjQ2bC0uMDA0LS4wMTEtLjM2Ni0uMTkxYy0uNDM4LS4yMjktLjYxOS0uNzY1LS40MDItMS4xOTQsLjE1Ni0uMzA4LC40NjQtLjQ4NywuNzg4LS40ODdtMC0uNWgwYy0uNTI0LDAtLjk5NywuMjkyLTEuMjM0LC43NjItLjI2MSwuNTE4LS4xNTcsMS4xMzEsLjIxNCwxLjU0OS0yLjE3NiwxLjE1MS0zLjQwNSwyLjc3Mi0zLjQwNSw0LjUzMywwLDMuNDM1LDQuNjEyLDYuMTI1LDEwLjUsNi4xMjVzMTAuNS0yLjY5LDEwLjUtNi4xMjUtNC42MTItNi4xMjUtMTAuNS02LjEyNWgtLjA2NXMtLjA1OSwwLS4wNTksMGMtLjQwNywuMDAzLS43OTMsLjE3Ny0xLjA2MywuNDc5LS4yNywuMzAyLS40MDEsLjcwNi0uMzU5LDEuMTA4LC4wNzYsLjczNCwuNjkxLDEuMjg4LDEuNDMsMS4yODhoLjA2NXMuMDUxLDAsLjA1MSwwYzIuMjM3LDAsNC4zOSwuNDg5LDUuOTA3LDEuMzQyLDEuMDc2LC42MDUsMS43MTgsMS4zMTksMS43MTgsMS45MDhzLS42NDIsMS4zMDItMS43MTgsMS45MDdjLTEuNTE3LC44NTQtMy42NywxLjM0My01LjkwNywxLjM0M3MtNC4zOS0uNDg5LTUuOTA3LTEuMzQyYy0xLjA3Ni0uNjA1LTEuNzE4LTEuMzE4LTEuNzE4LTEuOTA4LDAtLjUyMywuNTA3LTEuMTQ0LDEuMzc0LTEuNzAxLC4wMzgsLjQyMiwuMjU2LC44MjgsLjczNCwxLjA3LC4wNDIsLjAyMSwuMDgyLC4wMzksLjEyMSwuMDU0LC4xNjMsLjA2NCwuMzMzLC4wOTYsLjUwNiwuMDk2LC41MjQsMCwuOTk3LS4yOTIsMS4yMzQtLjc2MmwxLjA4My0yLjE0NWMuMTk5LS4zOTQsLjIzMy0uODQyLC4wOTQtMS4yNjJzLS40MzEtLjc2MS0uODI1LS45NmwtMi4xNDYtMS4wODNjLS4wMzUtLjAxOC0uMDc0LS4wMzUtLjExMy0uMDUxLS4xNzEtLjA2Ny0uMzQxLS4wOTktLjUxMy0uMDk5aDBaIi8+PC9nPjxnPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTQiIGN5PSIxNC4zNTkiIHI9IjIuNDM4Ii8+PHBhdGggZD0iTTE0LDEyLjE3MmMxLjIwNiwwLDIuMTg4LC45ODEsMi4xODgsMi4xODhzLS45ODEsMi4xODgtMi4xODgsMi4xODgtMi4xODgtLjk4MS0yLjE4OC0yLjE4OCwuOTgxLTIuMTg4LDIuMTg4LTIuMTg4bTAtLjVjLTEuNDgyLDAtMi42ODgsMS4yMDYtMi42ODgsMi42ODhzMS4yMDYsMi42ODgsMi42ODgsMi42ODgsMi42ODgtMS4yMDYsMi42ODgtMi42ODgtMS4yMDYtMi42ODgtMi42ODgtMi42ODhoMFoiLz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48L2c+PC9zdmc+'),
1335
- auto;
1336
- }
1337
-
1338
- .cursor-look:hover {
1339
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIxLjQ0NywyMy4zMTJjLS4xOTYsMC0uMzkyLS4wNS0uNTY3LS4xNDVMNS45ODMsMTUuMDQzYy0uMzgxLS4yMDgtLjYxOS0uNjA3LS42MTktMS4wNDNzLjIzNy0uODM1LC42MTktMS4wNDNMMjAuODc5LDQuODMyYy4xNzQtLjA5NSwuMzctLjE0NSwuNTY3LS4xNDUsLjQzNSwwLC44MzUsLjIzNiwxLjA0MywuNjE4LC4zMTMsLjU3NSwuMTAxLDEuMjk5LS40NzQsMS42MTJsLTQuNTA1LDIuNDU3Yy45NTksMS4zNDcsMS40ODUsMi45NzgsMS40ODUsNC42MjVzLS41MjUsMy4yNzgtMS40ODUsNC42MjVsNC41MDUsMi40NTdjLjU3NCwuMzEzLC43ODcsMS4wMzcsLjQ3NCwxLjYxMS0uMjA5LC4zODItLjYwOSwuNjE5LTEuMDQ0LC42MTlabS02LjA0Mi01LjgzN2MuMDQzLS4wNTUsLjA4NC0uMTA5LC4xMjUtLjE2NS0xLjAwMS0uMzAyLTEuNzIyLTEuNjQ3LTEuNzIyLTMuMzExcy43MjgtMy4wMjIsMS43MTgtMy4zMTVjLS4wNC0uMDU1LS4wODEtLjEwNy0uMTIyLS4xNmwtNi4zNzMsMy40NzYsNi4zNzMsMy40NzZaIi8+PHBhdGggZD0iTTIxLjQ0Nyw0LjkzOGMuMzMyLDAsLjY1NCwuMTc3LC44MjQsLjQ4OSwuMjQ4LC40NTUsLjA4MSwxLjAyNC0uMzc0LDEuMjcybC00Ljc1NywyLjU5NWMxLjAzMSwxLjM0LDEuNjA2LDIuOTk5LDEuNjA2LDQuNzA3cy0uNTc1LDMuMzY3LTEuNjA2LDQuNzA3bDQuNzU3LDIuNTk1Yy40NTUsLjI0OCwuNjIyLC44MTcsLjM3NCwxLjI3Mi0uMTcsLjMxMi0uNDkyLC40ODktLjgyNCwuNDg5LS4xNTIsMC0uMzA2LS4wMzctLjQ0OC0uMTE0TDYuMTAzLDE0LjgyM2MtLjMwMS0uMTY1LS40ODktLjQ4LS40ODktLjgyM3MuMTg4LS42NTksLjQ4OS0uODIzTDIwLjk5OSw1LjA1MmMuMTQzLS4wNzgsLjI5Ni0uMTE0LC40NDgtLjExNG0tNS45OCwxMi44NTdjLjE4MS0uMjEyLC4zNDUtLjQzNywuNDk0LS42Ny0uMDA5LDAtLjAxOCwwLS4wMjYsMC0xLjAzNiwwLTEuODc1LTEuMzk5LTEuODc1LTMuMTI1cy44MzktMy4xMjUsMS44NzUtMy4xMjVjLjAwOSwwLC4wMTgsMCwuMDI2LDAtLjE0OC0uMjM0LS4zMTMtLjQ1OC0uNDk0LS42N2wtNi45NTYsMy43OTQsNi45NTYsMy43OTRtNS45OC0xMy4zNTdjLS4yMzksMC0uNDc2LC4wNjEtLjY4NywuMTc1TDUuODY0LDEyLjczOGMtLjQ2MiwuMjUyLS43NDksLjczNi0uNzQ5LDEuMjYycy4yODcsMS4wMSwuNzQ5LDEuMjYybDE0Ljg5Niw4LjEyNWMuMjExLC4xMTUsLjQ0OCwuMTc1LC42ODgsLjE3NSwuNTI3LDAsMS4wMS0uMjg3LDEuMjYzLS43NSwuMzgtLjY5NSwuMTIyLTEuNTctLjU3My0xLjk1bC00LjI2Mi0yLjMyNWMuODg4LTEuMzQyLDEuMzcyLTIuOTMzLDEuMzcyLTQuNTM4cy0uNDg0LTMuMTk2LTEuMzcyLTQuNTM4bDQuMjYyLTIuMzI1Yy42OTYtLjM4LC45NTMtMS4yNTUsLjU3My0xLjk1LS4yNTItLjQ2Mi0uNzM2LS43NS0xLjI2My0uNzVoMFpNOS41NTQsMTRsNC42ODMtMi41NTRjLS40MjMsLjY1LS42NzgsMS41NDgtLjY3OCwyLjU1NHMuMjU1LDEuOTAxLC42NzMsMi41NTFsLTQuNjc4LTIuNTUxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48L2c+PC9zdmc+'),
1340
- auto;
1341
- }
1342
-
1343
- .cursor-pan:hover {
1344
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC4xOTcsMjMuMDYyYy0xLjY2NiwwLTMuMTgzLS44MDgtNC4wNTctMi4xNjJsLTQuNTY3LTYuOTdjLS4yMDktLjMxOC0uMjc1LS42OTUtLjE4Ni0xLjA2MXMuMzIyLS42NzgsLjY1Ni0uODc2Yy4yMzUtLjE0LC41MDUtLjIxNCwuNzgxLS4yMTQsLjUxNCwwLC45ODIsLjI0NywxLjI1NCwuNjYxbDEuOTkzLDMuMDM4VjcuNjkxYzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2NS45NDdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2VjUuODE2YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2Ny4xOTdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2VjcuMDY2YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2Ny4xOTdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2di01LjI5M2MwLS42NDIsLjUxMy0xLjE2OSwxLjE2OS0xLjIsLjAyMSwwLC4wNDEtLjAwMSwuMDYyLS4wMDEsLjY3OCwwLDEuMjMsLjUyNiwxLjIzLDEuMTcydjkuNjE5YzAsMi40OTktMi4xMzQsNC41MzEtNC43NTgsNC41MzFoLTEuOTQ0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjczNSwxNi44MTJ2MS43MTljMCwyLjQxNi0yLjA1Nyw0LjM3NS00LjU5NCw0LjM3NWgtMS45NDRjLTEuNjA5LDAtMy4wNzMtLjc4MS0zLjkxNy0yLjA4OHYtLjAwMnMtLjAwMi0uMDAyLS4wMDItLjAwMmwtNC41NjYtNi45NjdjLS4zODQtLjU4NS0uMTk2LTEuMzU3LC40MTgtMS43MjIsLjIwOS0uMTI0LC40NDktLjE5LC42OTQtLjE5LC40NTcsMCwuODczLC4yMiwxLjExNSwuNTg4bDEuMDgzLDEuNjUxLDEuMjEzLDEuODQ4VjcuNjkxYzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djUuOTQ3YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMlY1LjgxNmMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjE5N2MwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJWNy4wNjZjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2Ny4xOTdjMCwuMTczLC4xNDcsLjMxMiwuMzI4LC4zMTJoMGMuMTgxLDAsLjMyOC0uMTQsLjMyOC0uMzEydi01LjI5M2MwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjkwMVoiLz48cGF0aCBkPSJNMTkuNjY4LDcuMjcxYy0uNDAzLDAtLjc3MywuMTMzLTEuMDY2LC4zNTR2LS41ODhjMC0uOTA2LS43NzEtMS42NDEtMS43MjMtMS42NDEtLjQwNCwwLS43NzUsLjEzMy0xLjA2OCwuMzU1LS4wMi0uODktLjc4Mi0xLjYwNS0xLjcyMS0xLjYwNS0uOTUxLDAtMS43MjMsLjczNS0xLjcyMywxLjY0MXYuNTg4Yy0uMjkzLS4yMjEtLjY2My0uMzU0LTEuMDY2LS4zNTQtLjk1MSwwLTEuNzIzLC43MzUtMS43MjMsMS42NDF2Ni4xOGwtMS4wODMtMS42NTFjLS4zNzMtLjU2OS0xLjAxNS0uODgyLTEuNjcxLS44ODItLjM1NiwwLS43MTcsLjA5Mi0xLjA0MSwuMjg1LS45MjIsLjU0OS0xLjIwMywxLjcwNi0uNjI2LDIuNTg0bDQuNTY1LDYuOTY3Yy45MjQsMS40MzEsMi41ODMsMi4zODYsNC40NzYsMi4zODZoMS45NDRjMi44OTksMCw1LjI1LTIuMjM5LDUuMjUtNVY4LjkxMmMwLS45MDYtLjc3MS0xLjY0MS0xLjcyMy0xLjY0MVptMS4wNjYsOS41NDF2MS43MTljMCwyLjQxNi0yLjA1Nyw0LjM3NS00LjU5NCw0LjM3NWgtMS45NDRjLTEuNjA5LDAtMy4wNzMtLjc4MS0zLjkxNy0yLjA4OHYtLjAwMnMtLjAwMi0uMDAyLS4wMDItLjAwMmwtNC41NjYtNi45NjdjLS4zODQtLjU4NS0uMTk2LTEuMzU3LC40MTgtMS43MjIsLjIwOS0uMTI0LC40NDktLjE5LC42OTQtLjE5LC40NTcsMCwuODczLC4yMiwxLjExNSwuNTg4bDEuMDgzLDEuNjUxLDEuMjEzLDEuODQ4VjcuNjkxYzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djUuOTQ3YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMlY1LjgxNmMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjE5N2MwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJWNy4wNjZjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2Ny4xOTdjMCwuMTczLC4xNDcsLjMxMiwuMzI4LC4zMTJoMGMuMTgxLDAsLjMyOC0uMTQsLjMyOC0uMzEydi01LjI5M2MwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjkwMVoiLz48L2c+PC9nPjwvc3ZnPg=='),
1345
- auto;
1346
- }
1347
-
1348
- .cursor-zoom:hover {
1349
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogIDxnIGlkPSJhIiBkYXRhLW5hbWU9IkZSQU1FUyI+DQogICAgPGcgaWQ9ImIiIGRhdGEtbmFtZT0iZnJhbWUiPg0KICAgICAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIi8+DQogICAgPC9nPg0KICA8L2c+DQogIDxnIGlkPSJjIiBkYXRhLW5hbWU9IklDT05TIj4NCiAgICA8cGF0aCBpZD0iZCIgZGF0YS1uYW1lPSJQYXRoIDE1MDc4IiBkPSJNMTQsNC43ODFjLS4wNTYsMC0uMTEyLC4wMDMtLjE2NywuMDA4cy0uMTExLC4wMTMtLjE2NSwuMDI0LS4xMDgsLjAyNC0uMTYxLC4wMzljLS4wNTMsLjAxNi0uMTA0LC4wMzQtLjE1NSwuMDU1bC00LjIyMSwxLjc2Yy0uMTU0LC4wNjMtLjI5NiwuMTUzLS40MTksLjI2NS0uMTA4LC4wOTktLjE5MywuMjE5LS4yNTEsLjM1Mi0uMDU0LC4xMjUtLjA3NiwuMjYxLS4wNjUsLjM5NywuMDE0LC4xNDIsLjA2NCwuMjc3LC4xNDUsLjM5NCwuMDU5LC4wODYsLjEzMSwuMTYzLC4yMTIsLjIyOCwuMDg1LC4wNjgsLjE3OSwuMTI1LC4yNzgsLjE2OSwuMTA0LC4wNDcsLjIxMywuMDgyLC4zMjUsLjEwNSwuMTE2LC4wMjQsLjIzNCwuMDM2LC4zNTIsLjAzNiwuMDU3LDAsLjExNC0uMDAzLC4xNzItLjAwOHMuMTE1LS4wMTQsLjE3MS0uMDI1Yy4wNTctLjAxMSwuMTEzLS4wMjUsLjE2OS0uMDQyLC4wNTYtLjAxNywuMTExLS4wMzcsLjE2NS0uMDZsMi4yNTgtLjk2NS0uNzcsMTEuOTU2LTMuMzA3LTEuNzE3Yy0uMDU5LS4wMy0uMTE5LS4wNTctLjE4MS0uMDgtLjA2Mi0uMDIzLS4xMjUtLjA0MS0uMTg5LS4wNTYtLjA2NC0uMDE1LS4xMjgtLjAyNi0uMTkzLS4wMzMtLjA2NS0uMDA3LS4xMy0uMDExLS4xOTYtLjAxMS0uMTI3LDAtLjI1NCwuMDE0LS4zNzgsLjA0LS4xMjQsLjAyNi0uMjQ0LC4wNjYtLjM1OSwuMTE4LS4xMTQsLjA1Mi0uMjIzLC4xMTYtLjMyMiwuMTkzLS4xLC4wNzYtLjE4OSwuMTY1LS4yNjYsLjI2NC0uMTExLC4xNDEtLjE5MSwuMzA0LS4yMzQsLjQ3OS0uMDM5LC4xNjItLjA0LC4zMzEtLjAwNCwuNDk0LC4wMzcsLjE2NSwuMTExLC4zMTksLjIxNiwuNDUyLC4xMTUsLjE0NSwuMjYsLjI2NSwuNDI1LC4zNTFsNi4zMDksMy4zNjhjLjA2MiwuMDMzLC4xMjYsLjA2MiwuMTkyLC4wODcsLjA2NiwuMDI1LC4xMzMsLjA0NiwuMjAxLC4wNjIsLjI3NCwuMDY2LC41NiwuMDY2LC44MzQsMCwuMDY4LS4wMTcsLjEzNS0uMDM3LC4yMDEtLjA2MiwuMDY2LS4wMjUsLjEzLS4wNTQsLjE5Mi0uMDg3bDYuMzA3LTMuMzY4Yy4xNjQtLjA4NiwuMzA5LS4yMDYsLjQyNC0uMzUxLC4xMDUtLjEzMywuMTc4LS4yODcsLjIxNi0uNDUyLC4wMzYtLjE2MywuMDM1LS4zMzItLjAwNC0uNDk0LS4wNDMtLjE3NC0uMTIyLS4zMzgtLjIzNC0uNDc5LS4wNzctLjA5OS0uMTY3LS4xODgtLjI2Ni0uMjY0LS4xLS4wNzYtLjIwOC0uMTQxLS4zMjItLjE5My0uMTE1LS4wNTItLjIzNi0uMDkyLS4zNTktLjExOC0uMTI0LS4wMjctLjI1MS0uMDQtLjM3OC0uMDQtLjA2NSwwLS4xMzEsLjAwNC0uMTk2LC4wMTEtLjA2NSwuMDA3LS4xMywuMDE4LS4xOTMsLjAzMy0uMDY0LC4wMTUtLjEyNywuMDM0LS4xODksLjA1Ni0uMDYyLC4wMjMtLjEyMiwuMDQ5LS4xODEsLjA4bC0zLjMwNywxLjcxNy0uNzcyLTExLjk1NywyLjI1OCwuOTY1Yy4wNTQsLjAyMywuMTA5LC4wNDMsLjE2NSwuMDYsLjA1NiwuMDE3LC4xMTIsLjAzMSwuMTY5LC4wNDIsLjA1NywuMDExLC4xMTQsLjAyLC4xNzEsLjAyNXMuMTE1LC4wMDgsLjE3MiwuMDA4Yy4xMTgsMCwuMjM2LS4wMTIsLjM1Mi0uMDM2LC4xMTItLjAyMywuMjIxLS4wNTgsLjMyNS0uMTA1LC4wOTktLjA0NCwuMTkzLS4xMDEsLjI3OC0uMTY5LC4wODItLjA2NSwuMTUzLS4xNDIsLjIxMi0uMjI4LC4wODEtLjExNywuMTMxLS4yNTMsLjE0NS0uMzk0LC4wMTItLjEzNS0uMDExLS4yNzEtLjA2NC0uMzk2LS4wNTgtLjEzNC0uMTQ0LS4yNTQtLjI1Mi0uMzUyLS4xMjMtLjExMi0uMjY1LS4yMDItLjQxOS0uMjY1bC00LjIyMS0xLjc2MWMtLjA1MS0uMDIxLS4xMDItLjA0LS4xNTUtLjA1NS0uMDUyLS4wMTYtLjEwNi0uMDI5LS4xNjEtLjAzOXMtLjEwOS0uMDE4LS4xNjUtLjAyNC0uMTExLS4wMDgtLjE2Ny0uMDA4IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNSIvPg0KICAgIDxnPg0KICAgICAgPHBhdGggZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIgZmlsbD0iIzIxMjMyOSIvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+'),
1350
- auto;
1351
- }
1352
-
1353
- .cursor-rect:hover {
1354
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTUuNDY5IiB5PSI0LjI5NSIgd2lkdGg9IjMiIGhlaWdodD0iMi4zNzUiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTE3LjQzOCw0LjU0NWMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi4zMTJjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjkzOGMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjMxMmMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC45MzhtMC0uNWgtLjkzOGMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjMxMmMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguOTM4Yy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uMzEyYzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIxLjM0NCw3LjkyYy0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMSwwLS4xMjEtLjA5OC0uMjE5LS4yMTktLjIxOS0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMXYtLjMxMmMwLS41NjgsLjQ2Mi0xLjAzMSwxLjAzMS0xLjAzMWguNzgxYzEsMCwxLjgxMiwuODEzLDEuODEyLDEuODEydi43ODFjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS4zMTJaIi8+PHBhdGggZD0iTTIwLjg3NSw0LjU0NWMuODU5LDAsMS41NjIsLjcwMywxLjU2MiwxLjU2MnYuNzgxYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS4zMTJjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODEsMC0uMjU5LS4yMS0uNDY5LS40NjktLjQ2OS0uNDMsMC0uNzgxLS4zNTItLjc4MS0uNzgxdi0uMzEyYzAtLjQzLC4zNTItLjc4MSwuNzgxLS43ODFoLjc4MW0wLS41aC0uNzgxYy0uNzA2LDAtMS4yODEsLjU3NS0xLjI4MSwxLjI4MXYuMzEyYzAsLjcwNywuNTc1LDEuMjgxLDEuMjgxLDEuMjgxLS4wMzEsLjY3NSwuNTQ0LDEuMjUsMS4yNSwxLjI1aC4zMTJjLjcwNiwwLDEuMjgxLS41NzUsMS4yODEtMS4yODF2LS43ODFjMC0xLjEzNy0uOTI1LTIuMDYyLTIuMDYyLTIuMDYyaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMjAuMzEzIiB5PSI4LjUxNCIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTIxLjY1Niw4Ljc2NGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iOC4yODEiIHk9IjQuMjk1IiB3aWR0aD0iMyIgaGVpZ2h0PSIyLjM3NSIgcng9IjEuMDMxIiByeT0iMS4wMzEiLz48cGF0aCBkPSJNMTAuMjUsNC41NDVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjguMjgxIiB5PSIyMC41NDUiIHdpZHRoPSIzIiBoZWlnaHQ9IjIuMzc1IiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik0xMC4yNSwyMC43OTVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjExLjg3NSIgeT0iNC4yOTUiIHdpZHRoPSIzIiBoZWlnaHQ9IjIuMzc1IiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik0xMy44NDQsNC41NDVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01LjA5NCw3LjkyYy0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMXYtLjc4MWMwLS45OTksLjgxMy0xLjgxMiwxLjgxMi0xLjgxMmguNzgxYy41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxdi4zMTJjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzEtLjEyMSwwLS4yMTksLjA5OC0uMjE5LC4yMTksMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS4zMTJaIi8+PHBhdGggZD0iTTYuNjU2LDQuNTQ1Yy40MywwLC43ODEsLjM1MiwuNzgxLC43ODF2LjMxMmMwLC40My0uMzUyLC43ODEtLjc4MSwuNzgxLS4yNTksMC0uNDY5LC4yMS0uNDY5LC40NjksMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjc4MWMwLS44NTksLjcwMy0xLjU2MiwxLjU2Mi0xLjU2MmguNzgxbTAtLjVoLS43ODFjLTEuMTM3LDAtMi4wNjIsLjkyNS0yLjA2MiwyLjA2MnYuNzgxYzAsLjcwNywuNTc1LDEuMjgxLDEuMjgxLDEuMjgxaC4zMTJjLjcwNiwwLDEuMjgxLS41NzUsMS4yODEtMS4yODEsLjAxOCwwLC4wMzUsMCwuMDUzLDAsLjY1MiwwLDEuMTk3LS41NjMsMS4xOTctMS4yNTF2LS4zMTJjMC0uNzA3LS41NzUtMS4yODEtMS4yODEtMS4yODFoMFoiLz48L2c+PGc+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0LjA2MiIgeT0iOC41MTQiIHdpZHRoPSIyLjM3NSIgaGVpZ2h0PSIzIiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik01LjQwNiw4Ljc2NGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iNC4wNjIiIHk9IjEyLjEwNyIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTUuNDA2LDEyLjM1OGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iNC4wNjIiIHk9IjE1LjcwMSIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTUuNDA2LDE1Ljk1MmMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUuODc1LDIyLjkyYy0xLDAtMS44MTItLjgxMy0xLjgxMi0xLjgxMnYtLjc4MWMwLS41NjgsLjQ2Mi0xLjAzMSwxLjAzMS0xLjAzMWguMzEyYy41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxLDAsLjEyMSwuMDk4LC4yMTksLjIxOSwuMjE5LC41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxdi4zMTJjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS43ODFaIi8+PHBhdGggZD0iTTUuNDA2LDE5LjU0NWMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxLDAsLjI1OSwuMjEsLjQ2OSwuNDY5LC40NjksLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS43ODFjLS44NTksMC0xLjU2Mi0uNzAzLTEuNTYyLTEuNTYydi0uNzgxYzAtLjQzLC4zNTItLjc4MSwuNzgxLS43ODFoLjMxMm0wLS41aC0uMzEyYy0uNzA2LDAtMS4yODEsLjU3NS0xLjI4MSwxLjI4MXYuNzgxYzAsMS4xMzcsLjkyNSwyLjA2MiwyLjA2MiwyLjA2MmguNzgxYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uMzEyYzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxLC4wMzEtLjY3NS0uNTQ0LTEuMjUtMS4yNS0xLjI1aDBaIi8+PC9nPjwvZz48Zz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi42MjIsMjQuMjVjLS4zMTgsMC0uNjE2LS4xMjMtLjgzOS0uMzQ3bC0xLjE5MS0xLjE5Yy0xLjEyMywuNzUtMi40MjQsMS4xNDUtMy43OCwxLjE0NWwtLjE4Mi0uMDAyYy0zLjY1MS0uMDk2LTYuNTYzLTMuMDMyLTYuNjI4LTYuNjg1LS4wMzMtMS44NDUsLjY2LTMuNTg1LDEuOTUyLTQuODk5LDEuMjkyLTEuMzE1LDMuMDE3LTIuMDM5LDQuODYtMi4wMzloLjEyM2MzLjY1MywuMDY1LDYuNTksMi45NzcsNi42ODgsNi42MjgsLjAzNSwxLjMwMi0uMjk3LDIuNTY5LS45NjIsMy42NzhsMS4yNDMsMS4yNDRjLjIyNCwuMjI0LC4zNDcsLjUyMSwuMzQ3LC44NHMtLjEyMywuNjE1LS4zNDcsLjgzOWwtLjQ0MiwuNDQyYy0uMjI0LC4yMjQtLjUyMiwuMzQ3LS44NCwuMzQ3Wm0tNS44MS0xMS4xMzFjLTEuMDc4LDAtMi4xMjIsLjQ1My0yLjg2MiwxLjI0Mi0uNzUxLC44LTEuMTI1LDEuODQ1LTEuMDU2LDIuOTQxLC4xMjUsMS45NjIsMS43LDMuNTM1LDMuNjYxLDMuNjYxLC4wODYsLjAwNSwuMTcyLC4wMDgsLjI1NywuMDA4LDEuMDc4LDAsMi4xMjItLjQ1MywyLjg2Mi0xLjI0MiwuNzUxLS44LDEuMTI1LTEuODQ1LDEuMDU2LTIuOTQxLS4xMjUtMS45NjItMS43LTMuNTM1LTMuNjYxLTMuNjYxLS4wODYtLjAwNS0uMTcyLS4wMDgtLjI1Ny0uMDA4WiIvPjxwYXRoIGQ9Ik0xNi44MTIsMTAuNDgzYy4wMzksMCwuMDc5LDAsLjExOCwwLDMuNDkxLC4wNjIsNi4zNDksMi44OTMsNi40NDIsNi4zODMsLjAzNiwxLjM2OC0uMzQ3LDIuNjQzLTEuMDI5LDMuNzA5bDEuMzgzLDEuMzgzYy4zNjUsLjM2NCwuMzY1LC45NjEsMCwxLjMyNmwtLjQ0MiwuNDQyYy0uMTgyLC4xODMtLjQyMywuMjczLS42NjMsLjI3M3MtLjQ4MS0uMDkxLS42NjMtLjI3M2wtMS4zMzgtMS4zMzhjLTEuMDc0LC43NjctMi4zODgsMS4yMi0zLjgwOSwxLjIyLS4wNTgsMC0uMTE3LDAtLjE3Ni0uMDAyLTMuNDktLjA5Mi02LjMyMi0yLjk0OS02LjM4NS02LjQzOS0uMDY2LTMuNjgsMi44OTctNi42ODMsNi41NjEtNi42ODNtMCwxMC43MzljMi4zOTMsMCw0LjMyMy0yLjAyMyw0LjE2OC00LjQ0OS0uMTMzLTIuMDgxLTEuODE0LTMuNzYyLTMuODk0LTMuODk1LS4wOTItLjAwNi0uMTgzLS4wMDktLjI3My0uMDA5LTIuMzkzLDAtNC4zMjIsMi4wMjMtNC4xNjcsNC40NDksLjEzMywyLjA4MSwxLjgxNCwzLjc2MSwzLjg5NCwzLjg5NSwuMDkxLC4wMDYsLjE4MiwuMDA5LC4yNzIsLjAwOW0wLTExLjIzOWMtMS45MTEsMC0zLjcsLjc1LTUuMDM5LDIuMTE0LTEuMzM5LDEuMzYzLTIuMDU3LDMuMTY2LTIuMDIyLDUuMDc4LC4wNjgsMy43ODYsMy4wODYsNi44MzEsNi44NzEsNi45MzFsLjE4OSwuMDAyYzEuMzM3LDAsMi42MjMtLjM3MSwzLjc0Ni0xLjA3NmwxLjA0OCwxLjA0OGMuMjcxLC4yNzEsLjYzMiwuNDIsMS4wMTYsLjQycy43NDYtLjE0OSwxLjAxNy0uNDJsLjQ0Mi0uNDQyYy4yNzEtLjI3MSwuNDItLjYzMiwuNDItMS4wMTdzLS4xNDktLjc0Ni0uNDItMS4wMTZsLTEuMTA3LTEuMTA3Yy42MjQtMS4xMSwuOTM0LTIuMzYyLC45LTMuNjQ1LS4xMDEtMy43ODUtMy4xNDYtNi44MDMtNi45MzMtNi44N2gtLjEyN1ptMCwxMC43MzhjLS4wOCwwLS4xNi0uMDAyLS4yNDEtLjAwOC0xLjgzNi0uMTE4LTMuMzEtMS41OTEtMy40MjctMy40MjctLjA2Ni0xLjAyNywuMjg1LTIuMDA1LC45ODgtMi43NTQsLjcwNC0uNzUsMS42NTYtMS4xNjQsMi42OC0xLjE2NCwuMDgsMCwuMTYsLjAwMiwuMjQxLC4wMDgsMS44MzcsLjExNywzLjMxLDEuNTkxLDMuNDI3LDMuNDI3LC4wNjYsMS4wMjctLjI4NSwyLjAwNS0uOTg4LDIuNzU0LS43MDQsLjc1LTEuNjU2LDEuMTY0LTIuNjgxLDEuMTY0aDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE2LjgxMiwyMC4xMDRjLS42NTUsMC0xLjE4OC0uNTMyLTEuMTg4LTEuMTg4di0uNjg4aC0uNjg4Yy0uNjU1LDAtMS4xODgtLjUzMi0xLjE4OC0xLjE4OHMuNTMzLTEuMTg4LDEuMTg4LTEuMTg4aC42ODh2LS42ODhjMC0uNjU1LC41MzMtMS4xODgsMS4xODgtMS4xODhzMS4xODgsLjUzMiwxLjE4OCwxLjE4OHYuNjg4aC42ODhjLjY1NSwwLDEuMTg4LC41MzIsMS4xODgsMS4xODhzLS41MzMsMS4xODgtMS4xODgsMS4xODhoLS42ODh2LjY4OGMwLC42NTUtLjUzMywxLjE4OC0xLjE4OCwxLjE4OFoiLz48cGF0aCBkPSJNMTYuODEyLDE0LjIyOWMuNTE4LDAsLjkzOCwuNDE5LC45MzgsLjkzOHYuOTM4aC45MzhjLjUxOCwwLC45MzgsLjQxOSwuOTM4LC45MzhzLS40MiwuOTM4LS45MzgsLjkzOGgtLjkzOHYuOTM4YzAsLjUxOC0uNDIsLjkzOC0uOTM4LC45MzhzLS45MzgtLjQyLS45MzgtLjkzOHYtLjkzOGgtLjkzOGMtLjUxOCwwLS45MzgtLjQyLS45MzgtLjkzOHMuNDItLjkzOCwuOTM4LS45MzhoLjkzOHYtLjkzOGMwLS41MTgsLjQyLS45MzgsLjkzOC0uOTM4bTAtLjVjLS43OTMsMC0xLjQzOCwuNjQ1LTEuNDM4LDEuNDM4di40MzhoLS40MzhjLS43OTMsMC0xLjQzOCwuNjQ1LTEuNDM4LDEuNDM4cy42NDUsMS40MzgsMS40MzgsMS40MzhoLjQzOHYuNDM4YzAsLjc5MiwuNjQ1LDEuNDM4LDEuNDM4LDEuNDM4czEuNDM4LS42NDUsMS40MzgtMS40Mzh2LS40MzhoLjQzOGMuNzkzLDAsMS40MzgtLjY0NSwxLjQzOC0xLjQzOHMtLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgtLjQzOHYtLjQzOGMwLS43OTItLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgwWiIvPjwvZz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjQ5LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiLz48L2c+PC9nPjwvc3ZnPg=='),
1355
- auto;
1356
- }
1357
-
1358
- .cursor-measure:hover {
1359
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTEsLmNscy0ye2ZpbGw6I2ZmZjt9LmNscy0ye3N0cm9rZTojMDAwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDouNXB4O30uY2xzLTN7ZmlsbDojMjEyMzI5O30uY2xzLTR7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNjI1LDE2LjEyNWMtLjQ4MiwwLS44NzUtLjM5My0uODc1LS44NzVWNS4yNWMwLS40ODIsLjM5My0uODc1LC44NzUtLjg3NUgyMi44NzVjLjQ4MiwwLC44NzUsLjM5MywuODc1LC44NzVWMTUuMjVjMCwuNDgyLS4zOTMsLjg3NS0uODc1LC44NzVINC42MjVabTE2Ljc1LTIuMzc1VjYuNzVINi4xMjV2N2guODc1di0yYzAtLjU1MiwuNDQ5LTEsMS0xczEsLjQ0OCwxLDF2MmguODc1di0zLjVjMC0uNTUyLC40NDktMSwxLTFzMSwuNDQ4LDEsMXYzLjVoLjg3NXYtMmMwLS41NTIsLjQ0OS0xLDEtMXMxLC40NDgsMSwxdjJoLjg3NXYtMy41YzAtLjU1MiwuNDQ5LTEsMS0xczEsLjQ0OCwxLDF2My41aC44NzV2LTJjMC0uNTUyLC40NDktMSwxLTFzMSwuNDQ4LDEsMXYyaC44NzVaIi8+PHBhdGggZD0iTTIyLjg3NSw0LjYyNWMuMzQ0LDAsLjYyNSwuMjgxLC42MjUsLjYyNVYxNS4yNWMwLC4zNDQtLjI4MSwuNjI1LS42MjUsLjYyNUg0LjYyNWMtLjM0NCwwLS42MjUtLjI4MS0uNjI1LS42MjVWNS4yNWMwLS4zNDQsLjI4MS0uNjI1LC42MjUtLjYyNUgyMi44NzVNNS44NzUsMTRoMS4zNzV2LTIuMjVjMC0uNDE0LC4zMzYtLjc1LC43NS0uNzVzLjc1LC4zMzYsLjc1LC43NXYyLjI1aDEuMzc1di0zLjc1YzAtLjQxNCwuMzM2LS43NSwuNzUtLjc1cy43NSwuMzM2LC43NSwuNzV2My43NWgxLjM3NXYtMi4yNWMwLS40MTQsLjMzNi0uNzUsLjc1LS43NXMuNzUsLjMzNiwuNzUsLjc1djIuMjVoMS4zNzV2LTMuNzVjMC0uNDE0LC4zMzYtLjc1LC43NS0uNzVzLjc1LC4zMzYsLjc1LC43NXYzLjc1aDEuMzc1di0yLjI1YzAtLjQxNCwuMzM2LS43NSwuNzUtLjc1cy43NSwuMzM2LC43NSwuNzV2Mi4yNWgxLjM3NVY2LjVINS44NzV2Ny41TTIyLjg3NSw0LjEyNUg0LjYyNWMtLjYyLDAtMS4xMjUsLjUwNS0xLjEyNSwxLjEyNVYxNS4yNWMwLC42MiwuNTA1LDEuMTI1LDEuMTI1LDEuMTI1SDIyLjg3NWMuNjIsMCwxLjEyNS0uNTA1LDEuMTI1LTEuMTI1VjUuMjVjMC0uNjItLjUwNS0xLjEyNS0xLjEyNS0xLjEyNWgwWk02LjM3NSw3aDE0Ljc1djYuNWgtLjM3NXYtMS43NWMwLS42ODktLjU2MS0xLjI1LTEuMjUtMS4yNXMtMS4yNSwuNTYxLTEuMjUsMS4yNXYxLjc1aC0uMzc1di0zLjI1YzAtLjY4OS0uNTYxLTEuMjUtMS4yNS0xLjI1cy0xLjI1LC41NjEtMS4yNSwxLjI1djMuMjVoLS4zNzV2LTEuNzVjMC0uNjg5LS41NjEtMS4yNS0xLjI1LTEuMjVzLTEuMjUsLjU2MS0xLjI1LDEuMjV2MS43NWgtLjM3NXYtMy4yNWMwLS42ODktLjU2MS0xLjI1LTEuMjUtMS4yNXMtMS4yNSwuNTYxLTEuMjUsMS4yNXYzLjI1aC0uMzc1di0xLjc1YzAtLjY4OS0uNTYxLTEuMjUtMS4yNS0xLjI1cy0xLjI1LC41NjEtMS4yNSwxLjI1djEuNzVoLS4zNzVWN2gwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi41NjIsMjMuNjI1Yy0uNjU1LDAtMS4xODgtLjUzMi0xLjE4OC0xLjE4OHYtNC4zNzVjMC0uNjU1LC41MzMtMS4xODgsMS4xODgtMS4xODhzMS4xODgsLjUzMiwxLjE4OCwxLjE4OHY0LjM3NWMwLC42NTUtLjUzMywxLjE4OC0xLjE4OCwxLjE4OFoiLz48cGF0aCBkPSJNMjIuNTYyLDE3LjEyNWMuNTE4LDAsLjkzOCwuNDIsLjkzOCwuOTM4djQuMzc1YzAsLjUxOC0uNDIsLjkzOC0uOTM4LC45MzhzLS45MzgtLjQyLS45MzgtLjkzOHYtNC4zNzVjMC0uNTE4LC40Mi0uOTM4LC45MzgtLjkzOG0wLS41Yy0uNzkzLDAtMS40MzgsLjY0NS0xLjQzOCwxLjQzOHY0LjM3NWMwLC43OTIsLjY0NSwxLjQzOCwxLjQzOCwxLjQzOHMxLjQzOC0uNjQ1LDEuNDM4LTEuNDM4di00LjM3NWMwLS43OTItLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00LjkzOCwyMy42MjVjLS42NTUsMC0xLjE4OC0uNTMyLTEuMTg4LTEuMTg4di00LjM3NWMwLS42NTUsLjUzMy0xLjE4OCwxLjE4OC0xLjE4OHMxLjE4OCwuNTMyLDEuMTg4LDEuMTg4djQuMzc1YzAsLjY1NS0uNTMzLDEuMTg4LTEuMTg4LDEuMTg4WiIvPjxwYXRoIGQ9Ik00LjkzOCwxNy4xMjVjLjUxOCwwLC45MzgsLjQyLC45MzgsLjkzOHY0LjM3NWMwLC41MTgtLjQyLC45MzgtLjkzOCwuOTM4cy0uOTM4LS40Mi0uOTM4LS45Mzh2LTQuMzc1YzAtLjUxOCwuNDItLjkzOCwuOTM4LS45MzhtMC0uNWMtLjc5MywwLTEuNDM4LC42NDUtMS40MzgsMS40Mzh2NC4zNzVjMCwuNzkyLC42NDUsMS40MzgsMS40MzgsMS40MzhzMS40MzgtLjY0NSwxLjQzOC0xLjQzOHYtNC4zNzVjMC0uNzkyLS42NDUtMS40MzgtMS40MzgtMS40MzhoMFoiLz48L2c+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNOS43MDEsMjEuMTg3aDguMDk4cy0uNTg1LC41ODYtLjU4NSwuNTg2Yy0uMzY2LC4zNjYtLjM2NiwuOTYsMCwxLjMyNiwuMzY2LC4zNjYsLjk2LC4zNjYsMS4zMjYsMGwyLjE4Ni0yLjE4NmMuMTctLjE3LC4yNzUtLjQwNCwuMjc1LS42NjNzLS4xMDUtLjQ5My0uMjc1LS42NjNsLTIuMTg3LTIuMTg3Yy0uMzY2LS4zNjYtLjk2LS4zNjYtMS4zMjYsMC0uMzY2LC4zNjYtLjM2NiwuOTYsMCwxLjMyNmwuNTg2LC41ODZIOS43MDFzLjU4NS0uNTg2LC41ODUtLjU4NmMuMzY2LS4zNjYsLjM2Ni0uOTYsMC0xLjMyNnMtLjk2LS4zNjYtMS4zMjYsMGwtMi4xODYsMi4xODZjLS4xNywuMTctLjI3NSwuNDA0LS4yNzUsLjY2M3MuMTA1LC40OTMsLjI3NSwuNjYzbDIuMTg3LDIuMTg3Yy4zNjYsLjM2NiwuOTYsLjM2NiwxLjMyNiwwLC4zNjYtLjM2NiwuMzY2LS45NiwwLTEuMzI2bC0uNTg2LS41ODZaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjQ5LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiLz48L2c+PC9nPjwvc3ZnPg=='),
1360
- auto;
1361
- }
1362
-
1363
- .cursor-section-box:hover {
1364
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogIDxnIGlkPSJhIiBkYXRhLW5hbWU9IkZSQU1FUyI+DQogICAgPGcgaWQ9ImIiIGRhdGEtbmFtZT0iZnJhbWUiPg0KICAgICAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIi8+DQogICAgPC9nPg0KICA8L2c+DQogIDxnIGlkPSJjIiBkYXRhLW5hbWU9IklDT05TIj4NCiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xLjAwNyw1Ljc1Yy0uMzcyLDAtLjc1Ny0uMjgxLS43NTctLjc1MlYxQy4yNSwuNTg3LC41ODYsLjI1LDEsLjI1aDMuOTk4Yy4zNjksMCwuNiwuMjM5LC42OTMsLjQ2M3MuMDk5LC41NTctLjE2MywuODE3TDEuNTMsNS41MjhjLS4xODMsLjE4NC0uMzg2LC4yMjItLjUyMywuMjIyWiIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggZD0iTTQuOTk4LC41Yy4zMSwwLC40MzIsLjIzNiwuNDYyLC4zMDlzLjExMSwuMzI2LS4xMDgsLjU0NUwxLjM1NCw1LjM1MmMtLjEyMywuMTIzLS4yNTYsLjE0OC0uMzQ2LC4xNDgtLjI1LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiIGZpbGw9IiMyMTIzMjkiLz4NCiAgICA8L2c+DQogICAgPGc+DQogICAgICA8Zz4NCiAgICAgICAgPHBhdGggZD0iTTEyLjgyMSwyMi44OTdsLS4xMzgtLjA1Ni03LjQzLTQuMjc5Yy0uNDY5LS4yNzEtLjc2LS43NzQtLjc2LTEuMzE0VjguOTI4YzAtLjU0LC4yOTEtMS4wNDQsLjc2LTEuMzE0TDEyLjQ3MywzLjQ1M2MuMjMxLS4xMzMsLjQ5NC0uMjAzLC43Ni0uMjAzcy41MjksLjA3LC43NiwuMjAzbDcuNDMxLDQuMjhjLjEyNywuMDc0LC4yMDUsLjIxLC4yMDUsLjM1NSwwLC4xNDctLjA3OCwuMjc5LS4yMDYsLjM1M2wtOC4xMjUsNC42ODN2OS4zNjVjMCwuMTEyLS4wNDQsLjIxNy0uMTI1LC4yOTQtLjA3NywuMDc0LS4xNzgsLjExNC0uMjgzLC4xMTRoLS4wNjhabS0xLjYxMS0zLjMxdi02LjUzN2wtNC42MjktMi42Njd2Ni41MzdsNC42MjksMi42NjdabTEuMDUyLTguMjczbDUuNTk5LTMuMjI3LTQuNjI5LTIuNjY3LTUuNTk5LDMuMjI4LDQuNjI5LDIuNjY2WiIgZmlsbD0iI2ZmZiIvPg0KICAgICAgICA8cGF0aCBkPSJNMTMuMjMyLDMuNWMuMjE5LDAsLjQzOCwuMDU3LC42MzUsLjE3bDcuNDMxLDQuMjhjLjEwNiwuMDYxLC4xMDYsLjIxMywwLC4yNzRsLTguMjUxLDQuNzU1djkuNTFjMCwuMDkzLS4wNzYsLjE1OS0uMTU5LC4xNTktLjAyNywwLS4wNTQtLjAwNy0uMDc5LS4wMjFsLTcuNDMxLTQuMjgxYy0uMzkzLS4yMjYtLjYzNS0uNjQ1LS42MzUtMS4wOTdWOC45MjhjMC0uNDUzLC4yNDItLjg3MSwuNjM1LTEuMDk4TDEyLjU5OCwzLjY3Yy4xOTctLjExMywuNDE2LS4xNywuNjM1LS4xN20tLjk3LDguMTAzbDYuMS0zLjUxNi01LjEzLTIuOTU1LTYuMSwzLjUxNiw1LjEzLDIuOTU1bS0uODAyLDguNDE3di03LjExNGwtNS4xMy0yLjk1NXY3LjExNGw1LjEzLDIuOTU1TTEzLjIzMiwzYy0uMzEsMC0uNjE2LC4wODItLjg4NSwuMjM3TDUuMTI4LDcuMzk3Yy0uNTQ2LC4zMTUtLjg4NSwuOTAxLS44ODUsMS41MzF2OC4zMjFjMCwuNjMsLjMzOSwxLjIxNiwuODg1LDEuNTMxbDcuNDMxLDQuMjhjLjEsLjA1OCwuMjE0LC4wODgsLjMyOSwuMDg4LC4zNjMsMCwuNjU5LS4yOTUsLjY1OS0uNjU5VjEzLjI2OWw4LjAwMS00LjYxMWMuMjAzLS4xMTcsLjMzLS4zMzUsLjMzLS41NywwLS4yMzUtLjEyNi0uNDUzLS4zMy0uNTdMMTQuMTE3LDMuMjM3Yy0uMjY4LS4xNTUtLjU3NC0uMjM3LS44ODQtLjIzN2gwWm0tNS4wOTgsNS42NDhsNS4wOTgtMi45MzgsNC4xMjgsMi4zNzctNS4wOTgsMi45MzgtNC4xMjgtMi4zNzdoMFptLTEuMzA0LDguMTI4di01Ljk2bDQuMTMsMi4zNzh2NS45NmwtNC4xMy0yLjM3OGgwWiIvPg0KICAgICAgPC9nPg0KICAgICAgPGc+DQogICAgICAgIDxwYXRoIGQ9Ik0xNC45NzcsMjMuNzVjLS4yMjUsMC0uNDA4LS4xODMtLjQwOC0uNDA3VjE0LjA3MmMwLS4yMDIsLjEwOS0uMzksLjI4NC0uNDg5bDguMTAxLTQuNjY5LC4xNDUtLjAyMWMuMjI1LDAsLjQwOCwuMTg0LC40MDgsLjQwOHY4LjcyNWMwLC41MzgtLjI5LDEuMDM5LS43NTYsMS4zMDhsLTcuNjI3LDQuMzk2LS4xNDYsLjAyMVoiIGZpbGw9IiNmZmYiLz4NCiAgICAgICAgPHBhdGggZD0iTTIzLjA5OSw5LjE0M2MuMDgyLDAsLjE1OCwuMDY2LC4xNTgsLjE1OHY4LjcyNWMwLC40NS0uMjQsLjg2Ni0uNjMxLDEuMDkxbC03LjU3LDQuMzYyYy0uMDI1LC4wMTUtLjA1MiwuMDIxLS4wNzksLjAyMS0uMDgzLDAtLjE1OC0uMDY2LS4xNTgtLjE1OFYxNC4wNzJjMC0uMTEzLC4wNi0uMjE2LC4xNTgtLjI3M2w4LjA0My00LjYzNWMuMDI1LS4wMTUsLjA1Mi0uMDIxLC4wNzktLjAyMW0wLS41Yy0uMTE1LDAtLjIyOCwuMDMxLS4zMjgsLjA4OGwtOC4wNDMsNC42MzVjLS4yNTIsLjE0Ni0uNDA4LC40MTctLjQwOCwuNzA2djkuMjdjMCwuMzYzLC4yOTUsLjY1OCwuNjU4LC42NTgsLjExNSwwLC4yMjgtLjAzMSwuMzI4LS4wODhsNy41NzEtNC4zNjNjLjU0My0uMzEzLC44ODEtLjg5NywuODgxLTEuNTI0VjkuMzAxYzAtLjM2My0uMjk1LS42NTgtLjY1OC0uNjU4aDBaIi8+DQogICAgICA8L2c+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4='),
1365
- auto;
1366
- }
1367
-
1368
- /* ============================================================
1369
- Measure
1370
- ============================================================ */
1371
-
1372
- .vim-text-renderer .vim-measure {
1373
- font-size: var(--font-size-lg);
1374
- font-weight: var(--font-weight-semibold);
1375
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1376
- border-radius: 2px;
1377
- }
1378
-
1379
- .vim-text-renderer .vim-measure table tr {
1380
- border: none;
1381
- }
1382
-
1383
- .vim-text-renderer .vim-measure-label-x {
1384
- background-color: var(--c-axe-x);
1385
- padding: 0.25rem 0.75rem;
1386
- }
1387
-
1388
- .vim-text-renderer .vim-measure-label-y {
1389
- background-color: var(--c-axe-y);
1390
- padding: 0.25rem 0.75rem;
1391
- }
1392
-
1393
- .vim-text-renderer .vim-measure-label-z {
1394
- background-color: var(--c-axe-z);
1395
- padding: 0.25rem 0.75rem;
1396
- }
1397
-
1398
- .vim-text-renderer .vim-measure-label-d {
1399
- background-color: var(--c-darkest-gray);
1400
- padding: 0.25rem 0.75rem;
1401
- }
1402
-
1403
- .vim-text-renderer .vim-measure:nth-of-type(5) table tr {
1404
- border: 1px solid var(--c-darkest-gray);
1405
- }
1406
-
1407
- /* ============================================================
1408
- Loading
1409
- ============================================================ */
1410
-
1411
- .vim-loading-widget {
1412
- width: 100%;
1413
- min-height: 5px;
1414
- max-height: 10px;
1415
- border-radius: 5px;
1416
- display: inline-block;
1417
- position: relative;
1418
- background: var(--c-lightest-gray);
1419
- overflow: hidden;
1420
- }
1421
-
1422
- .vim-loading-widget::after {
1423
- content: '';
1424
- width: 130px;
1425
- min-height: 5px;
1426
- max-height: 10px;
1427
- border-radius: 5px;
1428
- background: var(--c-primary);
1429
- position: absolute;
1430
- top: 0;
1431
- left: 0;
1432
- box-sizing: border-box;
1433
- animation: animloader 2s linear infinite;
1434
- }
1435
-
1436
- @keyframes animloader {
1437
- 0% {
1438
- left: 0;
1439
- transform: translateX(-100%);
1440
- }
1441
-
1442
- 100% {
1443
- left: 100%;
1444
- transform: translateX(0%);
1445
- }
1446
- }
1447
-
1448
- /* ============================================================
1449
- Container Layout
1450
- ============================================================ */
1451
- .vim-component {
1452
- inset: 0;
1453
- }
1454
-
1455
- .vim-gfx {
1456
- position: absolute;
1457
- inset: 0;
1458
- pointer-events: none;
1459
- }
1460
-
1461
- .vim-ui {
1462
- position: absolute;
1463
- inset: 0;
1464
- }
1465
-
1466
- /* ============================================================
1467
- Overlay
1468
- ============================================================ */
1469
- .vim-overlay {
1470
- position: absolute;
1471
- top: 0;
1472
- left: 0;
1473
- z-index: var(--z-overlay);
1474
- width: 100%;
1475
- height: 100%;
1476
- touch-action: none;
1477
- }
1478
-
1479
- /* ============================================================
1480
- Rest of Screen
1481
- ============================================================ */
1482
- .vim-rest-of-screen {
1483
- position: absolute;
1484
- right: 0;
1485
- top: 0;
1486
- bottom: 0;
1487
- }
1488
-
1489
- /* ============================================================
1490
- Side Panel
1491
- ============================================================ */
1492
- .vim-side-panel {
1493
- top: 0;
1494
- left: 0;
1495
- z-index: var(--z-ui);
1496
- background: var(--c-lightest-gray);
1497
- color: var(--c-darker-gray);
1498
- border-right: 1px solid var(--c-light-gray);
1499
- height: 100%;
1500
- }
1501
-
1502
- .vim-side-panel[data-hidden] {
1503
- display: none;
1504
- }
1505
-
1506
- .vim-side-panel-handle {
1507
- position: absolute;
1508
- top: 0;
1509
- right: -3px;
1510
- width: 6px;
1511
- height: 100%;
1512
- cursor: col-resize;
1513
- z-index: var(--z-panel);
1514
- }
1515
-
1516
- .vim-side-panel-nav {
1517
- z-index: var(--z-panel);
1518
- position: absolute;
1519
- right: 0;
1520
- top: 0;
1521
- width: var(--size-control);
1522
- height: var(--size-control);
1523
- color: var(--c-medium-gray);
1524
- background: none;
1525
- border: none;
1526
- cursor: pointer;
1527
- padding: 0;
1528
- }
1529
-
1530
- .vim-side-panel-nav::before,
1531
- .vim-side-panel-nav::after {
1532
- content: '';
1533
- position: absolute;
1534
- top: 50%;
1535
- left: 50%;
1536
- width: 16px;
1537
- height: 1px;
1538
- background: currentColor;
1539
- }
1540
-
1541
- .vim-side-panel-nav::before { transform: translate(-50%, -50%) rotate(45deg); }
1542
- .vim-side-panel-nav::after { transform: translate(-50%, -50%) rotate(-45deg); }
1543
-
1544
- .vim-side-panel-content {
1545
- position: absolute;
1546
- top: 0;
1547
- bottom: 0;
1548
- left: 0;
1549
- right: 0;
1550
- }
1551
-
1552
- /* ============================================================
1553
- Logo
1554
- ============================================================ */
1555
- .vim-logo {
1556
- position: absolute;
1557
- top: 1rem;
1558
- left: 1rem;
1559
- display: flex;
1560
- pointer-events: auto;
1561
- }
1562
-
1563
- .vim-logo-img {
1564
- position: absolute;
1565
- max-width: 100%;
1566
- }
1567
-
1568
- /* ============================================================
1569
- Performance Counter
1570
- ============================================================ */
1571
- .vim-performance-div.vim-hidden { display: none; }
1572
-
1573
- .vim-performance {
1574
- position: absolute;
1575
- right: 1.5rem;
1576
- left: auto;
1577
- top: 13rem;
1578
- }
1579
-
1580
- /* ============================================================
1581
- Help
1582
- ============================================================ */
1583
- .vim-help-blocker {
1584
- position: absolute;
1585
- display: flex;
1586
- flex-direction: column;
1587
- justify-content: center;
1588
- max-width: 900px;
1589
- width: 90%;
1590
- height: 80%;
1591
- padding: 1.25rem;
1592
- }
1593
-
1594
- .vim-help-top {
1595
- display: flex;
1596
- justify-content: center;
1597
- }
1598
-
1599
- .vim-help-title {
1600
- text-align: center;
1601
- font-weight: bold;
1602
- text-transform: uppercase;
1603
- color: var(--c-white);
1604
- }
1605
-
1606
- .vim-help-img {
1607
- min-height: 0;
1608
- flex: 1;
1609
- }
1610
-
1611
- /* ============================================================
1612
- Modal
1613
- ============================================================ */
1614
- .vim-modal {
1615
- position: absolute;
1616
- inset: 0;
1617
- z-index: var(--z-modal);
1618
- display: flex;
1619
- align-items: center;
1620
- justify-content: center;
1621
- background: var(--c-overflow);
1622
- }
1623
-
1624
- .vim-help-close {
1625
- position: absolute;
1626
- top: 20px;
1627
- right: 20px;
1628
- color: var(--c-white);
1629
- background: none;
1630
- border: none;
1631
- cursor: pointer;
1632
- padding: 0;
1633
- }
1634
-
1635
- /* ============================================================
1636
- Toast
1637
- ============================================================ */
1638
- .vim-menu-toast-wrapper {
1639
- pointer-events: none;
1640
- position: absolute;
1641
- top: 10%;
1642
- display: flex;
1643
- }
1644
-
1645
- .vim-menu-toast {
1646
- margin: auto;
1647
- display: flex;
1648
- align-items: center;
1649
- justify-content: space-between;
1650
- border-radius: var(--radius-sm);
1651
- background: var(--c-dark-gray-warm);
1652
- padding: 0.5rem 1.25rem;
1653
- box-shadow: var(--shadow-lg);
1654
- transition: opacity var(--transition-fast);
1655
- gap: var(--gap-xs);
1656
- }
1657
-
1658
- .vim-menu-toast[data-visible="false"] {
1659
- opacity: 0;
1660
- }
1661
-
1662
- .vim-menu-toast[data-visible="true"] {
1663
- opacity: 1;
1664
- }
1665
-
1666
- .vim-menu-toast-label {
1667
- font-size: var(--font-size-base);
1668
- font-weight: var(--font-weight-semibold);
1669
- text-transform: uppercase;
1670
- color: var(--c-light-gray);
1671
- }
1672
-
1673
- .vim-menu-toast-value {
1674
- font-size: 1.125rem;
1675
- font-weight: bold;
1676
- color: var(--c-white);
1677
- }
1678
-
1679
- /* ============================================================
1680
- BIM Tree
1681
- ============================================================ */
1682
- .vim-bim-no-results {
1683
- flex: 1;
1684
- display: flex;
1685
- align-items: center;
1686
- justify-content: center;
1687
- margin-top: 4px;
1688
- font-size: var(--font-size-sm);
1689
- color: var(--c-medium-gray);
1690
- padding: 1rem 0.5rem;
1691
- text-align: center;
1692
- }
1693
-
1694
- .vim-bim-tree {
1695
- flex: 1;
1696
- display: flex;
1697
- width: 100%;
1698
- margin-top: 4px;
1699
- min-height: 0;
1700
- border: 1px solid var(--c-light-gray);
1701
- }
1702
-
1703
- /* ============================================================
1704
- BIM Panel
1705
- ============================================================ */
1706
- .vim-bim-panel {
1707
- position: absolute;
1708
- inset: 0;
1709
- }
1710
-
1711
- .vim-bim-panel[data-hidden] {
1712
- display: none;
1713
- }
1714
-
1715
- .vim-bim-upper {
1716
- display: flex;
1717
- flex-direction: column;
1718
- position: absolute;
1719
- width: 100%;
1720
- height: 49%;
1721
- }
1722
-
1723
- .vim-bim-upper[data-full] {
1724
- height: 100%;
1725
- }
1726
-
1727
- .vim-bim-upper-title {
1728
- text-transform: uppercase;
1729
- font-size: var(--font-size-sm);
1730
- font-weight: bold;
1731
- min-height: var(--size-control);
1732
- flex-shrink: 0;
1733
- display: flex;
1734
- align-items: center;
1735
- }
1736
-
1737
- .vim-bim-lower-title {
1738
- font-weight: bold;
1739
- text-transform: uppercase;
1740
- min-height: var(--size-control);
1741
- flex-shrink: 0;
1742
- font-size: var(--font-size-xs);
1743
- display: flex;
1744
- align-items: center;
1745
- margin: 0.625rem 0 0;
1746
- }
1747
-
1748
- .vim-bim-lower-container {
1749
- position: absolute;
1750
- top: 50%;
1751
- bottom: 0;
1752
- left: 0;
1753
- right: 0;
1754
- }
1755
-
1756
- .vim-bim-lower-container[data-full] {
1757
- top: 0;
1758
- }
1759
-
1760
- .vim-bim-divider {
1761
- position: absolute;
1762
- top: 50%;
1763
- width: 100%;
1764
- border: none;
1765
- border-top: 1px solid var(--c-gray-divider);
1766
- }
1767
-
1768
- /* ============================================================
1769
- Loading Box
1770
- ============================================================ */
1771
- .vim-loading-box {
1772
- display: flex;
1773
- flex-direction: column;
1774
- max-width: 320px;
1775
- width: 72%;
1776
- align-self: center;
1777
- border-radius: var(--radius-sm);
1778
- background: var(--c-white);
1779
- padding: 1rem 1.25rem;
1780
- box-shadow: var(--shadow-md);
1781
- }
1782
-
1783
- .vim-loading-title {
1784
- width: 100%;
1785
- color: var(--c-medium-gray);
1786
- font-size: var(--font-size-base);
1787
- font-weight: normal;
1788
- margin: 0 0 0.5rem;
1789
- }
1790
-
1791
- .vim-loading-header-row {
1792
- display: flex;
1793
- width: 100%;
1794
- justify-content: space-between;
1795
- gap: var(--gap-sm);
1796
- }
1797
-
1798
- .vim-loading-header-row span:first-child {
1799
- flex: 1;
1800
- }
1801
-
1802
- .vim-loading-header-row span:last-child {
1803
- white-space: nowrap;
1804
- }
1805
-
1806
- .vim-ultra-suggestion {
1807
- color: var(--c-secondary-yellow);
1808
- font-size: var(--font-size-base);
1809
- text-align: center;
1810
- max-width: 28rem;
1811
- margin: 0.5rem auto 0;
1812
- }
1813
-
1814
- .vim-ultra-suggestion a {
1815
- color: var(--c-primary);
1816
- text-decoration: underline;
1817
- font-weight: bold;
1818
- }
1819
-
1820
- /* ============================================================
1821
- Message Box
1822
- ============================================================ */
1823
- .vim-message-box {
1824
- max-height: 80%;
1825
- max-width: 80%;
1826
- width: 424px;
1827
- background: var(--c-white);
1828
- border-radius: var(--radius-md);
1829
- box-shadow: 0 4px 16px rgba(33, 39, 51, 0.5);
1830
- font-family: var(--font-family);
1831
- overflow: auto;
1832
- padding: 1.5rem;
1833
- }
1834
-
1835
- .vim-message-box-header {
1836
- display: flex;
1837
- justify-content: space-between;
1838
- align-items: center;
1839
- }
1840
-
1841
- .vim-message-box-title {
1842
- font-weight: bold;
1843
- font-size: var(--font-size-xl);
1844
- color: var(--c-darker-gray);
1845
- }
1846
-
1847
- .vim-message-box-btn {
1848
- color: var(--c-darker-gray);
1849
- font-size: var(--font-size-xl);
1850
- background: none;
1851
- border: none;
1852
- cursor: pointer;
1853
- padding: 0;
1854
- }
1855
-
1856
- .vim-message-box-body {
1857
- color: var(--c-darker-gray);
1858
- white-space: pre-wrap;
1859
- }
1860
-
1861
- .vim-footer {
1862
- display: flex;
1863
- justify-content: flex-start;
1864
- }
1865
-
1866
- .vim-divider {
1867
- border: none;
1868
- border-top: 1px solid var(--c-gray-divider);
1869
- margin: 1.5rem 0;
1870
- }
1871
-
1872
- /* ============================================================
1873
- Context Menu
1874
- ============================================================ */
1875
- .vim-context-menu-popup {
1876
- z-index: var(--z-popup);
1877
- width: 240px;
1878
- border-radius: var(--radius-sm);
1879
- background: var(--c-white);
1880
- padding: 0.25rem 0;
1881
- color: var(--c-darker-gray);
1882
- box-shadow: var(--shadow-md);
1883
- font-family: var(--font-family);
1884
- font-size: var(--font-size-sm);
1885
- }
1886
-
1887
- .vim-context-menu-item {
1888
- display: flex;
1889
- cursor: pointer;
1890
- user-select: none;
1891
- align-items: center;
1892
- justify-content: space-between;
1893
- padding: 0.5rem 1.25rem;
1894
- }
1895
-
1896
- .vim-context-menu-item:hover {
1897
- background: var(--c-lightest-gray);
1898
- }
1899
-
1900
- .vim-context-menu-divider {
1901
- margin: 0.25rem 0;
1902
- border: none;
1903
- border-top: 1px solid var(--c-lightest-gray);
1904
- }
1905
-
1906
- .vim-context-menu-keyboard {
1907
- color: var(--c-medium-gray);
1908
- }
1909
-
1910
- /* ============================================================
1911
- BIM Search
1912
- ============================================================ */
1913
- .vim-bim-search {
1914
- position: relative;
1915
- display: flex;
1916
- align-items: center;
1917
- flex-shrink: 0;
1918
- min-height: var(--size-control);
1919
- background: var(--c-white);
1920
- border: 1px solid var(--c-light-gray);
1921
- padding: 0 0.625rem;
1922
- margin-bottom: 4px;
1923
- }
1924
-
1925
- .vim-bim-search:focus-within {
1926
- border-color: var(--c-dark-gray-warm);
1927
- box-shadow: 0 0 0 2px var(--c-focus-ring);
1928
- }
1929
-
1930
- .vim-bim-search .search-icon {
1931
- margin-right: -1rem;
1932
- color: var(--c-medium-gray);
1933
- flex-shrink: 0;
1934
- }
1935
-
1936
- .vim-bim-search .search-input {
1937
- width: 100%;
1938
- border: none;
1939
- background: transparent;
1940
- padding: 0 1.5rem 0 1.5rem;
1941
- line-height: 32px;
1942
- outline: none;
1943
- }
1944
-
1945
- .vim-bim-search .search-clear {
1946
- position: absolute;
1947
- right: 0.625rem;
1948
- display: flex;
1949
- height: 1.25rem;
1950
- width: 1.25rem;
1951
- flex-shrink: 0;
1952
- align-items: center;
1953
- justify-content: center;
1954
- border-radius: var(--radius-full);
1955
- background: var(--c-medium-gray);
1956
- color: var(--c-white);
1957
- border: none;
1958
- cursor: pointer;
1959
- padding: 0;
1960
- }
1961
-
1962
- .vim-bim-search .search-count {
1963
- position: absolute;
1964
- right: 2rem;
1965
- border-radius: var(--radius-full);
1966
- background: var(--c-primary-royal);
1967
- padding: 0.125rem 0.5rem;
1968
- font-weight: bold;
1969
- color: var(--c-white);
1970
- font-size: var(--font-size-sm);
1971
- }
1972
-
1973
- /* ============================================================
1974
- Settings Fields
1975
- ============================================================ */
1976
- .vim-settings-textbox {
1977
- border: 1px solid var(--c-light-gray);
1978
- border-radius: 0;
1979
- width: 100%;
1980
- max-width: 120px;
1981
- min-width: 0;
1982
- }
1983
-
1984
- .vim-settings-textbox[type="number"] {
1985
- max-width: 80px;
1986
- height: 24px;
1987
- padding: 0 0.25rem;
1988
- box-sizing: border-box;
1989
- text-overflow: ellipsis;
1990
- }
1991
-
1992
- .vim-settings-checkbox {
1993
- appearance: none;
1994
- -webkit-appearance: none;
1995
- position: relative;
1996
- width: 16px;
1997
- height: 16px;
1998
- border: 1px solid var(--c-light-gray);
1999
- border-radius: 0;
2000
- background: var(--c-white);
2001
- cursor: pointer;
2002
- margin: 0;
2003
- flex-shrink: 0;
2004
- }
2005
-
2006
- .vim-settings-checkbox:hover {
2007
- border-color: var(--c-dark-gray-warm);
2008
- }
2009
-
2010
- .vim-settings-checkbox:checked {
2011
- border-color: var(--c-light-gray);
2012
- }
2013
-
2014
- .vim-settings-checkbox:checked:hover {
2015
- border-color: var(--c-dark-gray-warm);
2016
- }
2017
-
2018
- .vim-settings-checkbox:checked::after {
2019
- content: '';
2020
- position: absolute;
2021
- left: 3px;
2022
- top: 0;
2023
- width: 5px;
2024
- height: 9px;
2025
- border: 2px solid var(--c-dark-gray-warm);
2026
- border-top: none;
2027
- border-left: none;
2028
- transform: rotate(45deg);
2029
- }
2030
-
2031
- .vim-checkbox-label {
2032
- display: flex;
2033
- align-items: center;
2034
- user-select: none;
2035
- cursor: pointer;
2036
- }
2037
-
2038
- .vim-checkbox-label[data-disabled] {
2039
- opacity: 0.5;
2040
- pointer-events: none;
2041
- }
2042
-
2043
- /* ============================================================
2044
- Error Style
2045
- ============================================================ */
2046
- .vim-main-text {
2047
- font-size: var(--font-size-lg);
2048
- color: var(--c-darker-gray);
2049
- margin-bottom: 1rem;
2050
- }
2051
-
2052
- .vim-detail-text {
2053
- color: var(--c-medium-gray);
2054
- font-size: var(--font-size-lg);
2055
- font-style: italic;
2056
- overflow-wrap: break-word;
2057
- }
2058
-
2059
- .vim-bold-text {
2060
- font-size: var(--font-size-lg);
2061
- font-weight: bold;
2062
- }
2063
-
2064
- .vim-sub-title {
2065
- font-size: var(--font-size-lg);
2066
- margin-bottom: 0.25rem;
2067
- font-weight: bold;
2068
- color: var(--c-darker-gray);
2069
- }
2070
-
2071
- .vim-dot-list {
2072
- list-style: disc;
2073
- margin-left: 1.25rem;
2074
- margin-bottom: 1rem;
2075
- color: var(--c-darker-gray);
2076
- }
2077
-
2078
- .vim-dot-list > li,
2079
- .vim-num-list > li {
2080
- font-size: var(--font-size-lg);
2081
- }
2082
-
2083
- .vim-num-list {
2084
- list-style: decimal;
2085
- margin-left: 1.25rem;
2086
- margin-bottom: 1rem;
2087
- color: var(--c-darker-gray);
2088
- }
2089
-
2090
- .vim-bullet-label {
2091
- color: var(--c-dark-gray-cool);
2092
- }
2093
-
2094
- .vim-bullet-value {
2095
- word-break: break-all;
2096
- color: var(--c-medium-gray);
2097
- }
2098
-
2099
- .vim-link {
2100
- color: var(--c-primary);
2101
- text-decoration: underline;
2102
- }
2103
-
2104
- /* ============================================================
2105
- Tooltip
2106
- ============================================================ */
2107
-
2108
- /* Portal tooltip — rendered at document.body, never clipped */
2109
- .vim-tooltip-portal {
2110
- position: fixed;
2111
- font-family: var(--font-family);
2112
- padding: 4px 8px;
2113
- border: 1px solid var(--c-medium-gray);
2114
- background: var(--c-white);
2115
- color: var(--c-darker-gray);
2116
- font-size: var(--font-size-sm);
2117
- white-space: nowrap;
2118
- box-shadow: 2px 6px 15px rgba(0, 0, 0, 0.3);
2119
- pointer-events: none;
2120
- z-index: 9999;
2121
- }
2122
-
2123
- /* ============================================================
2124
- Responsive Scaling
2125
- ============================================================ */
2126
- @container (width > 0){
2127
-
2128
- .vim-panel-list {
2129
- gap: min(2cqmin, 4px);
2130
- }
2131
-
2132
-
2133
- .vim-message-box {
2134
- padding: min(6cqmin, 1.5rem);
2135
- }
2136
-
2137
- .vim-message-box .vim-divider{
2138
- margin-top: min(6cqmin, 1.5rem);
2139
- margin-bottom: min(6cqmin, 1.5rem);
2140
- }
2141
-
2142
- .vim-message-box .vim-footer{
2143
- margin-top: min(6cqmin, 1.5rem);
2144
- }
2145
-
2146
- .vim-message-box .vim-main-text{
2147
- margin-bottom: min(6cqmin, 1.5rem);
2148
- }
2149
-
2150
- /* --- Side Panel --- */
2151
- .vim-side-panel-content {
2152
- font-size: min(5.5cqmin, 0.8rem);
2153
- left: min(5cqmin, 0.625rem);
2154
- right: min(5cqmin, 0.625rem);
2155
- top: 0;
2156
- bottom: 0;
2157
- }
2158
-
2159
- /* --- Help --- */
2160
- .vim-help-blocker{
2161
- gap: min(3cqh, 1rem);
2162
- }
2163
-
2164
- .vim-help-bottom{
2165
- min-height: min(4cqmin, 2rem);
2166
- }
2167
-
2168
- .vim-help-title{
2169
- font-size: min(2.5cqmin, 0.9rem);
2170
- }
2171
- .vim-help-button {
2172
- font-size: min(2.5cqmin, 0.9rem);
2173
- padding-left: min(2cqmin, 1rem);
2174
- padding-right: min(2cqmin, 1rem);
2175
- }
2176
-
2177
- /* --- Control Bar --- */
2178
- .vim-control-bar-button {
2179
- height: min(8cqmin, 2.5rem);
2180
- width: min(8cqmin, 2.5rem);
2181
- }
2182
- .vim-control-bar-section {
2183
- gap: min(2cqmin, 0.5rem);
2184
- }
2185
-
2186
-
2187
- .vim-control-bar-counter{
2188
- margin-bottom: min(1cqmin, 0.5rem);
2189
- margin-right: min(2cqmin, 0.5rem);
2190
- margin-left: max(-2cqmin, -0.75rem);
2191
- }
2192
-
2193
- /* --- Axes --- */
2194
- .vim-axes-panel,
2195
- .vim-axes-panel-empty {
2196
- border-radius: min(3cqmin, 1rem);
2197
- top: min(2cqmin, 1.5rem);
2198
- right: min(2cqmin, 1.5rem);
2199
- width: min(22cqmin, 112px);
2200
- }
2201
-
2202
- .vim-axes-panel {
2203
- height: min(28cqmin, 144px);
2204
- }
2205
-
2206
- .vim-axes-panel-empty {
2207
- height: min(22cqmin, 112px);
2208
- }
2209
- .vim-axes-panel-gizmo{
2210
- top: min(1cqmin, 0.5rem);
2211
- left: min(1cqmin, 0.5rem);
2212
- right: min(1cqmin, 0.5rem);
2213
- bottom: calc(20% + min(1cqmin, 0.5rem));
2214
- }
2215
- .vim-axes-button{
2216
- height: min(5cqmin, 1.25rem);
2217
- width: min(5cqmin, 1.25rem);
2218
- }
2219
-
2220
- /* --- Loading --- */
2221
- .vim-loading-box{
2222
- font-size: min(5cqmin, 1rem);
2223
- }
2224
- .vim-loading-widget, .vim-loading-widget::after{
2225
- height: min(5cqmin, 1rem);
2226
- }
2227
-
2228
- /* --- BIM Panel --- */
2229
- .vim-bim-lower-content{
2230
- gap: min(3cqmin, 1.5rem);
2231
- }
2232
- .vim-bim-header-entry{
2233
- line-height: min(10cqmin, 1.5rem);
2234
- }
2235
- .vim-bim-body-entry{
2236
- line-height: min(10cqmin, 2rem);
2237
- }
2238
-
2239
- .vim-bim-actions{
2240
- height: min(8cqmin, 2rem);
2241
- }
2242
-
2243
- .vim-group-collapse-button{
2244
- height: min(6cqmin, 1.5rem);
2245
- }
2246
-
2247
- /* --- BIM Tree (react-complex-tree) --- */
2248
- .vim-bim-tree .rct-tree-item-title-container {
2249
- height: min(10cqmin, 2rem);
2250
- }
2251
- .vim-bim-tree .rct-tree-item-visibility {
2252
- width: min(6cqmin, 1rem);
2253
- height: min(6cqmin, 1rem);
2254
- }
2255
- .vim-bim-tree .rct-tree-item-arrow {
2256
- width: min(6cqmin, 1rem);
2257
- }
2258
- .vim-bim-tree .rct-tree-item-arrow:has(svg):before {
2259
- background-size: min(8cqmin, 1rem);
2260
- }
2261
-
2262
- /* --- BIM Tree (headless-tree) --- */
2263
- .vim-ht-item {
2264
- height: min(10cqmin, 2rem);
2265
- }
2266
- .vim-ht-visibility {
2267
- width: min(6cqmin, 1rem);
2268
- height: min(6cqmin, 1rem);
2269
- }
2270
- .vim-ht-arrow {
2271
- width: min(6cqmin, 1rem);
2272
- height: min(6cqmin, 1rem);
2273
- background-size: min(8cqmin, 1rem);
2274
- }
2275
-
2276
- /* --- Settings Inputs --- */
2277
- .vim-settings-checkbox{
2278
- height: min(8cqmin, 1rem);
2279
- width: min(8cqmin, 1rem);
2280
- }
2281
- .vim-settings-textbox{
2282
- height: min(8cqmin, 24px);
2283
- }
2284
-
178
+ }/* ============================================================
179
+ Design Tokens
180
+ ============================================================ */
181
+ :root {
182
+ /* Brand */
183
+ --c-primary: #0590cc;
184
+ --c-primary-royal: #284ea2;
185
+ --c-secondary-yellow: #eca500;
186
+
187
+ /* Grays */
188
+ --c-darkest-gray: #050c1a;
189
+ --c-darker-gray: #212329;
190
+ --c-dark-gray-warm: #3c3c3c;
191
+ --c-dark-gray-cool: #56585f;
192
+ --c-medium-gray: #8a8d95;
193
+ --c-gray-divider: #e3e3e3;
194
+ --c-light-gray: #d1d3d8;
195
+ --c-lightest-gray: #f6f6f6;
196
+ --c-white: #ffffff;
197
+
198
+ /* Accents */
199
+ --c-lightest-blue: #d9edf9;
200
+ --c-light-blue: #c8e2f4;
201
+ --c-list-hover: #fff8e5;
202
+ --c-overflow: rgba(5, 12, 26, 0.8);
203
+ --c-focus-ring: rgba(106, 159, 216, 0.2);
204
+
205
+ /* Axis colors */
206
+ --c-axe-x: #fd0202;
207
+ --c-axe-y: #11a936;
208
+ --c-axe-z: #0000f5;
209
+
210
+ --visible-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23212329' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
211
+ --visible-beige: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23c3bfb4' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
212
+ --visible-light-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%239cb5d5' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
213
+ --visible-royal-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='none' d='M0 0h256v256H0z'/%3E%3Cpath fill='%23284ea2' d='M128 36C57.308 36 0 97.054 0 128c0 32.943 57.308 92 128 92s128-59.057 128-92c0-30.946-57.308-92-128-92Zm75.346 131.751C190.404 178.301 163.406 196 128 196s-62.403-17.699-75.346-28.249C31.004 150.103 24 133.349 24 128c0-.047.071-4.846 6.247-14.452 5.34-8.308 13.341-17.061 22.527-24.648 6.833-5.643 17.521-13.282 31.163-19.291C71.664 81.27 64 97.734 64 116c0 35.346 28.654 64 64 64s64-28.654 64-64a63.79 63.79 0 0 0-5.004-24.847C186.913 106.546 174.413 119 159 119s-28-12.536-28-28c0-13.851 10.06-25.346 23.271-27.594 22.243 5.762 39.382 17.586 48.956 25.494 9.186 7.587 17.187 16.341 22.527 24.648 6.176 9.606 6.247 14.405 6.247 14.452 0 5.349-7.004 22.103-28.654 39.751Z'/%3E%3C/svg%3E%0A");
214
+
215
+ --hidden-dark: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%2321232' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%2321232' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%2321232' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
216
+ --hidden-beige: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23c3bfb4' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%23c3bfb4' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%23c3bfb4' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
217
+ --hidden-light-blue: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%239cb5d5' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%239cb5d5' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%239cb5d5' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
218
+ --hidden-royal-blue: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23284ea2' d='M154.271,63.406c22.243,5.762,39.382,17.586,48.956,25.494,9.186,7.587,17.187,16.341,22.527,24.648,6.176,9.606,6.247,14.405,6.247,14.452,0,4.764-5.566,18.577-22.079,34.01l16.973,16.972c18.185-17.247,29.106-36.602,29.106-50.982,0-30.946-57.308-92-128-92-13.307,0-26.139,2.165-38.205,5.884l42.099,42.099c2.731-10.572,11.479-18.722,22.376-20.577Z'/%3E%3Cpath fill='%23284ea2' d='M166.022,118.111l21.472,21.472c2.896-7.3,4.505-15.251,4.505-23.583,0-8.812-1.782-17.207-5.004-24.847-.07,12.971-8.957,23.853-20.974,26.958Z'/%3E%3Cpath fill='%23284ea2' d='M31.833,17.863c-4.687-4.686-12.284-4.686-16.971,0-4.686,4.687-4.686,12.285,0,16.971l29.92,29.92C17.38,84.825,0,110.966,0,128c0,32.943,57.308,92,128,92,21.088,0,40.972-5.269,58.51-13.52l37.657,37.657c4.687,4.686,12.284,4.686,16.971,0,4.686-4.687,4.686-12.285,0-16.971L31.833,17.863Zm96.167,178.137c-35.405,0-62.403-17.699-75.346-28.249-21.65-17.648-28.654-34.402-28.654-39.751,0-.047,.071-4.846,6.247-14.452,5.34-8.308,13.341-17.061,22.527-24.648,2.545-2.103,5.633-4.482,9.205-6.95l7.708,7.708c-3.643,8.034-5.686,16.946-5.686,26.343,0,35.346,28.654,64,64,64,9.397,0,18.31-2.043,26.345-5.684l13.936,13.936c-11.606,4.516-25.17,7.749-40.281,7.749Z'/%3E%3C/svg%3E%0A");
219
+
220
+ /* Sizing */
221
+ --size-control: 32px;
222
+
223
+ /* Border radius */
224
+ --radius-sm: 4px;
225
+ --radius-md: 6px;
226
+ --radius-full: 9999px;
227
+
228
+ /* Shadows */
229
+ --shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.15);
230
+ --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.2);
231
+ --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.3);
232
+
233
+ /* Spacing */
234
+ --gap-xs: 0.25rem; /* 4px — inline/icon gaps */
235
+ --gap-sm: 0.625rem; /* 10px — standard item gaps */
236
+
237
+ /* Transitions */
238
+ --transition-fast: 0.15s;
239
+ --transition-base: 0.2s;
240
+
241
+ /* Typography */
242
+ --font-family: 'Roboto', sans-serif;
243
+ --font-size-xs: 0.7rem;
244
+ --font-size-sm: 0.75rem;
245
+ --font-size-base: 0.875rem;
246
+ --font-size-lg: 1rem;
247
+ --font-size-xl: 1.25rem;
248
+ --font-weight-medium: 500;
249
+ --font-weight-semibold: 600;
250
+
251
+ /* Z-index scale
252
+ --z-overlay (10) loading overlay (behind everything interactive)
253
+ --z-ui (20) control bar, axes panel, side panel
254
+ --z-panel (30) panel overlay container, side panel nav
255
+ --z-modal (40) modal dialogs
256
+ --z-popup (50) dropdowns, context menus (always on top)
257
+ */
258
+ --z-overlay: 10;
259
+ --z-ui: 20;
260
+ --z-panel: 30;
261
+ --z-modal: 40;
262
+ --z-popup: 50;
263
+ }
264
+
265
+ /* ============================================================
266
+ Base / Global
267
+ ============================================================ */
268
+
269
+
270
+ .vim-component {
271
+ font-family: var(--font-family);
272
+ -webkit-font-smoothing: antialiased;
273
+ -moz-osx-font-smoothing: grayscale;
274
+ overflow: hidden;
275
+ cursor: default;
276
+ }
277
+
278
+
279
+ /*
280
+ Focus rings are suppressed because this viewer is pointer/touch-driven.
281
+ Hover effects are implemented manually on all interactive elements
282
+ (buttons, tree items, list entries) to provide equivalent visual feedback.
283
+ Keyboard focus is not a supported interaction mode.
284
+ */
285
+ .vim-component [type='checkbox']:focus,
286
+ .vim-component [type='radio']:focus,
287
+ .vim-component button:focus,
288
+ .vim-component input[type='search']:focus {
289
+ outline: 0;
290
+ box-shadow: none;
291
+ }
292
+
293
+
294
+ /* Fix for search cancel button on IOS */
295
+ .vim-component input[type='search']::-webkit-search-cancel-button {
296
+ -webkit-appearance: none;
297
+ height: 1rem;
298
+ width: 1rem;
299
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16.25' height='16.25' viewBox='0 0 16.25 16.25'%3E%3Cpath id='icon' d='M32.125,24a8.125,8.125,0,1,0,8.125,8.125A8.125,8.125,0,0,0,32.125,24ZM35.6,34.275A.937.937,0,0,1,34.275,35.6l-2.15-2.15-2.15,2.15a.937.937,0,0,1-1.326-1.326l2.15-2.15-2.15-2.15a.937.937,0,0,1,1.326-1.326l2.15,2.15,2.15-2.15A.937.937,0,1,1,35.6,29.975l-2.15,2.15Z' transform='translate(-24 -24)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
300
+ }
301
+
302
+ /* ============================================================
303
+ Layout Containers
304
+ ============================================================ */
305
+ .vim-help-overlay {
306
+ container-type: size;
307
+ }
308
+
309
+ .vim-loading-container {
310
+ container-type: size;
311
+ }
312
+
313
+ .vim-rest-of-screen {
314
+ container-type: size;
315
+ }
316
+
317
+ .vim-side-panel {
318
+ container-type: size;
319
+ }
320
+
321
+ .vim-modal {
322
+ container-type: size;
323
+ }
324
+
325
+ /* ============================================================
326
+ Panel
327
+ ============================================================ */
328
+ /* ================================================================
329
+ Generic Panel
330
+ Base classes for list/entry/group structure.
331
+ Three instances: Settings Panel, BIM Header, BIM Body.
332
+ ================================================================ */
333
+
334
+ /* --- Shell --- */
335
+
336
+ .vim-panel-overlay {
337
+ position: fixed;
338
+ inset: 0;
339
+ display: flex;
340
+ pointer-events: none;
341
+ z-index: var(--z-panel);
342
+ }
343
+
344
+ .vim-panel {
345
+ background: var(--c-lightest-gray);
346
+ pointer-events: auto;
347
+ }
348
+
349
+ .vim-panel-header {
350
+ display: flex;
351
+ justify-content: space-between;
352
+ align-items: center;
353
+ padding: 0 0 0 0.5rem;
354
+ background: var(--c-light-gray);
355
+ margin-bottom: 4px;
356
+ }
357
+
358
+ .vim-panel-title {
359
+ text-transform: uppercase;
360
+ font-size: var(--font-size-sm);
361
+ font-weight: bold;
362
+ color: inherit;
363
+ min-height: var(--size-control);
364
+ display: flex;
365
+ align-items: center;
366
+ }
367
+
368
+ .vim-panel-close {
369
+ flex-shrink: 0;
370
+ width: var(--size-control);
371
+ height: var(--size-control);
372
+ position: relative;
373
+ background: none;
374
+ border: none;
375
+ cursor: pointer;
376
+ padding: 0;
377
+ color: var(--c-medium-gray);
378
+ }
379
+
380
+ .vim-panel-close::before,
381
+ .vim-panel-close::after {
382
+ content: '';
383
+ position: absolute;
384
+ top: 50%;
385
+ left: 50%;
386
+ width: 16px;
387
+ height: 1px;
388
+ background: currentColor;
389
+ }
390
+
391
+ .vim-panel-close::before { transform: translate(-50%, -50%) rotate(45deg); }
392
+ .vim-panel-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
393
+
394
+ .vim-panel-body {
395
+ margin: 0 0 0.5rem 0;
396
+ color: var(--c-darker-gray);
397
+ }
398
+
399
+ .vim-panel-content {
400
+ padding: 0 0.625rem;
401
+ }
402
+
403
+ /* --- List structure --- */
404
+
405
+ .vim-panel-list {
406
+ display: flex;
407
+ flex-direction: column;
408
+ gap: 0;
409
+ }
410
+
411
+ .vim-panel-group {
412
+ min-width: 0;
413
+ margin-bottom: 8px;
414
+ }
415
+
416
+ .vim-panel-section {
417
+ min-width: 0;
418
+ margin-bottom: 4px;
419
+ }
420
+
421
+ /* Group title: full-width collapsible row */
422
+ .vim-panel-group-title {
423
+ display: flex;
424
+ align-items: center;
425
+ list-style: none;
426
+ cursor: pointer;
427
+ min-height: var(--size-control);
428
+ padding: 0 0.25rem;
429
+ font-weight: var(--font-weight-semibold);
430
+ font-size: var(--font-size-sm);
431
+ text-transform: uppercase;
432
+ color: var(--c-dark-gray-cool);
433
+ }
434
+
435
+ .vim-panel-group-title::-webkit-details-marker { display: none; }
436
+
437
+ .vim-panel-group-title::after {
438
+ content: '';
439
+ display: inline-block;
440
+ flex-shrink: 0;
441
+ width: 7px; /* chevron size — border-box rotated 45deg, so visual size ≈ 10px diagonal */
442
+ height: 7px;
443
+ border-right: 1.5px solid var(--c-medium-gray);
444
+ border-bottom: 1.5px solid var(--c-medium-gray);
445
+ transform: rotate(-135deg);
446
+ margin-bottom: -2px;
447
+ margin-left: auto;
448
+ margin-right: 4px;
449
+ }
450
+
451
+ details:not([open]) .vim-panel-group-title::after {
452
+ transform: rotate(45deg);
453
+ margin-bottom: 2px;
454
+ }
455
+
456
+ /* Section title: indented collapsible sub-row */
457
+ .vim-panel-section-title {
458
+ display: flex;
459
+ align-items: center;
460
+ justify-content: space-between;
461
+ list-style: none;
462
+ cursor: pointer;
463
+ box-sizing: border-box;
464
+ min-height: var(--size-control);
465
+ padding: 0 0 0 6px;
466
+ font-weight: var(--font-weight-medium);
467
+ font-size: var(--font-size-sm);
468
+ color: var(--c-dark-gray-cool);
469
+ }
470
+
471
+ .vim-panel-section-title::-webkit-details-marker { display: none; }
472
+
473
+ .vim-panel-section-title::after {
474
+ content: '';
475
+ display: inline-block;
476
+ flex-shrink: 0;
477
+ width: 7px; /* chevron size — same as group title */
478
+ height: 7px;
479
+ border-right: 1.5px solid var(--c-medium-gray);
480
+ border-bottom: 1.5px solid var(--c-medium-gray);
481
+ transform: rotate(-135deg);
482
+ margin-bottom: -2px;
483
+ margin-right: 4px;
484
+ }
485
+
486
+ details:not([open]) .vim-panel-section-title::after {
487
+ transform: rotate(45deg);
488
+ margin-bottom: 2px;
489
+ margin-right: 4px;
490
+ }
491
+
492
+ /* --- Entries --- */
493
+
494
+ .vim-panel-subtitle {
495
+ font-weight: var(--font-weight-medium);
496
+ font-size: var(--font-size-base);
497
+ color: var(--c-dark-gray-cool);
498
+ padding-top: 0.25rem;
499
+ }
500
+
501
+ .vim-panel-entry {
502
+ display: flex;
503
+ align-items: center;
504
+ font-size: var(--font-size-sm);
505
+ min-height: 24px;
506
+ }
507
+
508
+ .vim-panel-entry dt {
509
+ flex: 0 0 50%;
510
+ min-width: 0;
511
+ overflow: hidden;
512
+ text-overflow: ellipsis;
513
+ white-space: nowrap;
514
+ }
515
+
516
+ .vim-panel-entry dd {
517
+ flex: 1;
518
+ min-width: 0;
519
+ margin: 0;
520
+ display: flex;
521
+ flex-direction: row;
522
+ align-items: center;
523
+ gap: var(--gap-xs);
524
+ }
525
+
526
+
527
+ .vim-panel-entry:nth-child(odd) { background: var(--c-white); }
528
+ .vim-panel-entry:nth-child(even) { background: transparent; }
529
+
530
+ .vim-panel-entry[data-disabled] {
531
+ opacity: 0.5;
532
+ pointer-events: none;
533
+ }
534
+
535
+ .vim-panel-entry-value {
536
+ min-width: 0;
537
+ margin: 0;
538
+ font-size: var(--font-size-sm);
539
+ color: var(--c-darker-gray);
540
+ overflow: hidden;
541
+ text-overflow: ellipsis;
542
+ white-space: nowrap;
543
+ }
544
+
545
+ .vim-panel-entry-info {
546
+ color: var(--c-light-gray);
547
+ font-size: var(--font-size-sm);
548
+ }
549
+
550
+ /* ================================================================
551
+ Shared overrides — common patterns across panel instances
552
+ ================================================================ */
553
+
554
+ /* Tall entries (settings labels + bim properties) */
555
+ .vim-settings-panel .vim-panel-entry,
556
+ .vim-bim-body .vim-panel-entry {
557
+ min-height: var(--size-control);
558
+ }
559
+
560
+ /* Tab-style group title: inline, bordered, rounded top */
561
+ .vim-settings-panel .vim-panel-group-title,
562
+ .vim-bim-body .vim-panel-group-title {
563
+ display: inline-flex;
564
+ align-items: center;
565
+ gap: var(--gap-sm);
566
+ border: 1px solid var(--c-light-gray);
567
+ border-radius: 4px 4px 0 0;
568
+ padding: 0 8px;
569
+ height: var(--size-control);
570
+ min-height: var(--size-control);
571
+ font-size: var(--font-size-sm);
572
+ font-weight: bold;
573
+ text-transform: uppercase;
574
+ color: var(--c-medium-gray);
575
+ }
576
+
577
+ /* Tab-style chevron: fixed gap instead of auto-push */
578
+ .vim-settings-panel .vim-panel-group-title::after,
579
+ .vim-bim-body .vim-panel-group-title::after {
580
+ margin-left: 8px;
581
+ }
582
+
583
+ /* Filled section title: solid bg with bold small-caps label */
584
+ .vim-settings-panel .vim-panel-section-title,
585
+ .vim-bim-body .vim-panel-section-title {
586
+ background: var(--c-light-gray);
587
+ font-weight: bold;
588
+ font-size: var(--font-size-xs);
589
+ text-transform: uppercase;
590
+ color: var(--c-darker-gray);
591
+ }
592
+
593
+ /* ================================================================
594
+ Settings Panel
595
+ ================================================================ */
596
+
597
+ .vim-settings-panel {
598
+ position: absolute;
599
+ inset: 0;
600
+ display: flex;
601
+ flex-direction: column;
602
+ }
603
+
604
+ .vim-settings-panel .vim-panel-header {
605
+ flex-shrink: 0;
606
+ background: none;
607
+ padding: 0;
608
+ min-height: var(--size-control);
609
+ }
610
+
611
+ .vim-settings-panel .vim-panel-body {
612
+ flex: 1;
613
+ min-height: 0;
614
+ margin: 0 -0.625rem 0 0;
615
+ overflow-y: auto;
616
+ }
617
+
618
+ .vim-settings-panel .vim-panel-section-title {
619
+ padding: 4px 0.5rem;
620
+ }
621
+
622
+ .vim-settings-panel .vim-panel-entry dt {
623
+ padding: 0 0.5rem;
624
+ }
625
+
626
+ .vim-settings-panel .vim-panel-entry dd {
627
+ padding: 0;
628
+ }
629
+
630
+ /* ============================================================
631
+ Settings Inputs
632
+ ============================================================ */
633
+ .vim-settings-textbox{
634
+ font-size: inherit;
635
+ }
636
+
637
+ /* ============================================================
638
+ Select
639
+ ============================================================ */
640
+ .vim-select {
641
+ position: relative;
642
+ display: inline-block;
643
+ }
644
+
645
+ .vim-select[data-variant="full"] {
646
+ width: 100%;
647
+ }
648
+
649
+ .vim-select[data-disabled] {
650
+ opacity: 0.5;
651
+ pointer-events: none;
652
+ }
653
+
654
+ .vim-select-trigger {
655
+ cursor: pointer;
656
+ text-align: left;
657
+ background: var(--c-white);
658
+ border: 1px solid var(--c-medium-gray);
659
+ display: inline-flex;
660
+ align-items: center;
661
+ gap: var(--gap-xs);
662
+ font-size: var(--font-size-sm);
663
+ padding: 0.125rem 0.25rem;
664
+ border-radius: var(--radius-sm);
665
+ }
666
+
667
+
668
+ .vim-select[data-variant="full"] .vim-select-trigger {
669
+ width: 100%;
670
+ max-width: 120px;
671
+ height: 24px;
672
+ display: flex;
673
+ justify-content: space-between;
674
+ border-radius: 0;
675
+ border-color: var(--c-light-gray);
676
+ }
677
+
678
+ .vim-select-label {
679
+ flex: 1;
680
+ min-width: 0;
681
+ overflow: hidden;
682
+ text-overflow: ellipsis;
683
+ white-space: nowrap;
684
+ }
685
+
686
+ .vim-select-chevron {
687
+ width: 0.75rem;
688
+ height: 0.75rem;
689
+ flex-shrink: 0;
690
+ color: var(--c-light-gray);
691
+ }
692
+
693
+ .vim-select:hover .vim-select-chevron {
694
+ color: var(--c-dark-gray-warm);
695
+ }
696
+
697
+ .vim-select-list {
698
+ position: absolute;
699
+ left: 0;
700
+ top: 100%;
701
+ z-index: var(--z-popup);
702
+ min-width: 100%;
703
+ background: var(--c-white);
704
+ border: 1px solid var(--c-medium-gray);
705
+ box-shadow: var(--shadow-sm);
706
+ border-radius: var(--radius-sm);
707
+ font-size: var(--font-size-sm);
708
+ }
709
+
710
+ .vim-select[data-variant="full"] .vim-select-list {
711
+ right: 0;
712
+ border-radius: 0;
713
+ border-color: var(--c-light-gray);
714
+ }
715
+
716
+ .vim-select-option {
717
+ padding: 0.25rem 0.5rem;
718
+ cursor: pointer;
719
+ white-space: nowrap;
720
+ }
721
+
722
+ .vim-select-option:hover,
723
+ .vim-select-option[data-selected] {
724
+ background: var(--c-lightest-gray);
725
+ }
726
+
727
+ /* ============================================================
728
+ BIM Panel
729
+ ============================================================ */
730
+ .vim-bim-lower {
731
+ display: flex;
732
+ flex-direction: column;
733
+ max-height: 100%;
734
+ }
735
+
736
+ .vim-bim-lower-content {
737
+ flex: 1;
738
+ min-height: 0;
739
+ display: flex;
740
+ flex-direction: column;
741
+ overflow-y: auto;
742
+ overflow-x: hidden;
743
+ }
744
+
745
+ .vim-bim-header-entry {
746
+ display: flex;
747
+ width: 100%;
748
+ }
749
+
750
+ /* 33% label / 67% value split — matches BIM body and all panel entry columns */
751
+ .vim-bim-header-label {
752
+ margin-right: 0.25rem;
753
+ flex-shrink: 0;
754
+ white-space: nowrap;
755
+ overflow: hidden;
756
+ text-overflow: ellipsis;
757
+ color: var(--c-medium-gray);
758
+ width: 33%;
759
+ }
760
+
761
+ .vim-bim-header-value {
762
+ overflow: hidden;
763
+ text-overflow: ellipsis;
764
+ flex-shrink: 1;
765
+ }
766
+
767
+ .vim-bim-section-title {
768
+ display: inline-flex;
769
+ width: auto;
770
+ border-top: 1px solid var(--c-light-gray);
771
+ border-left: 1px solid var(--c-light-gray);
772
+ border-right: 1px solid var(--c-light-gray);
773
+ border-radius: 4px 4px 0 0;
774
+ padding: 0 0.5rem;
775
+ color: var(--c-medium-gray);
776
+ }
777
+
778
+ .vim-bim-group-header {
779
+ display: flex;
780
+ justify-content: space-between;
781
+ align-items: center;
782
+ background: var(--c-light-gray);
783
+ padding: 0 0.5rem;
784
+ }
785
+
786
+ .vim-bim-group-header-label {
787
+ white-space: nowrap;
788
+ overflow: hidden;
789
+ text-overflow: ellipsis;
790
+ }
791
+
792
+ .vim-bim-collapse-icon {
793
+ max-height: 100%;
794
+ transition: transform var(--transition-base);
795
+ transform: rotate(0deg);
796
+ }
797
+
798
+ .vim-bim-collapse-icon[data-open] {
799
+ transform: rotate(180deg);
800
+ }
801
+
802
+ .vim-bim-body-entry {
803
+ display: flex;
804
+ }
805
+
806
+ .vim-bim-body-entry:nth-child(odd) { background: var(--c-white); }
807
+ .vim-bim-body-entry:nth-child(even) { background: transparent; }
808
+
809
+
810
+ .vim-bim-body-entry-title {
811
+ width: 33%;
812
+ padding: 0 0.5rem;
813
+ overflow: hidden;
814
+ text-overflow: ellipsis;
815
+ border-right: 1px solid var(--c-light-gray);
816
+ }
817
+
818
+ .vim-bim-body-entry-value {
819
+ width: 67%;
820
+ overflow: hidden;
821
+ text-overflow: ellipsis;
822
+ padding: 0 0.5rem;
823
+ color: var(--c-medium-gray);
824
+ }
825
+
826
+ /* ================================================================
827
+ BIM Header — flat readonly entries (name / id / category)
828
+ ================================================================ */
829
+
830
+ .vim-bim-header {
831
+ min-width: 0;
832
+ }
833
+
834
+ .vim-bim-header .vim-panel-entry {
835
+ overflow: hidden;
836
+ background: transparent;
837
+ }
838
+
839
+ .vim-bim-header .vim-panel-entry dt {
840
+ flex-shrink: 0;
841
+ width: 33%;
842
+ color: var(--c-medium-gray);
843
+ overflow: hidden;
844
+ text-overflow: ellipsis;
845
+ white-space: nowrap;
846
+ }
847
+
848
+ .vim-bim-header .vim-panel-entry dd {
849
+ display: block;
850
+ flex: 1;
851
+ min-width: 0;
852
+ overflow: hidden;
853
+ text-overflow: ellipsis;
854
+ white-space: nowrap;
855
+ padding: 0;
856
+ }
857
+
858
+ /* ================================================================
859
+ BIM Body — group → section → zebra entries
860
+ ================================================================ */
861
+
862
+ .vim-bim-body {
863
+ min-width: 0;
864
+ }
865
+
866
+ .vim-bim-body .vim-panel-entry {
867
+ overflow: hidden;
868
+ }
869
+
870
+ .vim-bim-body .vim-panel-entry dt {
871
+ flex-shrink: 0;
872
+ width: 33%;
873
+ padding: 0 6px;
874
+ overflow: hidden;
875
+ text-overflow: ellipsis;
876
+ white-space: nowrap;
877
+ border-right: 1px solid var(--c-light-gray);
878
+ }
879
+
880
+ .vim-bim-body .vim-panel-entry dd {
881
+ display: block;
882
+ flex: 1;
883
+ min-width: 0;
884
+ overflow: hidden;
885
+ text-overflow: ellipsis;
886
+ white-space: nowrap;
887
+ padding: 0 0 0 6px;
888
+ color: var(--c-medium-gray);
889
+ }
890
+
891
+ .vim-bim-body .vim-panel-section-title {
892
+ width: 100%;
893
+ padding: 4px 0.5rem 4px 6px;
894
+ }
895
+
896
+ /* ============================================================
897
+ BIM Tree
898
+ ============================================================ */
899
+ .vim-bim-tree .rct-tree-root {
900
+ width: 100%;
901
+ flex:1;
902
+ min-height: 0;
903
+ overflow-y: auto;
904
+ overflow-x: hidden;
905
+ }
906
+
907
+ .vim-bim-tree .rct-tree-item-button{
908
+ gap: var(--gap-xs);
909
+ padding: 0;
910
+ margin-right: 0;
911
+ min-width: 0;
912
+ }
913
+ .vim-bim-tree .rct-tree-item-title{
914
+ flex:1;
915
+ }
916
+
917
+ .vim-bim-tree .rct-tree-item-li{
918
+ padding: 0;
919
+ font-size: inherit;
920
+ }
921
+
922
+ .vim-bim-tree .rct-tree-item-title-container,
923
+ .vim-bim-tree .rct-tree-items-container,
924
+ .vim-bim-tree .rct-tree-root.rct-tree-root-focus,
925
+ .vim-bim-tree .rct-tree-item-title-container-focused,
926
+ .vim-bim-tree .rct-tree-root-focus
927
+ {
928
+ border: 0;
929
+ outline: none;
930
+ }
931
+
932
+ .vim-bim-tree .rct-tree-item-title {
933
+ white-space: nowrap;
934
+ overflow: hidden;
935
+ text-overflow: ellipsis;
936
+ }
937
+
938
+ /* Treeview Arrow */
939
+ .vim-bim-tree .rct-tree-item-arrow {
940
+ flex-shrink: 0;
941
+ display: flex;
942
+ }
943
+
944
+ .vim-bim-tree .rct-tree-item-arrow:has(svg) svg path {
945
+ opacity: 0;
946
+ }
947
+
948
+ .vim-bim-tree .rct-tree-item-arrow:has(svg):before {
949
+ content: '';
950
+ background-position: center;
951
+ background-repeat: no-repeat;
952
+ background-image: url("data:image/svg+xml,%3Csvg id='Arrow' xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect id='frame' width='20' height='20' fill='%238a8d95' opacity='0'/%3E%3Cpath id='icon' d='M100.072,70.536l-3.987,3.987a.938.938,0,0,1-1.6-.663V65.886a.938.938,0,0,1,1.6-.663l3.987,3.987A.937.937,0,0,1,100.072,70.536Z' transform='translate(-87.104 -59.873)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
953
+ position: relative;
954
+ display: block;
955
+ height: 20px;
956
+ width: 20px;
957
+ transition: 0.3s;
958
+ }
959
+
960
+ .vim-bim-tree .rct-tree-item-title-container-expanded > .rct-tree-item-arrow::before {
961
+ transform: rotate(90deg);
962
+ transition: 0.3s;
963
+ }
964
+
965
+ .vim-bim-tree .rct-tree-item-arrow-path {
966
+ fill: var(--c-medium-gray);
967
+ }
968
+
969
+ .vim-bim-tree .rct-tree-items-container > li:nth-child(odd) { background-color: var(--c-white); }
970
+ .vim-bim-tree .rct-tree-items-container > li:nth-child(even) { background-color: transparent; }
971
+
972
+ /* Tree View Select*/
973
+ .vim-bim-tree
974
+ .rct-tree-root:not(.rct-tree-root-focus)
975
+ .rct-tree-item-title-container-selected,
976
+ .vim-bim-tree
977
+ .rct-tree-root.rct-tree-root-focus
978
+ .rct-tree-item-title-container-selected {
979
+ background-color: var(--c-lightest-blue);
980
+ }
981
+
982
+ .vim-bim-tree .parameters:first-child > ul > li h3 {
983
+ border-top-right-radius: 4px;
984
+ }
985
+
986
+ /* Tree View Hover*/
987
+ .vim-bim-tree .rct-tree-item-title-container:hover {
988
+ background-color: var(--c-list-hover);
989
+ }
990
+
991
+ /*
992
+ Tree View Visibility Toggles
993
+ The visibility icon has three states managed through CSS class combinations:
994
+ - .vim-visible (default): hidden (display:none), revealed on hover
995
+ - .vim-hidden (default): always shown with a "hidden" icon
996
+ Hover states change the icon color based on selection context:
997
+ - unselected hover: beige icon
998
+ - selected hover: light-blue icon
999
+ - direct icon hover: royal-blue icon (toggling is imminent)
1000
+ !important needed to override react-complex-tree's inline flex display.
1001
+ */
1002
+ .vim-bim-tree .rct-tree-item-button {
1003
+ display: flex !important;
1004
+ justify-content: space-between !important;
1005
+ margin-right: 0;
1006
+ }
1007
+
1008
+ .vim-bim-tree .rct-tree-item-visibility {
1009
+ flex-shrink: 0;
1010
+ background-repeat: no-repeat;
1011
+ }
1012
+
1013
+ /*default state*/
1014
+ .vim-bim-tree .rct-tree-item-visibility.vim-visible {
1015
+ display: none;
1016
+ }
1017
+
1018
+ .vim-bim-tree .rct-tree-item-visibility.vim-hidden {
1019
+ display: block;
1020
+ background-image: var(--hidden-dark);
1021
+ }
1022
+
1023
+ /* Hover unselected element */
1024
+ .vim-bim-tree .rct-tree-item-button:hover .rct-tree-item-visibility.vim-visible {
1025
+ display: block;
1026
+ background-image: var(--visible-beige);
1027
+ }
1028
+
1029
+ .vim-bim-tree .rct-tree-item-button:hover .rct-tree-item-visibility.vim-hidden {
1030
+ display: block;
1031
+ background-image: var(--hidden-beige);
1032
+ }
1033
+
1034
+ /* Hover selected element */
1035
+ .vim-bim-tree .rct-tree-item-title-container-selected
1036
+ .rct-tree-item-button:hover
1037
+ .rct-tree-item-visibility.vim-visible {
1038
+ display: block;
1039
+ background-image: var(--visible-light-blue);
1040
+ }
1041
+
1042
+ .vim-bim-tree .rct-tree-item-title-container-selected
1043
+ .rct-tree-item-button:hover
1044
+ .rct-tree-item-visibility.vim-hidden {
1045
+ display: block;
1046
+ background-image: var(--hidden-light-blue);
1047
+ }
1048
+
1049
+ /* Hover toggle button*/
1050
+ .vim-bim-tree .rct-tree-item-title-container-selected
1051
+ .rct-tree-item-button
1052
+ .rct-tree-item-visibility.vim-visible:hover,
1053
+ .vim-bim-tree .rct-tree-item-button .rct-tree-item-visibility.vim-visible:hover {
1054
+ display: block;
1055
+ background-image: var(--hidden-royal-blue);
1056
+ }
1057
+
1058
+ .vim-bim-tree .rct-tree-item-title-container-selected
1059
+ .rct-tree-item-button
1060
+ .rct-tree-item-visibility.vim-hidden:hover,
1061
+ .vim-bim-tree .rct-tree-item-button .rct-tree-item-visibility.vim-hidden:hover {
1062
+ display: block;
1063
+ background-image: var(--visible-royal-blue);
1064
+ }
1065
+
1066
+ /* ============================================================
1067
+ BIM Tree (headless-tree)
1068
+ ============================================================ */
1069
+ .vim-ht-container {
1070
+ width: 100%;
1071
+ flex: 1;
1072
+ min-height: 0;
1073
+ overflow-y: auto;
1074
+ overflow-x: hidden;
1075
+ outline: none;
1076
+ }
1077
+
1078
+ .vim-ht-item {
1079
+ display: flex;
1080
+ align-items: center;
1081
+ gap: var(--gap-xs);
1082
+ padding-right: 4px;
1083
+ min-width: 0;
1084
+ cursor: pointer;
1085
+ height: 24px;
1086
+ }
1087
+
1088
+ .vim-ht-item:nth-child(odd) { background-color: var(--c-white); }
1089
+ .vim-ht-item:nth-child(even) { background-color: transparent; }
1090
+
1091
+ .vim-ht-item.vim-ht-selected {
1092
+ background-color: var(--c-lightest-blue);
1093
+ }
1094
+
1095
+ .vim-ht-item:hover {
1096
+ background-color: var(--c-list-hover);
1097
+ }
1098
+
1099
+ .vim-ht-item.vim-ht-selected:hover {
1100
+ background-color: var(--c-light-blue);
1101
+ }
1102
+
1103
+ .vim-ht-arrow {
1104
+ flex-shrink: 0;
1105
+ width: 20px;
1106
+ height: 20px;
1107
+ display: flex;
1108
+ transition: transform 0.3s;
1109
+ }
1110
+
1111
+ .vim-ht-arrow-folder {
1112
+ background-position: center;
1113
+ background-repeat: no-repeat;
1114
+ background-image: url("data:image/svg+xml,%3Csvg id='Arrow' xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect id='frame' width='20' height='20' fill='%238a8d95' opacity='0'/%3E%3Cpath id='icon' d='M100.072,70.536l-3.987,3.987a.938.938,0,0,1-1.6-.663V65.886a.938.938,0,0,1,1.6-.663l3.987,3.987A.937.937,0,0,1,100.072,70.536Z' transform='translate(-87.104 -59.873)' fill='%238a8d95'/%3E%3C/svg%3E%0A");
1115
+ }
1116
+
1117
+ .vim-ht-arrow-open {
1118
+ transform: rotate(90deg);
1119
+ }
1120
+
1121
+ .vim-ht-title {
1122
+ flex: 1;
1123
+ min-width: 0;
1124
+ white-space: nowrap;
1125
+ overflow: hidden;
1126
+ text-overflow: ellipsis;
1127
+ }
1128
+
1129
+ .vim-ht-visibility {
1130
+ flex-shrink: 0;
1131
+ background-repeat: no-repeat;
1132
+ }
1133
+
1134
+ /* Default: visible items hide the icon, hidden items show it */
1135
+ .vim-ht-visibility[data-visibility="visible"] {
1136
+ display: none;
1137
+ }
1138
+
1139
+ .vim-ht-visibility[data-visibility="hidden"] {
1140
+ display: block;
1141
+ background-image: var(--hidden-dark);
1142
+ }
1143
+
1144
+ /* Hover unselected */
1145
+ .vim-ht-item:hover .vim-ht-visibility[data-visibility="visible"] {
1146
+ display: block;
1147
+ background-image: var(--visible-beige);
1148
+ }
1149
+
1150
+ .vim-ht-item:hover .vim-ht-visibility[data-visibility="hidden"] {
1151
+ background-image: var(--hidden-beige);
1152
+ }
1153
+
1154
+ /* Hover selected */
1155
+ .vim-ht-item.vim-ht-selected:hover .vim-ht-visibility[data-visibility="visible"] {
1156
+ display: block;
1157
+ background-image: var(--visible-light-blue);
1158
+ }
1159
+
1160
+ .vim-ht-item.vim-ht-selected:hover .vim-ht-visibility[data-visibility="hidden"] {
1161
+ background-image: var(--hidden-light-blue);
1162
+ }
1163
+
1164
+ /* Hover toggle button directly */
1165
+ .vim-ht-item .vim-ht-visibility[data-visibility="visible"]:hover {
1166
+ display: block;
1167
+ background-image: var(--hidden-royal-blue);
1168
+ }
1169
+
1170
+ .vim-ht-item .vim-ht-visibility[data-visibility="hidden"]:hover {
1171
+ background-image: var(--visible-royal-blue);
1172
+ }
1173
+
1174
+ /* ============================================================
1175
+ Control Bar
1176
+ ============================================================ */
1177
+ .vim-control-bar {
1178
+ pointer-events: auto;
1179
+ position: absolute;
1180
+ left: 0;
1181
+ right: 0;
1182
+ z-index: var(--z-ui);
1183
+ display: flex;
1184
+ flex-wrap: wrap;
1185
+ align-items: center;
1186
+ justify-content: center;
1187
+ margin: 0 0.5rem;
1188
+ min-width: 0;
1189
+ gap: min(var(--gap-sm), 2%);
1190
+ bottom: min(36px, 10%);
1191
+ transition: all var(--transition-base);
1192
+ }
1193
+
1194
+ .vim-control-bar-section {
1195
+ display: flex;
1196
+ align-items: center;
1197
+ border-radius: var(--radius-full);
1198
+ margin-bottom: 0.5rem;
1199
+ box-shadow: var(--shadow-sm);
1200
+ background: var(--c-white);
1201
+ }
1202
+
1203
+ .vim-control-bar-section[data-variant="blue"] {
1204
+ background: var(--c-primary);
1205
+ }
1206
+
1207
+ .vim-control-bar-button {
1208
+ border-radius: var(--radius-full);
1209
+ display: flex;
1210
+ align-items: center;
1211
+ justify-content: center;
1212
+ transition: transform var(--transition-fast);
1213
+ background: none;
1214
+ border: none;
1215
+ cursor: pointer;
1216
+ padding: 0;
1217
+ color: var(--c-medium-gray);
1218
+ }
1219
+
1220
+ .vim-control-bar-button:hover {
1221
+ transform: scale(1.1);
1222
+ }
1223
+
1224
+ /* default: on → primary */
1225
+ .vim-control-bar-button[data-on="true"] {
1226
+ color: var(--c-primary);
1227
+ }
1228
+
1229
+ /* expand: circular (same as default) */
1230
+ .vim-control-bar-button[data-variant="expand"] {
1231
+ border-radius: var(--radius-full);
1232
+ }
1233
+
1234
+ /* expand: on → primary bg + white text */
1235
+ .vim-control-bar-button[data-variant="expand"][data-on="true"] {
1236
+ background: var(--c-primary);
1237
+ color: var(--c-white);
1238
+ }
1239
+
1240
+ /* disabled: off → light gray + no pointer events */
1241
+ .vim-control-bar-button[data-variant="disabled"][data-on="false"],
1242
+ .vim-control-bar-button[data-variant="disabled-default"][data-on="false"] {
1243
+ color: var(--c-light-gray);
1244
+ pointer-events: none;
1245
+ }
1246
+
1247
+ /* disabled: on → medium-gray (not primary) */
1248
+ .vim-control-bar-button[data-variant="disabled"][data-on="true"] {
1249
+ color: var(--c-medium-gray);
1250
+ }
1251
+
1252
+ /* blue section buttons → always white */
1253
+ .vim-control-bar-button[data-variant="blue"] {
1254
+ color: var(--c-white);
1255
+ }
1256
+
1257
+ /* ============================================================
1258
+ Axes Panel
1259
+ ============================================================ */
1260
+ .vim-axes-panel,
1261
+ .vim-axes-panel-empty {
1262
+ position: absolute;
1263
+ z-index: var(--z-ui);
1264
+ display: flex;
1265
+ flex-direction: column;
1266
+ border: 1px solid white;
1267
+ box-shadow: var(--shadow-md);
1268
+ }
1269
+
1270
+ .vim-axes-panel.vim-hidden,
1271
+ .vim-axes-panel-empty.vim-hidden {
1272
+ display: none;
1273
+ }
1274
+
1275
+ .vim-axes-canvas {
1276
+ position: absolute;
1277
+ inset: 0;
1278
+ order: 1;
1279
+ border-radius: inherit;
1280
+ opacity: 0.5;
1281
+ filter: saturate(0);
1282
+ transition: opacity var(--transition-base), filter var(--transition-base);
1283
+ }
1284
+
1285
+ .vim-axes-panel:hover .vim-axes-canvas,
1286
+ .vim-axes-panel-empty:hover .vim-axes-canvas {
1287
+ opacity: 1;
1288
+ filter: saturate(1);
1289
+ }
1290
+
1291
+ .vim-axes-panel-gizmo {
1292
+ position: absolute;
1293
+ }
1294
+
1295
+ .vim-axes-panel-buttons {
1296
+ position: absolute;
1297
+ top: 75%;
1298
+ bottom: 0;
1299
+ left: 0;
1300
+ right: 0;
1301
+ pointer-events: auto;
1302
+ display: flex;
1303
+ align-items: center;
1304
+ justify-content: space-evenly;
1305
+ background: var(--c-white);
1306
+ border-bottom-left-radius: inherit;
1307
+ border-bottom-right-radius: inherit;
1308
+ }
1309
+
1310
+ .vim-axes-button {
1311
+ display: flex;
1312
+ align-items: center;
1313
+ justify-content: center;
1314
+ color: var(--c-medium-gray);
1315
+ transition: color var(--transition-base);
1316
+ background: none;
1317
+ border: none;
1318
+ cursor: pointer;
1319
+ padding: 0;
1320
+ }
1321
+
1322
+ .vim-axes-button:hover {
1323
+ color: var(--c-primary-royal);
1324
+ }
1325
+
1326
+ /* ============================================================
1327
+ Cursors
1328
+ ============================================================ */
1329
+ .cursor-regular {
1330
+ cursor: default;
1331
+ }
1332
+
1333
+ .cursor-orbit:hover {
1334
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LDIwLjIzNGMtNS42NTIsMC0xMC4yNS0yLjYzNi0xMC4yNS01Ljg3NSwwLTEuNzUxLDEuMzA2LTMuMzY2LDMuNjA0LTQuNDgtLjUwOC0uMzEyLS43MDYtLjk2Mi0uNDQtMS40ODgsLjE5NC0uMzg2LC41ODItLjYyNSwxLjAxLS42MjUsLjE0MiwwLC4yODIsLjAyNiwuNDE2LC4wNzlsLjA5NywuMDQyLDIuMTQ4LDEuMDg2Yy42OSwuMzQ5LC45NjksMS4xOTUsLjYyLDEuODg2bC0xLjA4MywyLjE0NWMtLjE5NSwuMzg2LS41ODIsLjYyNS0xLjAxMiwuNjI1LS4xNDEsMC0uMjgtLjAyNS0uNDE0LS4wNzdsLS4wOTgtLjA0NGMtLjU1LS4yNzgtLjY3OC0uODI4LS41NjctMS4zMDYtLjAyMSwuMDExLS4wNDEsLjAyMS0uMDYsLjAzMy0xLjE1NiwuNjUtMS44NDYsMS40NDQtMS44NDYsMi4xMjVzLjY5LDEuNDc2LDEuODQ2LDIuMTI2YzEuNTUzLC44NzMsMy43NTEsMS4zNzQsNi4wMjksMS4zNzRzNC40NzYtLjUwMSw2LjAyOS0xLjM3NGMxLjE1Ni0uNjUsMS44NDYtMS40NDUsMS44NDYtMi4xMjZzLS42OS0xLjQ3NS0xLjg0Ni0yLjEyNWMtMS41NTMtLjg3NC0zLjc1LTEuMzc1LTYuMDI5LTEuMzc1aC0uMTAyYy0uNjI0LDAtMS4xMzItLjQ1Ni0xLjE5Ni0xLjA2Mi0uMDM1LS4zMzQsLjA3My0uNjY4LC4yOTYtLjkxNywuMjIzLS4yNDgsLjU0Mi0uMzkzLC44NzUtLjM5NWguMTI2YzUuNjUyLDAsMTAuMjUsMi42MzUsMTAuMjUsNS44NzRzLTQuNTk4LDUuODc1LTEwLjI1LDUuODc1WiIvPjxwYXRoIGQ9Ik03LjkyNSw4LjAxNmMuMTA4LDAsLjIxNywuMDIsLjMyMywuMDYxLC4wMjYsLjAxMSwuMDUyLC4wMjIsLjA3OCwuMDM1bDIuMTQ1LDEuMDgzYy41NjgsLjI4NywuNzk3LC45ODIsLjUxLDEuNTVsLTEuMDgzLDIuMTQ2Yy0uMTU1LC4zMDgtLjQ2MywuNDg3LS43ODgsLjQ4Ny0uMTA4LDAtLjIxNy0uMDItLjMyNC0uMDYyLS4wMjYtLjAxLS4wNTItLjAyMi0uMDc4LS4wMzUtLjUxMi0uMjU5LS41MzEtLjc5MS0uMzkxLTEuMTY4bC4xNTItLjQxMWMtLjIxNiwuMDk5LS40MjUsLjIwMy0uNjIyLC4zMTMtMS4yNTQsLjcwNi0xLjk3MywxLjU2LTEuOTczLDIuMzQzcy43MTksMS42MzgsMS45NzMsMi4zNDNjMS41ODksLjg5NCwzLjgzMiwxLjQwNyw2LjE1MiwxLjQwN3M0LjU2Mi0uNTEzLDYuMTUyLTEuNDA3YzEuMjU0LS43MDUsMS45NzMtMS41NTksMS45NzMtMi4zNDNzLS43MTktMS42MzgtMS45NzMtMi4zNDNjLTEuNTg5LS44OTQtMy44MzItMS40MDctNi4xNTItMS40MDctLjAzNiwwLS4wNzMsMC0uMTA5LDBoLS4wMDhjLS40OCwwLS44ODMtLjM2Mi0uOTMyLS44NC0uMDU3LS41NSwuMzcyLTEuMDMxLC45MjUtMS4wMzUsLjA0MSwwLC4wODMsMCwuMTI0LDAsNS41MjMsMCwxMCwyLjUxOSwxMCw1LjYyNXMtNC40NzcsNS42MjUtMTAsNS42MjUtMTAtMi41MTgtMTAtNS42MjVjMC0xLjgxNywxLjUzMi0zLjQzMiwzLjkwOS00LjQ2bC0uMDA0LS4wMTEtLjM2Ni0uMTkxYy0uNDM4LS4yMjktLjYxOS0uNzY1LS40MDItMS4xOTQsLjE1Ni0uMzA4LC40NjQtLjQ4NywuNzg4LS40ODdtMC0uNWgwYy0uNTI0LDAtLjk5NywuMjkyLTEuMjM0LC43NjItLjI2MSwuNTE4LS4xNTcsMS4xMzEsLjIxNCwxLjU0OS0yLjE3NiwxLjE1MS0zLjQwNSwyLjc3Mi0zLjQwNSw0LjUzMywwLDMuNDM1LDQuNjEyLDYuMTI1LDEwLjUsNi4xMjVzMTAuNS0yLjY5LDEwLjUtNi4xMjUtNC42MTItNi4xMjUtMTAuNS02LjEyNWgtLjA2NXMtLjA1OSwwLS4wNTksMGMtLjQwNywuMDAzLS43OTMsLjE3Ny0xLjA2MywuNDc5LS4yNywuMzAyLS40MDEsLjcwNi0uMzU5LDEuMTA4LC4wNzYsLjczNCwuNjkxLDEuMjg4LDEuNDMsMS4yODhoLjA2NXMuMDUxLDAsLjA1MSwwYzIuMjM3LDAsNC4zOSwuNDg5LDUuOTA3LDEuMzQyLDEuMDc2LC42MDUsMS43MTgsMS4zMTksMS43MTgsMS45MDhzLS42NDIsMS4zMDItMS43MTgsMS45MDdjLTEuNTE3LC44NTQtMy42NywxLjM0My01LjkwNywxLjM0M3MtNC4zOS0uNDg5LTUuOTA3LTEuMzQyYy0xLjA3Ni0uNjA1LTEuNzE4LTEuMzE4LTEuNzE4LTEuOTA4LDAtLjUyMywuNTA3LTEuMTQ0LDEuMzc0LTEuNzAxLC4wMzgsLjQyMiwuMjU2LC44MjgsLjczNCwxLjA3LC4wNDIsLjAyMSwuMDgyLC4wMzksLjEyMSwuMDU0LC4xNjMsLjA2NCwuMzMzLC4wOTYsLjUwNiwuMDk2LC41MjQsMCwuOTk3LS4yOTIsMS4yMzQtLjc2MmwxLjA4My0yLjE0NWMuMTk5LS4zOTQsLjIzMy0uODQyLC4wOTQtMS4yNjJzLS40MzEtLjc2MS0uODI1LS45NmwtMi4xNDYtMS4wODNjLS4wMzUtLjAxOC0uMDc0LS4wMzUtLjExMy0uMDUxLS4xNzEtLjA2Ny0uMzQxLS4wOTktLjUxMy0uMDk5aDBaIi8+PC9nPjxnPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTQiIGN5PSIxNC4zNTkiIHI9IjIuNDM4Ii8+PHBhdGggZD0iTTE0LDEyLjE3MmMxLjIwNiwwLDIuMTg4LC45ODEsMi4xODgsMi4xODhzLS45ODEsMi4xODgtMi4xODgsMi4xODgtMi4xODgtLjk4MS0yLjE4OC0yLjE4OCwuOTgxLTIuMTg4LDIuMTg4LTIuMTg4bTAtLjVjLTEuNDgyLDAtMi42ODgsMS4yMDYtMi42ODgsMi42ODhzMS4yMDYsMi42ODgsMi42ODgsMi42ODgsMi42ODgtMS4yMDYsMi42ODgtMi42ODgtMS4yMDYtMi42ODgtMi42ODgtMi42ODhoMFoiLz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48L2c+PC9zdmc+'),
1335
+ auto;
1336
+ }
1337
+
1338
+ .cursor-look:hover {
1339
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIxLjQ0NywyMy4zMTJjLS4xOTYsMC0uMzkyLS4wNS0uNTY3LS4xNDVMNS45ODMsMTUuMDQzYy0uMzgxLS4yMDgtLjYxOS0uNjA3LS42MTktMS4wNDNzLjIzNy0uODM1LC42MTktMS4wNDNMMjAuODc5LDQuODMyYy4xNzQtLjA5NSwuMzctLjE0NSwuNTY3LS4xNDUsLjQzNSwwLC44MzUsLjIzNiwxLjA0MywuNjE4LC4zMTMsLjU3NSwuMTAxLDEuMjk5LS40NzQsMS42MTJsLTQuNTA1LDIuNDU3Yy45NTksMS4zNDcsMS40ODUsMi45NzgsMS40ODUsNC42MjVzLS41MjUsMy4yNzgtMS40ODUsNC42MjVsNC41MDUsMi40NTdjLjU3NCwuMzEzLC43ODcsMS4wMzcsLjQ3NCwxLjYxMS0uMjA5LC4zODItLjYwOSwuNjE5LTEuMDQ0LC42MTlabS02LjA0Mi01LjgzN2MuMDQzLS4wNTUsLjA4NC0uMTA5LC4xMjUtLjE2NS0xLjAwMS0uMzAyLTEuNzIyLTEuNjQ3LTEuNzIyLTMuMzExcy43MjgtMy4wMjIsMS43MTgtMy4zMTVjLS4wNC0uMDU1LS4wODEtLjEwNy0uMTIyLS4xNmwtNi4zNzMsMy40NzYsNi4zNzMsMy40NzZaIi8+PHBhdGggZD0iTTIxLjQ0Nyw0LjkzOGMuMzMyLDAsLjY1NCwuMTc3LC44MjQsLjQ4OSwuMjQ4LC40NTUsLjA4MSwxLjAyNC0uMzc0LDEuMjcybC00Ljc1NywyLjU5NWMxLjAzMSwxLjM0LDEuNjA2LDIuOTk5LDEuNjA2LDQuNzA3cy0uNTc1LDMuMzY3LTEuNjA2LDQuNzA3bDQuNzU3LDIuNTk1Yy40NTUsLjI0OCwuNjIyLC44MTcsLjM3NCwxLjI3Mi0uMTcsLjMxMi0uNDkyLC40ODktLjgyNCwuNDg5LS4xNTIsMC0uMzA2LS4wMzctLjQ0OC0uMTE0TDYuMTAzLDE0LjgyM2MtLjMwMS0uMTY1LS40ODktLjQ4LS40ODktLjgyM3MuMTg4LS42NTksLjQ4OS0uODIzTDIwLjk5OSw1LjA1MmMuMTQzLS4wNzgsLjI5Ni0uMTE0LC40NDgtLjExNG0tNS45OCwxMi44NTdjLjE4MS0uMjEyLC4zNDUtLjQzNywuNDk0LS42Ny0uMDA5LDAtLjAxOCwwLS4wMjYsMC0xLjAzNiwwLTEuODc1LTEuMzk5LTEuODc1LTMuMTI1cy44MzktMy4xMjUsMS44NzUtMy4xMjVjLjAwOSwwLC4wMTgsMCwuMDI2LDAtLjE0OC0uMjM0LS4zMTMtLjQ1OC0uNDk0LS42N2wtNi45NTYsMy43OTQsNi45NTYsMy43OTRtNS45OC0xMy4zNTdjLS4yMzksMC0uNDc2LC4wNjEtLjY4NywuMTc1TDUuODY0LDEyLjczOGMtLjQ2MiwuMjUyLS43NDksLjczNi0uNzQ5LDEuMjYycy4yODcsMS4wMSwuNzQ5LDEuMjYybDE0Ljg5Niw4LjEyNWMuMjExLC4xMTUsLjQ0OCwuMTc1LC42ODgsLjE3NSwuNTI3LDAsMS4wMS0uMjg3LDEuMjYzLS43NSwuMzgtLjY5NSwuMTIyLTEuNTctLjU3My0xLjk1bC00LjI2Mi0yLjMyNWMuODg4LTEuMzQyLDEuMzcyLTIuOTMzLDEuMzcyLTQuNTM4cy0uNDg0LTMuMTk2LTEuMzcyLTQuNTM4bDQuMjYyLTIuMzI1Yy42OTYtLjM4LC45NTMtMS4yNTUsLjU3My0xLjk1LS4yNTItLjQ2Mi0uNzM2LS43NS0xLjI2My0uNzVoMFpNOS41NTQsMTRsNC42ODMtMi41NTRjLS40MjMsLjY1LS42NzgsMS41NDgtLjY3OCwyLjU1NHMuMjU1LDEuOTAxLC42NzMsMi41NTFsLTQuNjc4LTIuNTUxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48L2c+PC9zdmc+'),
1340
+ auto;
1341
+ }
1342
+
1343
+ .cursor-pan:hover {
1344
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC4xOTcsMjMuMDYyYy0xLjY2NiwwLTMuMTgzLS44MDgtNC4wNTctMi4xNjJsLTQuNTY3LTYuOTdjLS4yMDktLjMxOC0uMjc1LS42OTUtLjE4Ni0xLjA2MXMuMzIyLS42NzgsLjY1Ni0uODc2Yy4yMzUtLjE0LC41MDUtLjIxNCwuNzgxLS4yMTQsLjUxNCwwLC45ODIsLjI0NywxLjI1NCwuNjYxbDEuOTkzLDMuMDM4VjcuNjkxYzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2NS45NDdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2VjUuODE2YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2Ny4xOTdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2VjcuMDY2YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2Ny4xOTdjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2di01LjI5M2MwLS42NDIsLjUxMy0xLjE2OSwxLjE2OS0xLjIsLjAyMSwwLC4wNDEtLjAwMSwuMDYyLS4wMDEsLjY3OCwwLDEuMjMsLjUyNiwxLjIzLDEuMTcydjkuNjE5YzAsMi40OTktMi4xMzQsNC41MzEtNC43NTgsNC41MzFoLTEuOTQ0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjczNSwxNi44MTJ2MS43MTljMCwyLjQxNi0yLjA1Nyw0LjM3NS00LjU5NCw0LjM3NWgtMS45NDRjLTEuNjA5LDAtMy4wNzMtLjc4MS0zLjkxNy0yLjA4OHYtLjAwMnMtLjAwMi0uMDAyLS4wMDItLjAwMmwtNC41NjYtNi45NjdjLS4zODQtLjU4NS0uMTk2LTEuMzU3LC40MTgtMS43MjIsLjIwOS0uMTI0LC40NDktLjE5LC42OTQtLjE5LC40NTcsMCwuODczLC4yMiwxLjExNSwuNTg4bDEuMDgzLDEuNjUxLDEuMjEzLDEuODQ4VjcuNjkxYzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djUuOTQ3YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMlY1LjgxNmMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjE5N2MwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJWNy4wNjZjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2Ny4xOTdjMCwuMTczLC4xNDcsLjMxMiwuMzI4LC4zMTJoMGMuMTgxLDAsLjMyOC0uMTQsLjMyOC0uMzEydi01LjI5M2MwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjkwMVoiLz48cGF0aCBkPSJNMTkuNjY4LDcuMjcxYy0uNDAzLDAtLjc3MywuMTMzLTEuMDY2LC4zNTR2LS41ODhjMC0uOTA2LS43NzEtMS42NDEtMS43MjMtMS42NDEtLjQwNCwwLS43NzUsLjEzMy0xLjA2OCwuMzU1LS4wMi0uODktLjc4Mi0xLjYwNS0xLjcyMS0xLjYwNS0uOTUxLDAtMS43MjMsLjczNS0xLjcyMywxLjY0MXYuNTg4Yy0uMjkzLS4yMjEtLjY2My0uMzU0LTEuMDY2LS4zNTQtLjk1MSwwLTEuNzIzLC43MzUtMS43MjMsMS42NDF2Ni4xOGwtMS4wODMtMS42NTFjLS4zNzMtLjU2OS0xLjAxNS0uODgyLTEuNjcxLS44ODItLjM1NiwwLS43MTcsLjA5Mi0xLjA0MSwuMjg1LS45MjIsLjU0OS0xLjIwMywxLjcwNi0uNjI2LDIuNTg0bDQuNTY1LDYuOTY3Yy45MjQsMS40MzEsMi41ODMsMi4zODYsNC40NzYsMi4zODZoMS45NDRjMi44OTksMCw1LjI1LTIuMjM5LDUuMjUtNVY4LjkxMmMwLS45MDYtLjc3MS0xLjY0MS0xLjcyMy0xLjY0MVptMS4wNjYsOS41NDF2MS43MTljMCwyLjQxNi0yLjA1Nyw0LjM3NS00LjU5NCw0LjM3NWgtMS45NDRjLTEuNjA5LDAtMy4wNzMtLjc4MS0zLjkxNy0yLjA4OHYtLjAwMnMtLjAwMi0uMDAyLS4wMDItLjAwMmwtNC41NjYtNi45NjdjLS4zODQtLjU4NS0uMTk2LTEuMzU3LC40MTgtMS43MjIsLjIwOS0uMTI0LC40NDktLjE5LC42OTQtLjE5LC40NTcsMCwuODczLC4yMiwxLjExNSwuNTg4bDEuMDgzLDEuNjUxLDEuMjEzLDEuODQ4VjcuNjkxYzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djUuOTQ3YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMlY1LjgxNmMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjE5N2MwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJWNy4wNjZjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2Ny4xOTdjMCwuMTczLC4xNDcsLjMxMiwuMzI4LC4zMTJoMGMuMTgxLDAsLjMyOC0uMTQsLjMyOC0uMzEydi01LjI5M2MwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHY3LjkwMVoiLz48L2c+PC9nPjwvc3ZnPg=='),
1345
+ auto;
1346
+ }
1347
+
1348
+ .cursor-zoom:hover {
1349
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogIDxnIGlkPSJhIiBkYXRhLW5hbWU9IkZSQU1FUyI+DQogICAgPGcgaWQ9ImIiIGRhdGEtbmFtZT0iZnJhbWUiPg0KICAgICAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIi8+DQogICAgPC9nPg0KICA8L2c+DQogIDxnIGlkPSJjIiBkYXRhLW5hbWU9IklDT05TIj4NCiAgICA8cGF0aCBpZD0iZCIgZGF0YS1uYW1lPSJQYXRoIDE1MDc4IiBkPSJNMTQsNC43ODFjLS4wNTYsMC0uMTEyLC4wMDMtLjE2NywuMDA4cy0uMTExLC4wMTMtLjE2NSwuMDI0LS4xMDgsLjAyNC0uMTYxLC4wMzljLS4wNTMsLjAxNi0uMTA0LC4wMzQtLjE1NSwuMDU1bC00LjIyMSwxLjc2Yy0uMTU0LC4wNjMtLjI5NiwuMTUzLS40MTksLjI2NS0uMTA4LC4wOTktLjE5MywuMjE5LS4yNTEsLjM1Mi0uMDU0LC4xMjUtLjA3NiwuMjYxLS4wNjUsLjM5NywuMDE0LC4xNDIsLjA2NCwuMjc3LC4xNDUsLjM5NCwuMDU5LC4wODYsLjEzMSwuMTYzLC4yMTIsLjIyOCwuMDg1LC4wNjgsLjE3OSwuMTI1LC4yNzgsLjE2OSwuMTA0LC4wNDcsLjIxMywuMDgyLC4zMjUsLjEwNSwuMTE2LC4wMjQsLjIzNCwuMDM2LC4zNTIsLjAzNiwuMDU3LDAsLjExNC0uMDAzLC4xNzItLjAwOHMuMTE1LS4wMTQsLjE3MS0uMDI1Yy4wNTctLjAxMSwuMTEzLS4wMjUsLjE2OS0uMDQyLC4wNTYtLjAxNywuMTExLS4wMzcsLjE2NS0uMDZsMi4yNTgtLjk2NS0uNzcsMTEuOTU2LTMuMzA3LTEuNzE3Yy0uMDU5LS4wMy0uMTE5LS4wNTctLjE4MS0uMDgtLjA2Mi0uMDIzLS4xMjUtLjA0MS0uMTg5LS4wNTYtLjA2NC0uMDE1LS4xMjgtLjAyNi0uMTkzLS4wMzMtLjA2NS0uMDA3LS4xMy0uMDExLS4xOTYtLjAxMS0uMTI3LDAtLjI1NCwuMDE0LS4zNzgsLjA0LS4xMjQsLjAyNi0uMjQ0LC4wNjYtLjM1OSwuMTE4LS4xMTQsLjA1Mi0uMjIzLC4xMTYtLjMyMiwuMTkzLS4xLC4wNzYtLjE4OSwuMTY1LS4yNjYsLjI2NC0uMTExLC4xNDEtLjE5MSwuMzA0LS4yMzQsLjQ3OS0uMDM5LC4xNjItLjA0LC4zMzEtLjAwNCwuNDk0LC4wMzcsLjE2NSwuMTExLC4zMTksLjIxNiwuNDUyLC4xMTUsLjE0NSwuMjYsLjI2NSwuNDI1LC4zNTFsNi4zMDksMy4zNjhjLjA2MiwuMDMzLC4xMjYsLjA2MiwuMTkyLC4wODcsLjA2NiwuMDI1LC4xMzMsLjA0NiwuMjAxLC4wNjIsLjI3NCwuMDY2LC41NiwuMDY2LC44MzQsMCwuMDY4LS4wMTcsLjEzNS0uMDM3LC4yMDEtLjA2MiwuMDY2LS4wMjUsLjEzLS4wNTQsLjE5Mi0uMDg3bDYuMzA3LTMuMzY4Yy4xNjQtLjA4NiwuMzA5LS4yMDYsLjQyNC0uMzUxLC4xMDUtLjEzMywuMTc4LS4yODcsLjIxNi0uNDUyLC4wMzYtLjE2MywuMDM1LS4zMzItLjAwNC0uNDk0LS4wNDMtLjE3NC0uMTIyLS4zMzgtLjIzNC0uNDc5LS4wNzctLjA5OS0uMTY3LS4xODgtLjI2Ni0uMjY0LS4xLS4wNzYtLjIwOC0uMTQxLS4zMjItLjE5My0uMTE1LS4wNTItLjIzNi0uMDkyLS4zNTktLjExOC0uMTI0LS4wMjctLjI1MS0uMDQtLjM3OC0uMDQtLjA2NSwwLS4xMzEsLjAwNC0uMTk2LC4wMTEtLjA2NSwuMDA3LS4xMywuMDE4LS4xOTMsLjAzMy0uMDY0LC4wMTUtLjEyNywuMDM0LS4xODksLjA1Ni0uMDYyLC4wMjMtLjEyMiwuMDQ5LS4xODEsLjA4bC0zLjMwNywxLjcxNy0uNzcyLTExLjk1NywyLjI1OCwuOTY1Yy4wNTQsLjAyMywuMTA5LC4wNDMsLjE2NSwuMDYsLjA1NiwuMDE3LC4xMTIsLjAzMSwuMTY5LC4wNDIsLjA1NywuMDExLC4xMTQsLjAyLC4xNzEsLjAyNXMuMTE1LC4wMDgsLjE3MiwuMDA4Yy4xMTgsMCwuMjM2LS4wMTIsLjM1Mi0uMDM2LC4xMTItLjAyMywuMjIxLS4wNTgsLjMyNS0uMTA1LC4wOTktLjA0NCwuMTkzLS4xMDEsLjI3OC0uMTY5LC4wODItLjA2NSwuMTUzLS4xNDIsLjIxMi0uMjI4LC4wODEtLjExNywuMTMxLS4yNTMsLjE0NS0uMzk0LC4wMTItLjEzNS0uMDExLS4yNzEtLjA2NC0uMzk2LS4wNTgtLjEzNC0uMTQ0LS4yNTQtLjI1Mi0uMzUyLS4xMjMtLjExMi0uMjY1LS4yMDItLjQxOS0uMjY1bC00LjIyMS0xLjc2MWMtLjA1MS0uMDIxLS4xMDItLjA0LS4xNTUtLjA1NS0uMDUyLS4wMTYtLjEwNi0uMDI5LS4xNjEtLjAzOXMtLjEwOS0uMDE4LS4xNjUtLjAyNC0uMTExLS4wMDgtLjE2Ny0uMDA4IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNSIvPg0KICAgIDxnPg0KICAgICAgPHBhdGggZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIgZmlsbD0iIzIxMjMyOSIvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+'),
1350
+ auto;
1351
+ }
1352
+
1353
+ .cursor-rect:hover {
1354
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTUuNDY5IiB5PSI0LjI5NSIgd2lkdGg9IjMiIGhlaWdodD0iMi4zNzUiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTE3LjQzOCw0LjU0NWMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi4zMTJjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjkzOGMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjMxMmMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC45MzhtMC0uNWgtLjkzOGMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjMxMmMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguOTM4Yy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uMzEyYzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIxLjM0NCw3LjkyYy0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMSwwLS4xMjEtLjA5OC0uMjE5LS4yMTktLjIxOS0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMXYtLjMxMmMwLS41NjgsLjQ2Mi0xLjAzMSwxLjAzMS0xLjAzMWguNzgxYzEsMCwxLjgxMiwuODEzLDEuODEyLDEuODEydi43ODFjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS4zMTJaIi8+PHBhdGggZD0iTTIwLjg3NSw0LjU0NWMuODU5LDAsMS41NjIsLjcwMywxLjU2MiwxLjU2MnYuNzgxYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS4zMTJjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODEsMC0uMjU5LS4yMS0uNDY5LS40NjktLjQ2OS0uNDMsMC0uNzgxLS4zNTItLjc4MS0uNzgxdi0uMzEyYzAtLjQzLC4zNTItLjc4MSwuNzgxLS43ODFoLjc4MW0wLS41aC0uNzgxYy0uNzA2LDAtMS4yODEsLjU3NS0xLjI4MSwxLjI4MXYuMzEyYzAsLjcwNywuNTc1LDEuMjgxLDEuMjgxLDEuMjgxLS4wMzEsLjY3NSwuNTQ0LDEuMjUsMS4yNSwxLjI1aC4zMTJjLjcwNiwwLDEuMjgxLS41NzUsMS4yODEtMS4yODF2LS43ODFjMC0xLjEzNy0uOTI1LTIuMDYyLTIuMDYyLTIuMDYyaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMjAuMzEzIiB5PSI4LjUxNCIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTIxLjY1Niw4Ljc2NGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iOC4yODEiIHk9IjQuMjk1IiB3aWR0aD0iMyIgaGVpZ2h0PSIyLjM3NSIgcng9IjEuMDMxIiByeT0iMS4wMzEiLz48cGF0aCBkPSJNMTAuMjUsNC41NDVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjguMjgxIiB5PSIyMC41NDUiIHdpZHRoPSIzIiBoZWlnaHQ9IjIuMzc1IiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik0xMC4yNSwyMC43OTVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjExLjg3NSIgeT0iNC4yOTUiIHdpZHRoPSIzIiBoZWlnaHQ9IjIuMzc1IiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik0xMy44NDQsNC41NDVjLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS45MzhjLS40MywwLS43ODEtLjM1Mi0uNzgxLS43ODF2LS4zMTJjMC0uNDMsLjM1Mi0uNzgxLC43ODEtLjc4MWguOTM4bTAtLjVoLS45MzhjLS43MDYsMC0xLjI4MSwuNTc1LTEuMjgxLDEuMjgxdi4zMTJjMCwuNzA3LC41NzUsMS4yODEsMS4yODEsMS4yODFoLjkzOGMuNzA2LDAsMS4yODEtLjU3NSwxLjI4MS0xLjI4MXYtLjMxMmMwLS43MDctLjU3NS0xLjI4MS0xLjI4MS0xLjI4MWgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01LjA5NCw3LjkyYy0uNTY5LDAtMS4wMzEtLjQ2My0xLjAzMS0xLjAzMXYtLjc4MWMwLS45OTksLjgxMy0xLjgxMiwxLjgxMi0xLjgxMmguNzgxYy41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxdi4zMTJjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzEtLjEyMSwwLS4yMTksLjA5OC0uMjE5LC4yMTksMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS4zMTJaIi8+PHBhdGggZD0iTTYuNjU2LDQuNTQ1Yy40MywwLC43ODEsLjM1MiwuNzgxLC43ODF2LjMxMmMwLC40My0uMzUyLC43ODEtLjc4MSwuNzgxLS4yNTksMC0uNDY5LC4yMS0uNDY5LC40NjksMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjc4MWMwLS44NTksLjcwMy0xLjU2MiwxLjU2Mi0xLjU2MmguNzgxbTAtLjVoLS43ODFjLTEuMTM3LDAtMi4wNjIsLjkyNS0yLjA2MiwyLjA2MnYuNzgxYzAsLjcwNywuNTc1LDEuMjgxLDEuMjgxLDEuMjgxaC4zMTJjLjcwNiwwLDEuMjgxLS41NzUsMS4yODEtMS4yODEsLjAxOCwwLC4wMzUsMCwuMDUzLDAsLjY1MiwwLDEuMTk3LS41NjMsMS4xOTctMS4yNTF2LS4zMTJjMC0uNzA3LS41NzUtMS4yODEtMS4yODEtMS4yODFoMFoiLz48L2c+PGc+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0LjA2MiIgeT0iOC41MTQiIHdpZHRoPSIyLjM3NSIgaGVpZ2h0PSIzIiByeD0iMS4wMzEiIHJ5PSIxLjAzMSIvPjxwYXRoIGQ9Ik01LjQwNiw4Ljc2NGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iNC4wNjIiIHk9IjEyLjEwNyIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTUuNDA2LDEyLjM1OGMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iNC4wNjIiIHk9IjE1LjcwMSIgd2lkdGg9IjIuMzc1IiBoZWlnaHQ9IjMiIHJ4PSIxLjAzMSIgcnk9IjEuMDMxIi8+PHBhdGggZD0iTTUuNDA2LDE1Ljk1MmMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxdi45MzhjMCwuNDMtLjM1MiwuNzgxLS43ODEsLjc4MWgtLjMxMmMtLjQzLDAtLjc4MS0uMzUyLS43ODEtLjc4MXYtLjkzOGMwLS40MywuMzUyLS43ODEsLjc4MS0uNzgxaC4zMTJtMC0uNWgtLjMxMmMtLjcwNiwwLTEuMjgxLC41NzUtMS4yODEsMS4yODF2LjkzOGMwLC43MDcsLjU3NSwxLjI4MSwxLjI4MSwxLjI4MWguMzEyYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uOTM4YzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxaDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUuODc1LDIyLjkyYy0xLDAtMS44MTItLjgxMy0xLjgxMi0xLjgxMnYtLjc4MWMwLS41NjgsLjQ2Mi0xLjAzMSwxLjAzMS0xLjAzMWguMzEyYy41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxLDAsLjEyMSwuMDk4LC4yMTksLjIxOSwuMjE5LC41NjksMCwxLjAzMSwuNDYzLDEuMDMxLDEuMDMxdi4zMTJjMCwuNTY4LS40NjIsMS4wMzEtMS4wMzEsMS4wMzFoLS43ODFaIi8+PHBhdGggZD0iTTUuNDA2LDE5LjU0NWMuNDMsMCwuNzgxLC4zNTIsLjc4MSwuNzgxLDAsLjI1OSwuMjEsLjQ2OSwuNDY5LC40NjksLjQzLDAsLjc4MSwuMzUyLC43ODEsLjc4MXYuMzEyYzAsLjQzLS4zNTIsLjc4MS0uNzgxLC43ODFoLS43ODFjLS44NTksMC0xLjU2Mi0uNzAzLTEuNTYyLTEuNTYydi0uNzgxYzAtLjQzLC4zNTItLjc4MSwuNzgxLS43ODFoLjMxMm0wLS41aC0uMzEyYy0uNzA2LDAtMS4yODEsLjU3NS0xLjI4MSwxLjI4MXYuNzgxYzAsMS4xMzcsLjkyNSwyLjA2MiwyLjA2MiwyLjA2MmguNzgxYy43MDYsMCwxLjI4MS0uNTc1LDEuMjgxLTEuMjgxdi0uMzEyYzAtLjcwNy0uNTc1LTEuMjgxLTEuMjgxLTEuMjgxLC4wMzEtLjY3NS0uNTQ0LTEuMjUtMS4yNS0xLjI1aDBaIi8+PC9nPjwvZz48Zz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi42MjIsMjQuMjVjLS4zMTgsMC0uNjE2LS4xMjMtLjgzOS0uMzQ3bC0xLjE5MS0xLjE5Yy0xLjEyMywuNzUtMi40MjQsMS4xNDUtMy43OCwxLjE0NWwtLjE4Mi0uMDAyYy0zLjY1MS0uMDk2LTYuNTYzLTMuMDMyLTYuNjI4LTYuNjg1LS4wMzMtMS44NDUsLjY2LTMuNTg1LDEuOTUyLTQuODk5LDEuMjkyLTEuMzE1LDMuMDE3LTIuMDM5LDQuODYtMi4wMzloLjEyM2MzLjY1MywuMDY1LDYuNTksMi45NzcsNi42ODgsNi42MjgsLjAzNSwxLjMwMi0uMjk3LDIuNTY5LS45NjIsMy42NzhsMS4yNDMsMS4yNDRjLjIyNCwuMjI0LC4zNDcsLjUyMSwuMzQ3LC44NHMtLjEyMywuNjE1LS4zNDcsLjgzOWwtLjQ0MiwuNDQyYy0uMjI0LC4yMjQtLjUyMiwuMzQ3LS44NCwuMzQ3Wm0tNS44MS0xMS4xMzFjLTEuMDc4LDAtMi4xMjIsLjQ1My0yLjg2MiwxLjI0Mi0uNzUxLC44LTEuMTI1LDEuODQ1LTEuMDU2LDIuOTQxLC4xMjUsMS45NjIsMS43LDMuNTM1LDMuNjYxLDMuNjYxLC4wODYsLjAwNSwuMTcyLC4wMDgsLjI1NywuMDA4LDEuMDc4LDAsMi4xMjItLjQ1MywyLjg2Mi0xLjI0MiwuNzUxLS44LDEuMTI1LTEuODQ1LDEuMDU2LTIuOTQxLS4xMjUtMS45NjItMS43LTMuNTM1LTMuNjYxLTMuNjYxLS4wODYtLjAwNS0uMTcyLS4wMDgtLjI1Ny0uMDA4WiIvPjxwYXRoIGQ9Ik0xNi44MTIsMTAuNDgzYy4wMzksMCwuMDc5LDAsLjExOCwwLDMuNDkxLC4wNjIsNi4zNDksMi44OTMsNi40NDIsNi4zODMsLjAzNiwxLjM2OC0uMzQ3LDIuNjQzLTEuMDI5LDMuNzA5bDEuMzgzLDEuMzgzYy4zNjUsLjM2NCwuMzY1LC45NjEsMCwxLjMyNmwtLjQ0MiwuNDQyYy0uMTgyLC4xODMtLjQyMywuMjczLS42NjMsLjI3M3MtLjQ4MS0uMDkxLS42NjMtLjI3M2wtMS4zMzgtMS4zMzhjLTEuMDc0LC43NjctMi4zODgsMS4yMi0zLjgwOSwxLjIyLS4wNTgsMC0uMTE3LDAtLjE3Ni0uMDAyLTMuNDktLjA5Mi02LjMyMi0yLjk0OS02LjM4NS02LjQzOS0uMDY2LTMuNjgsMi44OTctNi42ODMsNi41NjEtNi42ODNtMCwxMC43MzljMi4zOTMsMCw0LjMyMy0yLjAyMyw0LjE2OC00LjQ0OS0uMTMzLTIuMDgxLTEuODE0LTMuNzYyLTMuODk0LTMuODk1LS4wOTItLjAwNi0uMTgzLS4wMDktLjI3My0uMDA5LTIuMzkzLDAtNC4zMjIsMi4wMjMtNC4xNjcsNC40NDksLjEzMywyLjA4MSwxLjgxNCwzLjc2MSwzLjg5NCwzLjg5NSwuMDkxLC4wMDYsLjE4MiwuMDA5LC4yNzIsLjAwOW0wLTExLjIzOWMtMS45MTEsMC0zLjcsLjc1LTUuMDM5LDIuMTE0LTEuMzM5LDEuMzYzLTIuMDU3LDMuMTY2LTIuMDIyLDUuMDc4LC4wNjgsMy43ODYsMy4wODYsNi44MzEsNi44NzEsNi45MzFsLjE4OSwuMDAyYzEuMzM3LDAsMi42MjMtLjM3MSwzLjc0Ni0xLjA3NmwxLjA0OCwxLjA0OGMuMjcxLC4yNzEsLjYzMiwuNDIsMS4wMTYsLjQycy43NDYtLjE0OSwxLjAxNy0uNDJsLjQ0Mi0uNDQyYy4yNzEtLjI3MSwuNDItLjYzMiwuNDItMS4wMTdzLS4xNDktLjc0Ni0uNDItMS4wMTZsLTEuMTA3LTEuMTA3Yy42MjQtMS4xMSwuOTM0LTIuMzYyLC45LTMuNjQ1LS4xMDEtMy43ODUtMy4xNDYtNi44MDMtNi45MzMtNi44N2gtLjEyN1ptMCwxMC43MzhjLS4wOCwwLS4xNi0uMDAyLS4yNDEtLjAwOC0xLjgzNi0uMTE4LTMuMzEtMS41OTEtMy40MjctMy40MjctLjA2Ni0xLjAyNywuMjg1LTIuMDA1LC45ODgtMi43NTQsLjcwNC0uNzUsMS42NTYtMS4xNjQsMi42OC0xLjE2NCwuMDgsMCwuMTYsLjAwMiwuMjQxLC4wMDgsMS44MzcsLjExNywzLjMxLDEuNTkxLDMuNDI3LDMuNDI3LC4wNjYsMS4wMjctLjI4NSwyLjAwNS0uOTg4LDIuNzU0LS43MDQsLjc1LTEuNjU2LDEuMTY0LTIuNjgxLDEuMTY0aDBaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE2LjgxMiwyMC4xMDRjLS42NTUsMC0xLjE4OC0uNTMyLTEuMTg4LTEuMTg4di0uNjg4aC0uNjg4Yy0uNjU1LDAtMS4xODgtLjUzMi0xLjE4OC0xLjE4OHMuNTMzLTEuMTg4LDEuMTg4LTEuMTg4aC42ODh2LS42ODhjMC0uNjU1LC41MzMtMS4xODgsMS4xODgtMS4xODhzMS4xODgsLjUzMiwxLjE4OCwxLjE4OHYuNjg4aC42ODhjLjY1NSwwLDEuMTg4LC41MzIsMS4xODgsMS4xODhzLS41MzMsMS4xODgtMS4xODgsMS4xODhoLS42ODh2LjY4OGMwLC42NTUtLjUzMywxLjE4OC0xLjE4OCwxLjE4OFoiLz48cGF0aCBkPSJNMTYuODEyLDE0LjIyOWMuNTE4LDAsLjkzOCwuNDE5LC45MzgsLjkzOHYuOTM4aC45MzhjLjUxOCwwLC45MzgsLjQxOSwuOTM4LC45MzhzLS40MiwuOTM4LS45MzgsLjkzOGgtLjkzOHYuOTM4YzAsLjUxOC0uNDIsLjkzOC0uOTM4LC45MzhzLS45MzgtLjQyLS45MzgtLjkzOHYtLjkzOGgtLjkzOGMtLjUxOCwwLS45MzgtLjQyLS45MzgtLjkzOHMuNDItLjkzOCwuOTM4LS45MzhoLjkzOHYtLjkzOGMwLS41MTgsLjQyLS45MzgsLjkzOC0uOTM4bTAtLjVjLS43OTMsMC0xLjQzOCwuNjQ1LTEuNDM4LDEuNDM4di40MzhoLS40MzhjLS43OTMsMC0xLjQzOCwuNjQ1LTEuNDM4LDEuNDM4cy42NDUsMS40MzgsMS40MzgsMS40MzhoLjQzOHYuNDM4YzAsLjc5MiwuNjQ1LDEuNDM4LDEuNDM4LDEuNDM4czEuNDM4LS42NDUsMS40MzgtMS40Mzh2LS40MzhoLjQzOGMuNzkzLDAsMS40MzgtLjY0NSwxLjQzOC0xLjQzOHMtLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgtLjQzOHYtLjQzOGMwLS43OTItLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgwWiIvPjwvZz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjQ5LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiLz48L2c+PC9nPjwvc3ZnPg=='),
1355
+ auto;
1356
+ }
1357
+
1358
+ .cursor-measure:hover {
1359
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTEsLmNscy0ye2ZpbGw6I2ZmZjt9LmNscy0ye3N0cm9rZTojMDAwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDouNXB4O30uY2xzLTN7ZmlsbDojMjEyMzI5O30uY2xzLTR7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQuNjI1LDE2LjEyNWMtLjQ4MiwwLS44NzUtLjM5My0uODc1LS44NzVWNS4yNWMwLS40ODIsLjM5My0uODc1LC44NzUtLjg3NUgyMi44NzVjLjQ4MiwwLC44NzUsLjM5MywuODc1LC44NzVWMTUuMjVjMCwuNDgyLS4zOTMsLjg3NS0uODc1LC44NzVINC42MjVabTE2Ljc1LTIuMzc1VjYuNzVINi4xMjV2N2guODc1di0yYzAtLjU1MiwuNDQ5LTEsMS0xczEsLjQ0OCwxLDF2MmguODc1di0zLjVjMC0uNTUyLC40NDktMSwxLTFzMSwuNDQ4LDEsMXYzLjVoLjg3NXYtMmMwLS41NTIsLjQ0OS0xLDEtMXMxLC40NDgsMSwxdjJoLjg3NXYtMy41YzAtLjU1MiwuNDQ5LTEsMS0xczEsLjQ0OCwxLDF2My41aC44NzV2LTJjMC0uNTUyLC40NDktMSwxLTFzMSwuNDQ4LDEsMXYyaC44NzVaIi8+PHBhdGggZD0iTTIyLjg3NSw0LjYyNWMuMzQ0LDAsLjYyNSwuMjgxLC42MjUsLjYyNVYxNS4yNWMwLC4zNDQtLjI4MSwuNjI1LS42MjUsLjYyNUg0LjYyNWMtLjM0NCwwLS42MjUtLjI4MS0uNjI1LS42MjVWNS4yNWMwLS4zNDQsLjI4MS0uNjI1LC42MjUtLjYyNUgyMi44NzVNNS44NzUsMTRoMS4zNzV2LTIuMjVjMC0uNDE0LC4zMzYtLjc1LC43NS0uNzVzLjc1LC4zMzYsLjc1LC43NXYyLjI1aDEuMzc1di0zLjc1YzAtLjQxNCwuMzM2LS43NSwuNzUtLjc1cy43NSwuMzM2LC43NSwuNzV2My43NWgxLjM3NXYtMi4yNWMwLS40MTQsLjMzNi0uNzUsLjc1LS43NXMuNzUsLjMzNiwuNzUsLjc1djIuMjVoMS4zNzV2LTMuNzVjMC0uNDE0LC4zMzYtLjc1LC43NS0uNzVzLjc1LC4zMzYsLjc1LC43NXYzLjc1aDEuMzc1di0yLjI1YzAtLjQxNCwuMzM2LS43NSwuNzUtLjc1cy43NSwuMzM2LC43NSwuNzV2Mi4yNWgxLjM3NVY2LjVINS44NzV2Ny41TTIyLjg3NSw0LjEyNUg0LjYyNWMtLjYyLDAtMS4xMjUsLjUwNS0xLjEyNSwxLjEyNVYxNS4yNWMwLC42MiwuNTA1LDEuMTI1LDEuMTI1LDEuMTI1SDIyLjg3NWMuNjIsMCwxLjEyNS0uNTA1LDEuMTI1LTEuMTI1VjUuMjVjMC0uNjItLjUwNS0xLjEyNS0xLjEyNS0xLjEyNWgwWk02LjM3NSw3aDE0Ljc1djYuNWgtLjM3NXYtMS43NWMwLS42ODktLjU2MS0xLjI1LTEuMjUtMS4yNXMtMS4yNSwuNTYxLTEuMjUsMS4yNXYxLjc1aC0uMzc1di0zLjI1YzAtLjY4OS0uNTYxLTEuMjUtMS4yNS0xLjI1cy0xLjI1LC41NjEtMS4yNSwxLjI1djMuMjVoLS4zNzV2LTEuNzVjMC0uNjg5LS41NjEtMS4yNS0xLjI1LTEuMjVzLTEuMjUsLjU2MS0xLjI1LDEuMjV2MS43NWgtLjM3NXYtMy4yNWMwLS42ODktLjU2MS0xLjI1LTEuMjUtMS4yNXMtMS4yNSwuNTYxLTEuMjUsMS4yNXYzLjI1aC0uMzc1di0xLjc1YzAtLjY4OS0uNTYxLTEuMjUtMS4yNS0xLjI1cy0xLjI1LC41NjEtMS4yNSwxLjI1djEuNzVoLS4zNzVWN2gwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi41NjIsMjMuNjI1Yy0uNjU1LDAtMS4xODgtLjUzMi0xLjE4OC0xLjE4OHYtNC4zNzVjMC0uNjU1LC41MzMtMS4xODgsMS4xODgtMS4xODhzMS4xODgsLjUzMiwxLjE4OCwxLjE4OHY0LjM3NWMwLC42NTUtLjUzMywxLjE4OC0xLjE4OCwxLjE4OFoiLz48cGF0aCBkPSJNMjIuNTYyLDE3LjEyNWMuNTE4LDAsLjkzOCwuNDIsLjkzOCwuOTM4djQuMzc1YzAsLjUxOC0uNDIsLjkzOC0uOTM4LC45MzhzLS45MzgtLjQyLS45MzgtLjkzOHYtNC4zNzVjMC0uNTE4LC40Mi0uOTM4LC45MzgtLjkzOG0wLS41Yy0uNzkzLDAtMS40MzgsLjY0NS0xLjQzOCwxLjQzOHY0LjM3NWMwLC43OTIsLjY0NSwxLjQzOCwxLjQzOCwxLjQzOHMxLjQzOC0uNjQ1LDEuNDM4LTEuNDM4di00LjM3NWMwLS43OTItLjY0NS0xLjQzOC0xLjQzOC0xLjQzOGgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00LjkzOCwyMy42MjVjLS42NTUsMC0xLjE4OC0uNTMyLTEuMTg4LTEuMTg4di00LjM3NWMwLS42NTUsLjUzMy0xLjE4OCwxLjE4OC0xLjE4OHMxLjE4OCwuNTMyLDEuMTg4LDEuMTg4djQuMzc1YzAsLjY1NS0uNTMzLDEuMTg4LTEuMTg4LDEuMTg4WiIvPjxwYXRoIGQ9Ik00LjkzOCwxNy4xMjVjLjUxOCwwLC45MzgsLjQyLC45MzgsLjkzOHY0LjM3NWMwLC41MTgtLjQyLC45MzgtLjkzOCwuOTM4cy0uOTM4LS40Mi0uOTM4LS45Mzh2LTQuMzc1YzAtLjUxOCwuNDItLjkzOCwuOTM4LS45MzhtMC0uNWMtLjc5MywwLTEuNDM4LC42NDUtMS40MzgsMS40Mzh2NC4zNzVjMCwuNzkyLC42NDUsMS40MzgsMS40MzgsMS40MzhzMS40MzgtLjY0NSwxLjQzOC0xLjQzOHYtNC4zNzVjMC0uNzkyLS42NDUtMS40MzgtMS40MzgtMS40MzhoMFoiLz48L2c+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNOS43MDEsMjEuMTg3aDguMDk4cy0uNTg1LC41ODYtLjU4NSwuNTg2Yy0uMzY2LC4zNjYtLjM2NiwuOTYsMCwxLjMyNiwuMzY2LC4zNjYsLjk2LC4zNjYsMS4zMjYsMGwyLjE4Ni0yLjE4NmMuMTctLjE3LC4yNzUtLjQwNCwuMjc1LS42NjNzLS4xMDUtLjQ5My0uMjc1LS42NjNsLTIuMTg3LTIuMTg3Yy0uMzY2LS4zNjYtLjk2LS4zNjYtMS4zMjYsMC0uMzY2LC4zNjYtLjM2NiwuOTYsMCwxLjMyNmwuNTg2LC41ODZIOS43MDFzLjU4NS0uNTg2LC41ODUtLjU4NmMuMzY2LS4zNjYsLjM2Ni0uOTYsMC0xLjMyNnMtLjk2LS4zNjYtMS4zMjYsMGwtMi4xODYsMi4xODZjLS4xNywuMTctLjI3NSwuNDA0LS4yNzUsLjY2M3MuMTA1LC40OTMsLjI3NSwuNjYzbDIuMTg3LDIuMTg3Yy4zNjYsLjM2NiwuOTYsLjM2NiwxLjMyNiwwLC4zNjYtLjM2NiwuMzY2LS45NiwwLTEuMzI2bC0uNTg2LS41ODZaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjQ5LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiLz48L2c+PC9nPjwvc3ZnPg=='),
1360
+ auto;
1361
+ }
1362
+
1363
+ .cursor-section-box:hover {
1364
+ cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogIDxnIGlkPSJhIiBkYXRhLW5hbWU9IkZSQU1FUyI+DQogICAgPGcgaWQ9ImIiIGRhdGEtbmFtZT0iZnJhbWUiPg0KICAgICAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIi8+DQogICAgPC9nPg0KICA8L2c+DQogIDxnIGlkPSJjIiBkYXRhLW5hbWU9IklDT05TIj4NCiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xLjAwNyw1Ljc1Yy0uMzcyLDAtLjc1Ny0uMjgxLS43NTctLjc1MlYxQy4yNSwuNTg3LC41ODYsLjI1LDEsLjI1aDMuOTk4Yy4zNjksMCwuNiwuMjM5LC42OTMsLjQ2M3MuMDk5LC41NTctLjE2MywuODE3TDEuNTMsNS41MjhjLS4xODMsLjE4NC0uMzg2LC4yMjItLjUyMywuMjIyWiIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggZD0iTTQuOTk4LC41Yy4zMSwwLC40MzIsLjIzNiwuNDYyLC4zMDlzLjExMSwuMzI2LS4xMDgsLjU0NUwxLjM1NCw1LjM1MmMtLjEyMywuMTIzLS4yNTYsLjE0OC0uMzQ2LC4xNDgtLjI1LDAtLjUwNy0uMTg4LS41MDctLjUwMlYxYzAtLjI3NiwuMjI0LS41LC41LS41aDMuOTk4bTAtLjVIMUMuNDQ4LDAsMCwuNDQ4LDAsMXYzLjk5OGMwLC42MDMsLjQ5MywxLjAwMiwxLjAwNywxLjAwMiwuMjQ2LDAsLjQ5Ni0uMDkxLC43LS4yOTVMNS43MDUsMS43MDdjLjYzLS42MywuMTg0LTEuNzA3LS43MDctMS43MDdoMFoiIGZpbGw9IiMyMTIzMjkiLz4NCiAgICA8L2c+DQogICAgPGc+DQogICAgICA8Zz4NCiAgICAgICAgPHBhdGggZD0iTTEyLjgyMSwyMi44OTdsLS4xMzgtLjA1Ni03LjQzLTQuMjc5Yy0uNDY5LS4yNzEtLjc2LS43NzQtLjc2LTEuMzE0VjguOTI4YzAtLjU0LC4yOTEtMS4wNDQsLjc2LTEuMzE0TDEyLjQ3MywzLjQ1M2MuMjMxLS4xMzMsLjQ5NC0uMjAzLC43Ni0uMjAzcy41MjksLjA3LC43NiwuMjAzbDcuNDMxLDQuMjhjLjEyNywuMDc0LC4yMDUsLjIxLC4yMDUsLjM1NSwwLC4xNDctLjA3OCwuMjc5LS4yMDYsLjM1M2wtOC4xMjUsNC42ODN2OS4zNjVjMCwuMTEyLS4wNDQsLjIxNy0uMTI1LC4yOTQtLjA3NywuMDc0LS4xNzgsLjExNC0uMjgzLC4xMTRoLS4wNjhabS0xLjYxMS0zLjMxdi02LjUzN2wtNC42MjktMi42Njd2Ni41MzdsNC42MjksMi42NjdabTEuMDUyLTguMjczbDUuNTk5LTMuMjI3LTQuNjI5LTIuNjY3LTUuNTk5LDMuMjI4LDQuNjI5LDIuNjY2WiIgZmlsbD0iI2ZmZiIvPg0KICAgICAgICA8cGF0aCBkPSJNMTMuMjMyLDMuNWMuMjE5LDAsLjQzOCwuMDU3LC42MzUsLjE3bDcuNDMxLDQuMjhjLjEwNiwuMDYxLC4xMDYsLjIxMywwLC4yNzRsLTguMjUxLDQuNzU1djkuNTFjMCwuMDkzLS4wNzYsLjE1OS0uMTU5LC4xNTktLjAyNywwLS4wNTQtLjAwNy0uMDc5LS4wMjFsLTcuNDMxLTQuMjgxYy0uMzkzLS4yMjYtLjYzNS0uNjQ1LS42MzUtMS4wOTdWOC45MjhjMC0uNDUzLC4yNDItLjg3MSwuNjM1LTEuMDk4TDEyLjU5OCwzLjY3Yy4xOTctLjExMywuNDE2LS4xNywuNjM1LS4xN20tLjk3LDguMTAzbDYuMS0zLjUxNi01LjEzLTIuOTU1LTYuMSwzLjUxNiw1LjEzLDIuOTU1bS0uODAyLDguNDE3di03LjExNGwtNS4xMy0yLjk1NXY3LjExNGw1LjEzLDIuOTU1TTEzLjIzMiwzYy0uMzEsMC0uNjE2LC4wODItLjg4NSwuMjM3TDUuMTI4LDcuMzk3Yy0uNTQ2LC4zMTUtLjg4NSwuOTAxLS44ODUsMS41MzF2OC4zMjFjMCwuNjMsLjMzOSwxLjIxNiwuODg1LDEuNTMxbDcuNDMxLDQuMjhjLjEsLjA1OCwuMjE0LC4wODgsLjMyOSwuMDg4LC4zNjMsMCwuNjU5LS4yOTUsLjY1OS0uNjU5VjEzLjI2OWw4LjAwMS00LjYxMWMuMjAzLS4xMTcsLjMzLS4zMzUsLjMzLS41NywwLS4yMzUtLjEyNi0uNDUzLS4zMy0uNTdMMTQuMTE3LDMuMjM3Yy0uMjY4LS4xNTUtLjU3NC0uMjM3LS44ODQtLjIzN2gwWm0tNS4wOTgsNS42NDhsNS4wOTgtMi45MzgsNC4xMjgsMi4zNzctNS4wOTgsMi45MzgtNC4xMjgtMi4zNzdoMFptLTEuMzA0LDguMTI4di01Ljk2bDQuMTMsMi4zNzh2NS45NmwtNC4xMy0yLjM3OGgwWiIvPg0KICAgICAgPC9nPg0KICAgICAgPGc+DQogICAgICAgIDxwYXRoIGQ9Ik0xNC45NzcsMjMuNzVjLS4yMjUsMC0uNDA4LS4xODMtLjQwOC0uNDA3VjE0LjA3MmMwLS4yMDIsLjEwOS0uMzksLjI4NC0uNDg5bDguMTAxLTQuNjY5LC4xNDUtLjAyMWMuMjI1LDAsLjQwOCwuMTg0LC40MDgsLjQwOHY4LjcyNWMwLC41MzgtLjI5LDEuMDM5LS43NTYsMS4zMDhsLTcuNjI3LDQuMzk2LS4xNDYsLjAyMVoiIGZpbGw9IiNmZmYiLz4NCiAgICAgICAgPHBhdGggZD0iTTIzLjA5OSw5LjE0M2MuMDgyLDAsLjE1OCwuMDY2LC4xNTgsLjE1OHY4LjcyNWMwLC40NS0uMjQsLjg2Ni0uNjMxLDEuMDkxbC03LjU3LDQuMzYyYy0uMDI1LC4wMTUtLjA1MiwuMDIxLS4wNzksLjAyMS0uMDgzLDAtLjE1OC0uMDY2LS4xNTgtLjE1OFYxNC4wNzJjMC0uMTEzLC4wNi0uMjE2LC4xNTgtLjI3M2w4LjA0My00LjYzNWMuMDI1LS4wMTUsLjA1Mi0uMDIxLC4wNzktLjAyMW0wLS41Yy0uMTE1LDAtLjIyOCwuMDMxLS4zMjgsLjA4OGwtOC4wNDMsNC42MzVjLS4yNTIsLjE0Ni0uNDA4LC40MTctLjQwOCwuNzA2djkuMjdjMCwuMzYzLC4yOTUsLjY1OCwuNjU4LC42NTgsLjExNSwwLC4yMjgtLjAzMSwuMzI4LS4wODhsNy41NzEtNC4zNjNjLjU0My0uMzEzLC44ODEtLjg5NywuODgxLTEuNTI0VjkuMzAxYzAtLjM2My0uMjk1LS42NTgtLjY1OC0uNjU4aDBaIi8+DQogICAgICA8L2c+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4='),
1365
+ auto;
1366
+ }
1367
+
1368
+ /* ============================================================
1369
+ Measure
1370
+ ============================================================ */
1371
+
1372
+ .vim-text-renderer .vim-measure {
1373
+ font-size: var(--font-size-lg);
1374
+ font-weight: var(--font-weight-semibold);
1375
+ box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
1376
+ border-radius: 2px;
1377
+ }
1378
+
1379
+ .vim-text-renderer .vim-measure table tr {
1380
+ border: none;
1381
+ }
1382
+
1383
+ .vim-text-renderer .vim-measure-label-x {
1384
+ background-color: var(--c-axe-x);
1385
+ padding: 0.25rem 0.75rem;
1386
+ }
1387
+
1388
+ .vim-text-renderer .vim-measure-label-y {
1389
+ background-color: var(--c-axe-y);
1390
+ padding: 0.25rem 0.75rem;
1391
+ }
1392
+
1393
+ .vim-text-renderer .vim-measure-label-z {
1394
+ background-color: var(--c-axe-z);
1395
+ padding: 0.25rem 0.75rem;
1396
+ }
1397
+
1398
+ .vim-text-renderer .vim-measure-label-d {
1399
+ background-color: var(--c-darkest-gray);
1400
+ padding: 0.25rem 0.75rem;
1401
+ }
1402
+
1403
+ .vim-text-renderer .vim-measure:nth-of-type(5) table tr {
1404
+ border: 1px solid var(--c-darkest-gray);
1405
+ }
1406
+
1407
+ /* ============================================================
1408
+ Loading
1409
+ ============================================================ */
1410
+
1411
+ .vim-loading-widget {
1412
+ width: 100%;
1413
+ min-height: 5px;
1414
+ max-height: 10px;
1415
+ border-radius: 5px;
1416
+ display: inline-block;
1417
+ position: relative;
1418
+ background: var(--c-lightest-gray);
1419
+ overflow: hidden;
1420
+ }
1421
+
1422
+ .vim-loading-widget::after {
1423
+ content: '';
1424
+ width: 130px;
1425
+ min-height: 5px;
1426
+ max-height: 10px;
1427
+ border-radius: 5px;
1428
+ background: var(--c-primary);
1429
+ position: absolute;
1430
+ top: 0;
1431
+ left: 0;
1432
+ box-sizing: border-box;
1433
+ animation: animloader 2s linear infinite;
1434
+ }
1435
+
1436
+ @keyframes animloader {
1437
+ 0% {
1438
+ left: 0;
1439
+ transform: translateX(-100%);
1440
+ }
1441
+
1442
+ 100% {
1443
+ left: 100%;
1444
+ transform: translateX(0%);
1445
+ }
1446
+ }
1447
+
1448
+ /* ============================================================
1449
+ Container Layout
1450
+ ============================================================ */
1451
+ .vim-component {
1452
+ inset: 0;
1453
+ }
1454
+
1455
+ .vim-gfx {
1456
+ position: absolute;
1457
+ inset: 0;
1458
+ pointer-events: none;
1459
+ }
1460
+
1461
+ .vim-ui {
1462
+ position: absolute;
1463
+ inset: 0;
1464
+ }
1465
+
1466
+ /* ============================================================
1467
+ Overlay
1468
+ ============================================================ */
1469
+ .vim-overlay {
1470
+ position: absolute;
1471
+ top: 0;
1472
+ left: 0;
1473
+ z-index: var(--z-overlay);
1474
+ width: 100%;
1475
+ height: 100%;
1476
+ touch-action: none;
1477
+ }
1478
+
1479
+ /* ============================================================
1480
+ Rest of Screen
1481
+ ============================================================ */
1482
+ .vim-rest-of-screen {
1483
+ position: absolute;
1484
+ right: 0;
1485
+ top: 0;
1486
+ bottom: 0;
1487
+ }
1488
+
1489
+ /* ============================================================
1490
+ Side Panel
1491
+ ============================================================ */
1492
+ .vim-side-panel {
1493
+ top: 0;
1494
+ left: 0;
1495
+ z-index: var(--z-ui);
1496
+ background: var(--c-lightest-gray);
1497
+ color: var(--c-darker-gray);
1498
+ border-right: 1px solid var(--c-light-gray);
1499
+ height: 100%;
1500
+ }
1501
+
1502
+ .vim-side-panel[data-hidden] {
1503
+ display: none;
1504
+ }
1505
+
1506
+ .vim-side-panel-handle {
1507
+ position: absolute;
1508
+ top: 0;
1509
+ right: -3px;
1510
+ width: 6px;
1511
+ height: 100%;
1512
+ cursor: col-resize;
1513
+ z-index: var(--z-panel);
1514
+ }
1515
+
1516
+ .vim-side-panel-nav {
1517
+ z-index: var(--z-panel);
1518
+ position: absolute;
1519
+ right: 0;
1520
+ top: 0;
1521
+ width: var(--size-control);
1522
+ height: var(--size-control);
1523
+ color: var(--c-medium-gray);
1524
+ background: none;
1525
+ border: none;
1526
+ cursor: pointer;
1527
+ padding: 0;
1528
+ }
1529
+
1530
+ .vim-side-panel-nav::before,
1531
+ .vim-side-panel-nav::after {
1532
+ content: '';
1533
+ position: absolute;
1534
+ top: 50%;
1535
+ left: 50%;
1536
+ width: 16px;
1537
+ height: 1px;
1538
+ background: currentColor;
1539
+ }
1540
+
1541
+ .vim-side-panel-nav::before { transform: translate(-50%, -50%) rotate(45deg); }
1542
+ .vim-side-panel-nav::after { transform: translate(-50%, -50%) rotate(-45deg); }
1543
+
1544
+ .vim-side-panel-content {
1545
+ position: absolute;
1546
+ top: 0;
1547
+ bottom: 0;
1548
+ left: 0;
1549
+ right: 0;
1550
+ }
1551
+
1552
+ /* ============================================================
1553
+ Logo
1554
+ ============================================================ */
1555
+ .vim-logo {
1556
+ position: absolute;
1557
+ top: 1rem;
1558
+ left: 1rem;
1559
+ display: flex;
1560
+ pointer-events: auto;
1561
+ }
1562
+
1563
+ .vim-logo-img {
1564
+ position: absolute;
1565
+ max-width: 100%;
1566
+ }
1567
+
1568
+ /* ============================================================
1569
+ Performance Counter
1570
+ ============================================================ */
1571
+ .vim-performance-div.vim-hidden { display: none; }
1572
+
1573
+ .vim-performance {
1574
+ position: absolute;
1575
+ right: 1.5rem;
1576
+ left: auto;
1577
+ top: 13rem;
1578
+ }
1579
+
1580
+ /* ============================================================
1581
+ Help
1582
+ ============================================================ */
1583
+ .vim-help-blocker {
1584
+ position: absolute;
1585
+ display: flex;
1586
+ flex-direction: column;
1587
+ justify-content: center;
1588
+ max-width: 900px;
1589
+ width: 90%;
1590
+ height: 80%;
1591
+ padding: 1.25rem;
1592
+ }
1593
+
1594
+ .vim-help-top {
1595
+ display: flex;
1596
+ justify-content: center;
1597
+ }
1598
+
1599
+ .vim-help-title {
1600
+ text-align: center;
1601
+ font-weight: bold;
1602
+ text-transform: uppercase;
1603
+ color: var(--c-white);
1604
+ }
1605
+
1606
+ .vim-help-img {
1607
+ min-height: 0;
1608
+ flex: 1;
1609
+ }
1610
+
1611
+ /* ============================================================
1612
+ Modal
1613
+ ============================================================ */
1614
+ .vim-modal {
1615
+ position: absolute;
1616
+ inset: 0;
1617
+ z-index: var(--z-modal);
1618
+ display: flex;
1619
+ align-items: center;
1620
+ justify-content: center;
1621
+ background: var(--c-overflow);
1622
+ }
1623
+
1624
+ .vim-help-close {
1625
+ position: absolute;
1626
+ top: 20px;
1627
+ right: 20px;
1628
+ color: var(--c-white);
1629
+ background: none;
1630
+ border: none;
1631
+ cursor: pointer;
1632
+ padding: 0;
1633
+ }
1634
+
1635
+ /* ============================================================
1636
+ Toast
1637
+ ============================================================ */
1638
+ .vim-menu-toast-wrapper {
1639
+ pointer-events: none;
1640
+ position: absolute;
1641
+ top: 10%;
1642
+ display: flex;
1643
+ }
1644
+
1645
+ .vim-menu-toast {
1646
+ margin: auto;
1647
+ display: flex;
1648
+ align-items: center;
1649
+ justify-content: space-between;
1650
+ border-radius: var(--radius-sm);
1651
+ background: var(--c-dark-gray-warm);
1652
+ padding: 0.5rem 1.25rem;
1653
+ box-shadow: var(--shadow-lg);
1654
+ transition: opacity var(--transition-fast);
1655
+ gap: var(--gap-xs);
1656
+ }
1657
+
1658
+ .vim-menu-toast[data-visible="false"] {
1659
+ opacity: 0;
1660
+ }
1661
+
1662
+ .vim-menu-toast[data-visible="true"] {
1663
+ opacity: 1;
1664
+ }
1665
+
1666
+ .vim-menu-toast-label {
1667
+ font-size: var(--font-size-base);
1668
+ font-weight: var(--font-weight-semibold);
1669
+ text-transform: uppercase;
1670
+ color: var(--c-light-gray);
1671
+ }
1672
+
1673
+ .vim-menu-toast-value {
1674
+ font-size: 1.125rem;
1675
+ font-weight: bold;
1676
+ color: var(--c-white);
1677
+ }
1678
+
1679
+ /* ============================================================
1680
+ BIM Tree
1681
+ ============================================================ */
1682
+ .vim-bim-no-results {
1683
+ flex: 1;
1684
+ display: flex;
1685
+ align-items: center;
1686
+ justify-content: center;
1687
+ margin-top: 4px;
1688
+ font-size: var(--font-size-sm);
1689
+ color: var(--c-medium-gray);
1690
+ padding: 1rem 0.5rem;
1691
+ text-align: center;
1692
+ }
1693
+
1694
+ .vim-bim-tree {
1695
+ flex: 1;
1696
+ display: flex;
1697
+ width: 100%;
1698
+ margin-top: 4px;
1699
+ min-height: 0;
1700
+ border: 1px solid var(--c-light-gray);
1701
+ }
1702
+
1703
+ /* ============================================================
1704
+ BIM Panel
1705
+ ============================================================ */
1706
+ .vim-bim-panel {
1707
+ position: absolute;
1708
+ inset: 0;
1709
+ }
1710
+
1711
+ .vim-bim-panel[data-hidden] {
1712
+ display: none;
1713
+ }
1714
+
1715
+ .vim-bim-upper {
1716
+ display: flex;
1717
+ flex-direction: column;
1718
+ position: absolute;
1719
+ width: 100%;
1720
+ height: 49%;
1721
+ }
1722
+
1723
+ .vim-bim-upper[data-full] {
1724
+ height: 100%;
1725
+ }
1726
+
1727
+ .vim-bim-upper-title {
1728
+ text-transform: uppercase;
1729
+ font-size: var(--font-size-sm);
1730
+ font-weight: bold;
1731
+ min-height: var(--size-control);
1732
+ flex-shrink: 0;
1733
+ display: flex;
1734
+ align-items: center;
1735
+ }
1736
+
1737
+ .vim-bim-lower-title {
1738
+ font-weight: bold;
1739
+ text-transform: uppercase;
1740
+ min-height: var(--size-control);
1741
+ flex-shrink: 0;
1742
+ font-size: var(--font-size-xs);
1743
+ display: flex;
1744
+ align-items: center;
1745
+ margin: 0.625rem 0 0;
1746
+ }
1747
+
1748
+ .vim-bim-lower-container {
1749
+ position: absolute;
1750
+ top: 50%;
1751
+ bottom: 0;
1752
+ left: 0;
1753
+ right: 0;
1754
+ }
1755
+
1756
+ .vim-bim-lower-container[data-full] {
1757
+ top: 0;
1758
+ }
1759
+
1760
+ .vim-bim-divider {
1761
+ position: absolute;
1762
+ top: 50%;
1763
+ width: 100%;
1764
+ border: none;
1765
+ border-top: 1px solid var(--c-gray-divider);
1766
+ }
1767
+
1768
+ /* ============================================================
1769
+ Loading Box
1770
+ ============================================================ */
1771
+ .vim-loading-box {
1772
+ display: flex;
1773
+ flex-direction: column;
1774
+ max-width: 320px;
1775
+ width: 72%;
1776
+ align-self: center;
1777
+ border-radius: var(--radius-sm);
1778
+ background: var(--c-white);
1779
+ padding: 1rem 1.25rem;
1780
+ box-shadow: var(--shadow-md);
1781
+ }
1782
+
1783
+ .vim-loading-title {
1784
+ width: 100%;
1785
+ color: var(--c-medium-gray);
1786
+ font-size: var(--font-size-base);
1787
+ font-weight: normal;
1788
+ margin: 0 0 0.5rem;
1789
+ }
1790
+
1791
+ .vim-loading-header-row {
1792
+ display: flex;
1793
+ width: 100%;
1794
+ justify-content: space-between;
1795
+ gap: var(--gap-sm);
1796
+ }
1797
+
1798
+ .vim-loading-header-row span:first-child {
1799
+ flex: 1;
1800
+ }
1801
+
1802
+ .vim-loading-header-row span:last-child {
1803
+ white-space: nowrap;
1804
+ }
1805
+
1806
+ .vim-ultra-suggestion {
1807
+ color: var(--c-secondary-yellow);
1808
+ font-size: var(--font-size-base);
1809
+ text-align: center;
1810
+ max-width: 28rem;
1811
+ margin: 0.5rem auto 0;
1812
+ }
1813
+
1814
+ .vim-ultra-suggestion a {
1815
+ color: var(--c-primary);
1816
+ text-decoration: underline;
1817
+ font-weight: bold;
1818
+ }
1819
+
1820
+ /* ============================================================
1821
+ Message Box
1822
+ ============================================================ */
1823
+ .vim-message-box {
1824
+ max-height: 80%;
1825
+ max-width: 80%;
1826
+ width: 424px;
1827
+ background: var(--c-white);
1828
+ border-radius: var(--radius-md);
1829
+ box-shadow: 0 4px 16px rgba(33, 39, 51, 0.5);
1830
+ font-family: var(--font-family);
1831
+ overflow: auto;
1832
+ padding: 1.5rem;
1833
+ }
1834
+
1835
+ .vim-message-box-header {
1836
+ display: flex;
1837
+ justify-content: space-between;
1838
+ align-items: center;
1839
+ }
1840
+
1841
+ .vim-message-box-title {
1842
+ font-weight: bold;
1843
+ font-size: var(--font-size-xl);
1844
+ color: var(--c-darker-gray);
1845
+ }
1846
+
1847
+ .vim-message-box-btn {
1848
+ color: var(--c-darker-gray);
1849
+ font-size: var(--font-size-xl);
1850
+ background: none;
1851
+ border: none;
1852
+ cursor: pointer;
1853
+ padding: 0;
1854
+ }
1855
+
1856
+ .vim-message-box-body {
1857
+ color: var(--c-darker-gray);
1858
+ white-space: pre-wrap;
1859
+ }
1860
+
1861
+ .vim-footer {
1862
+ display: flex;
1863
+ justify-content: flex-start;
1864
+ }
1865
+
1866
+ .vim-divider {
1867
+ border: none;
1868
+ border-top: 1px solid var(--c-gray-divider);
1869
+ margin: 1.5rem 0;
1870
+ }
1871
+
1872
+ /* ============================================================
1873
+ Context Menu
1874
+ ============================================================ */
1875
+ .vim-context-menu-popup {
1876
+ z-index: var(--z-popup);
1877
+ width: 240px;
1878
+ border-radius: var(--radius-sm);
1879
+ background: var(--c-white);
1880
+ padding: 0.25rem 0;
1881
+ color: var(--c-darker-gray);
1882
+ box-shadow: var(--shadow-md);
1883
+ font-family: var(--font-family);
1884
+ font-size: var(--font-size-sm);
1885
+ }
1886
+
1887
+ .vim-context-menu-item {
1888
+ display: flex;
1889
+ cursor: pointer;
1890
+ user-select: none;
1891
+ align-items: center;
1892
+ justify-content: space-between;
1893
+ padding: 0.5rem 1.25rem;
1894
+ }
1895
+
1896
+ .vim-context-menu-item:hover {
1897
+ background: var(--c-lightest-gray);
1898
+ }
1899
+
1900
+ .vim-context-menu-divider {
1901
+ margin: 0.25rem 0;
1902
+ border: none;
1903
+ border-top: 1px solid var(--c-lightest-gray);
1904
+ }
1905
+
1906
+ .vim-context-menu-keyboard {
1907
+ color: var(--c-medium-gray);
1908
+ }
1909
+
1910
+ /* ============================================================
1911
+ BIM Search
1912
+ ============================================================ */
1913
+ .vim-bim-search {
1914
+ position: relative;
1915
+ display: flex;
1916
+ align-items: center;
1917
+ flex-shrink: 0;
1918
+ min-height: var(--size-control);
1919
+ background: var(--c-white);
1920
+ border: 1px solid var(--c-light-gray);
1921
+ padding: 0 0.625rem;
1922
+ margin-bottom: 4px;
1923
+ }
1924
+
1925
+ .vim-bim-search:focus-within {
1926
+ border-color: var(--c-dark-gray-warm);
1927
+ box-shadow: 0 0 0 2px var(--c-focus-ring);
1928
+ }
1929
+
1930
+ .vim-bim-search .search-icon {
1931
+ margin-right: -1rem;
1932
+ color: var(--c-medium-gray);
1933
+ flex-shrink: 0;
1934
+ }
1935
+
1936
+ .vim-bim-search .search-input {
1937
+ width: 100%;
1938
+ border: none;
1939
+ background: transparent;
1940
+ padding: 0 1.5rem 0 1.5rem;
1941
+ line-height: 32px;
1942
+ outline: none;
1943
+ }
1944
+
1945
+ .vim-bim-search .search-clear {
1946
+ position: absolute;
1947
+ right: 0.625rem;
1948
+ display: flex;
1949
+ height: 1.25rem;
1950
+ width: 1.25rem;
1951
+ flex-shrink: 0;
1952
+ align-items: center;
1953
+ justify-content: center;
1954
+ border-radius: var(--radius-full);
1955
+ background: var(--c-medium-gray);
1956
+ color: var(--c-white);
1957
+ border: none;
1958
+ cursor: pointer;
1959
+ padding: 0;
1960
+ }
1961
+
1962
+ .vim-bim-search .search-count {
1963
+ position: absolute;
1964
+ right: 2rem;
1965
+ border-radius: var(--radius-full);
1966
+ background: var(--c-primary-royal);
1967
+ padding: 0.125rem 0.5rem;
1968
+ font-weight: bold;
1969
+ color: var(--c-white);
1970
+ font-size: var(--font-size-sm);
1971
+ }
1972
+
1973
+ /* ============================================================
1974
+ Settings Fields
1975
+ ============================================================ */
1976
+ .vim-settings-textbox {
1977
+ border: 1px solid var(--c-light-gray);
1978
+ border-radius: 0;
1979
+ width: 100%;
1980
+ max-width: 120px;
1981
+ min-width: 0;
1982
+ }
1983
+
1984
+ .vim-settings-textbox[type="number"] {
1985
+ max-width: 80px;
1986
+ height: 24px;
1987
+ padding: 0 0.25rem;
1988
+ box-sizing: border-box;
1989
+ text-overflow: ellipsis;
1990
+ }
1991
+
1992
+ .vim-settings-checkbox {
1993
+ appearance: none;
1994
+ -webkit-appearance: none;
1995
+ position: relative;
1996
+ width: 16px;
1997
+ height: 16px;
1998
+ border: 1px solid var(--c-light-gray);
1999
+ border-radius: 0;
2000
+ background: var(--c-white);
2001
+ cursor: pointer;
2002
+ margin: 0;
2003
+ flex-shrink: 0;
2004
+ }
2005
+
2006
+ .vim-settings-checkbox:hover {
2007
+ border-color: var(--c-dark-gray-warm);
2008
+ }
2009
+
2010
+ .vim-settings-checkbox:checked {
2011
+ border-color: var(--c-light-gray);
2012
+ }
2013
+
2014
+ .vim-settings-checkbox:checked:hover {
2015
+ border-color: var(--c-dark-gray-warm);
2016
+ }
2017
+
2018
+ .vim-settings-checkbox:checked::after {
2019
+ content: '';
2020
+ position: absolute;
2021
+ left: 3px;
2022
+ top: 0;
2023
+ width: 5px;
2024
+ height: 9px;
2025
+ border: 2px solid var(--c-dark-gray-warm);
2026
+ border-top: none;
2027
+ border-left: none;
2028
+ transform: rotate(45deg);
2029
+ }
2030
+
2031
+ .vim-checkbox-label {
2032
+ display: flex;
2033
+ align-items: center;
2034
+ user-select: none;
2035
+ cursor: pointer;
2036
+ }
2037
+
2038
+ .vim-checkbox-label[data-disabled] {
2039
+ opacity: 0.5;
2040
+ pointer-events: none;
2041
+ }
2042
+
2043
+ /* ============================================================
2044
+ Error Style
2045
+ ============================================================ */
2046
+ .vim-main-text {
2047
+ font-size: var(--font-size-lg);
2048
+ color: var(--c-darker-gray);
2049
+ margin-bottom: 1rem;
2050
+ }
2051
+
2052
+ .vim-detail-text {
2053
+ color: var(--c-medium-gray);
2054
+ font-size: var(--font-size-lg);
2055
+ font-style: italic;
2056
+ overflow-wrap: break-word;
2057
+ }
2058
+
2059
+ .vim-bold-text {
2060
+ font-size: var(--font-size-lg);
2061
+ font-weight: bold;
2062
+ }
2063
+
2064
+ .vim-sub-title {
2065
+ font-size: var(--font-size-lg);
2066
+ margin-bottom: 0.25rem;
2067
+ font-weight: bold;
2068
+ color: var(--c-darker-gray);
2069
+ }
2070
+
2071
+ .vim-dot-list {
2072
+ list-style: disc;
2073
+ margin-left: 1.25rem;
2074
+ margin-bottom: 1rem;
2075
+ color: var(--c-darker-gray);
2076
+ }
2077
+
2078
+ .vim-dot-list > li,
2079
+ .vim-num-list > li {
2080
+ font-size: var(--font-size-lg);
2081
+ }
2082
+
2083
+ .vim-num-list {
2084
+ list-style: decimal;
2085
+ margin-left: 1.25rem;
2086
+ margin-bottom: 1rem;
2087
+ color: var(--c-darker-gray);
2088
+ }
2089
+
2090
+ .vim-bullet-label {
2091
+ color: var(--c-dark-gray-cool);
2092
+ }
2093
+
2094
+ .vim-bullet-value {
2095
+ word-break: break-all;
2096
+ color: var(--c-medium-gray);
2097
+ }
2098
+
2099
+ .vim-link {
2100
+ color: var(--c-primary);
2101
+ text-decoration: underline;
2102
+ }
2103
+
2104
+ /* ============================================================
2105
+ Tooltip
2106
+ ============================================================ */
2107
+
2108
+ /* Portal tooltip — rendered at document.body, never clipped */
2109
+ .vim-tooltip-portal {
2110
+ position: fixed;
2111
+ font-family: var(--font-family);
2112
+ padding: 4px 8px;
2113
+ border: 1px solid var(--c-medium-gray);
2114
+ background: var(--c-white);
2115
+ color: var(--c-darker-gray);
2116
+ font-size: var(--font-size-sm);
2117
+ white-space: nowrap;
2118
+ box-shadow: 2px 6px 15px rgba(0, 0, 0, 0.3);
2119
+ pointer-events: none;
2120
+ z-index: 9999;
2121
+ }
2122
+
2123
+ /* ============================================================
2124
+ Responsive Scaling
2125
+ ============================================================ */
2126
+ @container (width > 0){
2127
+
2128
+ .vim-panel-list {
2129
+ gap: min(2cqmin, 4px);
2130
+ }
2131
+
2132
+
2133
+ .vim-message-box {
2134
+ padding: min(6cqmin, 1.5rem);
2135
+ }
2136
+
2137
+ .vim-message-box .vim-divider{
2138
+ margin-top: min(6cqmin, 1.5rem);
2139
+ margin-bottom: min(6cqmin, 1.5rem);
2140
+ }
2141
+
2142
+ .vim-message-box .vim-footer{
2143
+ margin-top: min(6cqmin, 1.5rem);
2144
+ }
2145
+
2146
+ .vim-message-box .vim-main-text{
2147
+ margin-bottom: min(6cqmin, 1.5rem);
2148
+ }
2149
+
2150
+ /* --- Side Panel --- */
2151
+ .vim-side-panel-content {
2152
+ font-size: min(5.5cqmin, 0.8rem);
2153
+ left: min(5cqmin, 0.625rem);
2154
+ right: min(5cqmin, 0.625rem);
2155
+ top: 0;
2156
+ bottom: 0;
2157
+ }
2158
+
2159
+ /* --- Help --- */
2160
+ .vim-help-blocker{
2161
+ gap: min(3cqh, 1rem);
2162
+ }
2163
+
2164
+ .vim-help-bottom{
2165
+ min-height: min(4cqmin, 2rem);
2166
+ }
2167
+
2168
+ .vim-help-title{
2169
+ font-size: min(2.5cqmin, 0.9rem);
2170
+ }
2171
+ .vim-help-button {
2172
+ font-size: min(2.5cqmin, 0.9rem);
2173
+ padding-left: min(2cqmin, 1rem);
2174
+ padding-right: min(2cqmin, 1rem);
2175
+ }
2176
+
2177
+ /* --- Control Bar --- */
2178
+ .vim-control-bar-button {
2179
+ height: min(8cqmin, 2.5rem);
2180
+ width: min(8cqmin, 2.5rem);
2181
+ }
2182
+ .vim-control-bar-section {
2183
+ gap: min(2cqmin, 0.5rem);
2184
+ }
2185
+
2186
+
2187
+ .vim-control-bar-counter{
2188
+ margin-bottom: min(1cqmin, 0.5rem);
2189
+ margin-right: min(2cqmin, 0.5rem);
2190
+ margin-left: max(-2cqmin, -0.75rem);
2191
+ }
2192
+
2193
+ /* --- Axes --- */
2194
+ .vim-axes-panel,
2195
+ .vim-axes-panel-empty {
2196
+ border-radius: min(3cqmin, 1rem);
2197
+ top: min(2cqmin, 1.5rem);
2198
+ right: min(2cqmin, 1.5rem);
2199
+ width: min(22cqmin, 112px);
2200
+ }
2201
+
2202
+ .vim-axes-panel {
2203
+ height: min(28cqmin, 144px);
2204
+ }
2205
+
2206
+ .vim-axes-panel-empty {
2207
+ height: min(22cqmin, 112px);
2208
+ }
2209
+ .vim-axes-panel-gizmo{
2210
+ top: min(1cqmin, 0.5rem);
2211
+ left: min(1cqmin, 0.5rem);
2212
+ right: min(1cqmin, 0.5rem);
2213
+ bottom: calc(20% + min(1cqmin, 0.5rem));
2214
+ }
2215
+ .vim-axes-button{
2216
+ height: min(5cqmin, 1.25rem);
2217
+ width: min(5cqmin, 1.25rem);
2218
+ }
2219
+
2220
+ /* --- Loading --- */
2221
+ .vim-loading-box{
2222
+ font-size: min(5cqmin, 1rem);
2223
+ }
2224
+ .vim-loading-widget, .vim-loading-widget::after{
2225
+ height: min(5cqmin, 1rem);
2226
+ }
2227
+
2228
+ /* --- BIM Panel --- */
2229
+ .vim-bim-lower-content{
2230
+ gap: min(3cqmin, 1.5rem);
2231
+ }
2232
+ .vim-bim-header-entry{
2233
+ line-height: min(10cqmin, 1.5rem);
2234
+ }
2235
+ .vim-bim-body-entry{
2236
+ line-height: min(10cqmin, 2rem);
2237
+ }
2238
+
2239
+ .vim-bim-actions{
2240
+ height: min(8cqmin, 2rem);
2241
+ }
2242
+
2243
+ .vim-group-collapse-button{
2244
+ height: min(6cqmin, 1.5rem);
2245
+ }
2246
+
2247
+ /* --- BIM Tree (react-complex-tree) --- */
2248
+ .vim-bim-tree .rct-tree-item-title-container {
2249
+ height: min(10cqmin, 2rem);
2250
+ }
2251
+ .vim-bim-tree .rct-tree-item-visibility {
2252
+ width: min(6cqmin, 1rem);
2253
+ height: min(6cqmin, 1rem);
2254
+ }
2255
+ .vim-bim-tree .rct-tree-item-arrow {
2256
+ width: min(6cqmin, 1rem);
2257
+ }
2258
+ .vim-bim-tree .rct-tree-item-arrow:has(svg):before {
2259
+ background-size: min(8cqmin, 1rem);
2260
+ }
2261
+
2262
+ /* --- BIM Tree (headless-tree) --- */
2263
+ .vim-ht-item {
2264
+ height: min(10cqmin, 2rem);
2265
+ }
2266
+ .vim-ht-visibility {
2267
+ width: min(6cqmin, 1rem);
2268
+ height: min(6cqmin, 1rem);
2269
+ }
2270
+ .vim-ht-arrow {
2271
+ width: min(6cqmin, 1rem);
2272
+ height: min(6cqmin, 1rem);
2273
+ background-size: min(8cqmin, 1rem);
2274
+ }
2275
+
2276
+ /* --- Settings Inputs --- */
2277
+ .vim-settings-checkbox{
2278
+ height: min(8cqmin, 1rem);
2279
+ width: min(8cqmin, 1rem);
2280
+ }
2281
+ .vim-settings-textbox{
2282
+ height: min(8cqmin, 24px);
2283
+ }
2284
+
2285
2285
  }/*$vite$:1*/