@dataengineeringformachinelearning/viking-ui 4.0.1 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +7 -5
  2. package/dist/README.md +7 -5
  3. package/dist/deml-components.css +23 -0
  4. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs +182 -23
  5. package/dist/fesm2022/dataengineeringformachinelearning-viking-ui.mjs.map +1 -1
  6. package/dist/package.json +7 -1
  7. package/dist/src/web/card/viking-card-wc.ts +5 -1
  8. package/dist/src/web/core/styles.ts +125 -2
  9. package/dist/src/web/suite-header/viking-suite-header-wc.ts +15 -0
  10. package/dist/types/dataengineeringformachinelearning-viking-ui.d.ts +2 -1
  11. package/dist/viking-components.css +425 -31
  12. package/dist/viking-ui-elements.js +180 -42
  13. package/dist/viking-ui.css +1 -1
  14. package/dist/web-components.js +145 -3
  15. package/package.json +7 -1
  16. package/src/index.ts +1 -1
  17. package/src/lib/auth-panel/auth-panel.ts +9 -9
  18. package/src/lib/button/button.scss +23 -0
  19. package/src/lib/card/card.ts +33 -5
  20. package/src/lib/site-drakkar/site-navbar.ts +14 -4
  21. package/src/styles/_buttons.scss +92 -7
  22. package/src/styles/_layout-enforcement.scss +66 -3
  23. package/src/styles/components/icon-inline.scss +23 -0
  24. package/src/styles/components.scss +276 -9
  25. package/src/styles/static-navbar.scss +43 -4
  26. package/src/styles/surfaces/backend.scss +22 -10
  27. package/src/styles/surfaces/docs-shell.scss +40 -15
  28. package/src/styles/surfaces/docs-showcase.scss +132 -30
  29. package/src/styles/surfaces/marketing-landing.scss +311 -45
  30. package/src/styles/surfaces/swagger-ui.scss +9 -8
  31. package/src/styles/viking-ui.scss +12 -12
  32. package/src/web/card/viking-card-wc.ts +5 -1
  33. package/src/web/core/styles.ts +125 -2
  34. package/src/web/suite-header/viking-suite-header-wc.ts +15 -0
@@ -787,7 +787,7 @@ const VIKING_BUTTON_STYLES = `
787
787
  gap: var(--viking-space-1);
788
788
  min-height: var(--viking-control-height);
789
789
  padding: 0 var(--viking-control-padding-x);
790
- border-radius: var(--viking-radius);
790
+ border-radius: var(--viking-radius-lg);
791
791
  border: 1px solid transparent;
792
792
  cursor: pointer;
793
793
  text-decoration: none;
@@ -796,9 +796,29 @@ const VIKING_BUTTON_STYLES = `
796
796
  min-width: var(--viking-btn-min-width, 120px);
797
797
  white-space: nowrap;
798
798
  position: relative;
799
+ background-clip: padding-box;
800
+ isolation: isolate;
799
801
  user-select: none;
800
802
  -webkit-tap-highlight-color: transparent;
801
803
  box-sizing: border-box;
804
+ overflow: hidden;
805
+ box-shadow: var(--viking-shadow-sm);
806
+ }
807
+
808
+ .viking-btn::before {
809
+ content: "";
810
+ position: absolute;
811
+ inset: 1px 1px auto;
812
+ height: 1px;
813
+ background: linear-gradient(
814
+ 90deg,
815
+ transparent,
816
+ color-mix(in srgb, var(--viking-metallic-100) 45%, transparent),
817
+ transparent
818
+ );
819
+ pointer-events: none;
820
+ opacity: 0.82;
821
+ transition: var(--viking-transition-interactive);
802
822
  }
803
823
 
804
824
  .viking-btn:focus-visible {
@@ -815,6 +835,36 @@ const VIKING_BUTTON_STYLES = `
815
835
  box-shadow: none !important;
816
836
  }
817
837
 
838
+ .viking-btn[aria-busy='true']::before,
839
+ .viking-btn[aria-busy='true'] .viking-btn-label {
840
+ opacity: 0.85;
841
+ transform: translateY(1px);
842
+ }
843
+
844
+ .viking-btn[aria-busy='true'] .viking-btn-spinner {
845
+ opacity: 0.85;
846
+ }
847
+
848
+ .viking-btn::after {
849
+ content: "";
850
+ position: absolute;
851
+ inset: auto 0 0 0;
852
+ height: 1px;
853
+ background: linear-gradient(
854
+ 90deg,
855
+ transparent,
856
+ color-mix(
857
+ in srgb,
858
+ var(--viking-metallic-100) 18%,
859
+ transparent
860
+ ),
861
+ transparent
862
+ );
863
+ pointer-events: none;
864
+ opacity: 0.45;
865
+ transition: var(--viking-transition-interactive);
866
+ }
867
+
818
868
  .viking-btn-sm {
819
869
  min-height: var(--viking-control-height-sm);
820
870
  padding: 0 var(--viking-space-2);
@@ -879,6 +929,20 @@ const VIKING_BUTTON_STYLES = `
879
929
  height: var(--viking-icon-size-md, 20px);
880
930
  }
881
931
 
932
+ ::slotted(viking-icon),
933
+ ::slotted(.viking-icon),
934
+ ::slotted([data-viking-icon]) {
935
+ display: inline-flex;
936
+ align-items: center;
937
+ justify-content: center;
938
+ width: var(--viking-icon-size-md);
939
+ height: var(--viking-icon-size-md);
940
+ line-height: 1;
941
+ flex-shrink: 0;
942
+ pointer-events: none;
943
+ flex: 0 0 auto;
944
+ }
945
+
882
946
  .viking-btn-outline {
883
947
  background: var(--viking-surface);
884
948
  color: var(--viking-text);
@@ -893,6 +957,14 @@ const VIKING_BUTTON_STYLES = `
893
957
  transform: translateY(var(--viking-state-hover-lift));
894
958
  }
895
959
 
960
+ .viking-btn-outline:active:not(:disabled):not([aria-busy='true']) {
961
+ 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);
965
+ border-color: var(--viking-border-strong);
966
+ }
967
+
896
968
  .viking-btn-primary {
897
969
  background: var(--viking-accent);
898
970
  color: var(--viking-accent-content);
@@ -907,6 +979,14 @@ const VIKING_BUTTON_STYLES = `
907
979
  transform: translateY(var(--viking-state-hover-lift));
908
980
  }
909
981
 
982
+ .viking-btn-primary:active:not(:disabled):not([aria-busy='true']) {
983
+ 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);
987
+ border-color: color-mix(in srgb, var(--viking-accent) 82%, var(--viking-black));
988
+ }
989
+
910
990
  .viking-btn-secondary {
911
991
  background: var(--viking-accent-secondary);
912
992
  color: var(--viking-accent-secondary-content);
@@ -921,6 +1001,14 @@ const VIKING_BUTTON_STYLES = `
921
1001
  transform: translateY(var(--viking-state-hover-lift));
922
1002
  }
923
1003
 
1004
+ .viking-btn-secondary:active:not(:disabled):not([aria-busy='true']) {
1005
+ 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);
1009
+ border-color: color-mix(in srgb, var(--viking-accent-secondary) 82%, var(--viking-black));
1010
+ }
1011
+
924
1012
  .viking-btn-filled {
925
1013
  background: var(--viking-surface-alt);
926
1014
  color: var(--viking-text);
@@ -935,6 +1023,13 @@ const VIKING_BUTTON_STYLES = `
935
1023
  transform: translateY(var(--viking-state-hover-lift));
936
1024
  }
937
1025
 
1026
+ .viking-btn-filled:active:not(:disabled):not([aria-busy='true']) {
1027
+ transform: translateY(0) scale(var(--viking-state-active-scale));
1028
+ box-shadow: var(--viking-shadow-sm);
1029
+ border-color: color-mix(in srgb, var(--viking-accent) 20%, var(--viking-border));
1030
+ background: color-mix(in srgb, var(--viking-surface-alt) 84%, var(--viking-accent));
1031
+ }
1032
+
938
1033
  .viking-btn-danger {
939
1034
  background: var(--viking-danger);
940
1035
  color: var(--viking-on-danger);
@@ -944,10 +1039,20 @@ const VIKING_BUTTON_STYLES = `
944
1039
 
945
1040
  .viking-btn-danger:hover:not(:disabled):not([aria-busy='true']) {
946
1041
  background: color-mix(in srgb, var(--viking-danger) 88%, var(--viking-white));
1042
+ border-color: color-mix(in srgb, var(--viking-danger) 92%, var(--viking-white));
947
1043
  box-shadow: var(--viking-shadow-hover);
948
1044
  transform: translateY(var(--viking-state-hover-lift));
949
1045
  }
950
1046
 
1047
+ .viking-btn-danger:active:not(:disabled):not([aria-busy='true']) {
1048
+ transform: translateY(0) scale(var(--viking-state-active-scale));
1049
+ border-color: color-mix(in srgb, var(--viking-danger) 72%, var(--viking-black));
1050
+ 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);
1054
+ }
1055
+
951
1056
  .viking-btn-ghost {
952
1057
  background: transparent;
953
1058
  color: var(--viking-text);
@@ -961,6 +1066,12 @@ const VIKING_BUTTON_STYLES = `
961
1066
  color: var(--viking-accent-strong);
962
1067
  }
963
1068
 
1069
+ .viking-btn-ghost:active:not(:disabled):not([aria-busy='true']) {
1070
+ transform: translateY(0) scale(var(--viking-state-active-scale));
1071
+ background: var(--viking-accent-soft);
1072
+ color: var(--viking-accent-strong);
1073
+ }
1074
+
964
1075
  .viking-btn-subtle {
965
1076
  background: transparent;
966
1077
  color: var(--viking-text-muted);
@@ -975,6 +1086,13 @@ const VIKING_BUTTON_STYLES = `
975
1086
  border-color: var(--viking-border-strong);
976
1087
  }
977
1088
 
1089
+ .viking-btn-subtle:active:not(:disabled):not([aria-busy='true']) {
1090
+ transform: translateY(0) scale(var(--viking-state-active-scale));
1091
+ border-color: var(--viking-border);
1092
+ background: color-mix(in srgb, var(--viking-accent-soft) 70%, var(--viking-surface));
1093
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--viking-black) 24%, transparent);
1094
+ }
1095
+
978
1096
  .viking-btn:active:not(:disabled):not([aria-busy='true']) {
979
1097
  transform: translateY(0) scale(var(--viking-state-active-scale));
980
1098
  }
@@ -982,7 +1100,12 @@ const VIKING_BUTTON_STYLES = `
982
1100
  .viking-btn-label {
983
1101
  display: inline-flex;
984
1102
  align-items: center;
985
- line-height: inherit;
1103
+ gap: var(--viking-space-1);
1104
+ line-height: 1.2;
1105
+ min-width: 0;
1106
+ justify-content: center;
1107
+ text-align: center;
1108
+ white-space: nowrap;
986
1109
  }
987
1110
 
988
1111
  .viking-btn-spinner {
@@ -2199,7 +2322,7 @@ class VikingCardWc extends HTMLElementBase {
2199
2322
  static tag = "viking-card";
2200
2323
  static legacyTag = "viking-card-wc";
2201
2324
  static get observedAttributes() {
2202
- return ["compact", "interactive", "title"];
2325
+ return ["compact", "interactive", "title", "loading"];
2203
2326
  }
2204
2327
  connectedCallback() {
2205
2328
  this.syncClasses();
@@ -2213,6 +2336,7 @@ class VikingCardWc extends HTMLElementBase {
2213
2336
  this.classList.add("viking-card");
2214
2337
  this.classList.toggle("viking-card-compact", this.hasAttribute("compact"));
2215
2338
  this.classList.toggle("viking-card-interactive", this.hasAttribute("interactive"));
2339
+ this.classList.toggle("viking-card-loading", this.hasAttribute("loading"));
2216
2340
  const title = this.getAttribute("title");
2217
2341
  if (title) {
2218
2342
  this.setAttribute("role", "region");
@@ -3952,6 +4076,17 @@ const VIKING_SUITE_HEADER_STYLES = `
3952
4076
  text-transform: uppercase;
3953
4077
  }
3954
4078
 
4079
+ .suite-header__auth-icon,
4080
+ .suite-header__menu-icon,
4081
+ .suite-header__action-icon,
4082
+ .suite-header__avatar-icon,
4083
+ .suite-header__chevron {
4084
+ display: inline-flex;
4085
+ align-items: center;
4086
+ justify-content: center;
4087
+ flex-shrink: 0;
4088
+ }
4089
+
3955
4090
  .suite-header__auth-link:hover {
3956
4091
  background: var(--viking-accent-hover);
3957
4092
  color: var(--viking-accent-content);
@@ -4104,6 +4239,10 @@ viking-suite-command-palette {
4104
4239
  .suite-header__menu-button {
4105
4240
  display: none;
4106
4241
  }
4242
+
4243
+ .suite-header[data-menu-open='true'] .suite-header__mobile {
4244
+ display: none;
4245
+ }
4107
4246
  }
4108
4247
  `;
4109
4248
  const detectContext = () => {
@@ -4926,7 +5065,7 @@ class VikingButton {
4926
5065
  <kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
4927
5066
  }
4928
5067
  </viking-button-wc>
4929
- `, 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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn viking-icon,.viking-btn .viking-icon,a.viking-btn viking-icon,a.viking-btn .viking-icon,button.viking-btn viking-icon,button.viking-btn .viking-icon{flex-shrink:0;pointer-events:none}.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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon{flex-shrink:0;pointer-events:none}.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));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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon{flex-shrink:0;pointer-events:none}.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:scale(var(--viking-state-active-scale))}.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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon{flex-shrink:0;pointer-events:none}.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:scale(var(--viking-state-active-scale))}.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));box-shadow: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));box-shadow: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));box-shadow: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))}.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));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:scale(var(--viking-state-active-scale))}.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:scale(var(--viking-state-active-scale))}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}:host{display:inline-flex}: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.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] .viking-btn-label{opacity:.85}.viking-btn viking-icon,.viking-btn .viking-icon{flex-shrink:0;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));box-shadow: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));box-shadow: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));box-shadow: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))}.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));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:scale(var(--viking-state-active-scale))}.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:scale(var(--viking-state-active-scale))}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}.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 });
5068
+ `, 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 });
4930
5069
  }
4931
5070
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingButton, decorators: [{
4932
5071
  type: Component,
@@ -4962,7 +5101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
4962
5101
  <kbd class="viking-btn-kbd">{{ kbd() }}</kbd>
4963
5102
  }
4964
5103
  </viking-button-wc>
4965
- `, 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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn[aria-busy=true] .viking-btn-label,button.viking-btn[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn viking-icon,.viking-btn .viking-icon,a.viking-btn viking-icon,a.viking-btn .viking-icon,button.viking-btn viking-icon,button.viking-btn .viking-icon{flex-shrink:0;pointer-events:none}.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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-primary[aria-busy=true] .viking-btn-label,button.viking-btn-primary[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-primary viking-icon,.viking-btn-primary .viking-icon,a.viking-btn-primary viking-icon,a.viking-btn-primary .viking-icon,button.viking-btn-primary viking-icon,button.viking-btn-primary .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-secondary[aria-busy=true] .viking-btn-label,button.viking-btn-secondary[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-secondary viking-icon,.viking-btn-secondary .viking-icon,a.viking-btn-secondary viking-icon,a.viking-btn-secondary .viking-icon,button.viking-btn-secondary viking-icon,button.viking-btn-secondary .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-outline[aria-busy=true] .viking-btn-label,button.viking-btn-outline[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-outline viking-icon,.viking-btn-outline .viking-icon,a.viking-btn-outline viking-icon,a.viking-btn-outline .viking-icon,button.viking-btn-outline viking-icon,button.viking-btn-outline .viking-icon{flex-shrink:0;pointer-events:none}.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));box-shadow: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-danger[aria-busy=true] .viking-btn-label,button.viking-btn-danger[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-danger viking-icon,.viking-btn-danger .viking-icon,a.viking-btn-danger viking-icon,a.viking-btn-danger .viking-icon,button.viking-btn-danger viking-icon,button.viking-btn-danger .viking-icon{flex-shrink:0;pointer-events:none}.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));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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-ghost[aria-busy=true] .viking-btn-label,button.viking-btn-ghost[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-ghost viking-icon,.viking-btn-ghost .viking-icon,a.viking-btn-ghost viking-icon,a.viking-btn-ghost .viking-icon,button.viking-btn-ghost viking-icon,button.viking-btn-ghost .viking-icon{flex-shrink:0;pointer-events:none}.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:scale(var(--viking-state-active-scale))}.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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.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: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] .viking-btn-label,a.viking-btn-subtle[aria-busy=true] .viking-btn-label,button.viking-btn-subtle[aria-busy=true] .viking-btn-label{opacity:.85}.viking-btn-subtle viking-icon,.viking-btn-subtle .viking-icon,a.viking-btn-subtle viking-icon,a.viking-btn-subtle .viking-icon,button.viking-btn-subtle viking-icon,button.viking-btn-subtle .viking-icon{flex-shrink:0;pointer-events:none}.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:scale(var(--viking-state-active-scale))}.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));box-shadow: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));box-shadow: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));box-shadow: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))}.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));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:scale(var(--viking-state-active-scale))}.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:scale(var(--viking-state-active-scale))}.viking-btn.viking-compact{min-width:0}.viking-btn.viking-full{width:100%;min-width:0}:host{display:inline-flex}: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);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;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.viking-btn:focus-visible{outline:var(--viking-ring-width) solid var(--viking-ring);outline-offset:var(--viking-ring-offset);z-index:1}.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] .viking-btn-label{opacity:.85}.viking-btn viking-icon,.viking-btn .viking-icon{flex-shrink:0;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));box-shadow: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));box-shadow: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));box-shadow: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))}.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));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:scale(var(--viking-state-active-scale))}.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:scale(var(--viking-state-active-scale))}.viking-btn-label{display:inline-flex;align-items:center;line-height:inherit}.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"] }]
5104
+ `, 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"] }]
4966
5105
  }], 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"] }] } });
4967
5106
 
4968
5107
  /**
@@ -5019,6 +5158,8 @@ class VikingSiteNavbar {
5019
5158
  ...(ngDevMode ? [{ debugName: "urls" }] : /* istanbul ignore next */ []));
5020
5159
  isAuthenticated = input(false, /* @ts-ignore */
5021
5160
  ...(ngDevMode ? [{ debugName: "isAuthenticated" }] : /* istanbul ignore next */ []));
5161
+ isBusy = input(false, /* @ts-ignore */
5162
+ ...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
5022
5163
  theme = input("dark", /* @ts-ignore */
5023
5164
  ...(ngDevMode ? [{ debugName: "theme" }] : /* istanbul ignore next */ []));
5024
5165
  showSearch = input(false, /* @ts-ignore */
@@ -5051,7 +5192,7 @@ class VikingSiteNavbar {
5051
5192
  widgets?.openSearch?.();
5052
5193
  }
5053
5194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingSiteNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
5054
- 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 }, 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: `
5195
+ 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: `
5055
5196
  <header class="navbar">
5056
5197
  <div class="navbar-content">
5057
5198
  <div class="navbar-left">
@@ -5127,6 +5268,8 @@ class VikingSiteNavbar {
5127
5268
  <viking-button
5128
5269
  variant="primary"
5129
5270
  icon="arrow-right"
5271
+ class="auth-btn"
5272
+ [loading]="isBusy()"
5130
5273
  (pressed)="login.emit()"
5131
5274
  >
5132
5275
  Sign In
@@ -5135,11 +5278,16 @@ class VikingSiteNavbar {
5135
5278
  <viking-button
5136
5279
  variant="primary"
5137
5280
  icon="home"
5281
+ class="auth-btn"
5138
5282
  [href]="urls().app + '/dashboard'"
5139
5283
  >
5140
5284
  Dashboard
5141
5285
  </viking-button>
5142
- <viking-button variant="ghost" (pressed)="logout.emit()"
5286
+ <viking-button
5287
+ variant="ghost"
5288
+ class="auth-btn auth-signout-btn"
5289
+ [loading]="isBusy()"
5290
+ (pressed)="logout.emit()"
5143
5291
  >Sign Out</viking-button
5144
5292
  >
5145
5293
  }
@@ -5200,7 +5348,8 @@ class VikingSiteNavbar {
5200
5348
  <viking-button
5201
5349
  variant="primary"
5202
5350
  icon="arrow-right"
5203
- class="mobile-auth-btn"
5351
+ class="mobile-auth-btn auth-btn"
5352
+ [loading]="isBusy()"
5204
5353
  [fullWidth]="true"
5205
5354
  (pressed)="login.emit(); closeMobileMenu()"
5206
5355
  >
@@ -5210,7 +5359,7 @@ class VikingSiteNavbar {
5210
5359
  <viking-button
5211
5360
  variant="primary"
5212
5361
  icon="home"
5213
- class="mobile-auth-btn"
5362
+ class="mobile-auth-btn auth-btn"
5214
5363
  [fullWidth]="true"
5215
5364
  [href]="urls().app + '/dashboard'"
5216
5365
  (pressed)="closeMobileMenu()"
@@ -5219,7 +5368,8 @@ class VikingSiteNavbar {
5219
5368
  </viking-button>
5220
5369
  <viking-button
5221
5370
  variant="ghost"
5222
- class="mobile-auth-btn"
5371
+ class="mobile-auth-btn auth-btn auth-signout-btn"
5372
+ [loading]="isBusy()"
5223
5373
  [fullWidth]="true"
5224
5374
  (pressed)="logout.emit(); closeMobileMenu()"
5225
5375
  >
@@ -5314,6 +5464,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5314
5464
  <viking-button
5315
5465
  variant="primary"
5316
5466
  icon="arrow-right"
5467
+ class="auth-btn"
5468
+ [loading]="isBusy()"
5317
5469
  (pressed)="login.emit()"
5318
5470
  >
5319
5471
  Sign In
@@ -5322,11 +5474,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5322
5474
  <viking-button
5323
5475
  variant="primary"
5324
5476
  icon="home"
5477
+ class="auth-btn"
5325
5478
  [href]="urls().app + '/dashboard'"
5326
5479
  >
5327
5480
  Dashboard
5328
5481
  </viking-button>
5329
- <viking-button variant="ghost" (pressed)="logout.emit()"
5482
+ <viking-button
5483
+ variant="ghost"
5484
+ class="auth-btn auth-signout-btn"
5485
+ [loading]="isBusy()"
5486
+ (pressed)="logout.emit()"
5330
5487
  >Sign Out</viking-button
5331
5488
  >
5332
5489
  }
@@ -5387,7 +5544,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5387
5544
  <viking-button
5388
5545
  variant="primary"
5389
5546
  icon="arrow-right"
5390
- class="mobile-auth-btn"
5547
+ class="mobile-auth-btn auth-btn"
5548
+ [loading]="isBusy()"
5391
5549
  [fullWidth]="true"
5392
5550
  (pressed)="login.emit(); closeMobileMenu()"
5393
5551
  >
@@ -5397,7 +5555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5397
5555
  <viking-button
5398
5556
  variant="primary"
5399
5557
  icon="home"
5400
- class="mobile-auth-btn"
5558
+ class="mobile-auth-btn auth-btn"
5401
5559
  [fullWidth]="true"
5402
5560
  [href]="urls().app + '/dashboard'"
5403
5561
  (pressed)="closeMobileMenu()"
@@ -5406,7 +5564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5406
5564
  </viking-button>
5407
5565
  <viking-button
5408
5566
  variant="ghost"
5409
- class="mobile-auth-btn"
5567
+ class="mobile-auth-btn auth-btn auth-signout-btn"
5568
+ [loading]="isBusy()"
5410
5569
  [fullWidth]="true"
5411
5570
  (pressed)="logout.emit(); closeMobileMenu()"
5412
5571
  >
@@ -5416,7 +5575,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5416
5575
  </nav>
5417
5576
  </header>
5418
5577
  ` }]
5419
- }], 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 }] }], 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"] }] } });
5578
+ }], 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"] }] } });
5420
5579
 
5421
5580
  /**
5422
5581
  * viking-footer — site-wide Drakkar footer shell. Project directory columns and bottom row via slots.
@@ -5930,7 +6089,7 @@ class VikingAuthPanel {
5930
6089
  <ng-content select="[vikingAuthFooter]" />
5931
6090
  </footer>
5932
6091
  </section>
5933
- `, isInline: true, styles: [":host{display:block;width:100%;max-width:480px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;padding:var(--viking-space-3);background:var(--viking-surface);border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-md);position:relative;overflow:hidden}.viking-auth-panel:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) 22%,transparent),transparent);pointer-events:none}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-1);margin-bottom:var(--viking-space-1)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:var(--viking-space-1);height:var(--viking-space-1);border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:var(--viking-font-size-xl);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep .viking-auth-stack{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep .viking-auth-stack viking-callout{width:100%}:host ::ng-deep .viking-auth-stack .login-form,:host ::ng-deep .login-form{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;margin-top:var(--viking-space-4);padding-top:var(--viking-space-4);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthFooter]{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep [vikingAuthFooter] viking-button .viking-btn{min-width:0}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep viking-field{width:100%}\n"], dependencies: [{ kind: "component", type: VikingButton, selector: "viking-button", inputs: ["variant", "size", "type", "icon", "iconTrailing", "disabled", "loading", "square", "fullWidth", "compact", "href", "target", "kbd", "label"], outputs: ["pressed"] }, { kind: "component", type: VikingSeparator, selector: "viking-separator", inputs: ["orientation", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6092
+ `, isInline: true, styles: [":host{display:block;width:100%;max-width:520px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-4);width:100%;padding:var(--viking-card-padding);background:var(--viking-surface);border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-md);position:relative;overflow:hidden}.viking-auth-panel:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) 22%,transparent),transparent);pointer-events:none}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-2);margin-bottom:var(--viking-space-2)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:var(--viking-space-1);height:var(--viking-space-1);border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:var(--viking-font-size-xl);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep .viking-auth-stack{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep .viking-auth-stack viking-callout{width:100%}:host ::ng-deep .viking-auth-stack .login-form,:host ::ng-deep .login-form{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;margin-top:var(--viking-space-4);padding-top:var(--viking-space-4);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthFooter]{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep [vikingAuthFooter] viking-button .viking-btn{min-width:0}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep viking-field{width:100%}\n"], dependencies: [{ kind: "component", type: VikingButton, selector: "viking-button", inputs: ["variant", "size", "type", "icon", "iconTrailing", "disabled", "loading", "square", "fullWidth", "compact", "href", "target", "kbd", "label"], outputs: ["pressed"] }, { kind: "component", type: VikingSeparator, selector: "viking-separator", inputs: ["orientation", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5934
6093
  }
5935
6094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingAuthPanel, decorators: [{
5936
6095
  type: Component,
@@ -5990,7 +6149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
5990
6149
  <ng-content select="[vikingAuthFooter]" />
5991
6150
  </footer>
5992
6151
  </section>
5993
- `, styles: [":host{display:block;width:100%;max-width:480px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;padding:var(--viking-space-3);background:var(--viking-surface);border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-md);position:relative;overflow:hidden}.viking-auth-panel:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) 22%,transparent),transparent);pointer-events:none}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-1);margin-bottom:var(--viking-space-1)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:var(--viking-space-1);height:var(--viking-space-1);border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:var(--viking-font-size-xl);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep .viking-auth-stack{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep .viking-auth-stack viking-callout{width:100%}:host ::ng-deep .viking-auth-stack .login-form,:host ::ng-deep .login-form{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;margin-top:var(--viking-space-4);padding-top:var(--viking-space-4);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthFooter]{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep [vikingAuthFooter] viking-button .viking-btn{min-width:0}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep viking-field{width:100%}\n"] }]
6152
+ `, styles: [":host{display:block;width:100%;max-width:520px;margin-inline:auto;font-family:var(--viking-font-family)}.viking-auth-panel{display:flex;flex-direction:column;gap:var(--viking-space-4);width:100%;padding:var(--viking-card-padding);background:var(--viking-surface);border:1px solid var(--viking-border);border-radius:var(--viking-radius-lg);box-shadow:var(--viking-shadow-md);position:relative;overflow:hidden}.viking-auth-panel:before{content:\"\";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--viking-metallic-200) 22%,transparent),transparent);pointer-events:none}.viking-auth-header{display:flex;flex-direction:column;gap:var(--viking-space-2);margin-bottom:var(--viking-space-2)}.viking-auth-tag-row{display:flex;align-items:center}.viking-auth-tag{display:inline-flex;align-items:center;gap:var(--viking-space-1);font-size:var(--viking-font-size-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--viking-text-muted);padding:var(--viking-space-1) var(--viking-space-2);border:1px solid var(--viking-border);border-radius:var(--viking-radius-pill);background:var(--viking-surface);box-shadow:var(--viking-shadow-sm)}.viking-auth-tag:before{content:\"\";width:var(--viking-space-1);height:var(--viking-space-1);border-radius:50%;background:var(--viking-accent);flex-shrink:0}.viking-auth-title{margin:0;font-size:var(--viking-font-size-xl);font-weight:700;letter-spacing:var(--header-letter-spacing, -.02em);color:var(--viking-text);line-height:var(--viking-line-height-tight)}.viking-auth-subtitle{margin:0;font-size:var(--viking-font-size);line-height:1.6;color:var(--viking-text-muted)}.viking-auth-body{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep .viking-auth-stack{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep .viking-auth-stack viking-callout{width:100%}:host ::ng-deep .viking-auth-stack .login-form,:host ::ng-deep .login-form{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}.viking-auth-social{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}.viking-auth-footer{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%;margin-top:var(--viking-space-4);padding-top:var(--viking-space-4);border-top:1px solid var(--viking-border)}:host ::ng-deep [vikingAuthFooter]{display:flex;flex-direction:column;gap:var(--viking-space-3);width:100%}:host ::ng-deep [vikingAuthFooter] viking-button .viking-btn{min-width:0}:host ::ng-deep [vikingAuthLinks].viking-auth-links,:host ::ng-deep .viking-auth-links{display:flex;flex-direction:column;gap:var(--viking-space-2);width:100%}:host ::ng-deep viking-field{width:100%}\n"] }]
5994
6153
  }], propDecorators: { tag: [{ type: i0.Input, args: [{ isSignal: true, alias: "tag", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], showSocial: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSocial", required: false }] }], socialLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "socialLoading", required: false }] }], googleSignIn: [{ type: i0.Output, args: ["googleSignIn"] }], appleSignIn: [{ type: i0.Output, args: ["appleSignIn"] }] } });
5995
6154
 
5996
6155
  /**
@@ -6730,7 +6889,7 @@ class VikingCard {
6730
6889
  } @else {
6731
6890
  <ng-content />
6732
6891
  }
6733
- `, 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);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;overflow:hidden;min-width:0}: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(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-md)}: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 });
6892
+ `, 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 });
6734
6893
  }
6735
6894
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCard, decorators: [{
6736
6895
  type: Component,
@@ -6753,25 +6912,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
6753
6912
  } @else {
6754
6913
  <ng-content />
6755
6914
  }
6756
- `, 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);padding:var(--viking-card-padding, var(--viking-space-3));color:var(--viking-text);transition:var(--viking-transition-interactive);position:relative;overflow:hidden;min-width:0}: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(.viking-card-interactive){cursor:pointer}:host(.viking-card-interactive):hover{border-color:var(--viking-accent-strong);box-shadow:var(--viking-shadow-hover);transform:translateY(var(--viking-state-hover-lift))}:host(.viking-card-interactive):active{transform:translateY(0) scale(var(--viking-state-active-scale));box-shadow:var(--viking-shadow-md)}: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"] }]
6915
+ `, 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"] }]
6757
6916
  }], 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 }] }] } });
6758
6917
  /** Header row for viking-card. */
6759
6918
  class VikingCardHeader {
6760
6919
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
6761
- 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);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 });
6920
+ 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 });
6762
6921
  }
6763
6922
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardHeader, decorators: [{
6764
6923
  type: Component,
6765
- 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);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"] }]
6924
+ 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"] }]
6766
6925
  }] });
6767
6926
  /** Footer row for viking-card. */
6768
6927
  class VikingCardFooter {
6769
6928
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
6770
- 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);border-top:1px solid var(--viking-border-subtle)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6929
+ 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 });
6771
6930
  }
6772
6931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VikingCardFooter, decorators: [{
6773
6932
  type: Component,
6774
- 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);border-top:1px solid var(--viking-border-subtle)}\n"] }]
6933
+ 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"] }]
6775
6934
  }] });
6776
6935
 
6777
6936
  /**