@vanduo-oss/framework 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +39 -5
  2. package/css/components/affix.css +53 -0
  3. package/css/components/bubble.css +165 -0
  4. package/css/components/datepicker.css +216 -0
  5. package/css/components/fab.css +225 -0
  6. package/css/components/flow.css +265 -0
  7. package/css/components/rating.css +112 -0
  8. package/css/components/ripple.css +63 -0
  9. package/css/components/sidenav.css +70 -0
  10. package/css/components/spotlight.css +119 -0
  11. package/css/components/stepper.css +176 -0
  12. package/css/components/suggest.css +119 -0
  13. package/css/components/timeline.css +201 -0
  14. package/css/components/timepicker.css +80 -0
  15. package/css/components/transfer.css +165 -0
  16. package/css/components/tree.css +173 -0
  17. package/css/components/waypoint.css +59 -0
  18. package/css/vanduo.css +17 -0
  19. package/dist/build-info.json +3 -3
  20. package/dist/vanduo.cjs.js +2161 -6
  21. package/dist/vanduo.cjs.js.map +4 -4
  22. package/dist/vanduo.cjs.min.js +5 -5
  23. package/dist/vanduo.cjs.min.js.map +4 -4
  24. package/dist/vanduo.css +1947 -5
  25. package/dist/vanduo.css.map +1 -1
  26. package/dist/vanduo.esm.js +2161 -6
  27. package/dist/vanduo.esm.js.map +4 -4
  28. package/dist/vanduo.esm.min.js +5 -5
  29. package/dist/vanduo.esm.min.js.map +4 -4
  30. package/dist/vanduo.js +2161 -6
  31. package/dist/vanduo.js.map +4 -4
  32. package/dist/vanduo.min.css +2 -2
  33. package/dist/vanduo.min.css.map +1 -1
  34. package/dist/vanduo.min.js +5 -5
  35. package/dist/vanduo.min.js.map +4 -4
  36. package/js/components/affix.js +129 -0
  37. package/js/components/bubble.js +203 -0
  38. package/js/components/datepicker.js +287 -0
  39. package/js/components/flow.js +264 -0
  40. package/js/components/rating.js +160 -0
  41. package/js/components/ripple.js +74 -0
  42. package/js/components/sidenav.js +9 -2
  43. package/js/components/spotlight.js +295 -0
  44. package/js/components/stepper.js +97 -0
  45. package/js/components/suggest.js +219 -0
  46. package/js/components/theme-customizer.js +11 -2
  47. package/js/components/theme-switcher.js +7 -0
  48. package/js/components/timepicker.js +142 -0
  49. package/js/components/transfer.js +206 -0
  50. package/js/components/tree.js +191 -0
  51. package/js/components/validate.js +185 -0
  52. package/js/components/waypoint.js +120 -0
  53. package/js/index.js +16 -0
  54. package/package.json +4 -4
package/dist/vanduo.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Vanduo v1.2.6 | Built: 2026-03-11T06:15:19.191Z | git:3283a0d | development */
1
+ /*! Vanduo v1.2.8 | Built: 2026-03-14T13:35:54.636Z | git:f306379 | development */
2
2
  *, :before, :after {
3
3
  box-sizing: border-box;
4
4
  }
@@ -52099,7 +52099,7 @@ a.vd-btn, a.vd-btn:hover {
52099
52099
  position: absolute;
52100
52100
  top: 45%;
52101
52101
  left: 50%;
52102
- transform: translate(-50%, -50%)rotate(45deg);
52102
+ transform: translate(-50%, -50%) rotate(45deg);
52103
52103
  }
52104
52104
 
52105
52105
  .checkbox > input[type="checkbox"]:disabled, .vd-form-check > input[type="checkbox"]:disabled {
@@ -52177,7 +52177,7 @@ a.vd-btn, a.vd-btn:hover {
52177
52177
  height: .75rem;
52178
52178
  position: absolute;
52179
52179
  top: 50%;
52180
- transform: translate(-50%, -60%)rotate(45deg);
52180
+ transform: translate(-50%, -60%) rotate(45deg);
52181
52181
  }
52182
52182
 
52183
52183
  .checkbox-input:indeterminate + .checkbox-label:before, .checkbox-input:indeterminate ~ .checkbox-label:before, .vd-form-check-input:indeterminate + .vd-form-check-label:before {
@@ -53524,7 +53524,7 @@ a.vd-card:active {
53524
53524
  }
53525
53525
 
53526
53526
  .vd-navbar-toggle.is-active span:first-child, .vd-navbar-burger.is-active span:first-child {
53527
- transform: rotate(45deg)translate(5px, 5px);
53527
+ transform: rotate(45deg) translate(5px, 5px);
53528
53528
  }
53529
53529
 
53530
53530
  .vd-navbar-toggle.is-active span:nth-child(2), .vd-navbar-burger.is-active span:nth-child(2) {
@@ -53532,7 +53532,7 @@ a.vd-card:active {
53532
53532
  }
53533
53533
 
53534
53534
  .vd-navbar-toggle.is-active span:nth-child(3), .vd-navbar-burger.is-active span:nth-child(3) {
53535
- transform: rotate(-45deg)translate(7px, -6px);
53535
+ transform: rotate(-45deg) translate(7px, -6px);
53536
53536
  }
53537
53537
 
53538
53538
  .vd-navbar-menu {
@@ -56029,6 +56029,60 @@ h1 .vd-badge, h2 .vd-badge, h3 .vd-badge, h4 .vd-badge, h5 .vd-badge, h6 .vd-bad
56029
56029
  margin-right: var(--sidenav-width-lg);
56030
56030
  }
56031
56031
 
56032
+ .vd-offcanvas {
56033
+ z-index: var(--sidenav-z-index);
56034
+ width: var(--sidenav-width);
56035
+ background-color: var(--sidenav-bg);
56036
+ height: 100vh;
56037
+ box-shadow: var(--shadow-lg);
56038
+ transition: var(--sidenav-transition);
56039
+ flex-direction: column;
56040
+ display: flex;
56041
+ position: fixed;
56042
+ top: 0;
56043
+ left: 0;
56044
+ overflow: hidden auto;
56045
+ transform: translateX(-100%);
56046
+ }
56047
+
56048
+ .vd-offcanvas.is-open {
56049
+ transform: translateX(0) translateY(0);
56050
+ }
56051
+
56052
+ .vd-sidenav-top, .vd-offcanvas-top {
56053
+ width: 100%;
56054
+ height: auto;
56055
+ max-height: 80vh;
56056
+ inset: 0 0 auto;
56057
+ transform: translateY(-100%);
56058
+ }
56059
+
56060
+ .vd-sidenav-top.is-open, .vd-offcanvas-top.is-open {
56061
+ transform: translateY(0);
56062
+ }
56063
+
56064
+ .vd-sidenav-bottom, .vd-offcanvas-bottom {
56065
+ width: 100%;
56066
+ height: auto;
56067
+ max-height: 80vh;
56068
+ inset: auto 0 0;
56069
+ transform: translateY(100%);
56070
+ }
56071
+
56072
+ .vd-sidenav-bottom.is-open, .vd-offcanvas-bottom.is-open {
56073
+ transform: translateY(0);
56074
+ }
56075
+
56076
+ .vd-offcanvas-right {
56077
+ left: auto;
56078
+ right: 0;
56079
+ transform: translateX(100%);
56080
+ }
56081
+
56082
+ .vd-offcanvas-right.is-open {
56083
+ transform: translateX(0);
56084
+ }
56085
+
56032
56086
  .body-sidenav-open {
56033
56087
  overflow: hidden;
56034
56088
  }
@@ -61909,6 +61963,1894 @@ input.vd-doc-search-input {
61909
61963
  }
61910
61964
  }
61911
61965
 
61966
+ :root {
61967
+ --flow-height: auto;
61968
+ --flow-min-height: 13rem;
61969
+ --flow-padding: 0;
61970
+ --flow-gap: 0;
61971
+ --flow-indicator-size: .5rem;
61972
+ --flow-indicator-gap: .5rem;
61973
+ --flow-control-size: 2.5rem;
61974
+ --flow-control-offset: .8125rem;
61975
+ --flow-bg: var(--bg-primary, #fff);
61976
+ --flow-indicator-bg: #ffffff80;
61977
+ --flow-indicator-active-bg: #fff;
61978
+ --flow-control-bg: #0000004d;
61979
+ --flow-control-hover-bg: #00000080;
61980
+ --flow-control-color: #fff;
61981
+ --flow-transition-duration: .5s;
61982
+ --flow-transition-timing: cubic-bezier(.4, 0, .2, 1);
61983
+ --flow-border-radius: var(--border-radius, .5rem);
61984
+ --flow-z-controls: 10;
61985
+ --flow-z-indicators: 10;
61986
+ }
61987
+
61988
+ [data-theme="dark"] {
61989
+ --flow-bg: var(--bg-primary, #1a1a2e);
61990
+ --flow-control-bg: #fff3;
61991
+ --flow-control-hover-bg: #ffffff59;
61992
+ }
61993
+
61994
+ @media (prefers-color-scheme: dark) {
61995
+ :root:not([data-theme]) {
61996
+ --flow-bg: var(--bg-primary, #1a1a2e);
61997
+ --flow-control-bg: #fff3;
61998
+ --flow-control-hover-bg: #ffffff59;
61999
+ }
62000
+ }
62001
+
62002
+ .vd-flow, .vd-carousel {
62003
+ width: 100%;
62004
+ min-height: var(--flow-min-height);
62005
+ height: var(--flow-height);
62006
+ background-color: var(--flow-bg);
62007
+ border-radius: var(--flow-border-radius);
62008
+ position: relative;
62009
+ overflow: hidden;
62010
+ }
62011
+
62012
+ .vd-flow-track {
62013
+ width: 100%;
62014
+ height: 100%;
62015
+ transition: transform var(--flow-transition-duration) var(--flow-transition-timing);
62016
+ will-change: transform;
62017
+ display: flex;
62018
+ }
62019
+
62020
+ .vd-flow.is-dragging .vd-flow-track {
62021
+ cursor: grabbing;
62022
+ transition: none;
62023
+ }
62024
+
62025
+ .vd-flow-slide {
62026
+ width: 100%;
62027
+ min-height: var(--flow-min-height);
62028
+ flex: 0 0 100%;
62029
+ position: relative;
62030
+ overflow: hidden;
62031
+ }
62032
+
62033
+ .vd-flow-slide img {
62034
+ object-fit: cover;
62035
+ width: 100%;
62036
+ height: 100%;
62037
+ }
62038
+
62039
+ .vd-flow-fade .vd-flow-track {
62040
+ transition: none;
62041
+ }
62042
+
62043
+ .vd-flow-fade .vd-flow-slide {
62044
+ opacity: 0;
62045
+ transition: opacity var(--flow-transition-duration) var(--flow-transition-timing);
62046
+ pointer-events: none;
62047
+ position: absolute;
62048
+ top: 0;
62049
+ left: 0;
62050
+ }
62051
+
62052
+ .vd-flow-fade .vd-flow-slide.is-active {
62053
+ opacity: 1;
62054
+ pointer-events: auto;
62055
+ position: relative;
62056
+ }
62057
+
62058
+ .vd-flow-prev, .vd-flow-next {
62059
+ z-index: var(--flow-z-controls);
62060
+ width: var(--flow-control-size);
62061
+ height: var(--flow-control-size);
62062
+ background: var(--flow-control-bg);
62063
+ color: var(--flow-control-color);
62064
+ cursor: pointer;
62065
+ opacity: 0;
62066
+ border: none;
62067
+ border-radius: 50%;
62068
+ justify-content: center;
62069
+ align-items: center;
62070
+ padding: 0;
62071
+ font-size: 1.125rem;
62072
+ transition: background .2s, opacity .2s;
62073
+ display: flex;
62074
+ position: absolute;
62075
+ top: 50%;
62076
+ transform: translateY(-50%);
62077
+ }
62078
+
62079
+ .vd-flow:hover .vd-flow-prev, .vd-flow:hover .vd-flow-next, .vd-flow:focus-within .vd-flow-prev, .vd-flow:focus-within .vd-flow-next {
62080
+ opacity: 1;
62081
+ }
62082
+
62083
+ .vd-flow-prev:hover, .vd-flow-next:hover {
62084
+ background: var(--flow-control-hover-bg);
62085
+ }
62086
+
62087
+ .vd-flow-prev:focus-visible, .vd-flow-next:focus-visible {
62088
+ outline: 2px solid var(--flow-control-color);
62089
+ outline-offset: 2px;
62090
+ }
62091
+
62092
+ .vd-flow-prev {
62093
+ left: var(--flow-control-offset);
62094
+ }
62095
+
62096
+ .vd-flow-next {
62097
+ right: var(--flow-control-offset);
62098
+ }
62099
+
62100
+ .vd-flow-indicators {
62101
+ z-index: var(--flow-z-indicators);
62102
+ gap: var(--flow-indicator-gap);
62103
+ border-radius: 1rem;
62104
+ margin: 0;
62105
+ padding: .3125rem .5rem;
62106
+ list-style: none;
62107
+ display: flex;
62108
+ position: absolute;
62109
+ bottom: .8125rem;
62110
+ left: 50%;
62111
+ transform: translateX(-50%);
62112
+ }
62113
+
62114
+ .vd-flow-indicator {
62115
+ width: var(--flow-indicator-size);
62116
+ height: var(--flow-indicator-size);
62117
+ background: var(--flow-indicator-bg);
62118
+ cursor: pointer;
62119
+ border: none;
62120
+ border-radius: 50%;
62121
+ padding: 0;
62122
+ transition: background .2s, transform .2s;
62123
+ }
62124
+
62125
+ .vd-flow-indicator:hover {
62126
+ background: #ffffffbf;
62127
+ }
62128
+
62129
+ .vd-flow-indicator.is-active {
62130
+ background: var(--flow-indicator-active-bg);
62131
+ transform: scale(1.3);
62132
+ }
62133
+
62134
+ .vd-flow-indicator:focus-visible {
62135
+ outline: 2px solid var(--flow-indicator-active-bg);
62136
+ outline-offset: 2px;
62137
+ }
62138
+
62139
+ .vd-flow-caption {
62140
+ color: #fff;
62141
+ background: linear-gradient(#0000, #0009);
62142
+ padding: 1.3125rem 1.3125rem 2.625rem;
62143
+ position: absolute;
62144
+ bottom: 0;
62145
+ left: 0;
62146
+ right: 0;
62147
+ }
62148
+
62149
+ .vd-flow-caption h3, .vd-flow-caption .vd-flow-title {
62150
+ margin: 0 0 .3125rem;
62151
+ font-size: 1.25rem;
62152
+ font-weight: 600;
62153
+ }
62154
+
62155
+ .vd-flow-caption p, .vd-flow-caption .vd-flow-description {
62156
+ opacity: .9;
62157
+ margin: 0;
62158
+ font-size: .875rem;
62159
+ }
62160
+
62161
+ .vd-flow-compact {
62162
+ --flow-min-height: 8rem;
62163
+ --flow-control-size: 2rem;
62164
+ }
62165
+
62166
+ .vd-flow-lg {
62167
+ --flow-min-height: 21rem;
62168
+ --flow-control-size: 3rem;
62169
+ }
62170
+
62171
+ .vd-flow-fullscreen {
62172
+ --flow-min-height: 100vh;
62173
+ --flow-border-radius: 0;
62174
+ }
62175
+
62176
+ @media (width <= 768px) {
62177
+ .vd-flow-prev, .vd-flow-next {
62178
+ opacity: 1;
62179
+ --flow-control-size: 2rem;
62180
+ }
62181
+
62182
+ .vd-flow-caption {
62183
+ padding: .8125rem .8125rem 2rem;
62184
+ }
62185
+ }
62186
+
62187
+ :root {
62188
+ --bubble-bg: var(--card-bg, #fff);
62189
+ --bubble-text: var(--text-primary, #212529);
62190
+ --bubble-border-color: var(--border-color, #dee2e6);
62191
+ --bubble-shadow: 0 .5rem 1.3125rem #0000001f;
62192
+ --bubble-padding: .8125rem;
62193
+ --bubble-header-padding: .5rem .8125rem;
62194
+ --bubble-arrow-size: 8px;
62195
+ --bubble-max-width: 21rem;
62196
+ --bubble-min-width: 8rem;
62197
+ --bubble-border-radius: var(--border-radius, .5rem);
62198
+ --bubble-z-index: 1060;
62199
+ --bubble-font-size: var(--font-size-sm, .875rem);
62200
+ }
62201
+
62202
+ [data-theme="dark"] {
62203
+ --bubble-bg: var(--card-bg, #2d2d44);
62204
+ --bubble-border-color: var(--border-color, #3d3d5c);
62205
+ --bubble-shadow: 0 .5rem 1.3125rem #0000004d;
62206
+ }
62207
+
62208
+ @media (prefers-color-scheme: dark) {
62209
+ :root:not([data-theme]) {
62210
+ --bubble-bg: var(--card-bg, #2d2d44);
62211
+ --bubble-border-color: var(--border-color, #3d3d5c);
62212
+ --bubble-shadow: 0 .5rem 1.3125rem #0000004d;
62213
+ }
62214
+ }
62215
+
62216
+ .vd-bubble-content, .vd-popover-content {
62217
+ z-index: var(--bubble-z-index);
62218
+ max-width: var(--bubble-max-width);
62219
+ min-width: var(--bubble-min-width);
62220
+ background: var(--bubble-bg);
62221
+ color: var(--bubble-text);
62222
+ border: 1px solid var(--bubble-border-color);
62223
+ border-radius: var(--bubble-border-radius);
62224
+ box-shadow: var(--bubble-shadow);
62225
+ font-size: var(--bubble-font-size);
62226
+ opacity: 0;
62227
+ visibility: hidden;
62228
+ pointer-events: none;
62229
+ transition: opacity .2s, visibility .2s, transform .2s;
62230
+ position: absolute;
62231
+ transform: scale(.95);
62232
+ }
62233
+
62234
+ .vd-bubble-content.is-visible, .vd-popover-content.is-visible {
62235
+ opacity: 1;
62236
+ visibility: visible;
62237
+ pointer-events: auto;
62238
+ transform: scale(1);
62239
+ }
62240
+
62241
+ .vd-bubble-header {
62242
+ padding: var(--bubble-header-padding);
62243
+ border-bottom: 1px solid var(--bubble-border-color);
62244
+ justify-content: space-between;
62245
+ align-items: center;
62246
+ font-weight: 600;
62247
+ display: flex;
62248
+ }
62249
+
62250
+ .vd-bubble-body {
62251
+ padding: var(--bubble-padding);
62252
+ }
62253
+
62254
+ .vd-bubble-close {
62255
+ width: 1.5rem;
62256
+ height: 1.5rem;
62257
+ color: var(--bubble-text);
62258
+ cursor: pointer;
62259
+ opacity: .5;
62260
+ background: none;
62261
+ border: none;
62262
+ border-radius: 50%;
62263
+ justify-content: center;
62264
+ align-items: center;
62265
+ margin-left: .5rem;
62266
+ padding: 0;
62267
+ font-size: 1.125rem;
62268
+ line-height: 1;
62269
+ transition: opacity .15s;
62270
+ display: flex;
62271
+ }
62272
+
62273
+ .vd-bubble-close:hover {
62274
+ opacity: 1;
62275
+ }
62276
+
62277
+ .vd-bubble-content:before, .vd-popover-content:before {
62278
+ content: "";
62279
+ border: var(--bubble-arrow-size) solid transparent;
62280
+ width: 0;
62281
+ height: 0;
62282
+ position: absolute;
62283
+ }
62284
+
62285
+ .vd-bubble-content[data-placement="bottom"]:before {
62286
+ border-bottom-color: var(--bubble-border-color);
62287
+ bottom: 100%;
62288
+ left: 50%;
62289
+ transform: translateX(-50%);
62290
+ }
62291
+
62292
+ .vd-bubble-content[data-placement="top"]:before {
62293
+ border-top-color: var(--bubble-border-color);
62294
+ top: 100%;
62295
+ left: 50%;
62296
+ transform: translateX(-50%);
62297
+ }
62298
+
62299
+ .vd-bubble-content[data-placement="left"]:before {
62300
+ border-left-color: var(--bubble-border-color);
62301
+ top: 50%;
62302
+ left: 100%;
62303
+ transform: translateY(-50%);
62304
+ }
62305
+
62306
+ .vd-bubble-content[data-placement="right"]:before {
62307
+ border-right-color: var(--bubble-border-color);
62308
+ top: 50%;
62309
+ right: 100%;
62310
+ transform: translateY(-50%);
62311
+ }
62312
+
62313
+ .vd-bubble-sm .vd-bubble-body {
62314
+ --bubble-padding: .5rem;
62315
+ --bubble-font-size: var(--font-size-xs, .75rem);
62316
+ }
62317
+
62318
+ .vd-bubble-lg .vd-bubble-body {
62319
+ --bubble-padding: 1.3125rem;
62320
+ --bubble-max-width: 34rem;
62321
+ }
62322
+
62323
+ :root {
62324
+ --waypoint-active-color: var(--color-primary, #0d6efd);
62325
+ --waypoint-active-bg: transparent;
62326
+ --waypoint-active-border-width: 2px;
62327
+ --waypoint-transition: color .2s ease, background-color .2s ease, border-color .2s ease;
62328
+ }
62329
+
62330
+ [data-theme="dark"] {
62331
+ --waypoint-active-color: var(--color-primary-light, #6ea8fe);
62332
+ }
62333
+
62334
+ @media (prefers-color-scheme: dark) {
62335
+ :root:not([data-theme]) {
62336
+ --waypoint-active-color: var(--color-primary-light, #6ea8fe);
62337
+ }
62338
+ }
62339
+
62340
+ [data-vd-waypoint-nav] a.is-active, [data-vd-scrollspy-nav] a.is-active, .vd-waypoint-nav a.is-active {
62341
+ color: var(--waypoint-active-color);
62342
+ transition: var(--waypoint-transition);
62343
+ font-weight: 600;
62344
+ }
62345
+
62346
+ .vd-sidenav [data-vd-waypoint-nav] a.is-active, .vd-waypoint-nav.vd-waypoint-border a.is-active {
62347
+ border-left: var(--waypoint-active-border-width) solid var(--waypoint-active-color);
62348
+ padding-left: calc(.8125rem - var(--waypoint-active-border-width));
62349
+ }
62350
+
62351
+ .vd-waypoint-nav.vd-waypoint-pill a.is-active {
62352
+ background-color: var(--waypoint-active-color);
62353
+ color: #fff;
62354
+ border-radius: 1rem;
62355
+ padding: .25rem .8125rem;
62356
+ }
62357
+
62358
+ .vd-waypoint-nav.vd-waypoint-underline a.is-active {
62359
+ border-bottom: var(--waypoint-active-border-width) solid var(--waypoint-active-color);
62360
+ }
62361
+
62362
+ [data-vd-waypoint-section] {
62363
+ scroll-margin-top: 5rem;
62364
+ }
62365
+
62366
+ :root {
62367
+ --ripple-color: #ffffff59;
62368
+ --ripple-duration: .6s;
62369
+ --ripple-timing: cubic-bezier(0, 0, .2, 1);
62370
+ }
62371
+
62372
+ [data-theme="dark"] {
62373
+ --ripple-color: #fff3;
62374
+ }
62375
+
62376
+ @media (prefers-color-scheme: dark) {
62377
+ :root:not([data-theme]) {
62378
+ --ripple-color: #fff3;
62379
+ }
62380
+ }
62381
+
62382
+ .vd-ripple, [data-vd-ripple] {
62383
+ -webkit-tap-highlight-color: transparent;
62384
+ position: relative;
62385
+ overflow: hidden;
62386
+ }
62387
+
62388
+ .vd-ripple-wave {
62389
+ background: var(--ripple-color);
62390
+ animation: vd-ripple-expand var(--ripple-duration) var(--ripple-timing) forwards;
62391
+ pointer-events: none;
62392
+ border-radius: 50%;
62393
+ position: absolute;
62394
+ transform: scale(0);
62395
+ }
62396
+
62397
+ @keyframes vd-ripple-expand {
62398
+ to {
62399
+ opacity: 0;
62400
+ transform: scale(4);
62401
+ }
62402
+ }
62403
+
62404
+ .vd-ripple-dark, [data-vd-ripple="dark"] {
62405
+ --ripple-color: #00000026;
62406
+ }
62407
+
62408
+ .vd-ripple-primary, [data-vd-ripple="primary"] {
62409
+ --ripple-color: #0d6efd4d;
62410
+ }
62411
+
62412
+ .vd-ripple-light, [data-vd-ripple="light"] {
62413
+ --ripple-color: #ffffff80;
62414
+ }
62415
+
62416
+ :root {
62417
+ --fab-size: 3.5rem;
62418
+ --fab-size-sm: 2.5rem;
62419
+ --fab-size-lg: 4.5rem;
62420
+ --fab-icon-size: 1.5rem;
62421
+ --fab-bg: var(--color-primary, #0d6efd);
62422
+ --fab-color: #fff;
62423
+ --fab-hover-bg: var(--color-primary-dark, #0b5ed7);
62424
+ --fab-shadow: 0 3px 8px #00000040, 0 1px 3px #00000026;
62425
+ --fab-hover-shadow: 0 5px 13px #0000004d, 0 2px 5px #0003;
62426
+ --fab-offset: 1.3125rem;
62427
+ --fab-z-index: 1030;
62428
+ --fab-menu-gap: .8125rem;
62429
+ }
62430
+
62431
+ [data-theme="dark"] {
62432
+ --fab-shadow: 0 3px 8px #00000080, 0 1px 3px #0000004d;
62433
+ --fab-hover-shadow: 0 5px 13px #0009, 0 2px 5px #00000059;
62434
+ }
62435
+
62436
+ @media (prefers-color-scheme: dark) {
62437
+ :root:not([data-theme]) {
62438
+ --fab-shadow: 0 3px 8px #00000080, 0 1px 3px #0000004d;
62439
+ --fab-hover-shadow: 0 5px 13px #0009, 0 2px 5px #00000059;
62440
+ }
62441
+ }
62442
+
62443
+ .vd-fab {
62444
+ width: var(--fab-size);
62445
+ height: var(--fab-size);
62446
+ background: var(--fab-bg);
62447
+ color: var(--fab-color);
62448
+ font-size: var(--fab-icon-size);
62449
+ box-shadow: var(--fab-shadow);
62450
+ cursor: pointer;
62451
+ border: none;
62452
+ border-radius: 50%;
62453
+ justify-content: center;
62454
+ align-items: center;
62455
+ padding: 0;
62456
+ transition: background .2s, box-shadow .2s, transform .2s;
62457
+ display: inline-flex;
62458
+ }
62459
+
62460
+ .vd-fab:hover {
62461
+ background: var(--fab-hover-bg);
62462
+ box-shadow: var(--fab-hover-shadow);
62463
+ transform: scale(1.05);
62464
+ }
62465
+
62466
+ .vd-fab:active {
62467
+ transform: scale(.95);
62468
+ }
62469
+
62470
+ .vd-fab:focus-visible {
62471
+ outline: 2px solid var(--fab-bg);
62472
+ outline-offset: 3px;
62473
+ }
62474
+
62475
+ .vd-fab-sm {
62476
+ width: var(--fab-size-sm);
62477
+ height: var(--fab-size-sm);
62478
+ font-size: 1.125rem;
62479
+ }
62480
+
62481
+ .vd-fab-lg {
62482
+ width: var(--fab-size-lg);
62483
+ height: var(--fab-size-lg);
62484
+ font-size: 2rem;
62485
+ }
62486
+
62487
+ .vd-fab-extended {
62488
+ border-radius: 1.75rem;
62489
+ gap: .5rem;
62490
+ width: auto;
62491
+ padding: 0 1.3125rem;
62492
+ }
62493
+
62494
+ .vd-fab-fixed {
62495
+ bottom: var(--fab-offset);
62496
+ right: var(--fab-offset);
62497
+ z-index: var(--fab-z-index);
62498
+ position: fixed;
62499
+ }
62500
+
62501
+ .vd-fab-bottom-left {
62502
+ z-index: var(--fab-z-index);
62503
+ bottom: var(--fab-offset);
62504
+ right: auto;
62505
+ left: var(--fab-offset);
62506
+ position: fixed;
62507
+ }
62508
+
62509
+ .vd-fab-top-right {
62510
+ z-index: var(--fab-z-index);
62511
+ bottom: auto;
62512
+ right: var(--fab-offset);
62513
+ top: var(--fab-offset);
62514
+ position: fixed;
62515
+ }
62516
+
62517
+ .vd-fab-top-left {
62518
+ z-index: var(--fab-z-index);
62519
+ bottom: auto;
62520
+ right: auto;
62521
+ top: var(--fab-offset);
62522
+ left: var(--fab-offset);
62523
+ position: fixed;
62524
+ }
62525
+
62526
+ .vd-fab-center {
62527
+ z-index: var(--fab-z-index);
62528
+ bottom: var(--fab-offset);
62529
+ position: fixed;
62530
+ right: 50%;
62531
+ transform: translateX(50%);
62532
+ }
62533
+
62534
+ .vd-fab-center:hover {
62535
+ transform: translateX(50%) scale(1.05);
62536
+ }
62537
+
62538
+ .vd-fab-secondary {
62539
+ --fab-bg: var(--color-gray-600, #6c757d);
62540
+ --fab-hover-bg: var(--color-gray-700, #5c636a);
62541
+ }
62542
+
62543
+ .vd-fab-success {
62544
+ --fab-bg: var(--color-success, #198754);
62545
+ --fab-hover-bg: #157347;
62546
+ }
62547
+
62548
+ .vd-fab-danger {
62549
+ --fab-bg: var(--color-danger, #dc3545);
62550
+ --fab-hover-bg: #bb2d3b;
62551
+ }
62552
+
62553
+ .vd-fab-menu {
62554
+ align-items: center;
62555
+ gap: var(--fab-menu-gap);
62556
+ flex-direction: column-reverse;
62557
+ display: inline-flex;
62558
+ position: relative;
62559
+ }
62560
+
62561
+ .vd-fab-menu .vd-fab-actions {
62562
+ align-items: center;
62563
+ gap: var(--fab-menu-gap);
62564
+ opacity: 0;
62565
+ visibility: hidden;
62566
+ flex-direction: column;
62567
+ transition: opacity .2s, visibility .2s, transform .2s;
62568
+ display: flex;
62569
+ transform: translateY(.5rem);
62570
+ }
62571
+
62572
+ .vd-fab-menu.is-open .vd-fab-actions {
62573
+ opacity: 1;
62574
+ visibility: visible;
62575
+ transform: translateY(0);
62576
+ }
62577
+
62578
+ .vd-fab-menu.vd-fab-fixed {
62579
+ bottom: var(--fab-offset);
62580
+ right: var(--fab-offset);
62581
+ z-index: var(--fab-z-index);
62582
+ position: fixed;
62583
+ }
62584
+
62585
+ .vd-fab-menu .vd-fab-action {
62586
+ width: var(--fab-size-sm);
62587
+ height: var(--fab-size-sm);
62588
+ background: var(--fab-bg);
62589
+ color: var(--fab-color);
62590
+ box-shadow: var(--fab-shadow);
62591
+ cursor: pointer;
62592
+ border: none;
62593
+ border-radius: 50%;
62594
+ justify-content: center;
62595
+ align-items: center;
62596
+ font-size: 1rem;
62597
+ transition: background .15s, transform .15s;
62598
+ display: inline-flex;
62599
+ }
62600
+
62601
+ .vd-fab-menu .vd-fab-action:hover {
62602
+ background: var(--fab-hover-bg);
62603
+ transform: scale(1.1);
62604
+ }
62605
+
62606
+ .vd-fab-menu.is-open .vd-fab-actions .vd-fab:first-child, .vd-fab-menu.is-open .vd-fab-action:first-child {
62607
+ transition-delay: 0s;
62608
+ }
62609
+
62610
+ .vd-fab-menu.is-open .vd-fab-actions .vd-fab:nth-child(2), .vd-fab-menu.is-open .vd-fab-action:nth-child(2) {
62611
+ transition-delay: 50ms;
62612
+ }
62613
+
62614
+ .vd-fab-menu.is-open .vd-fab-actions .vd-fab:nth-child(3), .vd-fab-menu.is-open .vd-fab-action:nth-child(3) {
62615
+ transition-delay: .1s;
62616
+ }
62617
+
62618
+ .vd-fab-menu.is-open .vd-fab-actions .vd-fab:nth-child(4), .vd-fab-menu.is-open .vd-fab-action:nth-child(4) {
62619
+ transition-delay: .15s;
62620
+ }
62621
+
62622
+ :root {
62623
+ --affix-top-offset: 0;
62624
+ --affix-shadow: 0 2px 8px #0000001a;
62625
+ --affix-transition: box-shadow .2s ease, background-color .2s ease;
62626
+ --affix-z-index: 1020;
62627
+ }
62628
+
62629
+ [data-theme="dark"] {
62630
+ --affix-shadow: 0 2px 8px #0000004d;
62631
+ }
62632
+
62633
+ @media (prefers-color-scheme: dark) {
62634
+ :root:not([data-theme]) {
62635
+ --affix-shadow: 0 2px 8px #0000004d;
62636
+ }
62637
+ }
62638
+
62639
+ .vd-affix, .vd-sticky, [data-vd-affix] {
62640
+ top: var(--affix-top-offset);
62641
+ transition: var(--affix-transition);
62642
+ z-index: calc(var(--affix-z-index) - 1);
62643
+ position: sticky;
62644
+ }
62645
+
62646
+ .vd-affix.is-stuck, .vd-sticky.is-stuck, [data-vd-affix].is-stuck {
62647
+ z-index: var(--affix-z-index);
62648
+ box-shadow: var(--affix-shadow);
62649
+ }
62650
+
62651
+ .vd-affix-no-shadow.is-stuck {
62652
+ box-shadow: none;
62653
+ }
62654
+
62655
+ .vd-affix-bordered.is-stuck {
62656
+ box-shadow: none;
62657
+ border-bottom: 1px solid var(--border-color, #dee2e6);
62658
+ }
62659
+
62660
+ :root {
62661
+ --suggest-bg: var(--card-bg, #fff);
62662
+ --suggest-border-color: var(--border-color, #dee2e6);
62663
+ --suggest-shadow: 0 .25rem .8125rem #0000001a;
62664
+ --suggest-item-hover-bg: var(--bg-secondary, #f8f9fa);
62665
+ --suggest-item-active-bg: var(--color-primary, #0d6efd);
62666
+ --suggest-item-active-color: #fff;
62667
+ --suggest-highlight-color: var(--color-primary, #0d6efd);
62668
+ --suggest-padding: .3125rem 0;
62669
+ --suggest-item-padding: .5rem .8125rem;
62670
+ --suggest-max-height: 15rem;
62671
+ --suggest-border-radius: var(--border-radius, .5rem);
62672
+ --suggest-z-index: 1050;
62673
+ }
62674
+
62675
+ [data-theme="dark"] {
62676
+ --suggest-bg: var(--card-bg, #2d2d44);
62677
+ --suggest-border-color: var(--border-color, #3d3d5c);
62678
+ --suggest-item-hover-bg: var(--bg-primary, #1a1a2e);
62679
+ --suggest-shadow: 0 .25rem .8125rem #0000004d;
62680
+ }
62681
+
62682
+ @media (prefers-color-scheme: dark) {
62683
+ :root:not([data-theme]) {
62684
+ --suggest-bg: var(--card-bg, #2d2d44);
62685
+ --suggest-border-color: var(--border-color, #3d3d5c);
62686
+ --suggest-item-hover-bg: var(--bg-primary, #1a1a2e);
62687
+ --suggest-shadow: 0 .25rem .8125rem #0000004d;
62688
+ }
62689
+ }
62690
+
62691
+ .vd-suggest-wrapper, .vd-autocomplete-wrapper {
62692
+ width: 100%;
62693
+ display: inline-block;
62694
+ position: relative;
62695
+ }
62696
+
62697
+ .vd-suggest-list {
62698
+ z-index: var(--suggest-z-index);
62699
+ padding: var(--suggest-padding);
62700
+ max-height: var(--suggest-max-height);
62701
+ background: var(--suggest-bg);
62702
+ border: 1px solid var(--suggest-border-color);
62703
+ border-radius: var(--suggest-border-radius);
62704
+ box-shadow: var(--suggest-shadow);
62705
+ margin-top: 2px;
62706
+ list-style: none;
62707
+ display: none;
62708
+ position: absolute;
62709
+ top: 100%;
62710
+ left: 0;
62711
+ right: 0;
62712
+ overflow-y: auto;
62713
+ }
62714
+
62715
+ .vd-suggest-list.is-open {
62716
+ display: block;
62717
+ }
62718
+
62719
+ .vd-suggest-item {
62720
+ padding: var(--suggest-item-padding);
62721
+ cursor: pointer;
62722
+ font-size: var(--font-size-base, 1rem);
62723
+ transition: background .15s;
62724
+ }
62725
+
62726
+ .vd-suggest-item:hover, .vd-suggest-item.is-highlighted {
62727
+ background: var(--suggest-item-hover-bg);
62728
+ }
62729
+
62730
+ .vd-suggest-item.is-active {
62731
+ background: var(--suggest-item-active-bg);
62732
+ color: var(--suggest-item-active-color);
62733
+ }
62734
+
62735
+ .vd-suggest-match {
62736
+ color: var(--suggest-highlight-color);
62737
+ font-weight: 600;
62738
+ }
62739
+
62740
+ .vd-suggest-item.is-active .vd-suggest-match {
62741
+ color: inherit;
62742
+ }
62743
+
62744
+ .vd-suggest-empty {
62745
+ padding: var(--suggest-item-padding);
62746
+ color: var(--text-muted, #6c757d);
62747
+ font-style: italic;
62748
+ }
62749
+
62750
+ .vd-suggest-loading {
62751
+ padding: var(--suggest-item-padding);
62752
+ text-align: center;
62753
+ color: var(--text-muted, #6c757d);
62754
+ }
62755
+
62756
+ :root {
62757
+ --dp-bg: var(--card-bg, #fff);
62758
+ --dp-border-color: var(--border-color, #dee2e6);
62759
+ --dp-shadow: 0 .25rem .8125rem #0000001f;
62760
+ --dp-header-bg: var(--color-primary, #0d6efd);
62761
+ --dp-header-color: #fff;
62762
+ --dp-day-hover-bg: var(--bg-secondary, #f8f9fa);
62763
+ --dp-day-selected-bg: var(--color-primary, #0d6efd);
62764
+ --dp-day-selected-color: #fff;
62765
+ --dp-day-today-color: var(--color-primary, #0d6efd);
62766
+ --dp-day-outside-color: var(--text-muted, #6c757d);
62767
+ --dp-day-disabled-color: var(--text-disabled, #adb5bd);
62768
+ --dp-padding: .5rem;
62769
+ --dp-cell-size: 2.25rem;
62770
+ --dp-gap: 2px;
62771
+ --dp-border-radius: var(--border-radius, .5rem);
62772
+ --dp-z-index: 1055;
62773
+ }
62774
+
62775
+ [data-theme="dark"] {
62776
+ --dp-bg: var(--card-bg, #2d2d44);
62777
+ --dp-border-color: var(--border-color, #3d3d5c);
62778
+ --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
62779
+ --dp-shadow: 0 .25rem .8125rem #0000004d;
62780
+ }
62781
+
62782
+ @media (prefers-color-scheme: dark) {
62783
+ :root:not([data-theme]) {
62784
+ --dp-bg: var(--card-bg, #2d2d44);
62785
+ --dp-border-color: var(--border-color, #3d3d5c);
62786
+ --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
62787
+ --dp-shadow: 0 .25rem .8125rem #0000004d;
62788
+ }
62789
+ }
62790
+
62791
+ .vd-datepicker-popup {
62792
+ z-index: var(--dp-z-index);
62793
+ background: var(--dp-bg);
62794
+ border: 1px solid var(--dp-border-color);
62795
+ border-radius: var(--dp-border-radius);
62796
+ box-shadow: var(--dp-shadow);
62797
+ padding: var(--dp-padding);
62798
+ min-width: 17rem;
62799
+ display: none;
62800
+ position: absolute;
62801
+ }
62802
+
62803
+ .vd-datepicker-popup.is-open {
62804
+ display: block;
62805
+ }
62806
+
62807
+ .vd-datepicker-header {
62808
+ justify-content: space-between;
62809
+ align-items: center;
62810
+ margin-bottom: .3125rem;
62811
+ padding: .3125rem;
62812
+ display: flex;
62813
+ }
62814
+
62815
+ .vd-datepicker-title {
62816
+ font-weight: 600;
62817
+ font-size: var(--font-size-base, 1rem);
62818
+ cursor: pointer;
62819
+ }
62820
+
62821
+ .vd-datepicker-title:hover {
62822
+ color: var(--dp-day-today-color);
62823
+ }
62824
+
62825
+ .vd-datepicker-prev, .vd-datepicker-next {
62826
+ cursor: pointer;
62827
+ width: 1.75rem;
62828
+ height: 1.75rem;
62829
+ color: var(--text-primary, #212529);
62830
+ background: none;
62831
+ border: none;
62832
+ border-radius: 50%;
62833
+ justify-content: center;
62834
+ align-items: center;
62835
+ padding: 0;
62836
+ font-size: 1rem;
62837
+ transition: background .15s;
62838
+ display: flex;
62839
+ }
62840
+
62841
+ .vd-datepicker-prev:hover, .vd-datepicker-next:hover {
62842
+ background: var(--dp-day-hover-bg);
62843
+ }
62844
+
62845
+ .vd-datepicker-weekdays {
62846
+ gap: var(--dp-gap);
62847
+ text-align: center;
62848
+ color: var(--text-muted, #6c757d);
62849
+ grid-template-columns: repeat(7, 1fr);
62850
+ padding-bottom: .25rem;
62851
+ font-size: .75rem;
62852
+ font-weight: 600;
62853
+ display: grid;
62854
+ }
62855
+
62856
+ .vd-datepicker-days {
62857
+ gap: var(--dp-gap);
62858
+ grid-template-columns: repeat(7, 1fr);
62859
+ display: grid;
62860
+ }
62861
+
62862
+ .vd-datepicker-day {
62863
+ width: var(--dp-cell-size);
62864
+ height: var(--dp-cell-size);
62865
+ cursor: pointer;
62866
+ background: none;
62867
+ border: none;
62868
+ border-radius: 50%;
62869
+ justify-content: center;
62870
+ align-items: center;
62871
+ padding: 0;
62872
+ font-size: .875rem;
62873
+ transition: background .15s, color .15s;
62874
+ display: flex;
62875
+ }
62876
+
62877
+ .vd-datepicker-day:hover {
62878
+ background: var(--dp-day-hover-bg);
62879
+ }
62880
+
62881
+ .vd-datepicker-day.is-today {
62882
+ color: var(--dp-day-today-color);
62883
+ font-weight: 700;
62884
+ }
62885
+
62886
+ .vd-datepicker-day.is-selected {
62887
+ background: var(--dp-day-selected-bg);
62888
+ color: var(--dp-day-selected-color);
62889
+ font-weight: 600;
62890
+ }
62891
+
62892
+ .vd-datepicker-day.is-outside {
62893
+ color: var(--dp-day-outside-color);
62894
+ }
62895
+
62896
+ .vd-datepicker-day.is-disabled {
62897
+ color: var(--dp-day-disabled-color);
62898
+ cursor: not-allowed;
62899
+ pointer-events: none;
62900
+ }
62901
+
62902
+ .vd-datepicker-day.is-range-start {
62903
+ background: var(--dp-day-selected-bg);
62904
+ color: var(--dp-day-selected-color);
62905
+ border-radius: 50% 0 0 50%;
62906
+ }
62907
+
62908
+ .vd-datepicker-day.is-range-end {
62909
+ background: var(--dp-day-selected-bg);
62910
+ color: var(--dp-day-selected-color);
62911
+ border-radius: 0 50% 50% 0;
62912
+ }
62913
+
62914
+ .vd-datepicker-day.is-in-range {
62915
+ background: #0d6efd1a;
62916
+ border-radius: 0;
62917
+ }
62918
+
62919
+ .vd-datepicker-months, .vd-datepicker-years {
62920
+ grid-template-columns: repeat(3, 1fr);
62921
+ gap: .25rem;
62922
+ padding: .25rem;
62923
+ display: grid;
62924
+ }
62925
+
62926
+ .vd-datepicker-month-btn, .vd-datepicker-year-btn {
62927
+ border-radius: var(--dp-border-radius);
62928
+ cursor: pointer;
62929
+ text-align: center;
62930
+ background: none;
62931
+ border: none;
62932
+ padding: .5rem;
62933
+ transition: background .15s;
62934
+ }
62935
+
62936
+ .vd-datepicker-month-btn:hover, .vd-datepicker-year-btn:hover {
62937
+ background: var(--dp-day-hover-bg);
62938
+ }
62939
+
62940
+ .vd-datepicker-month-btn.is-selected, .vd-datepicker-year-btn.is-selected {
62941
+ background: var(--dp-day-selected-bg);
62942
+ color: var(--dp-day-selected-color);
62943
+ }
62944
+
62945
+ :root {
62946
+ --tp-bg: var(--card-bg, #fff);
62947
+ --tp-border-color: var(--border-color, #dee2e6);
62948
+ --tp-shadow: 0 .25rem .8125rem #0000001f;
62949
+ --tp-item-hover-bg: var(--bg-secondary, #f8f9fa);
62950
+ --tp-item-selected-bg: var(--color-primary, #0d6efd);
62951
+ --tp-item-selected-color: #fff;
62952
+ --tp-padding: .5rem;
62953
+ --tp-item-padding: .3125rem .8125rem;
62954
+ --tp-max-height: 15rem;
62955
+ --tp-border-radius: var(--border-radius, .5rem);
62956
+ --tp-z-index: 1055;
62957
+ }
62958
+
62959
+ [data-theme="dark"] {
62960
+ --tp-bg: var(--card-bg, #2d2d44);
62961
+ --tp-border-color: var(--border-color, #3d3d5c);
62962
+ --tp-item-hover-bg: var(--bg-primary, #1a1a2e);
62963
+ --tp-shadow: 0 .25rem .8125rem #0000004d;
62964
+ }
62965
+
62966
+ @media (prefers-color-scheme: dark) {
62967
+ :root:not([data-theme]) {
62968
+ --tp-bg: var(--card-bg, #2d2d44);
62969
+ --tp-border-color: var(--border-color, #3d3d5c);
62970
+ --tp-item-hover-bg: var(--bg-primary, #1a1a2e);
62971
+ --tp-shadow: 0 .25rem .8125rem #0000004d;
62972
+ }
62973
+ }
62974
+
62975
+ .vd-timepicker-popup {
62976
+ z-index: var(--tp-z-index);
62977
+ background: var(--tp-bg);
62978
+ border: 1px solid var(--tp-border-color);
62979
+ border-radius: var(--tp-border-radius);
62980
+ box-shadow: var(--tp-shadow);
62981
+ max-height: var(--tp-max-height);
62982
+ min-width: 8rem;
62983
+ display: none;
62984
+ position: absolute;
62985
+ overflow-y: auto;
62986
+ }
62987
+
62988
+ .vd-timepicker-popup.is-open {
62989
+ display: block;
62990
+ }
62991
+
62992
+ .vd-timepicker-item {
62993
+ padding: var(--tp-item-padding);
62994
+ cursor: pointer;
62995
+ text-align: center;
62996
+ font-variant-numeric: tabular-nums;
62997
+ font-size: .875rem;
62998
+ transition: background .15s;
62999
+ }
63000
+
63001
+ .vd-timepicker-item:hover {
63002
+ background: var(--tp-item-hover-bg);
63003
+ }
63004
+
63005
+ .vd-timepicker-item.is-selected {
63006
+ background: var(--tp-item-selected-bg);
63007
+ color: var(--tp-item-selected-color);
63008
+ font-weight: 600;
63009
+ }
63010
+
63011
+ .vd-timepicker-item.is-disabled {
63012
+ opacity: .4;
63013
+ cursor: not-allowed;
63014
+ pointer-events: none;
63015
+ }
63016
+
63017
+ :root {
63018
+ --stepper-active-color: var(--color-primary, #0d6efd);
63019
+ --stepper-completed-color: var(--color-success, #198754);
63020
+ --stepper-error-color: var(--color-danger, #dc3545);
63021
+ --stepper-pending-color: var(--color-gray-400, #ced4da);
63022
+ --stepper-text-color: var(--text-primary, #212529);
63023
+ --stepper-line-color: var(--border-color, #dee2e6);
63024
+ --stepper-circle-size: 2.125rem;
63025
+ --stepper-line-width: 2px;
63026
+ --stepper-gap: .5rem;
63027
+ --stepper-connector-gap: .8125rem;
63028
+ }
63029
+
63030
+ [data-theme="dark"] {
63031
+ --stepper-pending-color: var(--color-gray-600, #6c757d);
63032
+ --stepper-line-color: var(--color-gray-600, #6c757d);
63033
+ }
63034
+
63035
+ @media (prefers-color-scheme: dark) {
63036
+ :root:not([data-theme]) {
63037
+ --stepper-pending-color: var(--color-gray-600, #6c757d);
63038
+ --stepper-line-color: var(--color-gray-600, #6c757d);
63039
+ }
63040
+ }
63041
+
63042
+ .vd-stepper {
63043
+ counter-reset: step;
63044
+ align-items: flex-start;
63045
+ width: 100%;
63046
+ display: flex;
63047
+ }
63048
+
63049
+ .vd-stepper-item {
63050
+ text-align: center;
63051
+ flex-direction: column;
63052
+ flex: 1;
63053
+ align-items: center;
63054
+ display: flex;
63055
+ position: relative;
63056
+ }
63057
+
63058
+ .vd-stepper-item:not(:last-child):after {
63059
+ content: "";
63060
+ top: calc(var(--stepper-circle-size) / 2);
63061
+ left: calc(50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
63062
+ right: calc(-50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
63063
+ height: var(--stepper-line-width);
63064
+ background: var(--stepper-line-color);
63065
+ z-index: 0;
63066
+ position: absolute;
63067
+ }
63068
+
63069
+ .vd-stepper-circle {
63070
+ width: var(--stepper-circle-size);
63071
+ height: var(--stepper-circle-size);
63072
+ border: var(--stepper-line-width) solid var(--stepper-pending-color);
63073
+ background: var(--bg-primary, #fff);
63074
+ z-index: 1;
63075
+ counter-increment: step;
63076
+ border-radius: 50%;
63077
+ justify-content: center;
63078
+ align-items: center;
63079
+ font-size: .875rem;
63080
+ font-weight: 600;
63081
+ transition: background .2s, border-color .2s, color .2s;
63082
+ display: flex;
63083
+ }
63084
+
63085
+ .vd-stepper-label {
63086
+ margin-top: var(--stepper-gap);
63087
+ color: var(--text-muted, #6c757d);
63088
+ font-size: .8125rem;
63089
+ font-weight: 500;
63090
+ }
63091
+
63092
+ .vd-stepper-description {
63093
+ color: var(--text-muted, #6c757d);
63094
+ margin-top: .125rem;
63095
+ font-size: .75rem;
63096
+ }
63097
+
63098
+ .vd-stepper-item.is-active .vd-stepper-circle {
63099
+ border-color: var(--stepper-active-color);
63100
+ background: var(--stepper-active-color);
63101
+ color: #fff;
63102
+ }
63103
+
63104
+ .vd-stepper-item.is-active .vd-stepper-label {
63105
+ color: var(--stepper-active-color);
63106
+ font-weight: 600;
63107
+ }
63108
+
63109
+ .vd-stepper-item.is-completed .vd-stepper-circle {
63110
+ border-color: var(--stepper-completed-color);
63111
+ background: var(--stepper-completed-color);
63112
+ color: #fff;
63113
+ }
63114
+
63115
+ .vd-stepper-item.is-completed:after {
63116
+ background: var(--stepper-completed-color);
63117
+ }
63118
+
63119
+ .vd-stepper-item.is-completed .vd-stepper-label {
63120
+ color: var(--stepper-text-color);
63121
+ }
63122
+
63123
+ .vd-stepper-item.is-error .vd-stepper-circle {
63124
+ border-color: var(--stepper-error-color);
63125
+ background: var(--stepper-error-color);
63126
+ color: #fff;
63127
+ }
63128
+
63129
+ .vd-stepper-item.is-error .vd-stepper-label {
63130
+ color: var(--stepper-error-color);
63131
+ }
63132
+
63133
+ .vd-stepper-vertical {
63134
+ flex-direction: column;
63135
+ align-items: flex-start;
63136
+ }
63137
+
63138
+ .vd-stepper-vertical .vd-stepper-item {
63139
+ text-align: left;
63140
+ flex-direction: row;
63141
+ flex: none;
63142
+ align-items: flex-start;
63143
+ padding-bottom: 1.3125rem;
63144
+ }
63145
+
63146
+ .vd-stepper-vertical .vd-stepper-item:not(:last-child):after {
63147
+ top: calc(var(--stepper-circle-size) + var(--stepper-connector-gap));
63148
+ left: calc(var(--stepper-circle-size) / 2);
63149
+ width: var(--stepper-line-width);
63150
+ height: auto;
63151
+ bottom: 0;
63152
+ right: auto;
63153
+ }
63154
+
63155
+ .vd-stepper-vertical .vd-stepper-label, .vd-stepper-vertical .vd-stepper-description {
63156
+ margin-top: 0;
63157
+ margin-left: .8125rem;
63158
+ }
63159
+
63160
+ .vd-stepper-vertical .vd-stepper-content {
63161
+ flex-direction: column;
63162
+ margin-left: .8125rem;
63163
+ display: flex;
63164
+ }
63165
+
63166
+ .vd-stepper-clickable .vd-stepper-item {
63167
+ cursor: pointer;
63168
+ }
63169
+
63170
+ .vd-stepper-clickable .vd-stepper-circle:hover {
63171
+ transition: transform .15s;
63172
+ transform: scale(1.1);
63173
+ }
63174
+
63175
+ :root {
63176
+ --timeline-line-color: var(--border-color, #dee2e6);
63177
+ --timeline-marker-bg: var(--color-primary, #0d6efd);
63178
+ --timeline-marker-color: #fff;
63179
+ --timeline-content-bg: var(--card-bg, #fff);
63180
+ --timeline-content-border: var(--border-color, #dee2e6);
63181
+ --timeline-line-width: 2px;
63182
+ --timeline-marker-size: .8125rem;
63183
+ --timeline-marker-size-lg: 2.125rem;
63184
+ --timeline-spacing: 1.3125rem;
63185
+ --timeline-content-padding: .8125rem;
63186
+ --timeline-border-radius: var(--border-radius, .5rem);
63187
+ }
63188
+
63189
+ [data-theme="dark"] {
63190
+ --timeline-line-color: var(--color-gray-600, #6c757d);
63191
+ --timeline-content-bg: var(--card-bg, #2d2d44);
63192
+ --timeline-content-border: var(--border-color, #3d3d5c);
63193
+ }
63194
+
63195
+ @media (prefers-color-scheme: dark) {
63196
+ :root:not([data-theme]) {
63197
+ --timeline-line-color: var(--color-gray-600, #6c757d);
63198
+ --timeline-content-bg: var(--card-bg, #2d2d44);
63199
+ --timeline-content-border: var(--border-color, #3d3d5c);
63200
+ }
63201
+ }
63202
+
63203
+ .vd-timeline {
63204
+ padding-left: calc(var(--timeline-marker-size) / 2 + var(--timeline-spacing));
63205
+ margin: 0;
63206
+ list-style: none;
63207
+ position: relative;
63208
+ }
63209
+
63210
+ .vd-timeline:before {
63211
+ content: "";
63212
+ top: 0;
63213
+ bottom: 0;
63214
+ left: calc(var(--timeline-marker-size) / 2 - var(--timeline-line-width) / 2);
63215
+ width: var(--timeline-line-width);
63216
+ background: var(--timeline-line-color);
63217
+ position: absolute;
63218
+ }
63219
+
63220
+ .vd-timeline-item {
63221
+ padding-bottom: var(--timeline-spacing);
63222
+ position: relative;
63223
+ }
63224
+
63225
+ .vd-timeline-item:last-child {
63226
+ padding-bottom: 0;
63227
+ }
63228
+
63229
+ .vd-timeline-marker {
63230
+ left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size) / 2);
63231
+ width: var(--timeline-marker-size);
63232
+ height: var(--timeline-marker-size);
63233
+ background: var(--timeline-marker-bg);
63234
+ border: 2px solid var(--timeline-content-bg);
63235
+ box-shadow: 0 0 0 2px var(--timeline-marker-bg);
63236
+ border-radius: 50%;
63237
+ position: absolute;
63238
+ top: .25rem;
63239
+ }
63240
+
63241
+ .vd-timeline-marker-lg {
63242
+ width: var(--timeline-marker-size-lg);
63243
+ height: var(--timeline-marker-size-lg);
63244
+ left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size-lg) / 2);
63245
+ color: var(--timeline-marker-color);
63246
+ justify-content: center;
63247
+ align-items: center;
63248
+ font-size: .875rem;
63249
+ display: flex;
63250
+ }
63251
+
63252
+ .vd-timeline-content {
63253
+ background: var(--timeline-content-bg);
63254
+ border: 1px solid var(--timeline-content-border);
63255
+ border-radius: var(--timeline-border-radius);
63256
+ padding: var(--timeline-content-padding);
63257
+ }
63258
+
63259
+ .vd-timeline-title {
63260
+ margin: 0 0 .3125rem;
63261
+ font-size: 1rem;
63262
+ font-weight: 600;
63263
+ }
63264
+
63265
+ .vd-timeline-date {
63266
+ color: var(--text-muted, #6c757d);
63267
+ margin-bottom: .3125rem;
63268
+ font-size: .75rem;
63269
+ }
63270
+
63271
+ .vd-timeline-text {
63272
+ margin: 0;
63273
+ font-size: .875rem;
63274
+ }
63275
+
63276
+ .vd-timeline-item.vd-timeline-success .vd-timeline-marker {
63277
+ background: var(--color-success, #198754);
63278
+ box-shadow: 0 0 0 2px var(--color-success, #198754);
63279
+ }
63280
+
63281
+ .vd-timeline-item.vd-timeline-warning .vd-timeline-marker {
63282
+ background: var(--color-warning, #ffc107);
63283
+ box-shadow: 0 0 0 2px var(--color-warning, #ffc107);
63284
+ }
63285
+
63286
+ .vd-timeline-item.vd-timeline-danger .vd-timeline-marker {
63287
+ background: var(--color-danger, #dc3545);
63288
+ box-shadow: 0 0 0 2px var(--color-danger, #dc3545);
63289
+ }
63290
+
63291
+ .vd-timeline-alternating {
63292
+ padding-left: 0;
63293
+ }
63294
+
63295
+ .vd-timeline-alternating:before {
63296
+ left: 50%;
63297
+ transform: translateX(-50%);
63298
+ }
63299
+
63300
+ .vd-timeline-alternating .vd-timeline-item {
63301
+ width: 50%;
63302
+ padding-right: var(--timeline-spacing);
63303
+ padding-left: 0;
63304
+ }
63305
+
63306
+ .vd-timeline-alternating .vd-timeline-item:nth-child(odd) {
63307
+ text-align: right;
63308
+ margin-left: 0;
63309
+ }
63310
+
63311
+ .vd-timeline-alternating .vd-timeline-item:nth-child(odd) .vd-timeline-marker {
63312
+ left: auto;
63313
+ right: calc(-1 * var(--timeline-marker-size) / 2 - 1px);
63314
+ }
63315
+
63316
+ .vd-timeline-alternating .vd-timeline-item:nth-child(2n) {
63317
+ padding-left: var(--timeline-spacing);
63318
+ margin-left: 50%;
63319
+ padding-right: 0;
63320
+ }
63321
+
63322
+ .vd-timeline-alternating .vd-timeline-item:nth-child(2n) .vd-timeline-marker {
63323
+ left: calc(-1 * var(--timeline-marker-size) / 2 - 1px);
63324
+ }
63325
+
63326
+ @media (width <= 768px) {
63327
+ .vd-timeline-alternating {
63328
+ padding-left: calc(var(--timeline-marker-size) / 2 + var(--timeline-spacing));
63329
+ }
63330
+
63331
+ .vd-timeline-alternating:before {
63332
+ left: calc(var(--timeline-marker-size) / 2 - var(--timeline-line-width) / 2);
63333
+ transform: none;
63334
+ }
63335
+
63336
+ .vd-timeline-alternating .vd-timeline-item, .vd-timeline-alternating .vd-timeline-item:nth-child(odd), .vd-timeline-alternating .vd-timeline-item:nth-child(2n) {
63337
+ text-align: left;
63338
+ width: 100%;
63339
+ margin-left: 0;
63340
+ padding-left: 0;
63341
+ padding-right: 0;
63342
+ }
63343
+
63344
+ .vd-timeline-alternating .vd-timeline-item:nth-child(odd) .vd-timeline-marker, .vd-timeline-alternating .vd-timeline-item:nth-child(2n) .vd-timeline-marker {
63345
+ left: calc(-1 * var(--timeline-spacing) - var(--timeline-marker-size) / 2);
63346
+ right: auto;
63347
+ }
63348
+ }
63349
+
63350
+ :root {
63351
+ --rating-active-color: #f59e0b;
63352
+ --rating-inactive-color: var(--color-gray-300, #dee2e6);
63353
+ --rating-hover-color: #fbbf24;
63354
+ --rating-size: 1.3125rem;
63355
+ --rating-size-sm: 1rem;
63356
+ --rating-size-lg: 2.125rem;
63357
+ --rating-gap: .125rem;
63358
+ }
63359
+
63360
+ [data-theme="dark"] {
63361
+ --rating-inactive-color: var(--color-gray-600, #6c757d);
63362
+ }
63363
+
63364
+ @media (prefers-color-scheme: dark) {
63365
+ :root:not([data-theme]) {
63366
+ --rating-inactive-color: var(--color-gray-600, #6c757d);
63367
+ }
63368
+ }
63369
+
63370
+ .vd-rating {
63371
+ align-items: center;
63372
+ gap: var(--rating-gap);
63373
+ display: inline-flex;
63374
+ }
63375
+
63376
+ .vd-rating-star {
63377
+ font-size: var(--rating-size);
63378
+ color: var(--rating-inactive-color);
63379
+ cursor: pointer;
63380
+ user-select: none;
63381
+ background: none;
63382
+ border: none;
63383
+ justify-content: center;
63384
+ align-items: center;
63385
+ padding: 0;
63386
+ line-height: 1;
63387
+ transition: color .15s, transform .15s;
63388
+ display: inline-flex;
63389
+ }
63390
+
63391
+ .vd-rating-star:before {
63392
+ content: "★";
63393
+ }
63394
+
63395
+ .vd-rating-star:hover {
63396
+ transform: scale(1.2);
63397
+ }
63398
+
63399
+ .vd-rating-star.is-active {
63400
+ color: var(--rating-active-color);
63401
+ }
63402
+
63403
+ .vd-rating-star.is-hovered {
63404
+ color: var(--rating-hover-color);
63405
+ }
63406
+
63407
+ .vd-rating-star.is-half {
63408
+ color: var(--rating-inactive-color);
63409
+ position: relative;
63410
+ }
63411
+
63412
+ .vd-rating-star.is-half:after {
63413
+ content: "★";
63414
+ width: 50%;
63415
+ color: var(--rating-active-color);
63416
+ position: absolute;
63417
+ top: 0;
63418
+ left: 0;
63419
+ overflow: hidden;
63420
+ }
63421
+
63422
+ .vd-rating-readonly .vd-rating-star {
63423
+ cursor: default;
63424
+ pointer-events: none;
63425
+ }
63426
+
63427
+ .vd-rating-readonly .vd-rating-star:hover {
63428
+ transform: none;
63429
+ }
63430
+
63431
+ .vd-rating-sm .vd-rating-star {
63432
+ font-size: var(--rating-size-sm);
63433
+ }
63434
+
63435
+ .vd-rating-lg .vd-rating-star {
63436
+ font-size: var(--rating-size-lg);
63437
+ }
63438
+
63439
+ .vd-rating-value {
63440
+ color: var(--text-primary, #212529);
63441
+ margin-left: .5rem;
63442
+ font-size: .875rem;
63443
+ font-weight: 600;
63444
+ }
63445
+
63446
+ :root {
63447
+ --transfer-bg: var(--card-bg, #fff);
63448
+ --transfer-border-color: var(--border-color, #dee2e6);
63449
+ --transfer-item-hover-bg: var(--bg-secondary, #f8f9fa);
63450
+ --transfer-item-selected-bg: var(--color-primary-alpha-10, #0d6efd1a);
63451
+ --transfer-header-bg: var(--bg-secondary, #f8f9fa);
63452
+ --transfer-padding: .5rem;
63453
+ --transfer-list-height: 15rem;
63454
+ --transfer-border-radius: var(--border-radius, .5rem);
63455
+ --transfer-gap: .8125rem;
63456
+ }
63457
+
63458
+ [data-theme="dark"] {
63459
+ --transfer-bg: var(--card-bg, #2d2d44);
63460
+ --transfer-border-color: var(--border-color, #3d3d5c);
63461
+ --transfer-item-hover-bg: var(--bg-primary, #1a1a2e);
63462
+ --transfer-header-bg: var(--bg-primary, #1a1a2e);
63463
+ }
63464
+
63465
+ @media (prefers-color-scheme: dark) {
63466
+ :root:not([data-theme]) {
63467
+ --transfer-bg: var(--card-bg, #2d2d44);
63468
+ --transfer-border-color: var(--border-color, #3d3d5c);
63469
+ --transfer-item-hover-bg: var(--bg-primary, #1a1a2e);
63470
+ --transfer-header-bg: var(--bg-primary, #1a1a2e);
63471
+ }
63472
+ }
63473
+
63474
+ .vd-transfer {
63475
+ align-items: stretch;
63476
+ gap: var(--transfer-gap);
63477
+ display: flex;
63478
+ }
63479
+
63480
+ .vd-transfer-panel {
63481
+ border: 1px solid var(--transfer-border-color);
63482
+ border-radius: var(--transfer-border-radius);
63483
+ background: var(--transfer-bg);
63484
+ flex-direction: column;
63485
+ flex: 1;
63486
+ min-width: 10rem;
63487
+ display: flex;
63488
+ }
63489
+
63490
+ .vd-transfer-header {
63491
+ padding: var(--transfer-padding) .8125rem;
63492
+ background: var(--transfer-header-bg);
63493
+ border-bottom: 1px solid var(--transfer-border-color);
63494
+ border-radius: var(--transfer-border-radius) var(--transfer-border-radius) 0 0;
63495
+ justify-content: space-between;
63496
+ align-items: center;
63497
+ font-size: .8125rem;
63498
+ font-weight: 600;
63499
+ display: flex;
63500
+ }
63501
+
63502
+ .vd-transfer-count {
63503
+ color: var(--text-muted, #6c757d);
63504
+ font-weight: 400;
63505
+ }
63506
+
63507
+ .vd-transfer-search {
63508
+ padding: var(--transfer-padding);
63509
+ border-bottom: 1px solid var(--transfer-border-color);
63510
+ }
63511
+
63512
+ .vd-transfer-search input {
63513
+ border: 1px solid var(--transfer-border-color);
63514
+ background: var(--transfer-bg);
63515
+ width: 100%;
63516
+ color: var(--text-primary, #212529);
63517
+ border-radius: .25rem;
63518
+ padding: .3125rem .5rem;
63519
+ font-size: .8125rem;
63520
+ }
63521
+
63522
+ .vd-transfer-list {
63523
+ max-height: var(--transfer-list-height);
63524
+ flex: 1;
63525
+ margin: 0;
63526
+ padding: 0;
63527
+ list-style: none;
63528
+ overflow-y: auto;
63529
+ }
63530
+
63531
+ .vd-transfer-item {
63532
+ cursor: pointer;
63533
+ align-items: center;
63534
+ gap: .5rem;
63535
+ padding: .3125rem .8125rem;
63536
+ font-size: .875rem;
63537
+ transition: background .15s;
63538
+ display: flex;
63539
+ }
63540
+
63541
+ .vd-transfer-item:hover {
63542
+ background: var(--transfer-item-hover-bg);
63543
+ }
63544
+
63545
+ .vd-transfer-item.is-selected {
63546
+ background: var(--transfer-item-selected-bg);
63547
+ }
63548
+
63549
+ .vd-transfer-item input[type="checkbox"] {
63550
+ margin: 0;
63551
+ }
63552
+
63553
+ .vd-transfer-actions {
63554
+ flex-direction: column;
63555
+ justify-content: center;
63556
+ align-items: center;
63557
+ gap: .3125rem;
63558
+ display: flex;
63559
+ }
63560
+
63561
+ .vd-transfer-btn {
63562
+ border: 1px solid var(--transfer-border-color);
63563
+ background: var(--transfer-bg);
63564
+ cursor: pointer;
63565
+ border-radius: .25rem;
63566
+ justify-content: center;
63567
+ align-items: center;
63568
+ width: 2rem;
63569
+ height: 2rem;
63570
+ padding: 0;
63571
+ font-size: .875rem;
63572
+ transition: background .15s;
63573
+ display: flex;
63574
+ }
63575
+
63576
+ .vd-transfer-btn:hover {
63577
+ background: var(--transfer-item-hover-bg);
63578
+ }
63579
+
63580
+ .vd-transfer-btn:disabled {
63581
+ opacity: .4;
63582
+ cursor: not-allowed;
63583
+ }
63584
+
63585
+ @media (width <= 576px) {
63586
+ .vd-transfer {
63587
+ flex-direction: column;
63588
+ }
63589
+
63590
+ .vd-transfer-actions {
63591
+ flex-direction: row;
63592
+ }
63593
+ }
63594
+
63595
+ :root {
63596
+ --tree-indent: 1.3125rem;
63597
+ --tree-line-color: var(--border-color, #dee2e6);
63598
+ --tree-line-width: 1px;
63599
+ --tree-item-padding: .25rem .3125rem;
63600
+ --tree-item-hover-bg: var(--bg-secondary, #f8f9fa);
63601
+ --tree-icon-size: 1rem;
63602
+ --tree-toggle-size: 1.125rem;
63603
+ }
63604
+
63605
+ [data-theme="dark"] {
63606
+ --tree-line-color: var(--color-gray-600, #6c757d);
63607
+ --tree-item-hover-bg: var(--bg-primary, #1a1a2e);
63608
+ }
63609
+
63610
+ @media (prefers-color-scheme: dark) {
63611
+ :root:not([data-theme]) {
63612
+ --tree-line-color: var(--color-gray-600, #6c757d);
63613
+ --tree-item-hover-bg: var(--bg-primary, #1a1a2e);
63614
+ }
63615
+ }
63616
+
63617
+ .vd-tree {
63618
+ margin: 0;
63619
+ padding: 0;
63620
+ list-style: none;
63621
+ }
63622
+
63623
+ .vd-tree .vd-tree {
63624
+ padding-left: var(--tree-indent);
63625
+ }
63626
+
63627
+ .vd-tree-node {
63628
+ position: relative;
63629
+ }
63630
+
63631
+ .vd-tree-node-content {
63632
+ padding: var(--tree-item-padding);
63633
+ cursor: default;
63634
+ border-radius: .25rem;
63635
+ align-items: center;
63636
+ gap: .3125rem;
63637
+ font-size: .875rem;
63638
+ transition: background .15s;
63639
+ display: flex;
63640
+ }
63641
+
63642
+ .vd-tree-node-content:hover {
63643
+ background: var(--tree-item-hover-bg);
63644
+ }
63645
+
63646
+ .vd-tree-toggle {
63647
+ width: var(--tree-toggle-size);
63648
+ height: var(--tree-toggle-size);
63649
+ cursor: pointer;
63650
+ color: var(--text-muted, #6c757d);
63651
+ background: none;
63652
+ border: none;
63653
+ flex-shrink: 0;
63654
+ justify-content: center;
63655
+ align-items: center;
63656
+ padding: 0;
63657
+ font-size: .625rem;
63658
+ transition: transform .2s;
63659
+ display: inline-flex;
63660
+ }
63661
+
63662
+ .vd-tree-toggle:before {
63663
+ content: "▶";
63664
+ }
63665
+
63666
+ .vd-tree-node.is-open > .vd-tree-node-content .vd-tree-toggle {
63667
+ transform: rotate(90deg);
63668
+ }
63669
+
63670
+ .vd-tree-toggle-placeholder {
63671
+ width: var(--tree-toggle-size);
63672
+ flex-shrink: 0;
63673
+ }
63674
+
63675
+ .vd-tree-checkbox {
63676
+ flex-shrink: 0;
63677
+ margin: 0;
63678
+ }
63679
+
63680
+ .vd-tree-icon {
63681
+ font-size: var(--tree-icon-size);
63682
+ color: var(--text-muted, #6c757d);
63683
+ flex-shrink: 0;
63684
+ }
63685
+
63686
+ .vd-tree-node.is-open > .vd-tree-node-content .vd-tree-icon-folder:before {
63687
+ content: "📂";
63688
+ }
63689
+
63690
+ .vd-tree-icon-folder:before {
63691
+ content: "📁";
63692
+ }
63693
+
63694
+ .vd-tree-icon-file:before {
63695
+ content: "📄";
63696
+ }
63697
+
63698
+ .vd-tree-label {
63699
+ text-overflow: ellipsis;
63700
+ white-space: nowrap;
63701
+ flex: 1;
63702
+ min-width: 0;
63703
+ overflow: hidden;
63704
+ }
63705
+
63706
+ .vd-tree-node.is-selected > .vd-tree-node-content .vd-tree-label {
63707
+ color: var(--color-primary, #0d6efd);
63708
+ font-weight: 600;
63709
+ }
63710
+
63711
+ .vd-tree-children {
63712
+ padding: 0;
63713
+ padding-left: var(--tree-indent);
63714
+ margin: 0;
63715
+ list-style: none;
63716
+ display: none;
63717
+ }
63718
+
63719
+ .vd-tree-node.is-open > .vd-tree-children {
63720
+ display: block;
63721
+ }
63722
+
63723
+ .vd-tree-lines .vd-tree-children {
63724
+ position: relative;
63725
+ }
63726
+
63727
+ .vd-tree-lines .vd-tree-children:before {
63728
+ content: "";
63729
+ top: 0;
63730
+ left: calc(var(--tree-toggle-size) / 2);
63731
+ width: var(--tree-line-width);
63732
+ background: var(--tree-line-color);
63733
+ position: absolute;
63734
+ bottom: .75rem;
63735
+ }
63736
+
63737
+ .vd-tree-lines .vd-tree-children .vd-tree-node:before {
63738
+ content: "";
63739
+ top: 50%;
63740
+ left: calc(var(--tree-toggle-size) / 2 - var(--tree-indent));
63741
+ width: .5rem;
63742
+ height: var(--tree-line-width);
63743
+ background: var(--tree-line-color);
63744
+ position: absolute;
63745
+ }
63746
+
63747
+ :root {
63748
+ --spotlight-overlay-bg: #00000080;
63749
+ --spotlight-tooltip-bg: var(--card-bg, #fff);
63750
+ --spotlight-tooltip-color: var(--text-primary, #212529);
63751
+ --spotlight-tooltip-shadow: 0 .5rem 1.3125rem #00000026;
63752
+ --spotlight-tooltip-padding: 1.3125rem;
63753
+ --spotlight-tooltip-radius: var(--border-radius, .5rem);
63754
+ --spotlight-tooltip-max-width: 21rem;
63755
+ --spotlight-highlight-padding: .5rem;
63756
+ --spotlight-z-index: 1080;
63757
+ }
63758
+
63759
+ [data-theme="dark"] {
63760
+ --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
63761
+ --spotlight-tooltip-shadow: 0 .5rem 1.3125rem #00000059;
63762
+ }
63763
+
63764
+ @media (prefers-color-scheme: dark) {
63765
+ :root:not([data-theme]) {
63766
+ --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
63767
+ --spotlight-tooltip-shadow: 0 .5rem 1.3125rem #00000059;
63768
+ }
63769
+ }
63770
+
63771
+ .vd-spotlight-overlay {
63772
+ width: 100vw;
63773
+ height: 100vh;
63774
+ z-index: var(--spotlight-z-index);
63775
+ pointer-events: auto;
63776
+ transition: opacity .3s;
63777
+ position: fixed;
63778
+ top: 0;
63779
+ left: 0;
63780
+ }
63781
+
63782
+ .vd-spotlight-tooltip {
63783
+ z-index: calc(var(--spotlight-z-index) + 2);
63784
+ background: var(--spotlight-tooltip-bg);
63785
+ color: var(--spotlight-tooltip-color);
63786
+ padding: var(--spotlight-tooltip-padding);
63787
+ border-radius: var(--spotlight-tooltip-radius);
63788
+ box-shadow: var(--spotlight-tooltip-shadow);
63789
+ max-width: var(--spotlight-tooltip-max-width);
63790
+ position: absolute;
63791
+ }
63792
+
63793
+ .vd-spotlight-title {
63794
+ margin: 0 0 .5rem;
63795
+ font-size: 1.125rem;
63796
+ font-weight: 600;
63797
+ }
63798
+
63799
+ .vd-spotlight-description {
63800
+ margin: 0 0 .8125rem;
63801
+ font-size: .875rem;
63802
+ line-height: 1.5;
63803
+ }
63804
+
63805
+ .vd-spotlight-footer {
63806
+ justify-content: space-between;
63807
+ align-items: center;
63808
+ gap: .5rem;
63809
+ display: flex;
63810
+ }
63811
+
63812
+ .vd-spotlight-counter {
63813
+ color: var(--text-muted, #6c757d);
63814
+ font-size: .75rem;
63815
+ }
63816
+
63817
+ .vd-spotlight-actions {
63818
+ gap: .3125rem;
63819
+ display: flex;
63820
+ }
63821
+
63822
+ .vd-spotlight-btn {
63823
+ border: 1px solid var(--border-color, #dee2e6);
63824
+ cursor: pointer;
63825
+ background: none;
63826
+ border-radius: .25rem;
63827
+ padding: .3125rem .8125rem;
63828
+ font-size: .8125rem;
63829
+ transition: background .15s;
63830
+ }
63831
+
63832
+ .vd-spotlight-btn:hover {
63833
+ background: var(--bg-secondary, #f8f9fa);
63834
+ }
63835
+
63836
+ .vd-spotlight-btn-primary {
63837
+ background: var(--color-primary, #0d6efd);
63838
+ color: #fff;
63839
+ border-color: var(--color-primary, #0d6efd);
63840
+ }
63841
+
63842
+ .vd-spotlight-btn-primary:hover {
63843
+ background: var(--color-primary-dark, #0b5ed7);
63844
+ }
63845
+
63846
+ .vd-spotlight-target {
63847
+ z-index: calc(var(--spotlight-z-index) + 1);
63848
+ box-shadow: 0 0 0 var(--spotlight-highlight-padding) #0d6efd40,
63849
+ 0 0 0 9999px var(--spotlight-overlay-bg);
63850
+ border-radius: .25rem;
63851
+ position: relative;
63852
+ }
63853
+
61912
63854
  @media print {
61913
63855
  *, :before, :after {
61914
63856
  color: #000 !important;