@dataengineeringformachinelearning/viking-ui 4.0.4 → 4.0.6

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 (246) hide show
  1. package/README.md +35 -11
  2. package/dist/README.md +35 -11
  3. package/dist/design-tokens.css +300 -85
  4. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +100 -64
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
  6. package/dist/icons.js +306 -0
  7. package/dist/package.json +24 -5
  8. package/{src/lib/site-drakkar/site-drakkar.config.ts → dist/site-drakkar.js} +64 -130
  9. package/dist/src/tokens/viking-tokens.json +9 -7
  10. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +97 -3
  11. package/dist/viking-components.css +161 -70
  12. package/dist/viking-tokens.json +9 -7
  13. package/dist/viking-ui-elements.js +44 -32
  14. package/dist/viking-ui.css +1 -1
  15. package/dist/web-components.js +44 -32
  16. package/package.json +30 -8
  17. package/dist/scripts/build-web-components.mjs +0 -37
  18. package/dist/src/web/badge/viking-badge-wc.ts +0 -116
  19. package/dist/src/web/button/viking-button-wc.ts +0 -165
  20. package/dist/src/web/callout/viking-callout-wc.ts +0 -105
  21. package/dist/src/web/card/viking-card-wc.ts +0 -67
  22. package/dist/src/web/core/base.ts +0 -56
  23. package/dist/src/web/core/dom.ts +0 -53
  24. package/dist/src/web/core/icons-inline.ts +0 -44
  25. package/dist/src/web/core/styles.ts +0 -1261
  26. package/dist/src/web/core/types.ts +0 -19
  27. package/dist/src/web/field/viking-field-wc.ts +0 -154
  28. package/dist/src/web/index.ts +0 -73
  29. package/dist/src/web/input/viking-input-wc.ts +0 -211
  30. package/dist/src/web/modal/viking-modal-wc.ts +0 -187
  31. package/dist/src/web/search-palette/viking-search-palette-wc.ts +0 -495
  32. package/dist/src/web/select/viking-select-wc.ts +0 -218
  33. package/dist/src/web/suite-header/viking-suite-header-wc.ts +0 -729
  34. package/dist/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +0 -234
  35. package/dist/src/web/theme-toggle/viking-theme-toggle-wc.ts +0 -139
  36. package/dist/src/web/types.ts +0 -37
  37. package/dist/src/web/web-components.spec.ts +0 -297
  38. package/src/assets/drakkar-favicon.svg +0 -17
  39. package/src/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
  40. package/src/assets/fonts/inter/InterVariable.woff2 +0 -0
  41. package/src/core/brand/deml-lockup.svg +0 -5
  42. package/src/core/brand/deml-mark-compact.svg +0 -4
  43. package/src/core/brand/deml-mark-filled.svg +0 -3
  44. package/src/core/brand/deml-mark-outline.svg +0 -4
  45. package/src/core/brand-icons.ts +0 -62
  46. package/src/core/icons.spec.ts +0 -52
  47. package/src/core/icons.ts +0 -206
  48. package/src/core/integration-brand-icons.ts +0 -77
  49. package/src/core/lucide-paths.generated.ts +0 -130
  50. package/src/core/types.ts +0 -85
  51. package/src/core/uid.ts +0 -7
  52. package/src/elements/button/viking-button.ts +0 -201
  53. package/src/elements/card/viking-card.ts +0 -60
  54. package/src/elements/core/dom.ts +0 -33
  55. package/src/elements/core/styles.ts +0 -28
  56. package/src/elements/modal/viking-modal.ts +0 -154
  57. package/src/index.ts +0 -1
  58. package/src/lib/accordion/accordion.ts +0 -126
  59. package/src/lib/app-header/app-header.scss +0 -274
  60. package/src/lib/app-header/app-header.ts +0 -43
  61. package/src/lib/app-sidebar/app-sidebar.scss +0 -415
  62. package/src/lib/app-sidebar/app-sidebar.ts +0 -29
  63. package/src/lib/auth-panel/auth-panel.spec.ts +0 -132
  64. package/src/lib/auth-panel/auth-panel.ts +0 -228
  65. package/src/lib/autocomplete/autocomplete.ts +0 -223
  66. package/src/lib/avatar/avatar.ts +0 -126
  67. package/src/lib/badge/badge.ts +0 -182
  68. package/src/lib/bar/bar.ts +0 -31
  69. package/src/lib/brand/brand.ts +0 -60
  70. package/src/lib/breadcrumbs/breadcrumbs.ts +0 -81
  71. package/src/lib/button/button-group.ts +0 -40
  72. package/src/lib/button/button.scss +0 -119
  73. package/src/lib/button/button.ts +0 -98
  74. package/src/lib/calendar/calendar.ts +0 -253
  75. package/src/lib/callout/callout.ts +0 -211
  76. package/src/lib/card/card-title.spec.ts +0 -27
  77. package/src/lib/card/card-title.ts +0 -50
  78. package/src/lib/card/card.ts +0 -200
  79. package/src/lib/carousel/carousel.ts +0 -206
  80. package/src/lib/chart/chart-zoom.spec.ts +0 -65
  81. package/src/lib/chart/chart-zoom.ts +0 -71
  82. package/src/lib/chart/chart.ts +0 -1257
  83. package/src/lib/chart-card-header/chart-card-header.ts +0 -80
  84. package/src/lib/chart-empty-state/chart-empty-state.ts +0 -146
  85. package/src/lib/chart-panel/chart-panel.ts +0 -133
  86. package/src/lib/checkbox/checkbox.ts +0 -139
  87. package/src/lib/color-picker/color-picker.ts +0 -148
  88. package/src/lib/command/command.ts +0 -260
  89. package/src/lib/composer/composer.ts +0 -180
  90. package/src/lib/confirm-dialog/confirm-dialog.ts +0 -163
  91. package/src/lib/confirm-dialog/dialog.service.ts +0 -79
  92. package/src/lib/context/context.ts +0 -75
  93. package/src/lib/core/brand-icons.ts +0 -62
  94. package/src/lib/core/cva.ts +0 -33
  95. package/src/lib/core/icons.ts +0 -206
  96. package/src/lib/core/integration-brand-icons.ts +0 -77
  97. package/src/lib/core/lucide-paths.generated.ts +0 -130
  98. package/src/lib/date-picker/date-picker.ts +0 -139
  99. package/src/lib/dropdown/dropdown.ts +0 -188
  100. package/src/lib/editor/editor.ts +0 -170
  101. package/src/lib/empty-state/empty-state.ts +0 -100
  102. package/src/lib/fab/fab.ts +0 -76
  103. package/src/lib/field/field.ts +0 -111
  104. package/src/lib/file-upload/file-upload.ts +0 -208
  105. package/src/lib/footer/footer.scss +0 -162
  106. package/src/lib/footer/footer.ts +0 -28
  107. package/src/lib/form-section/form-section.ts +0 -200
  108. package/src/lib/forms.spec.ts +0 -92
  109. package/src/lib/gauge-arc/gauge-arc.ts +0 -85
  110. package/src/lib/hud-panel/hud-panel.ts +0 -27
  111. package/src/lib/icon/icon.ts +0 -284
  112. package/src/lib/icon-badge/icon-badge.ts +0 -87
  113. package/src/lib/icon-heading/icon-heading.spec.ts +0 -32
  114. package/src/lib/icon-heading/icon-heading.ts +0 -38
  115. package/src/lib/icon-text/icon-text.ts +0 -120
  116. package/src/lib/input/input.ts +0 -119
  117. package/src/lib/kanban/kanban.ts +0 -211
  118. package/src/lib/kbd/kbd.ts +0 -32
  119. package/src/lib/label/label.ts +0 -39
  120. package/src/lib/loading-overlay/loading-overlay.ts +0 -80
  121. package/src/lib/menubar/menubar.ts +0 -77
  122. package/src/lib/metric-card/metric-card.ts +0 -33
  123. package/src/lib/modal/modal.ts +0 -207
  124. package/src/lib/native-select/native-select.ts +0 -124
  125. package/src/lib/navbar/navbar.ts +0 -124
  126. package/src/lib/navigation-menu/navigation-menu.ts +0 -116
  127. package/src/lib/otp-input/otp-input.ts +0 -164
  128. package/src/lib/page-back-link/page-back-link.ts +0 -74
  129. package/src/lib/page-header/page-header.ts +0 -70
  130. package/src/lib/pagination/pagination.ts +0 -157
  131. package/src/lib/pillbox/pillbox.ts +0 -157
  132. package/src/lib/popover/popover.ts +0 -92
  133. package/src/lib/profile/profile.ts +0 -73
  134. package/src/lib/progress/progress.ts +0 -123
  135. package/src/lib/radio/radio.ts +0 -132
  136. package/src/lib/ring-gauge/ring-gauge.ts +0 -75
  137. package/src/lib/scroll-area/scroll-area.ts +0 -57
  138. package/src/lib/search-palette/search-palette.scss +0 -288
  139. package/src/lib/search-palette/search-palette.ts +0 -114
  140. package/src/lib/select/select.ts +0 -292
  141. package/src/lib/separator/separator.ts +0 -59
  142. package/src/lib/sheet/sheet.ts +0 -192
  143. package/src/lib/sidebar-nav/sidebar-nav.scss +0 -218
  144. package/src/lib/sidebar-nav/sidebar-nav.ts +0 -158
  145. package/src/lib/site-drakkar/site-footer.ts +0 -133
  146. package/src/lib/site-drakkar/site-navbar.scss +0 -2
  147. package/src/lib/site-drakkar/site-navbar.ts +0 -286
  148. package/src/lib/site-drakkar/suite-search-items.spec.ts +0 -61
  149. package/src/lib/site-drakkar/suite-search-items.ts +0 -246
  150. package/src/lib/skeleton/skeleton.ts +0 -51
  151. package/src/lib/slider/slider.ts +0 -133
  152. package/src/lib/spinner/spinner.ts +0 -75
  153. package/src/lib/status-metric-row/status-metric-row.ts +0 -74
  154. package/src/lib/suite-search-palette/suite-search-palette.ts +0 -95
  155. package/src/lib/switch/switch.ts +0 -131
  156. package/src/lib/table/table.ts +0 -137
  157. package/src/lib/tabs/tab-panel.ts +0 -61
  158. package/src/lib/tabs/tab.ts +0 -107
  159. package/src/lib/tabs/tabs.ts +0 -109
  160. package/src/lib/textarea/textarea.ts +0 -103
  161. package/src/lib/theme-toggle/theme-toggle.spec.ts +0 -40
  162. package/src/lib/theme-toggle/theme-toggle.ts +0 -40
  163. package/src/lib/time-picker/time-picker.ts +0 -197
  164. package/src/lib/timeline/timeline.ts +0 -152
  165. package/src/lib/toast/toast.ts +0 -196
  166. package/src/lib/toggle/toggle-group.ts +0 -60
  167. package/src/lib/toggle/toggle.ts +0 -101
  168. package/src/lib/tooltip/tooltip.ts +0 -119
  169. package/src/lib/typography/heading.ts +0 -52
  170. package/src/lib/typography/text.ts +0 -51
  171. package/src/lib/uptime-bar/uptime-bar.ts +0 -55
  172. package/src/lib/verification-code-field/verification-code-field.ts +0 -149
  173. package/src/lib/whitepaper-cta/whitepaper-cta.scss +0 -130
  174. package/src/lib/whitepaper-cta/whitepaper-cta.ts +0 -78
  175. package/src/lib/wizard/wizard.ts +0 -80
  176. package/src/public-api.ts +0 -172
  177. package/src/styles/_buttons.scss +0 -386
  178. package/src/styles/_component-primitives.scss +0 -183
  179. package/src/styles/_drakkar-buttons.scss +0 -85
  180. package/src/styles/_fonts.scss +0 -22
  181. package/src/styles/_forms.scss +0 -66
  182. package/src/styles/_input.scss +0 -106
  183. package/src/styles/_layout-enforcement.scss +0 -229
  184. package/src/styles/_layout-rhythm.scss +0 -158
  185. package/src/styles/_legacy-aliases.scss +0 -212
  186. package/src/styles/_series-colors.scss +0 -24
  187. package/src/styles/_static-primitives.scss +0 -857
  188. package/src/styles/_typography.scss +0 -87
  189. package/src/styles/_variables.scss +0 -527
  190. package/src/styles/components/a11y.scss +0 -90
  191. package/src/styles/components/badges.scss +0 -102
  192. package/src/styles/components/extracted-utilities.scss +0 -459
  193. package/src/styles/components/footer.scss +0 -168
  194. package/src/styles/components/icon-heading.scss +0 -47
  195. package/src/styles/components/icon-inline.scss +0 -101
  196. package/src/styles/components/layout.scss +0 -59
  197. package/src/styles/components/utilities.scss +0 -131
  198. package/src/styles/components/viking-inspired.scss +0 -204
  199. package/src/styles/components/whitepaper-cta.scss +0 -130
  200. package/src/styles/components-bundle.scss +0 -9
  201. package/src/styles/components.scss +0 -442
  202. package/src/styles/deml-components.scss +0 -10
  203. package/src/styles/index.scss +0 -8
  204. package/src/styles/layout-shell.scss +0 -111
  205. package/src/styles/page-shell.scss +0 -859
  206. package/src/styles/static-navbar.scss +0 -1250
  207. package/src/styles/surfaces/backend.scss +0 -154
  208. package/src/styles/surfaces/docs-global.scss +0 -73
  209. package/src/styles/surfaces/docs-shell.scss +0 -437
  210. package/src/styles/surfaces/docs-showcase.scss +0 -1153
  211. package/src/styles/surfaces/marketing-cta.scss +0 -62
  212. package/src/styles/surfaces/marketing-docs-bento.scss +0 -67
  213. package/src/styles/surfaces/marketing-global.scss +0 -748
  214. package/src/styles/surfaces/marketing-landing.scss +0 -1526
  215. package/src/styles/surfaces/marketing-publication.scss +0 -535
  216. package/src/styles/surfaces/marketing-theme.scss +0 -14
  217. package/src/styles/surfaces/swagger-ui.scss +0 -1013
  218. package/src/styles/tokens-export.scss +0 -18
  219. package/src/styles/tokens.scss +0 -5
  220. package/src/styles/viking-ui-bundle.scss +0 -23
  221. package/src/styles/viking-ui.scss +0 -272
  222. package/src/tokens/series-presets.ts +0 -15
  223. package/src/tokens/tailwind.preset.js +0 -209
  224. package/src/tokens/viking-tokens.json +0 -318
  225. package/src/viking-ui.spec.ts +0 -416
  226. package/src/web/badge/viking-badge-wc.ts +0 -116
  227. package/src/web/button/viking-button-wc.ts +0 -165
  228. package/src/web/callout/viking-callout-wc.ts +0 -105
  229. package/src/web/card/viking-card-wc.ts +0 -67
  230. package/src/web/core/base.ts +0 -56
  231. package/src/web/core/dom.ts +0 -53
  232. package/src/web/core/icons-inline.ts +0 -44
  233. package/src/web/core/styles.ts +0 -1261
  234. package/src/web/core/types.ts +0 -19
  235. package/src/web/field/viking-field-wc.ts +0 -154
  236. package/src/web/index.ts +0 -73
  237. package/src/web/input/viking-input-wc.ts +0 -211
  238. package/src/web/modal/viking-modal-wc.ts +0 -187
  239. package/src/web/search-palette/viking-search-palette-wc.ts +0 -495
  240. package/src/web/select/viking-select-wc.ts +0 -218
  241. package/src/web/suite-header/viking-suite-header-wc.ts +0 -729
  242. package/src/web/suite-search-palette/viking-suite-search-palette-wc.ts +0 -234
  243. package/src/web/theme-toggle/viking-theme-toggle-wc.ts +0 -139
  244. package/src/web/types.ts +0 -37
  245. package/src/web/web-components.spec.ts +0 -297
  246. package/src/web-components/index.ts +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, signal, Directive, input, computed, ChangeDetectionStrategy, Component, output, CUSTOM_ELEMENTS_SCHEMA, ViewEncapsulation, model, Optional, viewChild, contentChildren, effect, Injectable, afterNextRender, InjectionToken, DOCUMENT, Inject, inject, PLATFORM_ID } from '@angular/core';
2
+ import { forwardRef, signal, Directive, input, computed, ChangeDetectionStrategy, Component, output, CUSTOM_ELEMENTS_SCHEMA, ViewEncapsulation, HostListener, model, Optional, viewChild, contentChildren, effect, Injectable, afterNextRender, InjectionToken, DOCUMENT, Inject, inject, PLATFORM_ID } from '@angular/core';
3
3
  import * as i2 from '@angular/forms';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
5
  import { RouterLink, RouterLinkActive } from '@angular/router';
@@ -308,6 +308,19 @@ const VIKING_ICON_NAMES$1 = Object.keys(VIKING_ICON_PATHS$1);
308
308
  /** Lucide-sourced icon names (for docs and showcase grouping). */
309
309
  const VIKING_LUCIDE_ICON_NAMES$1 = Object.keys(LUCIDE_ICON_PATHS$1);
310
310
 
311
+ /** Fixed series palette — keep in sync with viking-tokens.json and THEME.md §8.4 */
312
+ const VIKING_SERIES_PRESETS = [
313
+ "var(--viking-electric-500)",
314
+ "var(--viking-crimson-600)",
315
+ "var(--viking-green-500)",
316
+ "var(--viking-gold-500)",
317
+ "var(--viking-crimson-500)",
318
+ "var(--viking-blue-500)",
319
+ "var(--viking-charcoal-700)",
320
+ "var(--viking-metallic-500)",
321
+ ];
322
+ const VIKING_SERIES_DEFAULT = VIKING_SERIES_PRESETS[0];
323
+
311
324
  /** Registers a component as a ControlValueAccessor. */
312
325
  const provideVikingCva = (component) => ({
313
326
  provide: NG_VALUE_ACCESSOR,
@@ -776,6 +789,12 @@ const VIKING_BUTTON_STYLES = `
776
789
  }
777
790
 
778
791
  .viking-btn {
792
+ --viking-btn-depth-shadow: var(--viking-shadow-sm);
793
+ --viking-btn-hover-shadow: var(--viking-shadow-hover);
794
+ --viking-btn-press-shadow:
795
+ inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent),
796
+ var(--viking-shadow-xs);
797
+
779
798
  font-family: inherit;
780
799
  font-size: var(--viking-font-size-ui, var(--viking-font-size-sm));
781
800
  font-weight: var(--viking-font-weight-semibold);
@@ -784,10 +803,10 @@ const VIKING_BUTTON_STYLES = `
784
803
  display: inline-flex;
785
804
  align-items: center;
786
805
  justify-content: center;
787
- gap: var(--viking-space-1);
806
+ gap: var(--viking-space-1-5);
788
807
  min-height: var(--viking-control-height);
789
- padding: 0 var(--viking-control-padding-x);
790
- border-radius: var(--viking-radius-lg);
808
+ padding: var(--viking-space-half) var(--viking-control-padding-x);
809
+ border-radius: var(--viking-radius-md);
791
810
  border: 1px solid transparent;
792
811
  cursor: pointer;
793
812
  text-decoration: none;
@@ -802,7 +821,7 @@ const VIKING_BUTTON_STYLES = `
802
821
  -webkit-tap-highlight-color: transparent;
803
822
  box-sizing: border-box;
804
823
  overflow: hidden;
805
- box-shadow: var(--viking-shadow-sm);
824
+ box-shadow: var(--viking-btn-depth-shadow);
806
825
  }
807
826
 
808
827
  .viking-btn::before {
@@ -817,7 +836,7 @@ const VIKING_BUTTON_STYLES = `
817
836
  transparent
818
837
  );
819
838
  pointer-events: none;
820
- opacity: 0.82;
839
+ opacity: 0.88;
821
840
  transition: var(--viking-transition-interactive);
822
841
  }
823
842
 
@@ -835,9 +854,13 @@ const VIKING_BUTTON_STYLES = `
835
854
  box-shadow: none !important;
836
855
  }
837
856
 
857
+ .viking-btn[aria-busy='true'] {
858
+ cursor: wait;
859
+ }
860
+
838
861
  .viking-btn[aria-busy='true']::before,
839
862
  .viking-btn[aria-busy='true'] .viking-btn-label {
840
- opacity: 0.85;
863
+ opacity: 0.78;
841
864
  transform: translateY(1px);
842
865
  }
843
866
 
@@ -941,27 +964,26 @@ const VIKING_BUTTON_STYLES = `
941
964
  flex-shrink: 0;
942
965
  pointer-events: none;
943
966
  flex: 0 0 auto;
967
+ margin-block: calc(var(--viking-space-half) * -1);
944
968
  }
945
969
 
946
970
  .viking-btn-outline {
947
971
  background: var(--viking-surface);
948
972
  color: var(--viking-text);
949
973
  border-color: var(--viking-border-strong);
950
- box-shadow: var(--viking-shadow-sm);
974
+ box-shadow: var(--viking-btn-depth-shadow);
951
975
  }
952
976
 
953
977
  .viking-btn-outline:hover:not(:disabled):not([aria-busy='true']) {
954
- background: var(--viking-surface-alt);
978
+ background: color-mix(in srgb, var(--viking-accent) 5%, var(--viking-surface-alt));
955
979
  border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border-strong));
956
- box-shadow: var(--viking-shadow-md);
980
+ box-shadow: var(--viking-btn-hover-shadow);
957
981
  transform: translateY(var(--viking-state-hover-lift));
958
982
  }
959
983
 
960
984
  .viking-btn-outline:active:not(:disabled):not([aria-busy='true']) {
961
985
  transform: translateY(0) scale(var(--viking-state-active-scale));
962
- box-shadow: inset 0 1px 2px
963
- color-mix(in srgb, var(--viking-black) 28%, transparent),
964
- var(--viking-shadow-sm);
986
+ box-shadow: var(--viking-btn-press-shadow);
965
987
  border-color: var(--viking-border-strong);
966
988
  }
967
989
 
@@ -969,21 +991,21 @@ const VIKING_BUTTON_STYLES = `
969
991
  background: var(--viking-accent);
970
992
  color: var(--viking-accent-content);
971
993
  border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
972
- box-shadow: var(--viking-shadow-sm);
994
+ box-shadow:
995
+ var(--viking-btn-depth-shadow),
996
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 12%, transparent);
973
997
  }
974
998
 
975
999
  .viking-btn-primary:hover:not(:disabled):not([aria-busy='true']) {
976
1000
  background: var(--viking-accent-hover);
977
1001
  border-color: var(--viking-accent-hover);
978
- box-shadow: var(--viking-shadow-hover);
1002
+ box-shadow: var(--viking-btn-hover-shadow);
979
1003
  transform: translateY(var(--viking-state-hover-lift));
980
1004
  }
981
1005
 
982
1006
  .viking-btn-primary:active:not(:disabled):not([aria-busy='true']) {
983
1007
  transform: translateY(0) scale(var(--viking-state-active-scale));
984
- box-shadow: inset 0 1px 2px
985
- color-mix(in srgb, var(--viking-black) 28%, transparent),
986
- var(--viking-shadow-sm);
1008
+ box-shadow: var(--viking-btn-press-shadow);
987
1009
  border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
988
1010
  }
989
1011
 
@@ -991,21 +1013,21 @@ const VIKING_BUTTON_STYLES = `
991
1013
  background: var(--viking-accent-secondary);
992
1014
  color: var(--viking-accent-secondary-content);
993
1015
  border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
994
- box-shadow: var(--viking-shadow-sm);
1016
+ box-shadow:
1017
+ var(--viking-btn-depth-shadow),
1018
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 10%, transparent);
995
1019
  }
996
1020
 
997
1021
  .viking-btn-secondary:hover:not(:disabled):not([aria-busy='true']) {
998
1022
  background: var(--viking-accent-secondary-hover);
999
1023
  border-color: var(--viking-accent-secondary-hover);
1000
- box-shadow: var(--viking-shadow-hover);
1024
+ box-shadow: var(--viking-btn-hover-shadow);
1001
1025
  transform: translateY(var(--viking-state-hover-lift));
1002
1026
  }
1003
1027
 
1004
1028
  .viking-btn-secondary:active:not(:disabled):not([aria-busy='true']) {
1005
1029
  transform: translateY(0) scale(var(--viking-state-active-scale));
1006
- box-shadow: inset 0 1px 2px
1007
- color-mix(in srgb, var(--viking-black) 28%, transparent),
1008
- var(--viking-shadow-sm);
1030
+ box-shadow: var(--viking-btn-press-shadow);
1009
1031
  border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
1010
1032
  }
1011
1033
 
@@ -1019,13 +1041,13 @@ const VIKING_BUTTON_STYLES = `
1019
1041
  .viking-btn-filled:hover:not(:disabled):not([aria-busy='true']) {
1020
1042
  border-color: color-mix(in srgb, var(--viking-accent) 45%, var(--viking-border));
1021
1043
  background: color-mix(in srgb, var(--viking-accent) 8%, var(--viking-surface-alt));
1022
- box-shadow: var(--viking-shadow-sm);
1044
+ box-shadow: var(--viking-btn-depth-shadow);
1023
1045
  transform: translateY(var(--viking-state-hover-lift));
1024
1046
  }
1025
1047
 
1026
1048
  .viking-btn-filled:active:not(:disabled):not([aria-busy='true']) {
1027
1049
  transform: translateY(0) scale(var(--viking-state-active-scale));
1028
- box-shadow: var(--viking-shadow-sm);
1050
+ box-shadow: var(--viking-btn-press-shadow);
1029
1051
  border-color: color-mix(in srgb, var(--viking-accent) 20%, var(--viking-border));
1030
1052
  background: color-mix(in srgb, var(--viking-surface-alt) 84%, var(--viking-accent));
1031
1053
  }
@@ -1034,13 +1056,15 @@ const VIKING_BUTTON_STYLES = `
1034
1056
  background: var(--viking-danger);
1035
1057
  color: var(--viking-on-danger);
1036
1058
  border-color: color-mix(in srgb, var(--viking-danger) 85%, var(--viking-black));
1037
- box-shadow: var(--viking-shadow-sm);
1059
+ box-shadow:
1060
+ var(--viking-btn-depth-shadow),
1061
+ inset 0 1px 0 color-mix(in srgb, var(--viking-white-pure) 10%, transparent);
1038
1062
  }
1039
1063
 
1040
1064
  .viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {
1041
1065
  background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));
1042
1066
  border-color: color-mix(in srgb, var(--viking-danger) 92%, var(--viking-white));
1043
- box-shadow: var(--viking-shadow-hover);
1067
+ box-shadow: var(--viking-btn-hover-shadow);
1044
1068
  transform: translateY(var(--viking-state-hover-lift));
1045
1069
  }
1046
1070
 
@@ -1048,9 +1072,7 @@ const VIKING_BUTTON_STYLES = `
1048
1072
  transform: translateY(0) scale(var(--viking-state-active-scale));
1049
1073
  border-color: color-mix(in srgb, var(--viking-danger) 72%, var(--viking-black));
1050
1074
  background: color-mix(in srgb, var(--viking-danger) 84%, var(--viking-black));
1051
- box-shadow: inset 0 1px 2px
1052
- color-mix(in srgb, var(--viking-black) 28%, transparent),
1053
- var(--viking-shadow-sm);
1075
+ box-shadow: var(--viking-btn-press-shadow);
1054
1076
  }
1055
1077
 
1056
1078
  .viking-btn-ghost {
@@ -1064,6 +1086,8 @@ const VIKING_BUTTON_STYLES = `
1064
1086
  .viking-btn-ghost:hover:not(:disabled):not([aria-busy='true']) {
1065
1087
  background: var(--viking-accent-soft);
1066
1088
  color: var(--viking-accent-strong);
1089
+ border-color: var(--viking-border-subtle);
1090
+ transform: translateY(var(--viking-state-hover-lift));
1067
1091
  }
1068
1092
 
1069
1093
  .viking-btn-ghost:active:not(:disabled):not([aria-busy='true']) {
@@ -1109,11 +1133,12 @@ const VIKING_BUTTON_STYLES = `
1109
1133
  }
1110
1134
 
1111
1135
  .viking-btn-spinner {
1112
- width: 1.125rem;
1113
- height: 1.125rem;
1136
+ flex: 0 0 auto;
1137
+ width: var(--viking-icon-size-sm, 18px);
1138
+ height: var(--viking-icon-size-sm, 18px);
1114
1139
  border: 2px solid currentColor;
1115
1140
  border-right-color: transparent;
1116
- border-radius: 50%;
1141
+ border-radius: var(--viking-radius-pill);
1117
1142
  animation: viking-spin 0.8s linear infinite;
1118
1143
  }
1119
1144
 
@@ -5029,7 +5054,7 @@ class VikingButton {
5029
5054
  label = input("", /* @ts-ignore */
5030
5055
  ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
5031
5056
  pressed = output();
5032
- iconSize = computed(() => this.size() === "base" ? 22 : 18, /* @ts-ignore */
5057
+ iconSize = computed(() => this.size() === "base" ? 20 : 18, /* @ts-ignore */
5033
5058
  ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
5034
5059
  onPress = (event) => {
5035
5060
  const detail = event.detail;
@@ -5059,14 +5084,14 @@ class VikingButton {
5059
5084
  <viking-icon [name]="icon()!" [size]="iconSize()" />
5060
5085
  }
5061
5086
  <span class="viking-btn-label"><ng-content /></span>
5062
- @if (iconTrailing()) {
5087
+ @if (!loading() && iconTrailing()) {
5063
5088
  <viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
5064
5089
  }
5065
5090
  @if (kbd()) {
5066
5091
  <kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
5067
5092
  }
5068
5093
  </viking-button-wc>
5069
- `, isInline: true, styles: [".viking-btn,a.viking-btn,button.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn:focus-visible,a.viking-btn:focus-visible,button.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before,a.viking-btn:before,button.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn:after,a.viking-btn:after,button.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true],a.viking-btn:disabled,a.viking-btn[aria-busy=true],button.viking-btn:disabled,button.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label,a.viking-btn[aria-busy=true]:before,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true]:before,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon],a.viking-btn viking-icon,a.viking-btn .viking-icon,a.viking-btn [data-viking-icon],button.viking-btn viking-icon,button.viking-btn .viking-icon,button.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn .viking-btn-label,a.viking-btn .viking-btn-label,button.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-primary:focus-visible,a.viking-btn-primary:focus-visible,button.viking-btn-primary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-primary:before,a.viking-btn-primary:before,button.viking-btn-primary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-primary:after,a.viking-btn-primary:after,button.viking-btn-primary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-primary:disabled,.viking-btn-primary[aria-busy=true],a.viking-btn-primary:disabled,a.viking-btn-primary[aria-busy=true],button.viking-btn-primary:disabled,button.viking-btn-primary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-primary[aria-busy=true]:before,.viking-btn-primary[aria-busy=true] .viking-btn-label,a.viking-btn-primary[aria-busy=true]:before,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true]:before,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,.viking-btn-primary [data-viking-icon],a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,a.viking-btn-primary [data-viking-icon],button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon,button.viking-btn-primary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-primary .viking-btn-label,a.viking-btn-primary .viking-btn-label,button.viking-btn-primary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-secondary:focus-visible,a.viking-btn-secondary:focus-visible,button.viking-btn-secondary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-secondary:before,a.viking-btn-secondary:before,button.viking-btn-secondary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-secondary:after,a.viking-btn-secondary:after,button.viking-btn-secondary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-secondary:disabled,.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary:disabled,a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary:disabled,button.viking-btn-secondary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-secondary[aria-busy=true]:before,.viking-btn-secondary[aria-busy=true] .viking-btn-label,a.viking-btn-secondary[aria-busy=true]:before,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true]:before,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,.viking-btn-secondary [data-viking-icon],a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,a.viking-btn-secondary [data-viking-icon],button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon,button.viking-btn-secondary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-secondary .viking-btn-label,a.viking-btn-secondary .viking-btn-label,button.viking-btn-secondary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-outline:focus-visible,a.viking-btn-outline:focus-visible,button.viking-btn-outline:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-outline:before,a.viking-btn-outline:before,button.viking-btn-outline:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-outline:after,a.viking-btn-outline:after,button.viking-btn-outline:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-outline:disabled,.viking-btn-outline[aria-busy=true],a.viking-btn-outline:disabled,a.viking-btn-outline[aria-busy=true],button.viking-btn-outline:disabled,button.viking-btn-outline[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-outline[aria-busy=true]:before,.viking-btn-outline[aria-busy=true] .viking-btn-label,a.viking-btn-outline[aria-busy=true]:before,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true]:before,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,.viking-btn-outline [data-viking-icon],a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,a.viking-btn-outline [data-viking-icon],button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon,button.viking-btn-outline [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-outline .viking-btn-label,a.viking-btn-outline .viking-btn-label,button.viking-btn-outline .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-danger:focus-visible,a.viking-btn-danger:focus-visible,button.viking-btn-danger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-danger:before,a.viking-btn-danger:before,button.viking-btn-danger:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-danger:after,a.viking-btn-danger:after,button.viking-btn-danger:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-danger:disabled,.viking-btn-danger[aria-busy=true],a.viking-btn-danger:disabled,a.viking-btn-danger[aria-busy=true],button.viking-btn-danger:disabled,button.viking-btn-danger[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-danger[aria-busy=true]:before,.viking-btn-danger[aria-busy=true] .viking-btn-label,a.viking-btn-danger[aria-busy=true]:before,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true]:before,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,.viking-btn-danger [data-viking-icon],a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,a.viking-btn-danger [data-viking-icon],button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon,button.viking-btn-danger [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-danger .viking-btn-label,a.viking-btn-danger .viking-btn-label,button.viking-btn-danger .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-ghost:focus-visible,a.viking-btn-ghost:focus-visible,button.viking-btn-ghost:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-ghost:before,a.viking-btn-ghost:before,button.viking-btn-ghost:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-ghost:after,a.viking-btn-ghost:after,button.viking-btn-ghost:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-ghost:disabled,.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost:disabled,a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost:disabled,button.viking-btn-ghost[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-ghost[aria-busy=true]:before,.viking-btn-ghost[aria-busy=true] .viking-btn-label,a.viking-btn-ghost[aria-busy=true]:before,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true]:before,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,.viking-btn-ghost [data-viking-icon],a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,a.viking-btn-ghost [data-viking-icon],button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon,button.viking-btn-ghost [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-ghost .viking-btn-label,a.viking-btn-ghost .viking-btn-label,button.viking-btn-ghost .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-subtle:focus-visible,a.viking-btn-subtle:focus-visible,button.viking-btn-subtle:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-subtle:before,a.viking-btn-subtle:before,button.viking-btn-subtle:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-subtle:after,a.viking-btn-subtle:after,button.viking-btn-subtle:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-subtle:disabled,.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle:disabled,a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle:disabled,button.viking-btn-subtle[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-subtle[aria-busy=true]:before,.viking-btn-subtle[aria-busy=true] .viking-btn-label,a.viking-btn-subtle[aria-busy=true]:before,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true]:before,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,.viking-btn-subtle [data-viking-icon],a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,a.viking-btn-subtle [data-viking-icon],button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon,button.viking-btn-subtle [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-subtle .viking-btn-label,a.viking-btn-subtle .viking-btn-label,button.viking-btn-subtle .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-btn.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-shadow-sm);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-sm);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-btn.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}:host{display:inline-flex;align-items:center}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%;min-width:0}:host(.viking-compact) .viking-btn{min-width:0}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn{line-height:1}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2);font-size:var(--viking-font-size-xs);min-width:auto}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1);font-size:var(--viking-font-size-xs);min-width:auto}.viking-square{width:var(--viking-control-height);min-width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm);min-width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs);min-width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-shadow-sm);transform:translateY(var(--viking-state-hover-lift))}.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-sm);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:inherit;min-width:0;justify-content:center;white-space:nowrap}.viking-btn kbd{margin-top:0}.viking-btn-kbd{font-family:var(--viking-font-family-mono);font-size:var(--viking-font-size-xs);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:var(--viking-radius-xs);padding:0 var(--viking-space-half);line-height:1.4;margin-left:var(--viking-space-half);font-weight:var(--viking-font-weight-medium)}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "sizePreset", "variant", "color", "backdrop", "backdropTone", "spin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5094
+ `, isInline: true, styles: [".viking-btn,a.viking-btn,button.viking-btn{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn:focus-visible,a.viking-btn:focus-visible,button.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before,a.viking-btn:before,button.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn:after,a.viking-btn:after,button.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true],a.viking-btn:disabled,a.viking-btn[aria-busy=true],button.viking-btn:disabled,button.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label,a.viking-btn[aria-busy=true]:before,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true]:before,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn[aria-busy=true],a.viking-btn[aria-busy=true],button.viking-btn[aria-busy=true]{cursor:wait}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon],a.viking-btn viking-icon,a.viking-btn .viking-icon,a.viking-btn [data-viking-icon],button.viking-btn viking-icon,button.viking-btn .viking-icon,button.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn .viking-btn-label,a.viking-btn .viking-btn-label,button.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-primary:focus-visible,a.viking-btn-primary:focus-visible,button.viking-btn-primary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-primary:before,a.viking-btn-primary:before,button.viking-btn-primary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-primary:after,a.viking-btn-primary:after,button.viking-btn-primary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-primary:disabled,.viking-btn-primary[aria-busy=true],a.viking-btn-primary:disabled,a.viking-btn-primary[aria-busy=true],button.viking-btn-primary:disabled,button.viking-btn-primary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-primary[aria-busy=true]:before,.viking-btn-primary[aria-busy=true] .viking-btn-label,a.viking-btn-primary[aria-busy=true]:before,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true]:before,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-primary[aria-busy=true],a.viking-btn-primary[aria-busy=true],button.viking-btn-primary[aria-busy=true]{cursor:wait}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,.viking-btn-primary [data-viking-icon],a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,a.viking-btn-primary [data-viking-icon],button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon,button.viking-btn-primary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-primary .viking-btn-label,a.viking-btn-primary .viking-btn-label,button.viking-btn-primary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-secondary:focus-visible,a.viking-btn-secondary:focus-visible,button.viking-btn-secondary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-secondary:before,a.viking-btn-secondary:before,button.viking-btn-secondary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-secondary:after,a.viking-btn-secondary:after,button.viking-btn-secondary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-secondary:disabled,.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary:disabled,a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary:disabled,button.viking-btn-secondary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-secondary[aria-busy=true]:before,.viking-btn-secondary[aria-busy=true] .viking-btn-label,a.viking-btn-secondary[aria-busy=true]:before,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true]:before,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary[aria-busy=true]{cursor:wait}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,.viking-btn-secondary [data-viking-icon],a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,a.viking-btn-secondary [data-viking-icon],button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon,button.viking-btn-secondary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-secondary .viking-btn-label,a.viking-btn-secondary .viking-btn-label,button.viking-btn-secondary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-outline:focus-visible,a.viking-btn-outline:focus-visible,button.viking-btn-outline:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-outline:before,a.viking-btn-outline:before,button.viking-btn-outline:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-outline:after,a.viking-btn-outline:after,button.viking-btn-outline:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-outline:disabled,.viking-btn-outline[aria-busy=true],a.viking-btn-outline:disabled,a.viking-btn-outline[aria-busy=true],button.viking-btn-outline:disabled,button.viking-btn-outline[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-outline[aria-busy=true]:before,.viking-btn-outline[aria-busy=true] .viking-btn-label,a.viking-btn-outline[aria-busy=true]:before,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true]:before,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-outline[aria-busy=true],a.viking-btn-outline[aria-busy=true],button.viking-btn-outline[aria-busy=true]{cursor:wait}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,.viking-btn-outline [data-viking-icon],a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,a.viking-btn-outline [data-viking-icon],button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon,button.viking-btn-outline [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-outline .viking-btn-label,a.viking-btn-outline .viking-btn-label,button.viking-btn-outline .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-danger:focus-visible,a.viking-btn-danger:focus-visible,button.viking-btn-danger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-danger:before,a.viking-btn-danger:before,button.viking-btn-danger:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-danger:after,a.viking-btn-danger:after,button.viking-btn-danger:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-danger:disabled,.viking-btn-danger[aria-busy=true],a.viking-btn-danger:disabled,a.viking-btn-danger[aria-busy=true],button.viking-btn-danger:disabled,button.viking-btn-danger[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-danger[aria-busy=true]:before,.viking-btn-danger[aria-busy=true] .viking-btn-label,a.viking-btn-danger[aria-busy=true]:before,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true]:before,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-danger[aria-busy=true],a.viking-btn-danger[aria-busy=true],button.viking-btn-danger[aria-busy=true]{cursor:wait}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,.viking-btn-danger [data-viking-icon],a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,a.viking-btn-danger [data-viking-icon],button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon,button.viking-btn-danger [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-danger .viking-btn-label,a.viking-btn-danger .viking-btn-label,button.viking-btn-danger .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-ghost:focus-visible,a.viking-btn-ghost:focus-visible,button.viking-btn-ghost:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-ghost:before,a.viking-btn-ghost:before,button.viking-btn-ghost:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-ghost:after,a.viking-btn-ghost:after,button.viking-btn-ghost:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-ghost:disabled,.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost:disabled,a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost:disabled,button.viking-btn-ghost[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-ghost[aria-busy=true]:before,.viking-btn-ghost[aria-busy=true] .viking-btn-label,a.viking-btn-ghost[aria-busy=true]:before,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true]:before,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost[aria-busy=true]{cursor:wait}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,.viking-btn-ghost [data-viking-icon],a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,a.viking-btn-ghost [data-viking-icon],button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon,button.viking-btn-ghost [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-ghost .viking-btn-label,a.viking-btn-ghost .viking-btn-label,button.viking-btn-ghost .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-subtle:focus-visible,a.viking-btn-subtle:focus-visible,button.viking-btn-subtle:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-subtle:before,a.viking-btn-subtle:before,button.viking-btn-subtle:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-subtle:after,a.viking-btn-subtle:after,button.viking-btn-subtle:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-subtle:disabled,.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle:disabled,a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle:disabled,button.viking-btn-subtle[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-subtle[aria-busy=true]:before,.viking-btn-subtle[aria-busy=true] .viking-btn-label,a.viking-btn-subtle[aria-busy=true]:before,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true]:before,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle[aria-busy=true]{cursor:wait}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,.viking-btn-subtle [data-viking-icon],a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,a.viking-btn-subtle [data-viking-icon],button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon,button.viking-btn-subtle [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-subtle .viking-btn-label,a.viking-btn-subtle .viking-btn-label,button.viking-btn-subtle .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-btn.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-btn.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-btn.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-btn-depth-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-btn-press-shadow);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-btn.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}.viking-btn-spinner{flex:0 0 auto;width:var(--viking-icon-size-sm, 18px);height:var(--viking-icon-size-sm, 18px);border:2px solid currentColor;border-right-color:transparent;border-radius:var(--viking-radius-pill);animation:viking-spin .8s linear infinite}:host{display:inline-flex;align-items:center}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%;min-width:0}:host(.viking-compact) .viking-btn{min-width:0}.viking-btn{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn[aria-busy=true]{cursor:wait}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn{line-height:1}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2);font-size:var(--viking-font-size-xs);min-width:auto}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1);font-size:var(--viking-font-size-xs);min-width:auto}.viking-square{width:var(--viking-control-height);min-width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm);min-width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs);min-width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-btn-depth-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-btn-press-shadow);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:inherit;min-width:0;justify-content:center;white-space:nowrap}.viking-btn kbd{margin-top:0}.viking-btn-kbd{font-family:var(--viking-font-family-mono);font-size:var(--viking-font-size-xs);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:var(--viking-radius-xs);padding:0 var(--viking-space-half);line-height:1.4;margin-left:var(--viking-space-half);font-weight:var(--viking-font-weight-medium)}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "sizePreset", "variant", "color", "backdrop", "backdropTone", "spin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5070
5095
  }
5071
5096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingButton, decorators: [{
5072
5097
  type: Component,
@@ -5095,14 +5120,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5095
5120
  <viking-icon [name]="icon()!" [size]="iconSize()" />
5096
5121
  }
5097
5122
  <span class="viking-btn-label"><ng-content /></span>
5098
- @if (iconTrailing()) {
5123
+ @if (!loading() && iconTrailing()) {
5099
5124
  <viking-icon [name]="iconTrailing()!" [size]="iconSize()" />
5100
5125
  }
5101
5126
  @if (kbd()) {
5102
5127
  <kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
5103
5128
  }
5104
5129
  </viking-button-wc>
5105
- `, styles: [".viking-btn,a.viking-btn,button.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn:focus-visible,a.viking-btn:focus-visible,button.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before,a.viking-btn:before,button.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn:after,a.viking-btn:after,button.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true],a.viking-btn:disabled,a.viking-btn[aria-busy=true],button.viking-btn:disabled,button.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label,a.viking-btn[aria-busy=true]:before,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true]:before,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon],a.viking-btn viking-icon,a.viking-btn .viking-icon,a.viking-btn [data-viking-icon],button.viking-btn viking-icon,button.viking-btn .viking-icon,button.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn .viking-btn-label,a.viking-btn .viking-btn-label,button.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-primary:focus-visible,a.viking-btn-primary:focus-visible,button.viking-btn-primary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-primary:before,a.viking-btn-primary:before,button.viking-btn-primary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-primary:after,a.viking-btn-primary:after,button.viking-btn-primary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-primary:disabled,.viking-btn-primary[aria-busy=true],a.viking-btn-primary:disabled,a.viking-btn-primary[aria-busy=true],button.viking-btn-primary:disabled,button.viking-btn-primary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-primary[aria-busy=true]:before,.viking-btn-primary[aria-busy=true] .viking-btn-label,a.viking-btn-primary[aria-busy=true]:before,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true]:before,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,.viking-btn-primary [data-viking-icon],a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,a.viking-btn-primary [data-viking-icon],button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon,button.viking-btn-primary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-primary .viking-btn-label,a.viking-btn-primary .viking-btn-label,button.viking-btn-primary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-secondary:focus-visible,a.viking-btn-secondary:focus-visible,button.viking-btn-secondary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-secondary:before,a.viking-btn-secondary:before,button.viking-btn-secondary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-secondary:after,a.viking-btn-secondary:after,button.viking-btn-secondary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-secondary:disabled,.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary:disabled,a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary:disabled,button.viking-btn-secondary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-secondary[aria-busy=true]:before,.viking-btn-secondary[aria-busy=true] .viking-btn-label,a.viking-btn-secondary[aria-busy=true]:before,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true]:before,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,.viking-btn-secondary [data-viking-icon],a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,a.viking-btn-secondary [data-viking-icon],button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon,button.viking-btn-secondary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-secondary .viking-btn-label,a.viking-btn-secondary .viking-btn-label,button.viking-btn-secondary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-outline:focus-visible,a.viking-btn-outline:focus-visible,button.viking-btn-outline:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-outline:before,a.viking-btn-outline:before,button.viking-btn-outline:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-outline:after,a.viking-btn-outline:after,button.viking-btn-outline:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-outline:disabled,.viking-btn-outline[aria-busy=true],a.viking-btn-outline:disabled,a.viking-btn-outline[aria-busy=true],button.viking-btn-outline:disabled,button.viking-btn-outline[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-outline[aria-busy=true]:before,.viking-btn-outline[aria-busy=true] .viking-btn-label,a.viking-btn-outline[aria-busy=true]:before,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true]:before,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,.viking-btn-outline [data-viking-icon],a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,a.viking-btn-outline [data-viking-icon],button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon,button.viking-btn-outline [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-outline .viking-btn-label,a.viking-btn-outline .viking-btn-label,button.viking-btn-outline .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-danger:focus-visible,a.viking-btn-danger:focus-visible,button.viking-btn-danger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-danger:before,a.viking-btn-danger:before,button.viking-btn-danger:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-danger:after,a.viking-btn-danger:after,button.viking-btn-danger:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-danger:disabled,.viking-btn-danger[aria-busy=true],a.viking-btn-danger:disabled,a.viking-btn-danger[aria-busy=true],button.viking-btn-danger:disabled,button.viking-btn-danger[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-danger[aria-busy=true]:before,.viking-btn-danger[aria-busy=true] .viking-btn-label,a.viking-btn-danger[aria-busy=true]:before,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true]:before,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,.viking-btn-danger [data-viking-icon],a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,a.viking-btn-danger [data-viking-icon],button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon,button.viking-btn-danger [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-danger .viking-btn-label,a.viking-btn-danger .viking-btn-label,button.viking-btn-danger .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-ghost:focus-visible,a.viking-btn-ghost:focus-visible,button.viking-btn-ghost:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-ghost:before,a.viking-btn-ghost:before,button.viking-btn-ghost:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-ghost:after,a.viking-btn-ghost:after,button.viking-btn-ghost:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-ghost:disabled,.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost:disabled,a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost:disabled,button.viking-btn-ghost[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-ghost[aria-busy=true]:before,.viking-btn-ghost[aria-busy=true] .viking-btn-label,a.viking-btn-ghost[aria-busy=true]:before,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true]:before,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,.viking-btn-ghost [data-viking-icon],a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,a.viking-btn-ghost [data-viking-icon],button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon,button.viking-btn-ghost [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-ghost .viking-btn-label,a.viking-btn-ghost .viking-btn-label,button.viking-btn-ghost .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn-subtle:focus-visible,a.viking-btn-subtle:focus-visible,button.viking-btn-subtle:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-subtle:before,a.viking-btn-subtle:before,button.viking-btn-subtle:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn-subtle:after,a.viking-btn-subtle:after,button.viking-btn-subtle:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-subtle:disabled,.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle:disabled,a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle:disabled,button.viking-btn-subtle[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-subtle[aria-busy=true]:before,.viking-btn-subtle[aria-busy=true] .viking-btn-label,a.viking-btn-subtle[aria-busy=true]:before,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true]:before,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,.viking-btn-subtle [data-viking-icon],a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,a.viking-btn-subtle [data-viking-icon],button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon,button.viking-btn-subtle [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn-subtle .viking-btn-label,a.viking-btn-subtle .viking-btn-label,button.viking-btn-subtle .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-btn.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-btn.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-shadow-sm);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-sm);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-btn.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-btn.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}:host{display:inline-flex;align-items:center}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%;min-width:0}:host(.viking-compact) .viking-btn{min-width:0}.viking-btn{font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1);min-height:var(--viking-control-height);padding:0 var(--viking-control-padding-x);border-radius:var(--viking-radius-lg);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-shadow-sm)}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.82;transition:var(--viking-transition-interactive)}.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85;transform:translateY(1px)}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto}.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn{line-height:1}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2);font-size:var(--viking-font-size-xs);min-width:auto}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1);font-size:var(--viking-font-size-xs);min-width:auto}.viking-square{width:var(--viking-control-height);min-width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm);min-width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs);min-width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-shadow-sm)}.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-surface-alt);border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-shadow-md);transform:translateY(var(--viking-state-hover-lift))}.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 28%,transparent),var(--viking-shadow-sm)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-shadow-sm);transform:translateY(var(--viking-state-hover-lift))}.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-sm);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:inherit;min-width:0;justify-content:center;white-space:nowrap}.viking-btn kbd{margin-top:0}.viking-btn-kbd{font-family:var(--viking-font-family-mono);font-size:var(--viking-font-size-xs);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:var(--viking-radius-xs);padding:0 var(--viking-space-half);line-height:1.4;margin-left:var(--viking-space-half);font-weight:var(--viking-font-weight-medium)}\n"] }]
5130
+ `, styles: [".viking-btn,a.viking-btn,button.viking-btn{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn:focus-visible,a.viking-btn:focus-visible,button.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before,a.viking-btn:before,button.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn:after,a.viking-btn:after,button.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true],a.viking-btn:disabled,a.viking-btn[aria-busy=true],button.viking-btn:disabled,button.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label,a.viking-btn[aria-busy=true]:before,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true]:before,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn[aria-busy=true],a.viking-btn[aria-busy=true],button.viking-btn[aria-busy=true]{cursor:wait}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon],a.viking-btn viking-icon,a.viking-btn .viking-icon,a.viking-btn [data-viking-icon],button.viking-btn viking-icon,button.viking-btn .viking-icon,button.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn .viking-btn-label,a.viking-btn .viking-btn-label,button.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-primary:focus-visible,a.viking-btn-primary:focus-visible,button.viking-btn-primary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-primary:before,a.viking-btn-primary:before,button.viking-btn-primary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-primary:after,a.viking-btn-primary:after,button.viking-btn-primary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-primary:disabled,.viking-btn-primary[aria-busy=true],a.viking-btn-primary:disabled,a.viking-btn-primary[aria-busy=true],button.viking-btn-primary:disabled,button.viking-btn-primary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-primary[aria-busy=true]:before,.viking-btn-primary[aria-busy=true] .viking-btn-label,a.viking-btn-primary[aria-busy=true]:before,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true]:before,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-primary[aria-busy=true],a.viking-btn-primary[aria-busy=true],button.viking-btn-primary[aria-busy=true]{cursor:wait}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,.viking-btn-primary [data-viking-icon],a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,a.viking-btn-primary [data-viking-icon],button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon,button.viking-btn-primary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-primary .viking-btn-label,a.viking-btn-primary .viking-btn-label,button.viking-btn-primary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-primary,a.viking-btn-primary,button.viking-btn-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-primary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-secondary:focus-visible,a.viking-btn-secondary:focus-visible,button.viking-btn-secondary:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-secondary:before,a.viking-btn-secondary:before,button.viking-btn-secondary:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-secondary:after,a.viking-btn-secondary:after,button.viking-btn-secondary:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-secondary:disabled,.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary:disabled,a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary:disabled,button.viking-btn-secondary[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-secondary[aria-busy=true]:before,.viking-btn-secondary[aria-busy=true] .viking-btn-label,a.viking-btn-secondary[aria-busy=true]:before,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true]:before,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-secondary[aria-busy=true],a.viking-btn-secondary[aria-busy=true],button.viking-btn-secondary[aria-busy=true]{cursor:wait}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,.viking-btn-secondary [data-viking-icon],a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,a.viking-btn-secondary [data-viking-icon],button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon,button.viking-btn-secondary [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-secondary .viking-btn-label,a.viking-btn-secondary .viking-btn-label,button.viking-btn-secondary .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-secondary,a.viking-btn-secondary,button.viking-btn-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),a.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]),button.viking-btn-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-outline:focus-visible,a.viking-btn-outline:focus-visible,button.viking-btn-outline:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-outline:before,a.viking-btn-outline:before,button.viking-btn-outline:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-outline:after,a.viking-btn-outline:after,button.viking-btn-outline:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-outline:disabled,.viking-btn-outline[aria-busy=true],a.viking-btn-outline:disabled,a.viking-btn-outline[aria-busy=true],button.viking-btn-outline:disabled,button.viking-btn-outline[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-outline[aria-busy=true]:before,.viking-btn-outline[aria-busy=true] .viking-btn-label,a.viking-btn-outline[aria-busy=true]:before,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true]:before,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-outline[aria-busy=true],a.viking-btn-outline[aria-busy=true],button.viking-btn-outline[aria-busy=true]{cursor:wait}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,.viking-btn-outline [data-viking-icon],a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,a.viking-btn-outline [data-viking-icon],button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon,button.viking-btn-outline [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-outline .viking-btn-label,a.viking-btn-outline .viking-btn-label,button.viking-btn-outline .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-outline,a.viking-btn-outline,button.viking-btn-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),a.viking-btn-outline:active:not(:disabled):not([aria-busy=true]),button.viking-btn-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-danger:focus-visible,a.viking-btn-danger:focus-visible,button.viking-btn-danger:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-danger:before,a.viking-btn-danger:before,button.viking-btn-danger:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-danger:after,a.viking-btn-danger:after,button.viking-btn-danger:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-danger:disabled,.viking-btn-danger[aria-busy=true],a.viking-btn-danger:disabled,a.viking-btn-danger[aria-busy=true],button.viking-btn-danger:disabled,button.viking-btn-danger[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-danger[aria-busy=true]:before,.viking-btn-danger[aria-busy=true] .viking-btn-label,a.viking-btn-danger[aria-busy=true]:before,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true]:before,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-danger[aria-busy=true],a.viking-btn-danger[aria-busy=true],button.viking-btn-danger[aria-busy=true]{cursor:wait}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,.viking-btn-danger [data-viking-icon],a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,a.viking-btn-danger [data-viking-icon],button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon,button.viking-btn-danger [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-danger .viking-btn-label,a.viking-btn-danger .viking-btn-label,button.viking-btn-danger .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-danger,a.viking-btn-danger,button.viking-btn-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),a.viking-btn-danger:active:not(:disabled):not([aria-busy=true]),button.viking-btn-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-ghost:focus-visible,a.viking-btn-ghost:focus-visible,button.viking-btn-ghost:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-ghost:before,a.viking-btn-ghost:before,button.viking-btn-ghost:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-ghost:after,a.viking-btn-ghost:after,button.viking-btn-ghost:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-ghost:disabled,.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost:disabled,a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost:disabled,button.viking-btn-ghost[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-ghost[aria-busy=true]:before,.viking-btn-ghost[aria-busy=true] .viking-btn-label,a.viking-btn-ghost[aria-busy=true]:before,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true]:before,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-ghost[aria-busy=true],a.viking-btn-ghost[aria-busy=true],button.viking-btn-ghost[aria-busy=true]{cursor:wait}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,.viking-btn-ghost [data-viking-icon],a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,a.viking-btn-ghost [data-viking-icon],button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon,button.viking-btn-ghost [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-ghost .viking-btn-label,a.viking-btn-ghost .viking-btn-label,button.viking-btn-ghost .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-ghost,a.viking-btn-ghost,button.viking-btn-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),a.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]),button.viking-btn-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn-subtle:focus-visible,a.viking-btn-subtle:focus-visible,button.viking-btn-subtle:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn-subtle:before,a.viking-btn-subtle:before,button.viking-btn-subtle:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn-subtle:after,a.viking-btn-subtle:after,button.viking-btn-subtle:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn-subtle:disabled,.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle:disabled,a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle:disabled,button.viking-btn-subtle[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn-subtle[aria-busy=true]:before,.viking-btn-subtle[aria-busy=true] .viking-btn-label,a.viking-btn-subtle[aria-busy=true]:before,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true]:before,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn-subtle[aria-busy=true],a.viking-btn-subtle[aria-busy=true],button.viking-btn-subtle[aria-busy=true]{cursor:wait}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,.viking-btn-subtle [data-viking-icon],a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,a.viking-btn-subtle [data-viking-icon],button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon,button.viking-btn-subtle [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn-subtle .viking-btn-label,a.viking-btn-subtle .viking-btn-label,button.viking-btn-subtle .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn-subtle,a.viking-btn-subtle,button.viking-btn-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),a.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]),button.viking-btn-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-btn.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-btn.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-btn.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-btn-depth-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-btn-press-shadow);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-btn.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-btn.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-btn.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-btn.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-btn.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-btn.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-btn.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-btn.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}.viking-btn-spinner{flex:0 0 auto;width:var(--viking-icon-size-sm, 18px);height:var(--viking-icon-size-sm, 18px);border:2px solid currentColor;border-right-color:transparent;border-radius:var(--viking-radius-pill);animation:viking-spin .8s linear infinite}:host{display:inline-flex;align-items:center}:host(.viking-full){display:flex}:host(.viking-full) .viking-btn{width:100%;min-width:0}:host(.viking-compact) .viking-btn{min-width:0}.viking-btn{--viking-btn-depth-shadow: var(--viking-shadow-sm);--viking-btn-hover-shadow: var(--viking-shadow-hover);--viking-btn-press-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 28%, transparent), var(--viking-shadow-xs);font-family:var(--viking-font-family);font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-wide);line-height:var(--viking-line-height-snug);display:inline-flex;align-items:center;justify-content:center;gap:var(--viking-space-1-5);min-height:var(--viking-control-height);padding:var(--viking-space-half) var(--viking-control-padding-x);border-radius:var(--viking-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--viking-transition-interactive);width:auto;min-width:var(--viking-btn-min-width, 120px);white-space:nowrap;position:relative;background-clip:padding-box;isolation:isolate;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;box-shadow:var(--viking-btn-depth-shadow)}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.viking-btn:before{content:\"\";position:absolute;inset:1px 1px auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 45%,transparent),transparent);pointer-events:none;opacity:.88;transition:var(--viking-transition-interactive)}.viking-btn:after{content:\"\";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-100) 18%,transparent),transparent);pointer-events:none;opacity:.45;transition:var(--viking-transition-interactive)}.viking-btn:disabled,.viking-btn[aria-busy=true]{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed;transform:none!important;box-shadow:none!important}.viking-btn[aria-busy=true]:before,.viking-btn[aria-busy=true] .viking-btn-label{opacity:.78;transform:translateY(1px)}.viking-btn[aria-busy=true]{cursor:wait}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none;flex:0 0 auto;margin-block:calc(var(--viking-space-half) * -1)}.viking-btn .viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:1.2;min-width:0;justify-content:center;text-align:center;white-space:nowrap}.viking-btn{line-height:1}.viking-btn viking-icon,.viking-btn .viking-icon,.viking-btn [data-viking-icon]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-icon-size-md);height:var(--viking-icon-size-md);line-height:1;pointer-events:none}.viking-sm{min-height:var(--viking-control-height-sm);padding:0 var(--viking-space-2);font-size:var(--viking-font-size-xs);min-width:auto}.viking-xs{min-height:var(--viking-control-height-xs);padding:0 var(--viking-space-1);font-size:var(--viking-font-size-xs);min-width:auto}.viking-square{width:var(--viking-control-height);min-width:var(--viking-control-height);padding:0}.viking-square.viking-sm{width:var(--viking-control-height-sm);min-width:var(--viking-control-height-sm)}.viking-square.viking-xs{width:var(--viking-control-height-xs);min-width:var(--viking-control-height-xs)}.viking-square .viking-btn-label{display:none}.viking-outline{background:var(--viking-surface);color:var(--viking-text);border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-depth-shadow)}.viking-outline:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-accent) 5%,var(--viking-surface-alt));border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border-strong));color:var(--viking-text);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-outline:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border-strong);box-shadow:var(--viking-btn-press-shadow)}.viking-primary{background:var(--viking-accent);color:var(--viking-accent-content);border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 12%,transparent)}.viking-primary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-hover);border-color:var(--viking-accent-hover);color:var(--viking-accent-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-primary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-secondary{background:var(--viking-accent-secondary);color:var(--viking-accent-secondary-content);border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-secondary:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-secondary-hover);border-color:var(--viking-accent-secondary-hover);color:var(--viking-accent-secondary-content);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-secondary:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-accent-secondary) 82%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-filled{background:var(--viking-surface-alt);color:var(--viking-text);border-color:var(--viking-border);box-shadow:var(--viking-shadow-xs)}.viking-filled:hover:not(:disabled):not([aria-busy=true]){border-color:color-mix(in srgb,var(--viking-accent) 45%,var(--viking-border));background:color-mix(in srgb,var(--viking-accent) 8%,var(--viking-surface-alt));box-shadow:var(--viking-btn-depth-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-filled:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-btn-press-shadow);border-color:color-mix(in srgb,var(--viking-accent) 20%,var(--viking-border));background:color-mix(in srgb,var(--viking-surface-alt) 84%,var(--viking-accent))}.viking-danger{background:var(--viking-danger);color:var(--viking-on-danger);border-color:color-mix(in srgb,var(--viking-danger) 85%,var(--viking-black));box-shadow:var(--viking-btn-depth-shadow),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 10%,transparent)}.viking-danger:hover:not(:disabled):not([aria-busy=true]){background:color-mix(in srgb,var(--viking-danger) 88%,var(--viking-white));border-color:color-mix(in srgb,var(--viking-danger) 92%,var(--viking-white));color:var(--viking-on-danger);box-shadow:var(--viking-btn-hover-shadow);transform:translateY(var(--viking-state-hover-lift))}.viking-danger:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:color-mix(in srgb,var(--viking-danger) 72%,var(--viking-black));background:color-mix(in srgb,var(--viking-danger) 84%,var(--viking-black));box-shadow:var(--viking-btn-press-shadow)}.viking-ghost{background:transparent;color:var(--viking-text);min-width:auto;box-shadow:none;border-color:transparent}.viking-ghost:hover:not(:disabled):not([aria-busy=true]){background:var(--viking-accent-soft);color:var(--viking-accent-strong);border-color:var(--viking-border-subtle);transform:translateY(var(--viking-state-hover-lift))}.viking-ghost:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));background:var(--viking-accent-soft);color:var(--viking-accent-strong)}.viking-subtle{background:transparent;color:var(--viking-text-muted);border-color:var(--viking-border-subtle);min-width:auto;box-shadow:none}.viking-subtle:hover:not(:disabled):not([aria-busy=true]){color:var(--viking-text);background:var(--viking-accent-soft);border-color:var(--viking-border-strong)}.viking-subtle:active:not(:disabled):not([aria-busy=true]){transform:translateY(0) scale(var(--viking-state-active-scale));border-color:var(--viking-border);background:color-mix(in srgb,var(--viking-accent-soft) 70%,var(--viking-surface));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent)}.viking-btn-label{display:inline-flex;align-items:center;gap:var(--viking-space-1);line-height:inherit;min-width:0;justify-content:center;white-space:nowrap}.viking-btn kbd{margin-top:0}.viking-btn-kbd{font-family:var(--viking-font-family-mono);font-size:var(--viking-font-size-xs);color:var(--viking-text-muted);background:var(--viking-surface-alt);border:1px solid var(--viking-border);border-radius:var(--viking-radius-xs);padding:0 var(--viking-space-half);line-height:1.4;margin-left:var(--viking-space-half);font-weight:var(--viking-font-weight-medium)}\n"] }]
5106
5131
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTrailing", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], square: [{ type: i0.Input, args: [{ isSignal: true, alias: "square", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], kbd: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbd", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], pressed: [{ type: i0.Output, args: ["pressed"] }] } });
5107
5132
 
5108
5133
  /**
@@ -5190,12 +5215,22 @@ class VikingSiteNavbar {
5190
5215
  this.mobileMenuOpen.set(false);
5191
5216
  }
5192
5217
  openSearch() {
5218
+ this.closeMobileMenu();
5193
5219
  this.searchOpen.emit();
5194
5220
  const widgets = globalThis.DemlWidgets;
5195
5221
  widgets?.openSearch?.();
5196
5222
  }
5223
+ closeMobileMenuOnDesktop() {
5224
+ if (typeof window !== "undefined" &&
5225
+ window.matchMedia("(min-width: 768px)").matches) {
5226
+ this.closeMobileMenu();
5227
+ }
5228
+ }
5229
+ closeMobileMenuOnEscape() {
5230
+ this.closeMobileMenu();
5231
+ }
5197
5232
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingSiteNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
5198
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: VikingSiteNavbar, isStandalone: true, selector: "viking-site-navbar", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, urls: { classPropertyName: "urls", publicName: "urls", isSignal: true, isRequired: false, transformFunction: null }, isAuthenticated: { classPropertyName: "isAuthenticated", publicName: "isAuthenticated", isSignal: true, isRequired: false, transformFunction: null }, isBusy: { classPropertyName: "isBusy", publicName: "isBusy", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", logout: "logout", themeToggle: "themeToggle", searchOpen: "searchOpen" }, ngImport: i0, template: `
5233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: VikingSiteNavbar, isStandalone: true, selector: "viking-site-navbar", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, urls: { classPropertyName: "urls", publicName: "urls", isSignal: true, isRequired: false, transformFunction: null }, isAuthenticated: { classPropertyName: "isAuthenticated", publicName: "isAuthenticated", isSignal: true, isRequired: false, transformFunction: null }, isBusy: { classPropertyName: "isBusy", publicName: "isBusy", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", logout: "logout", themeToggle: "themeToggle", searchOpen: "searchOpen" }, host: { listeners: { "window:resize": "closeMobileMenuOnDesktop()", "document:keydown.escape": "closeMobileMenuOnEscape()" } }, ngImport: i0, template: `
5199
5234
  <header class="navbar">
5200
5235
  <div class="navbar-content">
5201
5236
  <div class="navbar-left">
@@ -5312,6 +5347,8 @@ class VikingSiteNavbar {
5312
5347
  class="menu-toggle-btn"
5313
5348
  [icon]="mobileMenuOpen() ? 'x' : 'menu'"
5314
5349
  id="mobile-menu-btn"
5350
+ [attr.aria-controls]="'mobile-menu'"
5351
+ [attr.aria-expanded]="mobileMenuOpen() ? 'true' : 'false'"
5315
5352
  [label]="
5316
5353
  mobileMenuOpen()
5317
5354
  ? 'Close navigation menu'
@@ -5324,7 +5361,9 @@ class VikingSiteNavbar {
5324
5361
 
5325
5362
  <nav
5326
5363
  class="mobile-menu"
5364
+ id="mobile-menu"
5327
5365
  [class.open]="mobileMenuOpen()"
5366
+ [attr.hidden]="mobileMenuOpen() ? null : ''"
5328
5367
  aria-label="Mobile navigation"
5329
5368
  >
5330
5369
  @for (link of navLinks(); track link.id + "-mobile") {
@@ -5517,6 +5556,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5517
5556
  class="menu-toggle-btn"
5518
5557
  [icon]="mobileMenuOpen() ? 'x' : 'menu'"
5519
5558
  id="mobile-menu-btn"
5559
+ [attr.aria-controls]="'mobile-menu'"
5560
+ [attr.aria-expanded]="mobileMenuOpen() ? 'true' : 'false'"
5520
5561
  [label]="
5521
5562
  mobileMenuOpen()
5522
5563
  ? 'Close navigation menu'
@@ -5529,7 +5570,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5529
5570
 
5530
5571
  <nav
5531
5572
  class="mobile-menu"
5573
+ id="mobile-menu"
5532
5574
  [class.open]="mobileMenuOpen()"
5575
+ [attr.hidden]="mobileMenuOpen() ? null : ''"
5533
5576
  aria-label="Mobile navigation"
5534
5577
  >
5535
5578
  @for (link of navLinks(); track link.id + "-mobile") {
@@ -5596,7 +5639,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5596
5639
  </nav>
5597
5640
  </header>
5598
5641
  ` }]
5599
- }], propDecorators: { context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }], urls: [{ type: i0.Input, args: [{ isSignal: true, alias: "urls", required: false }] }], isAuthenticated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAuthenticated", required: false }] }], isBusy: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBusy", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], showSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSearch", required: false }] }], login: [{ type: i0.Output, args: ["login"] }], logout: [{ type: i0.Output, args: ["logout"] }], themeToggle: [{ type: i0.Output, args: ["themeToggle"] }], searchOpen: [{ type: i0.Output, args: ["searchOpen"] }] } });
5642
+ }], propDecorators: { context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }], urls: [{ type: i0.Input, args: [{ isSignal: true, alias: "urls", required: false }] }], isAuthenticated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAuthenticated", required: false }] }], isBusy: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBusy", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], showSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSearch", required: false }] }], login: [{ type: i0.Output, args: ["login"] }], logout: [{ type: i0.Output, args: ["logout"] }], themeToggle: [{ type: i0.Output, args: ["themeToggle"] }], searchOpen: [{ type: i0.Output, args: ["searchOpen"] }], closeMobileMenuOnDesktop: [{
5643
+ type: HostListener,
5644
+ args: ["window:resize"]
5645
+ }], closeMobileMenuOnEscape: [{
5646
+ type: HostListener,
5647
+ args: ["document:keydown.escape"]
5648
+ }] } });
5600
5649
 
5601
5650
  /**
5602
5651
  * viking-footer — site-wide Drakkar footer shell. Project directory columns and bottom row via slots.
@@ -6918,7 +6967,7 @@ class VikingCard {
6918
6967
  } @else {
6919
6968
  <ng-content />
6920
6969
  }
6921
- `, isInline: true, styles: [":host{display:block;background:var(--viking-surface-recipe, var(--viking-surface));border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-sm),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 6%,transparent);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;isolation:isolate;overflow:hidden;min-width:0;background-clip:padding-box}:host(.viking-card-headerless) .viking-card-header,:host(.viking-card-headerless) viking-card-header{display:none}:host:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) var(--viking-surface-hairline-strength, 22%),transparent),transparent);pointer-events:none}:host:after{content:\"\";position:absolute;inset:0 0 auto;width:1px;height:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--viking-metallic-100) 22%,transparent),transparent);pointer-events:none}:host(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 6%,transparent);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent),var(--viking-shadow-sm)}:host(.viking-card-interactive):focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}:host(.viking-card-loading){pointer-events:none}:host(.viking-card-compact){padding:var(--viking-card-padding-compact, var(--viking-space-2))}.viking-card-skeleton{display:flex;flex-direction:column;gap:var(--viking-space-1-5)}\n"], dependencies: [{ kind: "component", type: VikingSkeleton, selector: "viking-skeleton", inputs: ["shape", "width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6970
+ `, isInline: true, styles: [":host{display:grid;gap:var(--viking-card-content-gap, var(--viking-space-3));background:var(--viking-surface-recipe, var(--viking-surface));border:1px solid color-mix(in srgb,var(--viking-border-strong) 72%,var(--viking-border));border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-sm),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 7%,transparent),inset 0 -1px color-mix(in srgb,var(--viking-black) 18%,transparent);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;isolation:isolate;overflow:hidden;min-width:0;background-clip:padding-box}:host(.viking-card-headerless) .viking-card-header,:host(.viking-card-headerless) viking-card-header{display:none}:host:before{content:\"\";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) var(--viking-surface-hairline-strength, 28%),transparent),transparent);pointer-events:none}:host:after{content:\"\";position:absolute;inset:0 0 auto;width:2px;height:var(--viking-space-4);background:linear-gradient(180deg,color-mix(in srgb,var(--viking-metallic-100) 24%,transparent),transparent);pointer-events:none}:host(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 8%,transparent),inset 0 -1px color-mix(in srgb,var(--viking-black) 18%,transparent);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent),var(--viking-shadow-sm)}:host(.viking-card-loading){pointer-events:none}:host(.viking-card-compact){padding:var(--viking-card-padding-compact, var(--viking-space-2));gap:var(--viking-card-content-gap-compact, var(--viking-space-2))}.viking-card-skeleton{display:flex;flex-direction:column;gap:var(--viking-space-2)}\n"], dependencies: [{ kind: "component", type: VikingSkeleton, selector: "viking-skeleton", inputs: ["shape", "width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6922
6971
  }
6923
6972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCard, decorators: [{
6924
6973
  type: Component,
@@ -6941,25 +6990,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
6941
6990
  } @else {
6942
6991
  <ng-content />
6943
6992
  }
6944
- `, imports: [VikingSkeleton], styles: [":host{display:block;background:var(--viking-surface-recipe, var(--viking-surface));border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-sm),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 6%,transparent);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;isolation:isolate;overflow:hidden;min-width:0;background-clip:padding-box}:host(.viking-card-headerless) .viking-card-header,:host(.viking-card-headerless) viking-card-header{display:none}:host:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) var(--viking-surface-hairline-strength, 22%),transparent),transparent);pointer-events:none}:host:after{content:\"\";position:absolute;inset:0 0 auto;width:1px;height:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--viking-metallic-100) 22%,transparent),transparent);pointer-events:none}:host(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 6%,transparent);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent),var(--viking-shadow-sm)}:host(.viking-card-interactive):focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}:host(.viking-card-loading){pointer-events:none}:host(.viking-card-compact){padding:var(--viking-card-padding-compact, var(--viking-space-2))}.viking-card-skeleton{display:flex;flex-direction:column;gap:var(--viking-space-1-5)}\n"] }]
6993
+ `, imports: [VikingSkeleton], styles: [":host{display:grid;gap:var(--viking-card-content-gap, var(--viking-space-3));background:var(--viking-surface-recipe, var(--viking-surface));border:1px solid color-mix(in srgb,var(--viking-border-strong) 72%,var(--viking-border));border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-sm),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 7%,transparent),inset 0 -1px color-mix(in srgb,var(--viking-black) 18%,transparent);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;isolation:isolate;overflow:hidden;min-width:0;background-clip:padding-box}:host(.viking-card-headerless) .viking-card-header,:host(.viking-card-headerless) viking-card-header{display:none}:host:before{content:\"\";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) var(--viking-surface-hairline-strength, 28%),transparent),transparent);pointer-events:none}:host:after{content:\"\";position:absolute;inset:0 0 auto;width:2px;height:var(--viking-space-4);background:linear-gradient(180deg,color-mix(in srgb,var(--viking-metallic-100) 24%,transparent),transparent);pointer-events:none}:host(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover),inset 0 1px color-mix(in srgb,var(--viking-white-pure) 8%,transparent),inset 0 -1px color-mix(in srgb,var(--viking-black) 18%,transparent);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:inset 0 1px 2px color-mix(in srgb,var(--viking-black) 24%,transparent),var(--viking-shadow-sm)}:host(.viking-card-loading){pointer-events:none}:host(.viking-card-compact){padding:var(--viking-card-padding-compact, var(--viking-space-2));gap:var(--viking-card-content-gap-compact, var(--viking-space-2))}.viking-card-skeleton{display:flex;flex-direction:column;gap:var(--viking-space-2)}\n"] }]
6945
6994
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] } });
6946
6995
  /** Header row for viking-card. */
6947
6996
  class VikingCardHeader {
6948
6997
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
6949
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingCardHeader, isStandalone: true, selector: "viking-card-header", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-2);padding-bottom:var(--viking-space-2);margin-bottom:var(--viking-space-2)}:host ::ng-deep>*{display:inline-flex;align-items:center}:host ::ng-deep viking-card-title{flex:1 1 auto;min-width:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6998
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingCardHeader, isStandalone: true, selector: "viking-card-header", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-3);padding-bottom:var(--viking-space-2);margin-bottom:0;border-bottom:1px solid var(--viking-border-subtle)}:host ::ng-deep>*{display:inline-flex;align-items:center}:host ::ng-deep viking-card-title{flex:1 1 auto;min-width:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6950
6999
  }
6951
7000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardHeader, decorators: [{
6952
7001
  type: Component,
6953
- args: [{ selector: "viking-card-header", changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-2);padding-bottom:var(--viking-space-2);margin-bottom:var(--viking-space-2)}:host ::ng-deep>*{display:inline-flex;align-items:center}:host ::ng-deep viking-card-title{flex:1 1 auto;min-width:0}\n"] }]
7002
+ args: [{ selector: "viking-card-header", changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host{display:flex;align-items:center;justify-content:space-between;gap:var(--viking-space-3);padding-bottom:var(--viking-space-2);margin-bottom:0;border-bottom:1px solid var(--viking-border-subtle)}:host ::ng-deep>*{display:inline-flex;align-items:center}:host ::ng-deep viking-card-title{flex:1 1 auto;min-width:0}\n"] }]
6954
7003
  }] });
6955
7004
  /** Footer row for viking-card. */
6956
7005
  class VikingCardFooter {
6957
7006
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
6958
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingCardFooter, isStandalone: true, selector: "viking-card-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);padding-top:var(--viking-space-2);margin-top:var(--viking-space-2)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7007
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingCardFooter, isStandalone: true, selector: "viking-card-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;align-items:center;justify-content:flex-end;gap:var(--viking-space-2);padding-top:var(--viking-space-2);margin-top:0;border-top:1px solid var(--viking-border-subtle)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6959
7008
  }
6960
7009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardFooter, decorators: [{
6961
7010
  type: Component,
6962
- args: [{ selector: "viking-card-footer", changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host{display:flex;align-items:center;gap:var(--viking-space-2);padding-top:var(--viking-space-2);margin-top:var(--viking-space-2)}\n"] }]
7011
+ args: [{ selector: "viking-card-footer", changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host{display:flex;align-items:center;justify-content:flex-end;gap:var(--viking-space-2);padding-top:var(--viking-space-2);margin-top:0;border-top:1px solid var(--viking-border-subtle)}\n"] }]
6963
7012
  }] });
6964
7013
 
6965
7014
  /**
@@ -9201,19 +9250,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
9201
9250
  `, styles: [":host{display:block;font-family:var(--viking-font-family)}.viking-checkbox{display:inline-flex;align-items:flex-start;gap:var(--viking-space-1);cursor:pointer}.viking-disabled{opacity:var(--viking-state-disabled-opacity);cursor:not-allowed}.viking-checkbox-box{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--viking-space-2);height:var(--viking-space-2);margin-top:2px;border:1px solid var(--viking-border-strong);border-radius:var(--viking-radius-xs);background:var(--viking-surface);color:var(--viking-accent-content);transition:var(--viking-transition-interactive);flex-shrink:0;box-shadow:var(--viking-shadow-xs)}.viking-checkbox-box input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.viking-checkbox:hover:not(.viking-disabled) .viking-checkbox-box{border-color:var(--viking-accent-strong)}.viking-checkbox-box.viking-checked{background:var(--viking-accent);border-color:color-mix(in srgb,var(--viking-accent) 80%,var(--viking-black));box-shadow:var(--viking-shadow-sm)}.viking-checkbox-box:has(input:focus-visible){outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset)}.viking-checkbox-content{display:flex;flex-direction:column}.viking-checkbox-label{font-size:var(--viking-font-size);color:var(--viking-text);line-height:1.45}.viking-checkbox-description{font-size:var(--viking-font-size);color:var(--viking-text-muted)}\n"] }]
9202
9251
  }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }] } });
9203
9252
 
9204
- /** Fixed series palette — keep in sync with viking-tokens.json and THEME.md §8.4 */
9205
- const VIKING_SERIES_PRESETS = [
9206
- "var(--viking-electric-500)",
9207
- "var(--viking-crimson-600)",
9208
- "var(--viking-green-500)",
9209
- "var(--viking-gold-500)",
9210
- "var(--viking-crimson-500)",
9211
- "var(--viking-blue-500)",
9212
- "var(--viking-charcoal-700)",
9213
- "var(--viking-metallic-500)",
9214
- ];
9215
- const VIKING_SERIES_DEFAULT = VIKING_SERIES_PRESETS[0];
9216
-
9217
9253
  /**
9218
9254
  * viking-color-picker — swatch presets + custom color input
9219
9255
  *. ControlValueAccessor-compatible.
@@ -10128,11 +10164,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
10128
10164
  */
10129
10165
  class VikingFormPanel {
10130
10166
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingFormPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
10131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingFormPanel, isStandalone: true, selector: "viking-form-panel", host: { classAttribute: "viking-form-panel" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;flex-direction:column;gap:0;width:100%;min-width:0}:host ::ng-deep viking-form-section+viking-form-section{border-top:1px solid var(--viking-border-subtle);margin-top:var(--viking-space-3);padding-top:var(--viking-space-3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10167
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: VikingFormPanel, isStandalone: true, selector: "viking-form-panel", host: { classAttribute: "viking-form-panel" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:flex;flex-direction:column;gap:0;width:100%;min-width:0}:host ::ng-deep viking-form-section+viking-form-section{border-top:1px solid var(--viking-border-subtle);margin-top:var(--viking-space-4);padding-top:var(--viking-space-4)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10132
10168
  }
10133
10169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingFormPanel, decorators: [{
10134
10170
  type: Component,
10135
- args: [{ selector: "viking-form-panel", changeDetection: ChangeDetectionStrategy.OnPush, host: { class: "viking-form-panel" }, template: `<ng-content />`, styles: [":host{display:flex;flex-direction:column;gap:0;width:100%;min-width:0}:host ::ng-deep viking-form-section+viking-form-section{border-top:1px solid var(--viking-border-subtle);margin-top:var(--viking-space-3);padding-top:var(--viking-space-3)}\n"] }]
10171
+ args: [{ selector: "viking-form-panel", changeDetection: ChangeDetectionStrategy.OnPush, host: { class: "viking-form-panel" }, template: `<ng-content />`, styles: [":host{display:flex;flex-direction:column;gap:0;width:100%;min-width:0}:host ::ng-deep viking-form-section+viking-form-section{border-top:1px solid var(--viking-border-subtle);margin-top:var(--viking-space-4);padding-top:var(--viking-space-4)}\n"] }]
10136
10172
  }] });
10137
10173
  /**
10138
10174
  * viking-form-section — standard dashboard form row: heading, fields, and actions.
@@ -10170,7 +10206,7 @@ class VikingFormSection {
10170
10206
  <div class="viking-form-section-footer">
10171
10207
  <ng-content select="[vikingFormFooter]" />
10172
10208
  </div>
10173
- `, isInline: true, styles: [":host{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%;min-width:0;font-family:var(--viking-font-family)}.viking-form-section-header{display:flex;align-items:center;gap:var(--viking-space-1);min-width:0}.viking-form-section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--viking-radius-sm);background:var(--viking-accent-soft);color:var(--viking-accent-strong);flex-shrink:0}.viking-form-section-title{margin:0;font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-caps);text-transform:uppercase;color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-form-section-body{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-2);width:100%;min-width:0}.viking-form-section-fields{display:flex;flex-direction:column;gap:var(--viking-space-2);min-width:0;flex:1}.viking-form-section-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-1);flex-shrink:0}.viking-form-section-actions:empty{display:none}.viking-form-section-footer:empty{display:none}.viking-form-section-footer:not(:empty){display:flex;flex-direction:column;gap:var(--viking-space-1)}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-body{flex-direction:row;align-items:flex-end}}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-actions{align-items:center;justify-content:flex-end;width:auto}}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-body{flex-direction:row;align-items:flex-start;justify-content:space-between}}:host(.viking-form-section-status) .viking-form-section-fields{flex-direction:row;align-items:flex-start;gap:var(--viking-space-1, 8px)}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-actions{align-items:flex-start;padding-top:1px;margin-left:auto}}:host ::ng-deep viking-field{width:100%;min-width:0}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "sizePreset", "variant", "color", "backdrop", "backdropTone", "spin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10209
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;min-width:0;font-family:var(--viking-font-family)}.viking-form-section-header{display:flex;align-items:center;gap:var(--viking-space-1);min-width:0}.viking-form-section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--viking-radius-sm);background:var(--viking-accent-soft);color:var(--viking-accent-strong);flex-shrink:0}.viking-form-section-title{margin:0;font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-caps);text-transform:uppercase;color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-form-section-body{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-3);width:100%;min-width:0}.viking-form-section-fields{display:flex;flex-direction:column;gap:var(--viking-space-3);min-width:0;flex:1}.viking-form-section-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-2);flex-shrink:0}.viking-form-section-actions:empty{display:none}.viking-form-section-footer:empty{display:none}.viking-form-section-footer:not(:empty){display:flex;flex-direction:column;gap:var(--viking-space-1)}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-body{flex-direction:row;align-items:flex-end}}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-actions{align-items:center;justify-content:flex-end;width:auto}}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-body{flex-direction:row;align-items:flex-start;justify-content:space-between}}:host(.viking-form-section-status) .viking-form-section-fields{flex-direction:row;align-items:flex-start;gap:var(--viking-space-1, 8px)}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-actions{align-items:flex-start;padding-top:1px;margin-left:auto}}:host ::ng-deep viking-field{width:100%;min-width:0}\n"], dependencies: [{ kind: "component", type: VikingIcon, selector: "viking-icon", inputs: ["name", "size", "sizePreset", "variant", "color", "backdrop", "backdropTone", "spin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10174
10210
  }
10175
10211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingFormSection, decorators: [{
10176
10212
  type: Component,
@@ -10203,7 +10239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
10203
10239
  <div class="viking-form-section-footer">
10204
10240
  <ng-content select="[vikingFormFooter]" />
10205
10241
  </div>
10206
- `, styles: [":host{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%;min-width:0;font-family:var(--viking-font-family)}.viking-form-section-header{display:flex;align-items:center;gap:var(--viking-space-1);min-width:0}.viking-form-section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--viking-radius-sm);background:var(--viking-accent-soft);color:var(--viking-accent-strong);flex-shrink:0}.viking-form-section-title{margin:0;font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-caps);text-transform:uppercase;color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-form-section-body{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-2);width:100%;min-width:0}.viking-form-section-fields{display:flex;flex-direction:column;gap:var(--viking-space-2);min-width:0;flex:1}.viking-form-section-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-1);flex-shrink:0}.viking-form-section-actions:empty{display:none}.viking-form-section-footer:empty{display:none}.viking-form-section-footer:not(:empty){display:flex;flex-direction:column;gap:var(--viking-space-1)}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-body{flex-direction:row;align-items:flex-end}}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-actions{align-items:center;justify-content:flex-end;width:auto}}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-body{flex-direction:row;align-items:flex-start;justify-content:space-between}}:host(.viking-form-section-status) .viking-form-section-fields{flex-direction:row;align-items:flex-start;gap:var(--viking-space-1, 8px)}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-actions{align-items:flex-start;padding-top:1px;margin-left:auto}}:host ::ng-deep viking-field{width:100%;min-width:0}\n"] }]
10242
+ `, styles: [":host{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;min-width:0;font-family:var(--viking-font-family)}.viking-form-section-header{display:flex;align-items:center;gap:var(--viking-space-1);min-width:0}.viking-form-section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--viking-radius-sm);background:var(--viking-accent-soft);color:var(--viking-accent-strong);flex-shrink:0}.viking-form-section-title{margin:0;font-size:var(--viking-font-size-ui);font-weight:var(--viking-font-weight-semibold);letter-spacing:var(--viking-letter-spacing-caps);text-transform:uppercase;color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-form-section-body{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-3);width:100%;min-width:0}.viking-form-section-fields{display:flex;flex-direction:column;gap:var(--viking-space-3);min-width:0;flex:1}.viking-form-section-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--viking-space-2);flex-shrink:0}.viking-form-section-actions:empty{display:none}.viking-form-section-footer:empty{display:none}.viking-form-section-footer:not(:empty){display:flex;flex-direction:column;gap:var(--viking-space-1)}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-body{flex-direction:row;align-items:flex-end}}@media(min-width:601px){:host(.viking-form-section-inline) .viking-form-section-actions{align-items:center;justify-content:flex-end;width:auto}}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-body{flex-direction:row;align-items:flex-start;justify-content:space-between}}:host(.viking-form-section-status) .viking-form-section-fields{flex-direction:row;align-items:flex-start;gap:var(--viking-space-1, 8px)}@media(min-width:601px){:host(.viking-form-section-status) .viking-form-section-actions{align-items:flex-start;padding-top:1px;margin-left:auto}}:host ::ng-deep viking-field{width:100%;min-width:0}\n"] }]
10207
10243
  }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }] } });
10208
10244
 
10209
10245
  /**
@@ -13935,5 +13971,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
13935
13971
  * Generated bundle index. Do not edit.
13936
13972
  */
13937
13973
 
13938
- export { BUG_REPORT_QUERY, COOKIE_SETTINGS_QUERY, DEFAULT_SITE_URLS, MATERIAL_ICON_ALIASES$1 as MATERIAL_ICON_ALIASES, SITE_FOOTER_COLUMNS, SITE_NAV_LINKS, VIKING_BRAND_ICON_FILLED_PATHS$1 as VIKING_BRAND_ICON_FILLED_PATHS, VIKING_BRAND_ICON_NAMES$1 as VIKING_BRAND_ICON_NAMES, VIKING_BRAND_ICON_NAMES_LIST$1 as VIKING_BRAND_ICON_NAMES_LIST, VIKING_BRAND_ICON_PATHS$1 as VIKING_BRAND_ICON_PATHS, VIKING_DRAKKAR_ICON_FILLED_PATHS$1 as VIKING_DRAKKAR_ICON_FILLED_PATHS, VIKING_DRAKKAR_ICON_NAMES_LIST$1 as VIKING_DRAKKAR_ICON_NAMES_LIST, VIKING_DRAKKAR_ICON_PATHS$1 as VIKING_DRAKKAR_ICON_PATHS, VIKING_ICON_NAMES$1 as VIKING_ICON_NAMES, VIKING_ICON_PATHS$1 as VIKING_ICON_PATHS, VIKING_ICON_SIZE_PRESETS$1 as VIKING_ICON_SIZE_PRESETS, VIKING_LUCIDE_ICON_NAMES$1 as VIKING_LUCIDE_ICON_NAMES, VIKING_TABS, VIKING_TOGGLE_GROUP, VikingAccordion, VikingAccordionItem, VikingAppHeader, VikingAppSidebar, VikingAuthPanel, VikingAutocomplete, VikingAvatar, VikingBadge, VikingBadgeWc, VikingBar, VikingBrand, VikingBreadcrumbs, VikingButton, VikingButtonGroup, VikingButtonWc, VikingCalendar, VikingCallout, VikingCalloutWc, VikingCard, VikingCardFooter, VikingCardHeader, VikingCardTitle, VikingCardWc, VikingCarousel, VikingCarouselSlide, VikingChart, VikingChartCardHeader, VikingChartEmptyState, VikingChartPanel, VikingCheckbox, VikingColorPicker, VikingCommand, VikingComposer, VikingConfirmDialog, VikingContext, VikingControl, VikingDatePicker, VikingDialogService, VikingDropdown, VikingEditor, VikingEmptyState, VikingFab, VikingField, VikingFileUpload, VikingFooter, VikingFormPanel, VikingFormSection, VikingGaugeArc, VikingHeading, VikingHudPanel, VikingIcon, VikingIconBadge, VikingIcon as VikingIconComponent, VikingIconHeading, VikingIconText, VikingInput, VikingInputWc, VikingKanban, VikingKbd, VikingLabel, VikingLoadingOverlay, VikingMenuItem, VikingMenubar, VikingMenubarItem, VikingMetricCard, VikingMetricRow, VikingModal, VikingModalWc, VikingNativeSelect, VikingNavbar, VikingNavbarItem, VikingNavigationMenu, VikingOtpInput, VikingPageBackLink, VikingPageHeader, VikingPagination, VikingPillbox, VikingPopover, VikingProfile, VikingProgress, VikingRadioGroup, VikingRingGauge, VikingScrollArea, VikingSearchPalette, VikingSearchPaletteWc, VikingSelect, VikingSelectWc, VikingSeparator, VikingSheet, VikingSidebarNav, VikingSidebarNavLink, VikingSidebarNavTree, VikingSidebarNavTreeChildren, VikingSidebarNavTreeHeader, VikingSidebarNavTreeItem, VikingSiteFooter, VikingSiteNavbar, VikingSkeleton, VikingSlider, VikingSpinner, VikingStatusMetricRow, VikingSuiteSearchPalette, VikingSuiteSearchPaletteWc, VikingSwitch, VikingTab, VikingTabPanel, VikingTable, VikingTabs, VikingText, VikingTextarea, VikingThemeToggle, VikingThemeToggleWc, VikingTimePicker, VikingTimeline, VikingTimelineItem, VikingToastService, VikingToaster, VikingToggle, VikingToggleGroup, VikingTooltip, VikingUptimeBar, VikingVerificationCodeField, VikingWhitepaperCta, VikingWizard, bugReportHref, buildSuiteSearchItems, clampChartWindow, cookieSettingsHref, fullChartWindow, isAppRouterPath, panChartWindow, provideVikingCva, registerVikingBadgeWc, registerVikingButtonWc, registerVikingCalloutWc, registerVikingCardWc, registerVikingElements, registerVikingInputWc, registerVikingModalWc, registerVikingSearchPaletteWc, registerVikingSelectWc, registerVikingSuiteSearchPaletteWc, registerVikingThemeToggleWc, resolveBrandHref, resolveFooterHref, resolveNavHref, resolveVikingIcon$1 as resolveVikingIcon, resolveVikingIconColor$1 as resolveVikingIconColor, resolveVikingIconSize$1 as resolveVikingIconSize, sliceChartData, vikingIconViewBox$1 as vikingIconViewBox, visibleNavLinks, zoomChartWindow };
13974
+ export { BUG_REPORT_QUERY, COOKIE_SETTINGS_QUERY, DEFAULT_SITE_URLS, MATERIAL_ICON_ALIASES$1 as MATERIAL_ICON_ALIASES, SITE_FOOTER_COLUMNS, SITE_NAV_LINKS, VIKING_BRAND_ICON_FILLED_PATHS$1 as VIKING_BRAND_ICON_FILLED_PATHS, VIKING_BRAND_ICON_NAMES$1 as VIKING_BRAND_ICON_NAMES, VIKING_BRAND_ICON_NAMES_LIST$1 as VIKING_BRAND_ICON_NAMES_LIST, VIKING_BRAND_ICON_PATHS$1 as VIKING_BRAND_ICON_PATHS, VIKING_DRAKKAR_ICON_FILLED_PATHS$1 as VIKING_DRAKKAR_ICON_FILLED_PATHS, VIKING_DRAKKAR_ICON_NAMES_LIST$1 as VIKING_DRAKKAR_ICON_NAMES_LIST, VIKING_DRAKKAR_ICON_PATHS$1 as VIKING_DRAKKAR_ICON_PATHS, VIKING_FILLED_ICON_NAMES$1 as VIKING_FILLED_ICON_NAMES, VIKING_ICON_FILLED_PATHS$1 as VIKING_ICON_FILLED_PATHS, VIKING_ICON_NAMES$1 as VIKING_ICON_NAMES, VIKING_ICON_PATHS$1 as VIKING_ICON_PATHS, VIKING_ICON_SIZE_PRESETS$1 as VIKING_ICON_SIZE_PRESETS, VIKING_INTEGRATION_BRAND_COLORS$1 as VIKING_INTEGRATION_BRAND_COLORS, VIKING_INTEGRATION_BRAND_NAMES$1 as VIKING_INTEGRATION_BRAND_NAMES, VIKING_INTEGRATION_BRAND_SVGS$1 as VIKING_INTEGRATION_BRAND_SVGS, VIKING_INTEGRATION_ICON_NAMES_LIST$1 as VIKING_INTEGRATION_ICON_NAMES_LIST, VIKING_INTEGRATION_ICON_PATHS$1 as VIKING_INTEGRATION_ICON_PATHS, VIKING_LUCIDE_ICON_NAMES$1 as VIKING_LUCIDE_ICON_NAMES, VIKING_SERIES_DEFAULT, VIKING_SERIES_PRESETS, VIKING_TABS, VIKING_TOGGLE_GROUP, VikingAccordion, VikingAccordionItem, VikingAppHeader, VikingAppSidebar, VikingAuthPanel, VikingAutocomplete, VikingAvatar, VikingBadge, VikingBadgeWc, VikingBar, VikingBrand, VikingBreadcrumbs, VikingButton, VikingButtonGroup, VikingButtonWc, VikingCalendar, VikingCallout, VikingCalloutWc, VikingCard, VikingCardFooter, VikingCardHeader, VikingCardTitle, VikingCardWc, VikingCarousel, VikingCarouselSlide, VikingChart, VikingChartCardHeader, VikingChartEmptyState, VikingChartPanel, VikingCheckbox, VikingColorPicker, VikingCommand, VikingComposer, VikingConfirmDialog, VikingContext, VikingControl, VikingDatePicker, VikingDialogService, VikingDropdown, VikingEditor, VikingEmptyState, VikingFab, VikingField, VikingFieldWc, VikingFileUpload, VikingFooter, VikingFormPanel, VikingFormSection, VikingGaugeArc, VikingHeading, VikingHudPanel, VikingIcon, VikingIconBadge, VikingIcon as VikingIconComponent, VikingIconHeading, VikingIconText, VikingInput, VikingInputWc, VikingKanban, VikingKbd, VikingLabel, VikingLoadingOverlay, VikingMenuItem, VikingMenubar, VikingMenubarItem, VikingMetricCard, VikingMetricRow, VikingModal, VikingModalWc, VikingNativeSelect, VikingNavbar, VikingNavbarItem, VikingNavigationMenu, VikingOtpInput, VikingPageBackLink, VikingPageHeader, VikingPagination, VikingPillbox, VikingPopover, VikingProfile, VikingProgress, VikingRadioGroup, VikingRingGauge, VikingScrollArea, VikingSearchPalette, VikingSearchPaletteWc, VikingSelect, VikingSelectWc, VikingSeparator, VikingSheet, VikingSidebarNav, VikingSidebarNavLink, VikingSidebarNavTree, VikingSidebarNavTreeChildren, VikingSidebarNavTreeHeader, VikingSidebarNavTreeItem, VikingSiteFooter, VikingSiteNavbar, VikingSkeleton, VikingSlider, VikingSpinner, VikingStatusMetricRow, VikingSuiteHeaderWc, VikingSuiteSearchPalette, VikingSuiteSearchPaletteWc, VikingSwitch, VikingTab, VikingTabPanel, VikingTable, VikingTabs, VikingText, VikingTextarea, VikingThemeToggle, VikingThemeToggleWc, VikingTimePicker, VikingTimeline, VikingTimelineItem, VikingToastService, VikingToaster, VikingToggle, VikingToggleGroup, VikingTooltip, VikingUptimeBar, VikingVerificationCodeField, VikingWhitepaperCta, VikingWizard, bugReportHref, buildSuiteSearchItems, clampChartWindow, cookieSettingsHref, fullChartWindow, isAppRouterPath, isIntegrationBrandIcon$1 as isIntegrationBrandIcon, panChartWindow, provideVikingCva, registerVikingBadgeWc, registerVikingButtonWc, registerVikingCalloutWc, registerVikingCardWc, registerVikingElements, registerVikingFieldWc, registerVikingInputWc, registerVikingModalWc, registerVikingSearchPaletteWc, registerVikingSelectWc, registerVikingSuiteHeaderWc, registerVikingSuiteSearchPaletteWc, registerVikingThemeToggleWc, resolveBrandHref, resolveFooterHref, resolveNavHref, resolveVikingIcon$1 as resolveVikingIcon, resolveVikingIconColor$1 as resolveVikingIconColor, resolveVikingIconSize$1 as resolveVikingIconSize, sliceChartData, vikingIconViewBox$1 as vikingIconViewBox, visibleNavLinks, zoomChartWindow };
13939
13975
  //# sourceMappingURL=dataengineeringformachinelearning-viking-ui.mjs.map