@incursa/ui-kit 1.0.1 → 1.4.0

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 (45) hide show
  1. package/AI-AGENT-INSTRUCTIONS.md +49 -28
  2. package/LLMS.txt +58 -42
  3. package/README.md +181 -68
  4. package/dist/inc-design-language.css +655 -251
  5. package/dist/inc-design-language.css.map +1 -1
  6. package/dist/inc-design-language.js +520 -0
  7. package/dist/inc-design-language.min.css +1 -1
  8. package/dist/inc-design-language.min.css.map +1 -1
  9. package/dist/web-components/README.md +92 -0
  10. package/dist/web-components/RUNTIME-NOTES.md +40 -0
  11. package/dist/web-components/base-element.js +193 -0
  12. package/dist/web-components/components/feedback.js +1074 -0
  13. package/dist/web-components/components/forms.js +979 -0
  14. package/dist/web-components/components/layout.js +408 -0
  15. package/dist/web-components/components/navigation.js +854 -0
  16. package/dist/web-components/components/overlays.js +634 -0
  17. package/dist/web-components/controllers/focus.js +101 -0
  18. package/dist/web-components/controllers/overlay.js +128 -0
  19. package/dist/web-components/controllers/selection.js +145 -0
  20. package/dist/web-components/controllers/theme.js +173 -0
  21. package/dist/web-components/index.js +887 -0
  22. package/dist/web-components/package.json +3 -0
  23. package/dist/web-components/registry.js +74 -0
  24. package/dist/web-components/shared.js +186 -0
  25. package/dist/web-components/style.css +6 -0
  26. package/package.json +11 -2
  27. package/src/inc-design-language.js +520 -0
  28. package/src/inc-design-language.scss +692 -258
  29. package/src/web-components/README.md +92 -0
  30. package/src/web-components/RUNTIME-NOTES.md +40 -0
  31. package/src/web-components/base-element.js +193 -0
  32. package/src/web-components/components/feedback.js +1074 -0
  33. package/src/web-components/components/forms.js +979 -0
  34. package/src/web-components/components/layout.js +408 -0
  35. package/src/web-components/components/navigation.js +854 -0
  36. package/src/web-components/components/overlays.js +634 -0
  37. package/src/web-components/controllers/focus.js +101 -0
  38. package/src/web-components/controllers/overlay.js +128 -0
  39. package/src/web-components/controllers/selection.js +145 -0
  40. package/src/web-components/controllers/theme.js +173 -0
  41. package/src/web-components/index.js +887 -0
  42. package/src/web-components/package.json +3 -0
  43. package/src/web-components/registry.js +74 -0
  44. package/src/web-components/shared.js +186 -0
  45. package/src/web-components/style.css +6 -0
@@ -1,13 +1,76 @@
1
1
  @use "./inc-tokens" as *;
2
2
  @import "bootstrap/scss/bootstrap";
3
3
 
4
+ :root {
5
+ --inc-surface-primary: var(--bs-body-bg);
6
+ --inc-surface-secondary: var(--bs-secondary-bg);
7
+ --inc-surface-muted: var(--bs-tertiary-bg);
8
+ --inc-surface-highlight: var(--bs-primary-bg-subtle);
9
+ --inc-surface-strong: #2a3142;
10
+ --inc-surface-strong-rgb: 42, 49, 66;
11
+ --inc-border-subtle: var(--bs-border-color-translucent);
12
+ --inc-border-default: var(--bs-border-color);
13
+ --inc-border-strong: var(--bs-secondary-color);
14
+ --inc-text-primary: var(--bs-body-color);
15
+ --inc-text-secondary: var(--bs-secondary-color);
16
+ --inc-text-muted: var(--bs-tertiary-color);
17
+ --inc-text-inverse: #ffffff;
18
+ --inc-text-inverse-rgb: 255, 255, 255;
19
+ --inc-text-link: var(--bs-link-color);
20
+ --inc-text-link-hover: var(--bs-link-hover-color);
21
+ --inc-control-surface: var(--inc-surface-primary);
22
+ --inc-control-surface-text: var(--inc-text-primary);
23
+ --inc-control-surface-border: var(--inc-border-default);
24
+ --inc-surface-contrast: var(--bs-secondary);
25
+ --inc-surface-contrast-rgb: var(--bs-secondary-rgb);
26
+ --inc-surface-contrast-hover: #31384a;
27
+ --inc-surface-contrast-hover-rgb: 49, 56, 74;
28
+ --inc-surface-contrast-active: #2e3542;
29
+ --inc-surface-contrast-active-rgb: 46, 53, 66;
30
+ --inc-surface-contrast-text: var(--inc-text-inverse);
31
+ --inc-surface-contrast-text-rgb: var(--inc-text-inverse-rgb);
32
+ --inc-surface-contrast-border: var(--bs-secondary);
33
+ --inc-surface-primary-rgb: var(--bs-body-bg-rgb);
34
+ --inc-surface-secondary-rgb: var(--bs-secondary-bg-rgb);
35
+ --inc-surface-muted-rgb: var(--bs-tertiary-bg-rgb);
36
+ --inc-text-primary-rgb: var(--bs-body-color-rgb);
37
+ --inc-text-secondary-rgb: var(--bs-secondary-color-rgb);
38
+ --inc-text-muted-rgb: var(--bs-tertiary-color-rgb);
39
+ --inc-shadow-rgb: var(--bs-black-rgb);
40
+ }
41
+
42
+ [data-bs-theme="dark"] {
43
+ --inc-control-surface: var(--inc-surface-secondary);
44
+ --inc-control-surface-text: var(--inc-text-primary);
45
+ --inc-control-surface-border: var(--inc-border-default);
46
+ --inc-surface-contrast: var(--bs-gray-100);
47
+ --inc-surface-contrast-rgb: 253, 253, 253;
48
+ --inc-surface-contrast-hover: var(--bs-gray-200);
49
+ --inc-surface-contrast-hover-rgb: 246, 246, 246;
50
+ --inc-surface-contrast-active: var(--bs-gray-300);
51
+ --inc-surface-contrast-active-rgb: 241, 241, 241;
52
+ --inc-surface-contrast-text: var(--bs-dark);
53
+ --inc-surface-contrast-text-rgb: 18, 19, 22;
54
+ --inc-surface-contrast-border: var(--bs-gray-400);
55
+ --bs-success-bg-subtle: rgba(0, 151, 67, 0.18);
56
+ --bs-success-border-subtle: rgb(72, 171, 109);
57
+ --bs-form-valid-color: rgb(122, 214, 154);
58
+ --bs-form-valid-border-color: rgb(122, 214, 154);
59
+ --bs-danger-bg-subtle: rgba(209, 26, 42, 0.18);
60
+ --bs-danger-border-subtle: rgb(219, 89, 105);
61
+ --bs-form-invalid-color: rgb(248, 126, 143);
62
+ --bs-form-invalid-border-color: rgb(248, 126, 143);
63
+ --bs-warning-bg-subtle: rgba(200, 138, 0, 0.18);
64
+ --bs-warning-border-subtle: rgb(214, 160, 41);
65
+ }
66
+
4
67
  // -----------------------------------------------------------------------------
5
68
  // Typography
6
69
  // -----------------------------------------------------------------------------
7
70
 
8
71
  .inc-text {
9
72
  font-family: $font-family-sans-serif;
10
- color: $body-color;
73
+ color: var(--inc-text-primary);
11
74
  margin: 0;
12
75
 
13
76
  &--large {
@@ -76,7 +139,7 @@
76
139
  }
77
140
 
78
141
  &--muted {
79
- color: $text-muted !important;
142
+ color: var(--inc-text-muted) !important;
80
143
  }
81
144
 
82
145
  &--lead {
@@ -86,7 +149,7 @@
86
149
  &--body {
87
150
  font-size: $font-size-base;
88
151
  line-height: $line-height-base;
89
- color: $body-color;
152
+ color: var(--inc-text-primary);
90
153
  }
91
154
  }
92
155
 
@@ -175,7 +238,7 @@
175
238
 
176
239
  .inc-data {
177
240
  font-family: $font-family-monospace;
178
- color: $body-color;
241
+ color: var(--inc-text-primary);
179
242
  margin: 0;
180
243
 
181
244
  &--display {
@@ -285,7 +348,7 @@
285
348
 
286
349
  &--help {
287
350
  font-size: 0.75rem;
288
- color: $text-muted;
351
+ color: var(--inc-text-muted);
289
352
  }
290
353
  }
291
354
 
@@ -391,6 +454,19 @@
391
454
 
392
455
  &--secondary {
393
456
  @extend .btn-secondary;
457
+ --bs-btn-color: var(--inc-surface-contrast-text);
458
+ --bs-btn-bg: var(--inc-surface-contrast);
459
+ --bs-btn-border-color: var(--inc-surface-contrast-border);
460
+ --bs-btn-hover-color: var(--inc-surface-contrast-text);
461
+ --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
462
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-border);
463
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-contrast-rgb);
464
+ --bs-btn-active-color: var(--inc-surface-contrast-text);
465
+ --bs-btn-active-bg: var(--inc-surface-contrast-active);
466
+ --bs-btn-active-border-color: var(--inc-surface-contrast-border);
467
+ --bs-btn-disabled-color: var(--inc-surface-contrast-text);
468
+ --bs-btn-disabled-bg: var(--inc-surface-contrast);
469
+ --bs-btn-disabled-border-color: var(--inc-surface-contrast-border);
394
470
  }
395
471
 
396
472
  &--success {
@@ -433,6 +509,17 @@
433
509
 
434
510
  &--outline-secondary {
435
511
  @extend .btn-outline-secondary;
512
+ --bs-btn-color: var(--inc-text-primary);
513
+ --bs-btn-border-color: var(--inc-border-default);
514
+ --bs-btn-hover-color: var(--inc-text-primary);
515
+ --bs-btn-hover-bg: var(--inc-surface-secondary);
516
+ --bs-btn-hover-border-color: var(--inc-border-default);
517
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-strong-rgb);
518
+ --bs-btn-active-color: var(--inc-text-primary);
519
+ --bs-btn-active-bg: var(--inc-surface-muted);
520
+ --bs-btn-active-border-color: var(--inc-border-default);
521
+ --bs-btn-disabled-color: var(--inc-text-muted);
522
+ --bs-btn-disabled-border-color: var(--inc-border-subtle);
436
523
  }
437
524
 
438
525
  &--outline-success {
@@ -605,6 +692,9 @@
605
692
 
606
693
  &__control {
607
694
  @extend .form-control;
695
+ color: var(--inc-control-surface-text);
696
+ background-color: var(--inc-control-surface);
697
+ border-color: var(--inc-control-surface-border);
608
698
 
609
699
  &--sm {
610
700
  @extend .form-control-sm;
@@ -640,6 +730,9 @@
640
730
 
641
731
  &__select {
642
732
  @extend .form-select;
733
+ color: var(--inc-control-surface-text);
734
+ background-color: var(--inc-control-surface);
735
+ border-color: var(--inc-control-surface-border);
643
736
 
644
737
  &--sm {
645
738
  @extend .form-select-sm;
@@ -696,9 +789,9 @@
696
789
  &__fieldset {
697
790
  margin: 0;
698
791
  padding: 1rem 1rem 0.875rem;
699
- border: 1px solid $inc-border-subtle;
792
+ border: 1px solid var(--inc-border-subtle);
700
793
  border-radius: $inc-radius-md;
701
- background: linear-gradient(180deg, rgba($inc-surface-secondary, 0.72), $inc-surface-primary 3rem);
794
+ background: var(--inc-surface-secondary);
702
795
  }
703
796
 
704
797
  &__legend {
@@ -706,7 +799,8 @@
706
799
  width: auto;
707
800
  margin: 0;
708
801
  padding: 0 0.375rem;
709
- color: $body-color;
802
+ background-color: var(--inc-surface-secondary);
803
+ color: var(--inc-text-primary);
710
804
  font-size: 0.8125rem;
711
805
  font-weight: 600;
712
806
  line-height: 1.4;
@@ -945,9 +1039,10 @@
945
1039
  justify-content: center;
946
1040
  text-align: center;
947
1041
  padding: $spacer * 2 $spacer * 1.5;
948
- border: $border-width solid $gray-600;
1042
+ border: $border-width solid var(--inc-border-subtle);
949
1043
  border-radius: $inc-radius-panel;
950
- background-color: $gray-100;
1044
+ background-color: var(--inc-surface-secondary);
1045
+ color: var(--inc-text-primary);
951
1046
  min-height: 21.875rem;
952
1047
 
953
1048
  &__content {
@@ -958,7 +1053,7 @@
958
1053
  &__icon {
959
1054
  font-size: $font-size-base * 3.5;
960
1055
  margin-bottom: $spacer * 1.5;
961
- color: $gray-500;
1056
+ color: var(--inc-text-muted);
962
1057
  }
963
1058
 
964
1059
  &__form {
@@ -1037,6 +1132,14 @@
1037
1132
  .inc-card {
1038
1133
  @extend .card;
1039
1134
 
1135
+ --bs-card-bg: var(--inc-surface-primary);
1136
+ --bs-card-color: var(--inc-text-primary);
1137
+ --bs-card-title-color: var(--inc-text-primary);
1138
+ --bs-card-subtitle-color: var(--inc-text-muted);
1139
+ --bs-card-border-color: var(--inc-border-subtle);
1140
+ --bs-card-cap-bg: var(--inc-surface-secondary);
1141
+ --bs-card-cap-color: var(--inc-text-primary);
1142
+
1040
1143
  &__header {
1041
1144
  @extend .card-header;
1042
1145
 
@@ -1359,7 +1462,7 @@
1359
1462
  &__header {
1360
1463
  padding: 1rem;
1361
1464
  border-bottom: 1px solid var(--bs-border-color);
1362
- background-color: var(--bs-light);
1465
+ background-color: var(--inc-surface-secondary);
1363
1466
  display: flex;
1364
1467
  align-items: center;
1365
1468
  justify-content: space-between;
@@ -1388,7 +1491,7 @@
1388
1491
  }
1389
1492
 
1390
1493
  &__subtitle {
1391
- color: var(--bs-secondary);
1494
+ color: var(--inc-text-secondary);
1392
1495
  font-size: 0.875rem;
1393
1496
  margin: 0.25rem 0 0;
1394
1497
  }
@@ -1412,7 +1515,7 @@
1412
1515
  }
1413
1516
 
1414
1517
  &--panel {
1415
- background-color: var(--bs-body-bg);
1518
+ background-color: var(--inc-surface-primary);
1416
1519
  box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
1417
1520
  border-radius: var(--bs-border-radius);
1418
1521
 
@@ -1515,8 +1618,8 @@
1515
1618
  }
1516
1619
 
1517
1620
  .inc-summary-block {
1518
- background-color: $white;
1519
- border: $border-width solid $border-color;
1621
+ background-color: var(--inc-surface-primary);
1622
+ border: $border-width solid var(--inc-border-default);
1520
1623
  border-radius: $border-radius;
1521
1624
  padding: $spacer * 1.25;
1522
1625
  transition: box-shadow 0.2s ease-in-out;
@@ -1531,7 +1634,7 @@
1531
1634
  justify-content: space-between;
1532
1635
  margin-bottom: $spacer * 0.75;
1533
1636
  font-size: $font-size-sm;
1534
- color: $text-muted;
1637
+ color: var(--inc-text-muted);
1535
1638
  font-weight: $font-weight-medium;
1536
1639
  text-align: left;
1537
1640
 
@@ -1544,7 +1647,7 @@
1544
1647
 
1545
1648
  &__header-action {
1546
1649
  font-size: $font-size-sm;
1547
- color: $text-muted;
1650
+ color: var(--inc-text-muted);
1548
1651
  }
1549
1652
 
1550
1653
  &__body {
@@ -1566,7 +1669,7 @@
1566
1669
  &__value {
1567
1670
  font-size: $h2-font-size;
1568
1671
  font-weight: $font-weight-bold;
1569
- color: $dark;
1672
+ color: var(--inc-text-primary);
1570
1673
  line-height: 1.2;
1571
1674
  margin: 0;
1572
1675
 
@@ -1599,7 +1702,7 @@
1599
1702
  &__status-count {
1600
1703
  font-size: $h3-font-size;
1601
1704
  font-weight: $font-weight-bold;
1602
- color: $dark;
1705
+ color: var(--inc-text-primary);
1603
1706
  line-height: 1;
1604
1707
  margin: 0;
1605
1708
  }
@@ -1646,8 +1749,8 @@
1646
1749
  min-height: 100vh;
1647
1750
  display: flex;
1648
1751
  flex-direction: column;
1649
- background-color: $body-bg;
1650
- color: $body-color;
1752
+ background-color: var(--inc-surface-primary);
1753
+ color: var(--inc-text-primary);
1651
1754
 
1652
1755
  &__header {
1653
1756
  position: relative;
@@ -1663,8 +1766,8 @@
1663
1766
  &__sidebar {
1664
1767
  flex: 0 0 17rem;
1665
1768
  max-width: 17rem;
1666
- background-color: $inc-surface-secondary;
1667
- border-right: 1px solid $inc-border-subtle;
1769
+ background-color: var(--inc-surface-secondary);
1770
+ border-right: 1px solid var(--inc-border-subtle);
1668
1771
  padding: 1rem;
1669
1772
  }
1670
1773
 
@@ -1696,7 +1799,7 @@
1696
1799
  &__sidebar {
1697
1800
  max-width: none;
1698
1801
  border-right: 0;
1699
- border-bottom: 1px solid $inc-border-subtle;
1802
+ border-bottom: 1px solid var(--inc-border-subtle);
1700
1803
  }
1701
1804
 
1702
1805
  &__content {
@@ -1782,9 +1885,9 @@
1782
1885
  justify-content: space-between;
1783
1886
  gap: 1rem;
1784
1887
  padding: 0.5rem 1rem;
1785
- border-top: 1px solid $inc-border-subtle;
1786
- background-color: $inc-surface-secondary;
1787
- color: $inc-text-secondary;
1888
+ border-top: 1px solid var(--inc-border-subtle);
1889
+ background-color: var(--inc-surface-secondary);
1890
+ color: var(--inc-text-secondary);
1788
1891
 
1789
1892
  &__menu {
1790
1893
  display: flex;
@@ -1795,7 +1898,7 @@
1795
1898
 
1796
1899
  &__meta {
1797
1900
  font-size: 0.75rem;
1798
- color: $inc-text-muted;
1901
+ color: var(--inc-text-muted);
1799
1902
  }
1800
1903
  }
1801
1904
 
@@ -1975,6 +2078,41 @@
1975
2078
  margin-top: 0.5rem;
1976
2079
  }
1977
2080
 
2081
+ .inc-theme-toggle {
2082
+ display: inline-flex;
2083
+ flex-wrap: wrap;
2084
+ align-items: center;
2085
+ gap: 0.75rem;
2086
+ padding: 0.625rem 0.75rem;
2087
+ border: 1px solid var(--inc-border-subtle);
2088
+ border-radius: $inc-radius-panel;
2089
+ background: var(--inc-surface-primary);
2090
+ color: var(--inc-text-primary);
2091
+
2092
+ &__label {
2093
+ display: flex;
2094
+ flex-direction: column;
2095
+ gap: 0.125rem;
2096
+ min-width: 0;
2097
+ }
2098
+
2099
+ &__title {
2100
+ margin: 0;
2101
+ font-size: 0.6875rem;
2102
+ font-weight: 600;
2103
+ letter-spacing: 0.08em;
2104
+ text-transform: uppercase;
2105
+ color: var(--inc-text-muted);
2106
+ }
2107
+
2108
+ &__value {
2109
+ margin: 0;
2110
+ font-size: 0.875rem;
2111
+ font-weight: 600;
2112
+ color: var(--inc-text-primary);
2113
+ }
2114
+ }
2115
+
1978
2116
  .inc-sidebar-menu {
1979
2117
  display: flex;
1980
2118
  flex-direction: column;
@@ -1987,7 +2125,7 @@
1987
2125
  &__label {
1988
2126
  display: block;
1989
2127
  margin-bottom: 0.5rem;
1990
- color: $inc-text-muted;
2128
+ color: var(--inc-text-muted);
1991
2129
  font-size: 0.6875rem;
1992
2130
  font-weight: 600;
1993
2131
  letter-spacing: 0.08em;
@@ -2002,23 +2140,23 @@
2002
2140
  padding: 0.625rem 0.75rem;
2003
2141
  border: 1px solid transparent;
2004
2142
  border-radius: $inc-radius-panel;
2005
- color: $inc-text-secondary;
2143
+ color: var(--inc-text-secondary);
2006
2144
  text-decoration: none;
2007
2145
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
2008
2146
 
2009
2147
  &:hover,
2010
2148
  &:focus-visible {
2011
- background-color: $inc-surface-muted;
2012
- border-color: $inc-border-subtle;
2013
- color: $inc-text-primary;
2149
+ background-color: var(--inc-surface-muted);
2150
+ border-color: var(--inc-border-subtle);
2151
+ color: var(--inc-text-primary);
2014
2152
  text-decoration: none;
2015
2153
  }
2016
2154
 
2017
2155
  &.active,
2018
2156
  &--active {
2019
- background-color: rgba($inc-brand-300, 0.12);
2020
- border-color: rgba($inc-brand-700, 0.2);
2021
- color: $inc-brand-800;
2157
+ background-color: var(--inc-surface-highlight);
2158
+ border-color: rgba(var(--bs-primary-rgb), 0.2);
2159
+ color: var(--bs-primary-text-emphasis);
2022
2160
  font-weight: 600;
2023
2161
  }
2024
2162
  }
@@ -2028,15 +2166,15 @@
2028
2166
  }
2029
2167
 
2030
2168
  &__hint {
2031
- color: $inc-text-muted;
2169
+ color: var(--inc-text-muted);
2032
2170
  font-size: 0.75rem;
2033
2171
  white-space: nowrap;
2034
2172
  }
2035
2173
  }
2036
2174
 
2037
2175
  .inc-nav-triad {
2038
- background-color: var(--bs-light);
2039
- border-bottom: 1px solid var(--bs-border-color);
2176
+ background-color: var(--inc-surface-secondary);
2177
+ border-bottom: 1px solid var(--inc-border-default);
2040
2178
  padding: 0.75rem 1rem;
2041
2179
  min-height: 3rem;
2042
2180
  position: sticky;
@@ -2073,17 +2211,17 @@
2073
2211
  align-items: center;
2074
2212
  gap: 0.5rem;
2075
2213
  padding: 0.5rem 0.75rem;
2076
- border: 1px solid var(--bs-border-color);
2214
+ border: 1px solid var(--inc-border-default);
2077
2215
  border-radius: $inc-radius-panel;
2078
- background-color: var(--bs-white);
2079
- color: var(--bs-body-color);
2216
+ background-color: var(--inc-surface-primary);
2217
+ color: var(--inc-text-primary);
2080
2218
  text-decoration: none;
2081
2219
  font-size: 0.875rem;
2082
2220
  transition: all 0.2s ease;
2083
2221
 
2084
2222
  &:hover {
2085
- background-color: var(--bs-light);
2086
- border-color: var(--bs-secondary);
2223
+ background-color: var(--inc-surface-muted);
2224
+ border-color: var(--inc-border-strong);
2087
2225
  text-decoration: none;
2088
2226
  }
2089
2227
 
@@ -2096,12 +2234,12 @@
2096
2234
  &__btn--subtle {
2097
2235
  border-color: transparent;
2098
2236
  background-color: transparent;
2099
- color: var(--bs-secondary);
2237
+ color: var(--inc-text-secondary);
2100
2238
 
2101
2239
  &:hover {
2102
- background-color: var(--bs-light);
2103
- border-color: var(--bs-border-color);
2104
- color: var(--bs-body-color);
2240
+ background-color: var(--inc-surface-muted);
2241
+ border-color: var(--inc-border-default);
2242
+ color: var(--inc-text-primary);
2105
2243
  }
2106
2244
  }
2107
2245
 
@@ -2182,36 +2320,36 @@
2182
2320
  gap: 0.5rem;
2183
2321
  padding: 1rem;
2184
2322
  font: inherit;
2185
- color: $inc-ink-600;
2323
+ color: var(--inc-text-secondary);
2186
2324
  border-top-left-radius: $inc-radius-panel;
2187
2325
  border-top-right-radius: $inc-radius-panel;
2188
- background-color: $inc-surface-secondary;
2326
+ background-color: var(--inc-surface-secondary);
2189
2327
  height: 2.5rem;
2190
2328
  text-decoration: none;
2191
- border: 1px solid $inc-border-subtle;
2329
+ border: 1px solid var(--inc-border-subtle);
2192
2330
  cursor: pointer;
2193
2331
  appearance: none;
2194
2332
 
2195
2333
  .inc-tab-icon {
2196
- color: $inc-brand-800;
2334
+ color: var(--bs-primary);
2197
2335
  }
2198
2336
 
2199
2337
  &:not(.active):hover {
2200
- color: $inc-brand-900;
2201
- background-color: $inc-surface-muted;
2202
- border-color: $inc-border-default;
2338
+ color: var(--inc-text-primary);
2339
+ background-color: var(--inc-surface-muted);
2340
+ border-color: var(--inc-border-default);
2203
2341
 
2204
2342
  .inc-tab-icon {
2205
- color: $inc-brand-900;
2343
+ color: var(--bs-primary);
2206
2344
  }
2207
2345
  }
2208
2346
 
2209
2347
  &.active {
2210
- color: $inc-brand-800;
2211
- background-color: $inc-surface-primary;
2348
+ color: var(--bs-primary-text-emphasis);
2349
+ background-color: var(--inc-surface-primary);
2212
2350
  font-weight: 600;
2213
- border-color: $inc-border-subtle;
2214
- border-bottom-color: $inc-surface-primary;
2351
+ border-color: var(--inc-border-subtle);
2352
+ border-bottom-color: var(--inc-surface-primary);
2215
2353
  position: relative;
2216
2354
  z-index: 1;
2217
2355
  }
@@ -2219,8 +2357,8 @@
2219
2357
  }
2220
2358
 
2221
2359
  .inc-tab-content {
2222
- background-color: $inc-surface-primary;
2223
- border: 1px solid $inc-border-subtle;
2360
+ background-color: var(--inc-surface-primary);
2361
+ border: 1px solid var(--inc-border-subtle);
2224
2362
  padding: 1.5rem;
2225
2363
  border-radius: $inc-radius-panel;
2226
2364
  border-top-left-radius: 0;
@@ -2230,7 +2368,7 @@
2230
2368
  }
2231
2369
 
2232
2370
  .inc-tabs-line {
2233
- border-bottom: 1px solid $inc-border-subtle;
2371
+ border-bottom: 1px solid var(--inc-border-subtle);
2234
2372
 
2235
2373
  .inc-tabs-nav {
2236
2374
  display: flex;
@@ -2248,7 +2386,7 @@
2248
2386
  gap: 0.5rem;
2249
2387
  padding: 1rem 0.25rem;
2250
2388
  font: inherit;
2251
- color: $inc-text-secondary;
2389
+ color: var(--inc-text-secondary);
2252
2390
  background: none;
2253
2391
  border: 0;
2254
2392
  text-decoration: none;
@@ -2257,25 +2395,25 @@
2257
2395
  appearance: none;
2258
2396
 
2259
2397
  .inc-tab-icon {
2260
- color: $inc-brand-800;
2398
+ color: var(--bs-primary);
2261
2399
  }
2262
2400
 
2263
2401
  &:not(.active):hover {
2264
- color: $inc-accent-700;
2265
- border-bottom-color: $inc-accent-700;
2402
+ color: var(--bs-primary);
2403
+ border-bottom-color: var(--bs-primary);
2266
2404
 
2267
2405
  .inc-tab-icon {
2268
- color: $inc-accent-700;
2406
+ color: var(--bs-primary);
2269
2407
  }
2270
2408
  }
2271
2409
 
2272
2410
  &.active {
2273
- color: $inc-text-primary;
2411
+ color: var(--inc-text-primary);
2274
2412
  font-weight: 600;
2275
- border-bottom-color: $inc-accent-700;
2413
+ border-bottom-color: var(--bs-primary);
2276
2414
 
2277
2415
  .inc-tab-icon {
2278
- color: $inc-text-primary;
2416
+ color: var(--inc-text-primary);
2279
2417
  }
2280
2418
  }
2281
2419
  }
@@ -2337,9 +2475,9 @@
2337
2475
  }
2338
2476
 
2339
2477
  details.inc-disclosure {
2340
- border: 1px solid $inc-border-subtle;
2478
+ border: 1px solid var(--inc-border-subtle);
2341
2479
  border-radius: $inc-radius-panel;
2342
- background-color: $inc-surface-primary;
2480
+ background-color: var(--inc-surface-primary);
2343
2481
  box-shadow: $inc-shadow-xs;
2344
2482
  overflow: clip;
2345
2483
 
@@ -2354,8 +2492,8 @@ details.inc-disclosure {
2354
2492
  justify-content: space-between;
2355
2493
  gap: 1rem;
2356
2494
  padding: 1rem 1.25rem;
2357
- background-color: $inc-surface-secondary;
2358
- color: $inc-text-primary;
2495
+ background-color: var(--inc-surface-secondary);
2496
+ color: var(--inc-text-primary);
2359
2497
  cursor: pointer;
2360
2498
  list-style: none;
2361
2499
  font-size: 0.9375rem;
@@ -2382,8 +2520,8 @@ details.inc-disclosure {
2382
2520
  }
2383
2521
 
2384
2522
  details.inc-disclosure[open] > .inc-disclosure__summary {
2385
- border-bottom: 1px solid $inc-border-subtle;
2386
- background-color: rgba($inc-brand-50, 0.85);
2523
+ border-bottom: 1px solid var(--inc-border-subtle);
2524
+ background-color: var(--inc-surface-highlight);
2387
2525
 
2388
2526
  &::after {
2389
2527
  transform: rotate(225deg) translateY(-0.05rem);
@@ -2397,7 +2535,7 @@ details.inc-disclosure[open] > .inc-disclosure__summary {
2397
2535
  }
2398
2536
 
2399
2537
  .inc-disclosure__meta {
2400
- color: $inc-text-muted;
2538
+ color: var(--inc-text-muted);
2401
2539
  font-size: 0.75rem;
2402
2540
  font-weight: 500;
2403
2541
  }
@@ -2420,24 +2558,24 @@ details.inc-native-menu.inc-native-menu--navbar {
2420
2558
  .inc-native-menu__summary {
2421
2559
  min-height: 2.625rem;
2422
2560
  padding: 0.375rem 0.75rem;
2423
- border-color: rgba($inc-text-inverse, 0.16);
2424
- background-color: rgba($inc-text-inverse, 0.08);
2425
- color: rgba($inc-text-inverse, 0.92);
2561
+ border-color: rgba(255, 255, 255, 0.16);
2562
+ background-color: rgba(255, 255, 255, 0.08);
2563
+ color: rgba(255, 255, 255, 0.92);
2426
2564
  box-shadow: none;
2427
2565
  }
2428
2566
 
2429
2567
  .inc-user-menu__avatar {
2430
- background-color: rgba($inc-text-inverse, 0.18);
2568
+ background-color: rgba(255, 255, 255, 0.18);
2431
2569
  color: $inc-text-inverse;
2432
2570
  }
2433
2571
 
2434
2572
  .inc-user-menu__detail {
2435
- color: rgba($inc-text-inverse, 0.72);
2573
+ color: rgba(255, 255, 255, 0.72);
2436
2574
  }
2437
2575
 
2438
2576
  &[open] > .inc-native-menu__summary {
2439
- border-color: rgba($inc-text-inverse, 0.24);
2440
- background-color: rgba($inc-text-inverse, 0.14);
2577
+ border-color: rgba(255, 255, 255, 0.24);
2578
+ background-color: rgba(255, 255, 255, 0.14);
2441
2579
  }
2442
2580
 
2443
2581
  > .inc-native-menu__panel {
@@ -2451,10 +2589,10 @@ details.inc-native-menu.inc-native-menu--navbar {
2451
2589
  gap: 0.625rem;
2452
2590
  min-width: 0;
2453
2591
  padding: 0.5rem 0.75rem;
2454
- border: 1px solid $inc-border-subtle;
2592
+ border: 1px solid var(--inc-border-subtle);
2455
2593
  border-radius: $inc-radius-panel;
2456
- background-color: $inc-surface-primary;
2457
- color: $inc-text-primary;
2594
+ background-color: var(--inc-surface-primary);
2595
+ color: var(--inc-text-primary);
2458
2596
  cursor: pointer;
2459
2597
  list-style: none;
2460
2598
  box-shadow: $inc-shadow-xs;
@@ -2488,10 +2626,10 @@ details.inc-native-menu.inc-native-menu--navbar {
2488
2626
  align-items: center;
2489
2627
  justify-content: center;
2490
2628
  flex: 0 0 auto;
2491
- background-color: rgba($primary, 0.14);
2492
- color: $primary;
2629
+ background-color: var(--bs-primary-bg-subtle);
2630
+ color: var(--bs-primary-text-emphasis);
2493
2631
  font-size: 0.75rem;
2494
- font-weight: 600;
2632
+ font-weight: 700;
2495
2633
  line-height: 1;
2496
2634
  }
2497
2635
 
@@ -2513,14 +2651,14 @@ details.inc-native-menu.inc-native-menu--navbar {
2513
2651
  .inc-user-menu__detail {
2514
2652
  display: block;
2515
2653
  font-size: 0.75rem;
2516
- color: $text-muted;
2654
+ color: var(--inc-text-muted);
2517
2655
  line-height: 1.15;
2518
2656
  }
2519
2657
  }
2520
2658
 
2521
2659
  details.inc-native-menu[open] > .inc-native-menu__summary {
2522
- border-color: $inc-border-default;
2523
- background-color: $inc-surface-secondary;
2660
+ border-color: var(--inc-border-default);
2661
+ background-color: var(--inc-surface-secondary);
2524
2662
 
2525
2663
  &::after {
2526
2664
  transform: rotate(225deg) translateY(-0.05rem);
@@ -2533,9 +2671,9 @@ details.inc-native-menu[open] > .inc-native-menu__summary {
2533
2671
  right: 0;
2534
2672
  min-width: 14rem;
2535
2673
  padding: 0.375rem 0;
2536
- border: 1px solid $inc-border-subtle;
2674
+ border: 1px solid var(--inc-border-subtle);
2537
2675
  border-radius: $inc-radius-panel;
2538
- background-color: $inc-surface-primary;
2676
+ background-color: var(--inc-surface-primary);
2539
2677
  box-shadow: $inc-shadow-md;
2540
2678
  z-index: $inc-z-index-dropdown;
2541
2679
  }
@@ -2545,7 +2683,7 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__summary {
2545
2683
  justify-content: flex-start;
2546
2684
  min-height: 3rem;
2547
2685
  padding: 0.625rem 0.75rem;
2548
- background: linear-gradient(180deg, $inc-surface-primary, $inc-surface-secondary);
2686
+ background-color: var(--inc-surface-secondary);
2549
2687
  }
2550
2688
 
2551
2689
  details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
@@ -2556,7 +2694,7 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2556
2694
 
2557
2695
  .inc-native-menu__header {
2558
2696
  padding: 0.25rem 0.875rem 0.5rem;
2559
- color: $inc-text-muted;
2697
+ color: var(--inc-text-muted);
2560
2698
  font-size: 0.75rem;
2561
2699
  font-weight: 600;
2562
2700
  }
@@ -2564,13 +2702,13 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2564
2702
  .inc-native-menu__item {
2565
2703
  display: block;
2566
2704
  padding: 0.5rem 0.875rem;
2567
- color: $inc-text-primary;
2705
+ color: var(--inc-text-primary);
2568
2706
  text-decoration: none;
2569
2707
 
2570
2708
  &:hover,
2571
2709
  &:focus-visible {
2572
- background-color: $inc-surface-secondary;
2573
- color: $inc-text-primary;
2710
+ background-color: var(--inc-surface-secondary);
2711
+ color: var(--inc-text-primary);
2574
2712
  text-decoration: none;
2575
2713
  }
2576
2714
  }
@@ -2588,13 +2726,132 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2588
2726
  }
2589
2727
  }
2590
2728
 
2729
+ .inc-theme-switcher {
2730
+ min-width: 0;
2731
+ }
2732
+
2733
+ .inc-theme-switcher__summary {
2734
+ min-width: 11rem;
2735
+ }
2736
+
2737
+ .inc-theme-switcher__meta {
2738
+ min-width: 0;
2739
+ display: flex;
2740
+ flex-direction: column;
2741
+ gap: 0.125rem;
2742
+ line-height: 1.15;
2743
+ }
2744
+
2745
+ .inc-theme-switcher__label {
2746
+ font-size: 0.6875rem;
2747
+ font-weight: 600;
2748
+ letter-spacing: 0.08em;
2749
+ text-transform: uppercase;
2750
+ color: var(--inc-text-muted);
2751
+ }
2752
+
2753
+ .inc-theme-switcher__status {
2754
+ font-size: 0.875rem;
2755
+ font-weight: 600;
2756
+ color: inherit;
2757
+ }
2758
+
2759
+ .inc-theme-switcher__panel {
2760
+ min-width: 16rem;
2761
+ }
2762
+
2763
+ .inc-theme-switcher__option {
2764
+ width: 100%;
2765
+ display: grid;
2766
+ grid-template-columns: auto minmax(0, 1fr) auto;
2767
+ align-items: center;
2768
+ gap: 0.75rem;
2769
+ padding: 0.625rem 0.875rem;
2770
+ border: 0;
2771
+ background: transparent;
2772
+ color: var(--inc-text-primary);
2773
+ text-align: left;
2774
+ cursor: pointer;
2775
+
2776
+ &::before,
2777
+ &::after {
2778
+ content: "";
2779
+ display: block;
2780
+ }
2781
+
2782
+ &::before {
2783
+ width: 0.75rem;
2784
+ height: 0.75rem;
2785
+ border: 1px solid var(--inc-border-strong);
2786
+ border-radius: 999px;
2787
+ background: var(--inc-surface-primary);
2788
+ box-shadow: inset 0 0 0 0 rgba(var(--bs-primary-rgb), 0.85);
2789
+ transition: border-color 0.18s ease, box-shadow 0.18s ease;
2790
+ }
2791
+
2792
+ &::after {
2793
+ width: 0.5rem;
2794
+ height: 0.5rem;
2795
+ border-radius: 999px;
2796
+ background: transparent;
2797
+ transition: background-color 0.18s ease;
2798
+ }
2799
+
2800
+ &:hover,
2801
+ &:focus-visible {
2802
+ background: var(--inc-surface-secondary);
2803
+ color: var(--inc-text-primary);
2804
+ }
2805
+
2806
+ &.is-selected {
2807
+ background: var(--bs-primary-bg-subtle);
2808
+ color: var(--bs-primary-text-emphasis);
2809
+
2810
+ &::before {
2811
+ border-color: rgba(var(--bs-primary-rgb), 0.72);
2812
+ box-shadow: inset 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.92);
2813
+ }
2814
+
2815
+ &::after {
2816
+ background: var(--bs-primary);
2817
+ }
2818
+ }
2819
+ }
2820
+
2821
+ .inc-theme-switcher__option-body {
2822
+ min-width: 0;
2823
+ display: flex;
2824
+ flex-direction: column;
2825
+ gap: 0.125rem;
2826
+ }
2827
+
2828
+ .inc-theme-switcher__option-label {
2829
+ font-size: 0.875rem;
2830
+ font-weight: 600;
2831
+ }
2832
+
2833
+ .inc-theme-switcher__option-detail {
2834
+ font-size: 0.75rem;
2835
+ color: var(--inc-text-muted);
2836
+ }
2837
+
2838
+ details.inc-theme-switcher.inc-native-menu--navbar {
2839
+ .inc-theme-switcher__label {
2840
+ color: rgba(var(--inc-text-inverse-rgb), 0.64);
2841
+ }
2842
+
2843
+ .inc-theme-switcher__status {
2844
+ color: rgba(var(--inc-text-inverse-rgb), 0.9);
2845
+ }
2846
+ }
2847
+
2591
2848
  dialog.inc-native-dialog {
2592
2849
  width: min(100% - 2rem, 42rem);
2593
2850
  max-width: 42rem;
2594
2851
  padding: 0;
2595
2852
  border: 0;
2596
2853
  background: transparent;
2597
- color: $inc-text-primary;
2854
+ color: var(--inc-text-primary);
2598
2855
 
2599
2856
  &::backdrop {
2600
2857
  background: rgba($inc-ink-900, 0.48);
@@ -2616,9 +2873,9 @@ dialog.inc-native-dialog.inc-native-dialog--drawer {
2616
2873
  }
2617
2874
 
2618
2875
  .inc-native-dialog__surface {
2619
- border: 1px solid $inc-border-subtle;
2876
+ border: 1px solid var(--inc-border-subtle);
2620
2877
  border-radius: $inc-radius-panel;
2621
- background-color: $inc-surface-primary;
2878
+ background-color: var(--inc-surface-primary);
2622
2879
  box-shadow: $inc-shadow-lg;
2623
2880
  overflow: hidden;
2624
2881
  }
@@ -2637,8 +2894,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__surface {
2637
2894
  justify-content: space-between;
2638
2895
  gap: 1rem;
2639
2896
  padding: 1rem 1.25rem;
2640
- border-bottom: 1px solid $inc-border-subtle;
2641
- background-color: $inc-surface-secondary;
2897
+ border-bottom: 1px solid var(--inc-border-subtle);
2898
+ background-color: var(--inc-surface-secondary);
2642
2899
  }
2643
2900
 
2644
2901
  .inc-native-dialog__title {
@@ -2661,8 +2918,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2661
2918
  justify-content: flex-end;
2662
2919
  gap: 0.75rem;
2663
2920
  padding: 1rem 1.25rem;
2664
- border-top: 1px solid $inc-border-subtle;
2665
- background-color: $inc-surface-secondary;
2921
+ border-top: 1px solid var(--inc-border-subtle);
2922
+ background-color: var(--inc-surface-secondary);
2666
2923
  }
2667
2924
 
2668
2925
  .inc-native-dialog__close {
@@ -2674,13 +2931,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2674
2931
  border: 0;
2675
2932
  border-radius: $inc-radius-panel;
2676
2933
  background: transparent;
2677
- color: $inc-text-secondary;
2934
+ color: var(--inc-text-secondary);
2678
2935
  cursor: pointer;
2679
2936
 
2680
2937
  &:hover,
2681
2938
  &:focus-visible {
2682
- background-color: rgba($inc-ink-300, 0.35);
2683
- color: $inc-text-primary;
2939
+ background-color: var(--inc-surface-muted);
2940
+ color: var(--inc-text-primary);
2684
2941
  }
2685
2942
  }
2686
2943
 
@@ -2744,11 +3001,11 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2744
3001
  align-items: center;
2745
3002
  gap: 0.625rem;
2746
3003
  padding: 0.5rem 0.75rem;
2747
- border: 1px solid $inc-border-subtle;
3004
+ border: 1px solid var(--inc-border-subtle);
2748
3005
  border-radius: 999px;
2749
- background: rgba($inc-surface-primary, 0.96);
2750
- color: $body-color;
2751
- box-shadow: 0 0.75rem 1.5rem rgba($inc-surface-strong, 0.12);
3006
+ background: rgba(var(--inc-surface-primary-rgb), 0.96);
3007
+ color: var(--inc-text-primary);
3008
+ box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.12);
2752
3009
  font-size: 0.75rem;
2753
3010
  line-height: 1.2;
2754
3011
  white-space: nowrap;
@@ -2772,7 +3029,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2772
3029
 
2773
3030
  &__label,
2774
3031
  &__status-text {
2775
- color: $text-muted;
3032
+ color: var(--inc-text-muted);
2776
3033
  font-weight: 600;
2777
3034
  }
2778
3035
 
@@ -2780,13 +3037,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2780
3037
  font-family: $font-family-monospace;
2781
3038
  font-variant-numeric: tabular-nums;
2782
3039
  font-weight: 600;
2783
- color: $inc-surface-strong;
3040
+ color: var(--inc-text-primary);
2784
3041
  }
2785
3042
 
2786
3043
  &__spinner {
2787
3044
  display: inline-flex;
2788
3045
  align-items: center;
2789
- color: $primary;
3046
+ color: var(--bs-primary);
2790
3047
  }
2791
3048
 
2792
3049
  &__toggle {
@@ -2807,13 +3064,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2807
3064
  }
2808
3065
 
2809
3066
  &.is-paused {
2810
- border-color: rgba($warning, 0.24);
2811
- box-shadow: 0 0.9rem 1.75rem rgba($warning, 0.1);
3067
+ border-color: var(--bs-warning-border-subtle);
3068
+ box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-warning-rgb), 0.1);
2812
3069
  }
2813
3070
 
2814
3071
  &.is-loading {
2815
- border-color: rgba($primary, 0.2);
2816
- box-shadow: 0 0.9rem 1.75rem rgba($primary, 0.14);
3072
+ border-color: var(--bs-primary-border-subtle);
3073
+ box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-primary-rgb), 0.14);
2817
3074
  }
2818
3075
  }
2819
3076
 
@@ -2824,10 +3081,10 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2824
3081
  overflow: hidden;
2825
3082
  border: 0;
2826
3083
  border-radius: 999px;
2827
- background: $inc-surface-muted;
3084
+ background: var(--inc-surface-muted);
2828
3085
  vertical-align: middle;
2829
3086
  appearance: none;
2830
- --inc-track-color: #{$inc-surface-muted};
3087
+ --inc-track-color: var(--inc-surface-muted);
2831
3088
  --inc-fill-color: #{$primary};
2832
3089
  }
2833
3090
 
@@ -2913,7 +3170,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2913
3170
  transition: opacity 0.3s ease, transform 0.3s ease;
2914
3171
 
2915
3172
  &:focus {
2916
- outline: 2px solid $primary;
3173
+ outline: 2px solid var(--bs-primary);
2917
3174
  outline-offset: 2px;
2918
3175
  }
2919
3176
 
@@ -2934,37 +3191,37 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2934
3191
 
2935
3192
  .alert-success,
2936
3193
  .inc-alert--success {
2937
- background-color: rgba($inc-success-50, 0.9);
2938
- border-color: $inc-success-100;
2939
- color: $inc-success-700;
3194
+ background-color: var(--bs-success-bg-subtle);
3195
+ border-color: var(--bs-success-border-subtle);
3196
+ color: var(--bs-success-text-emphasis);
2940
3197
  }
2941
3198
 
2942
3199
  .alert-warning,
2943
3200
  .inc-alert--warning {
2944
- background-color: rgba($inc-warning-50, 0.9);
2945
- border-color: $inc-warning-100;
2946
- color: $inc-warning-700;
3201
+ background-color: var(--bs-warning-bg-subtle);
3202
+ border-color: var(--bs-warning-border-subtle);
3203
+ color: var(--bs-warning-text-emphasis);
2947
3204
  }
2948
3205
 
2949
3206
  .alert-danger,
2950
3207
  .inc-alert--danger {
2951
- background-color: rgba($inc-danger-50, 0.9);
2952
- border-color: $inc-danger-100;
2953
- color: $inc-danger-700;
3208
+ background-color: var(--bs-danger-bg-subtle);
3209
+ border-color: var(--bs-danger-border-subtle);
3210
+ color: var(--bs-danger-text-emphasis);
2954
3211
  }
2955
3212
 
2956
3213
  .alert-info,
2957
3214
  .inc-alert--info {
2958
- background-color: rgba($inc-blue-50, 0.9);
2959
- border-color: rgba($inc-blue-700, 0.25);
2960
- color: $inc-blue-800;
3215
+ background-color: var(--bs-info-bg-subtle);
3216
+ border-color: var(--bs-info-border-subtle);
3217
+ color: var(--bs-info-text-emphasis);
2961
3218
  }
2962
3219
 
2963
3220
  .alert-primary,
2964
3221
  .inc-alert--primary {
2965
- background-color: rgba($inc-brand-50, 0.9);
2966
- border-color: rgba($inc-brand-300, 0.35);
2967
- color: $inc-brand-800;
3222
+ background-color: var(--bs-primary-bg-subtle);
3223
+ border-color: var(--bs-primary-border-subtle);
3224
+ color: var(--bs-primary-text-emphasis);
2968
3225
  }
2969
3226
  }
2970
3227
 
@@ -3085,18 +3342,18 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3085
3342
  overflow: hidden;
3086
3343
  border-collapse: separate;
3087
3344
  border-spacing: 0;
3088
- border: 1px solid $inc-border-default;
3345
+ border: 1px solid var(--inc-border-default);
3089
3346
 
3090
3347
  thead {
3091
3348
  overflow: hidden;
3092
3349
 
3093
3350
  th {
3094
3351
  text-align: left;
3095
- background-color: $inc-brand-800;
3352
+ background-color: var(--bs-primary);
3096
3353
  color: $inc-text-inverse;
3097
- border-color: $inc-brand-800;
3354
+ border-color: var(--bs-primary);
3098
3355
  font-weight: 600;
3099
- border-right: 1px solid rgba($inc-text-inverse, 0.2);
3356
+ border-right: 1px solid rgba(var(--inc-text-inverse-rgb), 0.2);
3100
3357
  font-size: 1rem;
3101
3358
  line-height: 1.5;
3102
3359
 
@@ -3106,7 +3363,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3106
3363
 
3107
3364
  &:hover,
3108
3365
  &:focus {
3109
- color: rgba($inc-text-inverse, 0.9);
3366
+ color: rgba(var(--inc-text-inverse-rgb), 0.9);
3110
3367
  }
3111
3368
  }
3112
3369
  }
@@ -3125,7 +3382,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3125
3382
  tfoot {
3126
3383
  td,
3127
3384
  th {
3128
- border-right: 1px solid $inc-border-default;
3385
+ border-right: 1px solid var(--inc-border-default);
3129
3386
  vertical-align: middle;
3130
3387
 
3131
3388
  &:last-child {
@@ -3277,44 +3534,44 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3277
3534
  }
3278
3535
 
3279
3536
  tbody tr:hover > * {
3280
- background: rgba($primary, 0.035);
3537
+ background: rgba(var(--bs-primary-rgb), 0.035);
3281
3538
  }
3282
3539
  }
3283
3540
 
3284
3541
  &--analytics-grid {
3285
- border-color: rgba($inc-border-subtle, 0.95);
3286
- box-shadow: 0 1rem 2rem rgba($inc-surface-strong, 0.05);
3542
+ border-color: var(--inc-border-subtle);
3543
+ box-shadow: 0 1rem 2rem rgba(var(--inc-surface-strong-rgb), 0.05);
3287
3544
 
3288
3545
  thead th {
3289
- background-color: $inc-surface-secondary;
3290
- color: $inc-text-primary;
3291
- border-color: $inc-border-subtle;
3546
+ background-color: var(--inc-surface-secondary);
3547
+ color: var(--inc-text-primary);
3548
+ border-color: var(--inc-border-subtle);
3292
3549
  font-size: 0.75rem;
3293
3550
  letter-spacing: 0.08em;
3294
3551
  text-transform: uppercase;
3295
3552
  }
3296
3553
 
3297
3554
  tbody tr:nth-child(even) > * {
3298
- background: rgba($primary, 0.02);
3555
+ background: rgba(var(--bs-primary-rgb), 0.02);
3299
3556
  }
3300
3557
 
3301
3558
  .inc-table__cell--numeric,
3302
3559
  .inc-table__cell--numeric-small,
3303
3560
  .inc-table__header--right {
3304
- color: $inc-surface-strong;
3561
+ color: var(--inc-text-primary);
3305
3562
  font-weight: 600;
3306
3563
  }
3307
3564
  }
3308
3565
 
3309
3566
  &--spreadsheet-grid {
3310
- border-color: rgba($inc-border-subtle, 1);
3567
+ border-color: var(--inc-border-subtle);
3311
3568
  border-radius: $inc-radius-md;
3312
- box-shadow: inset 0 0 0 1px rgba($inc-border-subtle, 0.35);
3569
+ box-shadow: inset 0 0 0 1px var(--inc-border-subtle);
3313
3570
 
3314
3571
  thead th {
3315
- background-color: #eef2f7;
3316
- color: $inc-text-primary;
3317
- border-color: $inc-border-subtle;
3572
+ background-color: var(--inc-surface-secondary);
3573
+ color: var(--inc-text-primary);
3574
+ border-color: var(--inc-border-subtle);
3318
3575
  font-size: 0.75rem;
3319
3576
  letter-spacing: 0.04em;
3320
3577
  }
@@ -3333,7 +3590,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3333
3590
  }
3334
3591
 
3335
3592
  tbody tr:hover > * {
3336
- background: rgba($primary, 0.04);
3593
+ background: rgba(var(--bs-primary-rgb), 0.04);
3337
3594
  }
3338
3595
  }
3339
3596
 
@@ -3609,7 +3866,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3609
3866
  }
3610
3867
 
3611
3868
  .inc-table__bundle-hint {
3612
- color: $gray-700;
3869
+ color: var(--inc-text-muted);
3613
3870
  font-size: 0.75rem;
3614
3871
  line-height: 1.3;
3615
3872
  white-space: normal;
@@ -3671,8 +3928,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3671
3928
  justify-content: space-between;
3672
3929
  align-items: center;
3673
3930
  padding: 0.75rem;
3674
- background-color: var(--bs-light);
3675
- border-top: 1px solid var(--bs-border-color);
3931
+ background-color: var(--inc-surface-secondary);
3932
+ border-top: 1px solid var(--inc-border-default);
3676
3933
  }
3677
3934
 
3678
3935
  &__pagination {
@@ -3733,13 +3990,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3733
3990
  }
3734
3991
 
3735
3992
  &__dialog {
3736
- background: $inc-surface-primary;
3993
+ background: var(--inc-surface-primary);
3737
3994
  border-radius: $inc-radius-md;
3738
3995
  max-width: 31.25rem;
3739
3996
  width: 90%;
3740
3997
  max-height: 90vh;
3741
3998
  overflow-y: auto;
3742
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
3999
+ box-shadow: 0 10px 25px rgba(var(--inc-surface-strong-rgb), 0.5);
3743
4000
  position: relative;
3744
4001
  z-index: 2;
3745
4002
 
@@ -3771,7 +4028,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3771
4028
 
3772
4029
  &__header {
3773
4030
  padding: 1rem 1.5rem;
3774
- border-bottom: 1px solid $inc-border-subtle;
4031
+ border-bottom: 1px solid var(--inc-border-subtle);
3775
4032
  display: flex;
3776
4033
  align-items: center;
3777
4034
  justify-content: space-between;
@@ -3806,7 +4063,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3806
4063
 
3807
4064
  &__footer {
3808
4065
  padding: 1rem 1.5rem;
3809
- border-top: 1px solid $inc-border-subtle;
4066
+ border-top: 1px solid var(--inc-border-subtle);
3810
4067
  display: flex;
3811
4068
  gap: 1rem;
3812
4069
  justify-content: flex-end;
@@ -3848,10 +4105,10 @@ body.inc-modal-open {
3848
4105
  display: flex;
3849
4106
  flex-direction: column;
3850
4107
  max-width: 100%;
3851
- background: $inc-surface-primary;
3852
- color: $body-color;
4108
+ background: var(--inc-surface-primary);
4109
+ color: var(--inc-text-primary);
3853
4110
  visibility: hidden;
3854
- box-shadow: 0 1.25rem 2.5rem rgba($inc-surface-strong, 0.18);
4111
+ box-shadow: 0 1.25rem 2.5rem rgba(var(--inc-surface-strong-rgb), 0.18);
3855
4112
  transition: transform 0.25s ease, visibility 0.25s ease;
3856
4113
 
3857
4114
  &.is-open {
@@ -3930,7 +4187,7 @@ body.inc-modal-open {
3930
4187
  justify-content: space-between;
3931
4188
  gap: 1rem;
3932
4189
  padding: 1rem 1.25rem;
3933
- border-bottom: 1px solid $inc-border-subtle;
4190
+ border-bottom: 1px solid var(--inc-border-subtle);
3934
4191
  }
3935
4192
 
3936
4193
  .inc-offcanvas-title {
@@ -3981,7 +4238,7 @@ body.inc-offcanvas-open {
3981
4238
  &__label {
3982
4239
  &--required::after {
3983
4240
  content: " *";
3984
- color: $danger;
4241
+ color: var(--bs-danger-text-emphasis);
3985
4242
  }
3986
4243
  }
3987
4244
 
@@ -3993,18 +4250,18 @@ body.inc-offcanvas-open {
3993
4250
  }
3994
4251
 
3995
4252
  &__hint {
3996
- color: $text-muted;
4253
+ color: var(--inc-text-muted);
3997
4254
  }
3998
4255
 
3999
4256
  &__feedback {
4000
4257
  font-weight: 500;
4001
4258
 
4002
4259
  &--error {
4003
- color: $danger;
4260
+ color: var(--bs-danger-text-emphasis);
4004
4261
  }
4005
4262
 
4006
4263
  &--success {
4007
- color: $success;
4264
+ color: var(--bs-success-text-emphasis);
4008
4265
  }
4009
4266
  }
4010
4267
 
@@ -4012,19 +4269,19 @@ body.inc-offcanvas-open {
4012
4269
  &__select {
4013
4270
  &.is-invalid,
4014
4271
  &[aria-invalid="true"] {
4015
- border-color: $danger;
4016
- box-shadow: 0 0 0 0.1875rem rgba($danger, 0.12);
4272
+ border-color: var(--bs-danger-border-subtle);
4273
+ box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 0.12);
4017
4274
  }
4018
4275
 
4019
4276
  &.is-valid {
4020
- border-color: $success;
4021
- box-shadow: 0 0 0 0.1875rem rgba($success, 0.12);
4277
+ border-color: var(--bs-success-border-subtle);
4278
+ box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 0.12);
4022
4279
  }
4023
4280
  }
4024
4281
 
4025
4282
  &__check {
4026
4283
  &.is-invalid .inc-form__check-label {
4027
- color: $danger;
4284
+ color: var(--bs-danger-text-emphasis);
4028
4285
  }
4029
4286
  }
4030
4287
 
@@ -4033,23 +4290,23 @@ body.inc-offcanvas-open {
4033
4290
  flex-direction: column;
4034
4291
  gap: 0.5rem;
4035
4292
  padding: 1rem 1.125rem;
4036
- border: 1px solid rgba($danger, 0.3);
4037
- border-left: 0.25rem solid $danger;
4293
+ border: 1px solid var(--bs-danger-border-subtle);
4294
+ border-left: 0.25rem solid var(--bs-danger-text-emphasis);
4038
4295
  border-radius: $inc-radius-md;
4039
- background: rgba($danger, 0.06);
4296
+ background: var(--bs-danger-bg-subtle);
4040
4297
 
4041
4298
  &-title {
4042
4299
  margin: 0;
4043
4300
  font-size: 0.875rem;
4044
4301
  font-weight: 600;
4045
- color: $danger;
4302
+ color: var(--bs-danger-text-emphasis);
4046
4303
  }
4047
4304
 
4048
4305
  &-list {
4049
4306
  margin: 0;
4050
4307
  padding-left: 1rem;
4051
4308
  font-size: 0.8125rem;
4052
- color: $body-color;
4309
+ color: var(--inc-text-primary);
4053
4310
  }
4054
4311
  }
4055
4312
  }
@@ -4059,9 +4316,9 @@ body.inc-offcanvas-open {
4059
4316
  flex-direction: column;
4060
4317
  gap: 1rem;
4061
4318
  padding: 1rem 1.125rem;
4062
- border: 1px solid $inc-border-subtle;
4319
+ border: 1px solid var(--inc-border-subtle);
4063
4320
  border-radius: $inc-radius-md;
4064
- background: $inc-surface-primary;
4321
+ background: var(--inc-surface-primary);
4065
4322
 
4066
4323
  &__main {
4067
4324
  display: flex;
@@ -4103,10 +4360,10 @@ body.inc-offcanvas-open {
4103
4360
  align-items: center;
4104
4361
  gap: 0.5rem;
4105
4362
  padding: 0.375rem 0.75rem;
4106
- border: 1px solid $inc-border-subtle;
4363
+ border: 1px solid var(--inc-border-subtle);
4107
4364
  border-radius: 999px;
4108
- background: $inc-surface-secondary;
4109
- color: $body-color;
4365
+ background: var(--inc-surface-secondary);
4366
+ color: var(--inc-text-primary);
4110
4367
  font-size: 0.75rem;
4111
4368
  font-weight: 600;
4112
4369
  line-height: 1;
@@ -4115,7 +4372,7 @@ body.inc-offcanvas-open {
4115
4372
  appearance: none;
4116
4373
  border: 0;
4117
4374
  background: transparent;
4118
- color: $text-muted;
4375
+ color: var(--inc-text-muted);
4119
4376
  font-size: 0.875rem;
4120
4377
  line-height: 1;
4121
4378
  padding: 0;
@@ -4123,9 +4380,9 @@ body.inc-offcanvas-open {
4123
4380
  }
4124
4381
 
4125
4382
  &--accent {
4126
- border-color: rgba($primary, 0.2);
4127
- background: rgba($primary, 0.08);
4128
- color: $primary;
4383
+ border-color: rgba(var(--bs-primary-rgb), 0.2);
4384
+ background: rgba(var(--bs-primary-rgb), 0.08);
4385
+ color: var(--bs-primary);
4129
4386
  }
4130
4387
  }
4131
4388
 
@@ -4134,9 +4391,9 @@ body.inc-offcanvas-open {
4134
4391
  flex-direction: column;
4135
4392
  gap: 1rem;
4136
4393
  padding: 1.5rem;
4137
- border: 1px solid $inc-border-subtle;
4394
+ border: 1px solid var(--inc-border-subtle);
4138
4395
  border-radius: $inc-radius-md;
4139
- background: $inc-surface-primary;
4396
+ background: var(--inc-surface-primary);
4140
4397
 
4141
4398
  &__head {
4142
4399
  display: flex;
@@ -4151,8 +4408,8 @@ body.inc-offcanvas-open {
4151
4408
  align-items: center;
4152
4409
  justify-content: center;
4153
4410
  border-radius: 0.875rem;
4154
- background: $inc-surface-secondary;
4155
- color: $primary;
4411
+ background: var(--inc-surface-secondary);
4412
+ color: var(--bs-primary);
4156
4413
  font-size: 1.25rem;
4157
4414
  font-weight: 700;
4158
4415
  flex: 0 0 auto;
@@ -4165,7 +4422,7 @@ body.inc-offcanvas-open {
4165
4422
  }
4166
4423
 
4167
4424
  &__body {
4168
- color: $text-muted;
4425
+ color: var(--inc-text-muted);
4169
4426
  font-size: 0.875rem;
4170
4427
  line-height: 1.6;
4171
4428
  margin: 0;
@@ -4178,35 +4435,35 @@ body.inc-offcanvas-open {
4178
4435
  }
4179
4436
 
4180
4437
  &--empty {
4181
- background: linear-gradient(180deg, rgba($primary, 0.05), rgba($primary, 0.01));
4438
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.05), rgba(var(--bs-primary-rgb), 0.01));
4182
4439
  }
4183
4440
 
4184
4441
  &--results {
4185
4442
  border-style: dashed;
4186
- background: $inc-surface-secondary;
4443
+ background: var(--inc-surface-secondary);
4187
4444
  }
4188
4445
 
4189
4446
  &--loading {
4190
- background: linear-gradient(180deg, rgba($primary, 0.04), $inc-surface-primary);
4447
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.04), var(--inc-surface-primary));
4191
4448
  }
4192
4449
 
4193
4450
  &--error {
4194
- border-color: rgba($danger, 0.22);
4195
- background: rgba($danger, 0.04);
4451
+ border-color: var(--bs-danger-border-subtle);
4452
+ background: var(--bs-danger-bg-subtle);
4196
4453
 
4197
4454
  .inc-state-panel__icon {
4198
- background: rgba($danger, 0.12);
4199
- color: $danger;
4455
+ background: rgba(var(--bs-danger-rgb), 0.12);
4456
+ color: var(--bs-danger-text-emphasis);
4200
4457
  }
4201
4458
  }
4202
4459
 
4203
4460
  &--locked {
4204
- border-color: rgba($warning, 0.24);
4205
- background: rgba($warning, 0.05);
4461
+ border-color: var(--bs-warning-border-subtle);
4462
+ background: var(--bs-warning-bg-subtle);
4206
4463
 
4207
4464
  .inc-state-panel__icon {
4208
- background: rgba($warning, 0.14);
4209
- color: $warning;
4465
+ background: rgba(var(--bs-warning-rgb), 0.14);
4466
+ color: var(--bs-warning-text-emphasis);
4210
4467
  }
4211
4468
  }
4212
4469
  }
@@ -4216,9 +4473,9 @@ body.inc-offcanvas-open {
4216
4473
  align-items: flex-start;
4217
4474
  gap: 1rem;
4218
4475
  padding: 1rem 1.125rem;
4219
- border: 1px solid rgba($warning, 0.22);
4476
+ border: 1px solid var(--bs-warning-border-subtle);
4220
4477
  border-radius: $inc-radius-md;
4221
- background: rgba($warning, 0.06);
4478
+ background: var(--bs-warning-bg-subtle);
4222
4479
 
4223
4480
  &__icon {
4224
4481
  width: 2rem;
@@ -4227,8 +4484,8 @@ body.inc-offcanvas-open {
4227
4484
  display: inline-flex;
4228
4485
  align-items: center;
4229
4486
  justify-content: center;
4230
- background: rgba($warning, 0.14);
4231
- color: $warning;
4487
+ background: rgba(var(--bs-warning-rgb), 0.14);
4488
+ color: var(--bs-warning-text-emphasis);
4232
4489
  font-weight: 700;
4233
4490
  flex: 0 0 auto;
4234
4491
  }
@@ -4242,7 +4499,7 @@ body.inc-offcanvas-open {
4242
4499
  &__text {
4243
4500
  margin: 0;
4244
4501
  font-size: 0.8125rem;
4245
- color: $body-color;
4502
+ color: var(--inc-text-primary);
4246
4503
  }
4247
4504
  }
4248
4505
 
@@ -4261,14 +4518,14 @@ body.inc-offcanvas-open {
4261
4518
 
4262
4519
  &--card {
4263
4520
  padding: 0.875rem 1rem;
4264
- border: 1px solid $inc-border-subtle;
4521
+ border: 1px solid var(--inc-border-subtle);
4265
4522
  border-radius: $inc-radius-md;
4266
- background: $inc-surface-primary;
4523
+ background: var(--inc-surface-primary);
4267
4524
  }
4268
4525
 
4269
4526
  &__label {
4270
4527
  margin: 0;
4271
- color: $text-muted;
4528
+ color: var(--inc-text-muted);
4272
4529
  font-size: 0.75rem;
4273
4530
  font-weight: 600;
4274
4531
  letter-spacing: 0.04em;
@@ -4277,7 +4534,7 @@ body.inc-offcanvas-open {
4277
4534
 
4278
4535
  &__value {
4279
4536
  margin: 0;
4280
- color: $body-color;
4537
+ color: var(--inc-text-primary);
4281
4538
  font-size: 0.875rem;
4282
4539
  font-weight: 500;
4283
4540
  line-height: 1.5;
@@ -4296,7 +4553,7 @@ body.inc-offcanvas-open {
4296
4553
  .inc-skeleton {
4297
4554
  display: block;
4298
4555
  border-radius: 999px;
4299
- background: linear-gradient(90deg, rgba($inc-border-subtle, 0.8) 20%, rgba($inc-surface-muted, 0.95) 50%, rgba($inc-border-subtle, 0.8) 80%);
4556
+ background: linear-gradient(90deg, var(--inc-surface-muted) 20%, var(--inc-surface-secondary) 50%, var(--inc-surface-muted) 80%);
4300
4557
  background-size: 200% 100%;
4301
4558
  animation: inc-skeleton-shimmer 1.5s linear infinite;
4302
4559
 
@@ -4374,6 +4631,19 @@ body.inc-offcanvas-open {
4374
4631
  display: none;
4375
4632
  }
4376
4633
 
4634
+ > .inc-spinner {
4635
+ position: absolute;
4636
+ inset: 50% auto auto 50%;
4637
+ margin: -0.5rem 0 0 -0.5rem;
4638
+ transform: none;
4639
+ }
4640
+
4641
+ > .inc-loading-dots {
4642
+ position: absolute;
4643
+ inset: 50% auto auto 50%;
4644
+ transform: translate(-50%, -50%);
4645
+ }
4646
+
4377
4647
  &::after {
4378
4648
  content: "";
4379
4649
  position: absolute;
@@ -4386,12 +4656,176 @@ body.inc-offcanvas-open {
4386
4656
  border-right-color: transparent;
4387
4657
  animation: inc-loading-spin 0.8s linear infinite;
4388
4658
  }
4659
+ }
4389
4660
 
4390
- > .inc-spinner,
4391
- > .inc-loading-dots {
4392
- position: absolute;
4393
- inset: 50% auto auto 50%;
4394
- transform: translate(-50%, -50%);
4661
+ [data-bs-theme="dark"] {
4662
+ .form-control,
4663
+ .inc-readonly-field,
4664
+ .inc-form__control {
4665
+ color: var(--inc-control-surface-text);
4666
+ background-color: var(--inc-control-surface);
4667
+ border-color: var(--inc-control-surface-border);
4668
+ }
4669
+
4670
+ .form-control:focus,
4671
+ .inc-readonly-field:focus,
4672
+ .inc-form__control:focus {
4673
+ color: var(--inc-control-surface-text);
4674
+ background-color: var(--inc-control-surface);
4675
+ }
4676
+
4677
+ .form-control::placeholder,
4678
+ .inc-readonly-field::placeholder,
4679
+ .inc-form__control::placeholder {
4680
+ color: var(--bs-secondary-color);
4681
+ }
4682
+
4683
+ .form-control::file-selector-button,
4684
+ .inc-readonly-field::file-selector-button,
4685
+ .inc-form__control::file-selector-button {
4686
+ color: var(--inc-control-surface-text);
4687
+ background-color: var(--inc-surface-muted);
4688
+ }
4689
+
4690
+ .form-control:hover:not(:disabled):not([readonly])::file-selector-button,
4691
+ .inc-readonly-field:hover:not(:disabled):not([readonly])::file-selector-button,
4692
+ .inc-form__control:hover:not(:disabled):not([readonly])::file-selector-button {
4693
+ background-color: var(--inc-surface-secondary);
4694
+ }
4695
+
4696
+ .form-select,
4697
+ .inc-form__select {
4698
+ color: var(--inc-control-surface-text);
4699
+ background-color: var(--inc-control-surface);
4700
+ border-color: var(--inc-control-surface-border);
4701
+ }
4702
+
4703
+ .form-select:focus,
4704
+ .inc-form__select:focus {
4705
+ color: var(--inc-control-surface-text);
4706
+ background-color: var(--inc-control-surface);
4707
+ }
4708
+
4709
+ .form-select:-moz-focusring,
4710
+ .inc-form__select:-moz-focusring {
4711
+ color: transparent;
4712
+ text-shadow: 0 0 0 var(--inc-control-surface-text);
4713
+ }
4714
+
4715
+ .input-group-text,
4716
+ .inc-input-group__text {
4717
+ color: var(--inc-surface-contrast-text);
4718
+ background-color: var(--inc-surface-contrast);
4719
+ border-color: var(--inc-surface-contrast-border);
4720
+ }
4721
+
4722
+ .inc-btn--secondary {
4723
+ --bs-btn-color: var(--inc-surface-contrast-text);
4724
+ --bs-btn-bg: var(--inc-surface-contrast);
4725
+ --bs-btn-border-color: var(--inc-surface-contrast-border);
4726
+ --bs-btn-hover-color: var(--inc-surface-contrast-text);
4727
+ --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
4728
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-border);
4729
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-contrast-rgb);
4730
+ --bs-btn-active-color: var(--inc-surface-contrast-text);
4731
+ --bs-btn-active-bg: var(--inc-surface-contrast-active);
4732
+ --bs-btn-active-border-color: var(--inc-surface-contrast-border);
4733
+ --bs-btn-disabled-color: var(--inc-surface-contrast-text);
4734
+ --bs-btn-disabled-bg: var(--inc-surface-contrast);
4735
+ --bs-btn-disabled-border-color: var(--inc-surface-contrast-border);
4736
+ }
4737
+
4738
+ .inc-form__fieldset {
4739
+ background: var(--inc-surface-secondary);
4740
+ }
4741
+
4742
+ .inc-form__legend {
4743
+ background-color: var(--inc-surface-secondary);
4744
+ }
4745
+
4746
+ .inc-form__control.is-invalid,
4747
+ .inc-form__control[aria-invalid="true"],
4748
+ .inc-form__select.is-invalid {
4749
+ border-color: var(--bs-form-invalid-border-color);
4750
+ }
4751
+
4752
+ .inc-form__control.is-valid,
4753
+ .inc-form__select.is-valid {
4754
+ border-color: var(--bs-form-valid-border-color);
4755
+ }
4756
+
4757
+ .was-validated .form-control:invalid,
4758
+ .was-validated .inc-readonly-field:invalid,
4759
+ .was-validated .inc-form__control:invalid,
4760
+ .form-control.is-invalid,
4761
+ .is-invalid.inc-readonly-field,
4762
+ .form-control.inc-form--is-invalid,
4763
+ .inc-form--is-invalid.inc-readonly-field,
4764
+ .is-invalid.inc-form__control,
4765
+ .inc-form__control.inc-form--is-invalid {
4766
+ border-color: var(--bs-form-invalid-border-color);
4767
+ }
4768
+
4769
+ .was-validated .form-select:invalid,
4770
+ .was-validated .inc-form__select:invalid,
4771
+ .form-select.is-invalid,
4772
+ .form-select.inc-form--is-invalid,
4773
+ .is-invalid.inc-form__select,
4774
+ .inc-form__select.inc-form--is-invalid {
4775
+ border-color: var(--bs-form-invalid-border-color);
4776
+ }
4777
+
4778
+ .was-validated .form-control:invalid:focus,
4779
+ .was-validated .inc-readonly-field:invalid:focus,
4780
+ .was-validated .inc-form__control:invalid:focus,
4781
+ .form-control.is-invalid:focus,
4782
+ .is-invalid.inc-readonly-field:focus,
4783
+ .form-control.inc-form--is-invalid:focus,
4784
+ .inc-form--is-invalid.inc-readonly-field:focus,
4785
+ .is-invalid.inc-form__control:focus,
4786
+ .inc-form__control.inc-form--is-invalid:focus {
4787
+ border-color: var(--bs-form-invalid-border-color);
4788
+ box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
4789
+ }
4790
+
4791
+ .was-validated .form-select:invalid:focus,
4792
+ .was-validated .inc-form__select:invalid:focus,
4793
+ .form-select.is-invalid:focus,
4794
+ .form-select.inc-form--is-invalid:focus,
4795
+ .is-invalid.inc-form__select:focus,
4796
+ .inc-form__select.inc-form--is-invalid:focus {
4797
+ border-color: var(--bs-form-invalid-border-color);
4798
+ box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
4799
+ }
4800
+
4801
+ .inc-table__row--selected,
4802
+ .inc-table__row--warning,
4803
+ .inc-table__row--danger {
4804
+ --bs-table-color: var(--inc-text-primary);
4805
+ }
4806
+
4807
+ .inc-table__row--locked {
4808
+ --bs-table-color: var(--inc-text-secondary);
4809
+ }
4810
+
4811
+ .inc-table__row--selected > *,
4812
+ .inc-table__row--warning > *,
4813
+ .inc-table__row--danger > * {
4814
+ background: rgba(var(--bs-primary-rgb), 0.14) !important;
4815
+ color: var(--inc-text-primary);
4816
+ }
4817
+
4818
+ .inc-table__row--warning > * {
4819
+ background: rgba(var(--bs-warning-rgb), 0.14) !important;
4820
+ }
4821
+
4822
+ .inc-table__row--danger > * {
4823
+ background: rgba(var(--bs-danger-rgb), 0.14) !important;
4824
+ }
4825
+
4826
+ .inc-table__row--locked > * {
4827
+ background: rgba(var(--bs-secondary-rgb), 0.22) !important;
4828
+ color: var(--inc-text-secondary);
4395
4829
  }
4396
4830
  }
4397
4831
 
@@ -4401,9 +4835,9 @@ body.inc-offcanvas-open {
4401
4835
  justify-content: space-between;
4402
4836
  gap: 1rem;
4403
4837
  padding: 0.75rem 1rem;
4404
- border: 1px solid rgba($primary, 0.18);
4838
+ border: 1px solid var(--bs-primary-border-subtle);
4405
4839
  border-radius: $inc-radius-md;
4406
- background: rgba($primary, 0.08);
4840
+ background: var(--bs-primary-bg-subtle);
4407
4841
 
4408
4842
  &__meta {
4409
4843
  display: flex;
@@ -4416,7 +4850,7 @@ body.inc-offcanvas-open {
4416
4850
  &__count {
4417
4851
  font-size: 0.875rem;
4418
4852
  font-weight: 600;
4419
- color: $primary;
4853
+ color: var(--bs-primary-text-emphasis);
4420
4854
  }
4421
4855
 
4422
4856
  &__actions {
@@ -4460,20 +4894,20 @@ body.inc-offcanvas-open {
4460
4894
 
4461
4895
  &__row {
4462
4896
  &--selected > * {
4463
- background: rgba($primary, 0.08) !important;
4897
+ background: rgba(var(--bs-primary-rgb), 0.08) !important;
4464
4898
  }
4465
4899
 
4466
4900
  &--warning > * {
4467
- background: rgba($warning, 0.08) !important;
4901
+ background: rgba(var(--bs-warning-rgb), 0.08) !important;
4468
4902
  }
4469
4903
 
4470
4904
  &--danger > * {
4471
- background: rgba($danger, 0.06) !important;
4905
+ background: rgba(var(--bs-danger-rgb), 0.06) !important;
4472
4906
  }
4473
4907
 
4474
4908
  &--locked > * {
4475
- background: rgba($inc-border-subtle, 0.35) !important;
4476
- color: $text-muted;
4909
+ background: var(--inc-surface-muted) !important;
4910
+ color: var(--inc-text-muted);
4477
4911
  }
4478
4912
  }
4479
4913
  }
@@ -4507,7 +4941,7 @@ body.inc-offcanvas-open {
4507
4941
  top: 0;
4508
4942
  bottom: -1rem;
4509
4943
  width: 0.125rem;
4510
- background: $inc-border-subtle;
4944
+ background: var(--inc-border-subtle);
4511
4945
  }
4512
4946
  }
4513
4947
 
@@ -4520,7 +4954,7 @@ body.inc-offcanvas-open {
4520
4954
  height: 0.75rem;
4521
4955
  border-radius: 999px;
4522
4956
  background: $primary;
4523
- box-shadow: 0 0 0 0.1875rem $inc-surface-primary;
4957
+ box-shadow: 0 0 0 0.1875rem var(--inc-surface-primary);
4524
4958
  position: relative;
4525
4959
  z-index: 1;
4526
4960
 
@@ -4542,9 +4976,9 @@ body.inc-offcanvas-open {
4542
4976
  flex-direction: column;
4543
4977
  gap: 0.5rem;
4544
4978
  padding: 0.875rem 1rem;
4545
- border: 1px solid $inc-border-subtle;
4979
+ border: 1px solid var(--inc-border-subtle);
4546
4980
  border-radius: $inc-radius-md;
4547
- background: $inc-surface-primary;
4981
+ background: var(--inc-surface-primary);
4548
4982
  }
4549
4983
 
4550
4984
  &__header,
@@ -4562,13 +4996,13 @@ body.inc-offcanvas-open {
4562
4996
  }
4563
4997
 
4564
4998
  &__meta {
4565
- color: $text-muted;
4999
+ color: var(--inc-text-muted);
4566
5000
  font-size: 0.75rem;
4567
5001
  }
4568
5002
 
4569
5003
  &__body {
4570
5004
  margin: 0;
4571
- color: $body-color;
5005
+ color: var(--inc-text-primary);
4572
5006
  font-size: 0.8125rem;
4573
5007
  line-height: 1.6;
4574
5008
  }
@@ -4582,7 +5016,7 @@ body.inc-offcanvas-open {
4582
5016
  padding: 1rem 1.125rem;
4583
5017
  border: 1.5px dashed $inc-border-strong;
4584
5018
  border-radius: $inc-radius-md;
4585
- background: linear-gradient(180deg, $inc-surface-secondary, $inc-surface-primary);
5019
+ background: linear-gradient(180deg, var(--inc-surface-secondary), var(--inc-surface-primary));
4586
5020
 
4587
5021
  &__content {
4588
5022
  display: flex;
@@ -4599,12 +5033,12 @@ body.inc-offcanvas-open {
4599
5033
  &__text {
4600
5034
  margin: 0;
4601
5035
  font-size: 0.8125rem;
4602
- color: $text-muted;
5036
+ color: var(--inc-text-muted);
4603
5037
  }
4604
5038
 
4605
5039
  &--active {
4606
- border-color: $primary;
4607
- background: linear-gradient(180deg, rgba($primary, 0.08), rgba($primary, 0.02));
5040
+ border-color: var(--bs-primary);
5041
+ background: linear-gradient(180deg, var(--bs-primary-bg-subtle), var(--inc-surface-primary));
4608
5042
  }
4609
5043
 
4610
5044
  @media (max-width: 767.98px) {
@@ -4625,9 +5059,9 @@ body.inc-offcanvas-open {
4625
5059
  gap: 1rem;
4626
5060
  align-items: center;
4627
5061
  padding: 0.875rem 1rem;
4628
- border: 1px solid $inc-border-subtle;
5062
+ border: 1px solid var(--inc-border-subtle);
4629
5063
  border-radius: $inc-radius-md;
4630
- background: $inc-surface-primary;
5064
+ background: var(--inc-surface-primary);
4631
5065
 
4632
5066
  &__meta {
4633
5067
  display: flex;
@@ -4645,7 +5079,7 @@ body.inc-offcanvas-open {
4645
5079
  &__detail {
4646
5080
  margin: 0;
4647
5081
  font-size: 0.75rem;
4648
- color: $text-muted;
5082
+ color: var(--inc-text-muted);
4649
5083
  }
4650
5084
 
4651
5085
  &__actions {
@@ -4671,9 +5105,9 @@ body.inc-offcanvas-open {
4671
5105
  gap: 1rem;
4672
5106
  height: 100%;
4673
5107
  padding: 1.25rem;
4674
- border-left: 1px solid $inc-border-subtle;
4675
- background: $inc-surface-primary;
4676
- box-shadow: -1rem 0 2rem rgba($inc-surface-strong, 0.08);
5108
+ border-left: 1px solid var(--inc-border-subtle);
5109
+ background: var(--inc-surface-primary);
5110
+ box-shadow: -1rem 0 2rem rgba(var(--inc-surface-strong-rgb), 0.08);
4677
5111
 
4678
5112
  &__header {
4679
5113
  display: flex;
@@ -4681,7 +5115,7 @@ body.inc-offcanvas-open {
4681
5115
  justify-content: space-between;
4682
5116
  gap: 1rem;
4683
5117
  padding-bottom: 1rem;
4684
- border-bottom: 1px solid $inc-border-subtle;
5118
+ border-bottom: 1px solid var(--inc-border-subtle);
4685
5119
  }
4686
5120
 
4687
5121
  &__body {
@@ -4695,7 +5129,7 @@ body.inc-offcanvas-open {
4695
5129
  flex-wrap: wrap;
4696
5130
  gap: 0.75rem;
4697
5131
  padding-top: 1rem;
4698
- border-top: 1px solid $inc-border-subtle;
5132
+ border-top: 1px solid var(--inc-border-subtle);
4699
5133
  margin-top: auto;
4700
5134
  }
4701
5135
  }
@@ -4711,10 +5145,10 @@ body.inc-offcanvas-open {
4711
5145
  align-items: flex-start;
4712
5146
  gap: 0.875rem;
4713
5147
  padding: 0.875rem 1rem;
4714
- border: 1px solid $inc-border-subtle;
5148
+ border: 1px solid var(--inc-border-subtle);
4715
5149
  border-radius: $inc-radius-md;
4716
- background: $inc-surface-primary;
4717
- box-shadow: 0 0.75rem 1.5rem rgba($inc-surface-strong, 0.08);
5150
+ background: var(--inc-surface-primary);
5151
+ box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.08);
4718
5152
 
4719
5153
  &__icon {
4720
5154
  width: 2rem;
@@ -4723,8 +5157,8 @@ body.inc-offcanvas-open {
4723
5157
  display: inline-flex;
4724
5158
  align-items: center;
4725
5159
  justify-content: center;
4726
- background: rgba($primary, 0.1);
4727
- color: $primary;
5160
+ background: var(--bs-primary-bg-subtle);
5161
+ color: var(--bs-primary-text-emphasis);
4728
5162
  font-weight: 700;
4729
5163
  flex: 0 0 auto;
4730
5164
  }
@@ -4738,6 +5172,6 @@ body.inc-offcanvas-open {
4738
5172
  &__text {
4739
5173
  margin: 0;
4740
5174
  font-size: 0.8125rem;
4741
- color: $text-muted;
5175
+ color: var(--inc-text-muted);
4742
5176
  }
4743
5177
  }