@inchurch/matcha-theme 20.0.8 → 20.276.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 (99) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1212 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_typography.scss +127 -127
  6. package/base/_reset.scss +438 -438
  7. package/components/app-page-header.scss +260 -0
  8. package/components/matcha-accordion.scss +294 -157
  9. package/components/matcha-avatar.scss +171 -31
  10. package/components/matcha-badge.scss +4 -4
  11. package/components/matcha-breadcrumb.scss +232 -126
  12. package/components/matcha-button-toggle.scss +44 -0
  13. package/components/matcha-buttons.scss +908 -784
  14. package/components/matcha-calendar.scss +70 -2
  15. package/components/matcha-cards.scss +28 -2
  16. package/components/matcha-checkbox.scss +191 -490
  17. package/components/matcha-chip.scss +297 -212
  18. package/components/matcha-command-palette.scss +291 -63
  19. package/components/matcha-crop.scss +407 -172
  20. package/components/matcha-date.scss +81 -81
  21. package/components/matcha-divider.scss +86 -31
  22. package/components/matcha-drawer.scss +201 -50
  23. package/components/matcha-drop-image.scss +14 -0
  24. package/components/matcha-drop-list.scss +42 -1
  25. package/components/matcha-empty-state.scss +195 -83
  26. package/components/matcha-flag.scss +93 -52
  27. package/components/matcha-footer.scss +68 -164
  28. package/components/matcha-form-field.scss +52 -0
  29. package/components/matcha-form-section.scss +101 -101
  30. package/components/matcha-header.scss +135 -325
  31. package/components/matcha-highlight.scss +65 -197
  32. package/components/matcha-hint-text.scss +21 -0
  33. package/components/matcha-horizontal-tree.scss +317 -317
  34. package/components/matcha-icon.scss +17 -25
  35. package/components/matcha-list.scss +5 -5
  36. package/components/matcha-menu.scss +13 -0
  37. package/components/matcha-modal.scss +58 -84
  38. package/components/matcha-nav.scss +361 -230
  39. package/components/matcha-notification.scss +413 -197
  40. package/components/matcha-option.scss +79 -23
  41. package/components/matcha-paginator.scss +689 -235
  42. package/components/matcha-panel.scss +42 -26
  43. package/components/matcha-profile-card.scss +50 -50
  44. package/components/matcha-progress-bar.scss +257 -153
  45. package/components/matcha-radio.scss +244 -452
  46. package/components/matcha-scrollbox-shadow.scss +122 -122
  47. package/components/matcha-select.scss +3 -3
  48. package/components/matcha-skeleton.scss +18 -0
  49. package/components/matcha-slide-toggle.scss +47 -2
  50. package/components/matcha-slider.scss +172 -75
  51. package/components/matcha-snack-bar.scss +114 -121
  52. package/components/matcha-spinner.scss +76 -57
  53. package/components/matcha-status-pill.scss +82 -0
  54. package/components/matcha-stepper.scss +377 -177
  55. package/components/matcha-table.scss +569 -785
  56. package/components/matcha-tabs.scss +624 -469
  57. package/components/matcha-text-editor.scss +98 -144
  58. package/components/matcha-toolbar.scss +359 -206
  59. package/components/matcha-tooltip.scss +156 -62
  60. package/components/matcha-tree-view.scss +189 -0
  61. package/components/matcha-uploader.scss +240 -62
  62. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  63. package/fonts/manrope/manrope-latin.woff2 +0 -0
  64. package/layout/matcha-page-layout.scss +776 -0
  65. package/main.scss +232 -261
  66. package/package.json +1 -1
  67. package/tokens/_animations-tokens.scss +37 -37
  68. package/tokens/_breakpoints-tokens.scss +35 -26
  69. package/tokens/_color-tokens.scss +1152 -1152
  70. package/tokens/_css-custom-properties.scss +650 -568
  71. package/tokens/_spacing-tokens.scss +94 -94
  72. package/vendors/angular-editor.scss +56 -56
  73. package/vendors/angular-material-fixes.scss +297 -297
  74. package/vendors/charts.scss +92 -92
  75. package/vendors/ng5-slider.scss +56 -56
  76. package/vendors/ngx-material-timepicker.scss +50 -50
  77. package/fonts/CircularStd-Black.eot +0 -0
  78. package/fonts/CircularStd-Black.svg +0 -3426
  79. package/fonts/CircularStd-Black.ttf +0 -0
  80. package/fonts/CircularStd-Black.woff +0 -0
  81. package/fonts/CircularStd-Black.woff2 +0 -0
  82. package/fonts/CircularStd-Bold.eot +0 -0
  83. package/fonts/CircularStd-Bold.otf +0 -0
  84. package/fonts/CircularStd-Bold.svg +0 -13532
  85. package/fonts/CircularStd-Bold.ttf +0 -0
  86. package/fonts/CircularStd-Bold.woff +0 -0
  87. package/fonts/CircularStd-Bold.woff2 +0 -0
  88. package/fonts/CircularStd-Medium.eot +0 -0
  89. package/fonts/CircularStd-Medium.otf +0 -0
  90. package/fonts/CircularStd-Medium.svg +0 -13511
  91. package/fonts/CircularStd-Medium.ttf +0 -0
  92. package/fonts/CircularStd-Medium.woff +0 -0
  93. package/fonts/CircularStd-Medium.woff2 +0 -0
  94. package/fonts/CircularStd-Regular.eot +0 -0
  95. package/fonts/CircularStd-Regular.otf +0 -0
  96. package/fonts/CircularStd-Regular.svg +0 -2378
  97. package/fonts/CircularStd-Regular.ttf +0 -0
  98. package/fonts/CircularStd-Regular.woff +0 -0
  99. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -1,209 +1,313 @@
1
1
  // =============================================================================
2
- // matcha-progress-bar.scss — Progress bar (determinate, indeterminate, informative)
3
- // Aligned with Figma matcha/progress-bar: Type(3) × Size(4) = 7 variants
2
+ // matcha-progress-bar.scss — Progress bar (1:1 com Figma DSV3)
3
+ // =============================================================================
4
+ // 4 types canônicos × 4 sizes:
5
+ // • standard — bar contínua (default 4 / xs 8 / sm 16 / md 32)
6
+ // • multi-level — N segmentos coloridos lado a lado (sm 16 / md 32)
7
+ // • informative — card 60px com %, descrição, ETA + bar 4px embaixo
8
+ // • segmented — N steps discretos com gap (sm 16 / md 32)
9
+ //
10
+ // Cores: 6 semânticas DSV3 (Material 1 legacy removida)
11
+ // Track (rail): #282C34 dark = matcha/color/disabled-bg
4
12
  // =============================================================================
5
13
 
6
- @mixin generate-matcha-progress-bar-size-classes($helper-breakpoints) {
7
- @each $breakpoint, $materialBreakpoint in $helper-breakpoints {
8
- @include media-breakpoint($materialBreakpoint) {
9
- $infix: if($materialBreakpoint == null, "", "-#{$breakpoint}");
10
-
11
- &[size#{$infix}="xs"],
12
- &[size#{$infix}="tiny"] {
13
- .progress { height: px-to-rem(8px); }
14
- }
14
+ @mixin matcha-progress-bar-theme($theme) {
15
+ $semantic-colors: (
16
+ accent: getAccent,
17
+ primary: getPrimary,
18
+ success: getSuccess,
19
+ warn: getWarn,
20
+ danger: getDanger,
21
+ info: getInfo,
22
+ );
15
23
 
16
- &[size#{$infix}="sm"],
17
- &[size#{$infix}="small"] {
18
- .progress { height: px-to-rem(16px); }
19
- }
24
+ matcha-progress-bar {
25
+ // Default fill = accent
26
+ --matcha-progress-fill: var(--matcha-color-accent, #{getAccent($theme)});
20
27
 
21
- &[size#{$infix}="md"],
22
- &[size#{$infix}="medium"] {
23
- .progress { height: px-to-rem(32px); }
28
+ // Bind por color attr → CSS var (mesma estratégia do slider/spinner)
29
+ @each $name, $fn in $semantic-colors {
30
+ &[color="#{$name}"] {
31
+ --matcha-progress-fill: var(--matcha-color-#{$name}, #{call($fn, $theme)});
24
32
  }
25
33
  }
26
34
  }
27
35
 
28
- &:not([size]) {
29
- .progress { height: px-to-rem(4px); }
30
- }
31
- }
32
-
33
- @mixin matcha-progress-bar-theme($theme) {
34
- matcha-progress-bar:not([color]) {
35
- .determinate,
36
- .indeterminate {
37
- background-color: var(--matcha-color-accent, #{getAccent($theme)});
36
+ // Multi-level: cada segment tem sua própria cor via [data-segment-color]
37
+ matcha-progress-bar[type="multi-level"] {
38
+ @each $name, $fn in $semantic-colors {
39
+ .progress-segment-color[data-segment-color="#{$name}"] {
40
+ background-color: var(--matcha-color-#{$name}, #{call($fn, $theme)});
41
+ }
38
42
  }
39
43
  }
44
+ }
40
45
 
41
- matcha-progress-bar {
42
- .matcha-progress-bar {
43
- overflow: hidden;
44
- border-radius: var(--matcha-radius-lg, 8px);
45
- }
46
+ // =============================================================================
47
+ // Structural — independente de cor
48
+ // =============================================================================
46
49
 
47
- .progress {
48
- position: relative;
49
- display: block;
50
- width: 100%;
51
- background-color: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
52
- border-radius: var(--matcha-radius-sm, 2px);
53
- background-clip: padding-box;
54
- overflow: hidden;
55
-
56
- .progress-text {
57
- position: absolute;
58
- inset: 0;
59
- display: flex;
60
- align-items: center;
61
- justify-content: center;
62
- font-size: var(--matcha-text-sm, 12px);
63
- font-weight: var(--matcha-weight-semibold, 600);
64
- pointer-events: none;
65
- white-space: nowrap;
66
- }
50
+ matcha-progress-bar {
51
+ display: block;
52
+ width: 100%;
67
53
 
68
- .progress-text-bg {
69
- color: var(--matcha-color-fg, #{getForeground($theme)});
70
- z-index: 1;
71
- }
54
+ // ── Track base (compartilhado por standard e multi-level) ──────────────
55
+ .progress {
56
+ position: relative;
57
+ display: block;
58
+ width: 100%;
59
+ height: var(--matcha-space-050, 4px); // default size
60
+ background-color: var(--matcha-color-disabled-bg, #282C34);
61
+ border-radius: var(--matcha-radius-sm, 2px);
62
+ overflow: hidden;
63
+ }
72
64
 
73
- .progress-text-fg {
74
- color: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
75
- z-index: 3;
76
- transition: clip-path 300ms linear;
77
- }
65
+ // Fill determinate (standard + informative)
66
+ .progress-fill {
67
+ display: flex;
68
+ align-items: center;
69
+ height: 100%;
70
+ background-color: var(--matcha-progress-fill);
71
+ border-radius: var(--matcha-radius-sm, 2px);
72
+ transition: width var(--matcha-duration-fast, 200ms) ease;
73
+ }
78
74
 
79
- .determinate {
80
- position: absolute;
81
- top: 0;
82
- bottom: 0;
83
- left: 0;
84
- transition: width 300ms linear;
85
- z-index: 2;
86
- }
75
+ // Inline label (standard sm/md)
76
+ .progress-fill__label {
77
+ padding-left: var(--matcha-space-100, 8px);
78
+ font-family: var(--matcha-font-family);
79
+ // Figma: text inverse/escuro sobre fill claro (accent é claro em dark mode)
80
+ color: rgba(0, 0, 0, 0.87);
81
+ white-space: nowrap;
82
+ }
87
83
 
88
- .indeterminate {
89
- &:before {
90
- content: '';
91
- position: absolute;
92
- background-color: inherit;
93
- top: 0; left: 0; bottom: 0;
94
- will-change: left, right;
95
- animation: matcha-progress-indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
96
- }
97
-
98
- &:after {
99
- content: '';
100
- position: absolute;
101
- background-color: inherit;
102
- top: 0; left: 0; bottom: 0;
103
- will-change: left, right;
104
- animation: matcha-progress-indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
105
- animation-delay: 1.15s;
106
- }
107
- }
84
+ // Indeterminate animation (standard, sem progress) — Material-style dual-scan.
85
+ // O .progress-indeterminate é wrapper transparente com overflow hidden.
86
+ // ::before e ::after são as 2 barras animadas que cruzam o track.
87
+ // Animar left/right (em vez de transform) é o approach que funciona em
88
+ // todos browsers e dá o ratio de "scan" característico do Material.
89
+ .progress-indeterminate {
90
+ position: absolute;
91
+ inset: 0;
92
+ overflow: hidden;
93
+ background-color: transparent;
94
+
95
+ &::before,
96
+ &::after {
97
+ content: '';
98
+ position: absolute;
99
+ top: 0;
100
+ bottom: 0;
101
+ background-color: var(--matcha-progress-fill);
102
+ will-change: left, right;
108
103
  }
109
104
 
110
- .progress-info-card {
111
- border-radius: var(--matcha-radius-lg, 8px);
112
- width: 100%;
113
- display: block;
105
+ &::before {
106
+ animation: matcha-progress-indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
107
+ }
108
+ &::after {
109
+ animation: matcha-progress-indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
110
+ animation-delay: 1.15s;
114
111
  }
115
-
116
- @include generate-matcha-progress-bar-size-classes($helper-breakpoints);
117
112
  }
113
+ }
118
114
 
119
- @keyframes matcha-progress-indeterminate {
120
- 0% { left: -35%; right: 100%; }
121
- 60% { left: 100%; right: -90%; }
122
- 100% { left: 100%; right: -90%; }
123
- }
115
+ // ── Sizes ──────────────────────────────────────────────────────────────────
116
+ matcha-progress-bar {
117
+ // Default: 4px (já é o default do .progress)
124
118
 
125
- @keyframes matcha-progress-indeterminate-short {
126
- 0% { left: -200%; right: 100%; }
127
- 60% { left: 107%; right: -8%; }
128
- 100% { left: 107%; right: -8%; }
119
+ &[size="xs"], &[size="tiny"] {
120
+ .progress { height: var(--matcha-space-100, 8px); }
129
121
  }
130
-
131
- @media (prefers-reduced-motion: reduce) {
132
- matcha-progress-bar .progress {
133
- .determinate { transition: none; }
134
- .indeterminate:before,
135
- .indeterminate:after { animation: none; }
136
- .progress-text-fg { transition: none; }
122
+ &[size="sm"], &[size="small"] {
123
+ .progress { height: var(--matcha-space-200, 16px); border-radius: var(--matcha-radius-md, 4px); }
124
+ .progress-fill { border-radius: var(--matcha-radius-md, 4px); }
125
+ .progress-fill__label {
126
+ font-size: var(--matcha-text-p-tiny, 11px);
127
+ font-weight: var(--matcha-weight-regular, 400);
128
+ line-height: var(--matcha-leading-p-tiny, 14px);
129
+ letter-spacing: 0.3px;
130
+ }
131
+ }
132
+ &[size="md"], &[size="medium"] {
133
+ .progress { height: var(--matcha-space-400, 32px); border-radius: var(--matcha-radius-md, 4px); }
134
+ .progress-fill { border-radius: var(--matcha-radius-md, 4px); }
135
+ .progress-fill__label {
136
+ font-size: var(--matcha-text-label-md, 14px);
137
+ font-weight: var(--matcha-weight-medium, 500);
138
+ line-height: var(--matcha-leading-label-md, 20px);
137
139
  }
138
140
  }
139
141
  }
140
142
 
141
- // ── Structural ──────────────────────────────────────────────────────────────
143
+ // =============================================================================
144
+ // Multi-level (3+ segmentos coloridos lado a lado)
145
+ // =============================================================================
146
+ matcha-progress-bar[type="multi-level"] {
147
+ .progress--multi {
148
+ display: flex;
149
+ flex-direction: row;
150
+ align-items: stretch;
151
+ // Track de fundo já vem do .progress (disabled-bg). Os segments coloridos
152
+ // sobrepõem por width%, deixando o resto exposto como track.
153
+ }
142
154
 
143
- matcha-progress-bar {
144
- display: flex;
145
- width: 100%;
146
- border-radius: var(--matcha-radius-lg, 8px);
155
+ .progress-segment-color {
156
+ // Cor vem do data-segment-color → tema. Width vem do [style.width.%].
157
+ height: 100%;
158
+ // Sem border-radius interno — só as pontas do conjunto seguem o radius do track.
159
+ }
160
+
161
+ // Sizes específicos do multi-level
162
+ &[size="sm"], &[size="small"] {
163
+ .progress { height: var(--matcha-space-200, 16px); border-radius: var(--matcha-radius-sm, 2px); }
164
+ }
165
+ &[size="md"], &[size="medium"] {
166
+ .progress { height: var(--matcha-space-400, 32px); border-radius: var(--matcha-radius-md, 4px); }
167
+ }
168
+ }
147
169
 
148
- .matcha-progress-bar {
170
+ // =============================================================================
171
+ // Informative (card 60px com %, descrição, ETA + bar 4px)
172
+ // Layout: padding 16, gap 8, bg surface-card, shadow 1, radius lg
173
+ // =============================================================================
174
+ matcha-progress-bar[type="informative"] {
175
+ .progress-info {
149
176
  display: flex;
150
177
  flex-direction: column;
151
- position: relative;
152
- width: 100%;
178
+ align-items: stretch;
179
+ gap: var(--matcha-space-100, 8px);
180
+ padding: var(--matcha-space-200, 16px);
181
+ background: var(--matcha-color-surface-card, #1c1f26);
182
+ box-shadow: var(--matcha-shadow-1, 0px 2px 8px rgba(0, 0, 0, 0.08));
183
+ border-radius: var(--matcha-radius-lg, 8px);
153
184
  }
154
- }
155
185
 
156
- .progress {
157
- overflow: hidden;
186
+ .progress-info__row {
187
+ display: flex;
188
+ flex-direction: row;
189
+ align-items: center;
190
+ gap: var(--matcha-space-100, 8px);
191
+ }
192
+
193
+ // Percentage — label-sm 12/500/16 · text-primary
194
+ .progress-info__percentage {
195
+ font-family: var(--matcha-font-family);
196
+ font-size: var(--matcha-text-label-sm, 12px);
197
+ font-weight: var(--matcha-weight-medium, 500);
198
+ line-height: var(--matcha-leading-label-sm, 16px);
199
+ color: var(--matcha-color-text-primary, #e8eaed);
200
+ flex: none;
201
+ }
202
+
203
+ // Description — body-sm 12/400/16 · text-primary · flex-grow
204
+ .progress-info__description {
205
+ font-family: var(--matcha-font-family);
206
+ font-size: var(--matcha-text-body-sm, 12px);
207
+ font-weight: var(--matcha-weight-regular, 400);
208
+ line-height: var(--matcha-leading-body-sm, 16px);
209
+ color: var(--matcha-color-text-primary, #e8eaed);
210
+ flex: 1 1 auto;
211
+ min-width: 0;
212
+ overflow: hidden;
213
+ text-overflow: ellipsis;
214
+ white-space: nowrap;
215
+ }
216
+
217
+ // ETA — caption 11/400/14 · text-secondary · letter 0.3
218
+ .progress-info__eta {
219
+ font-family: var(--matcha-font-family);
220
+ font-size: var(--matcha-text-p-tiny, 11px);
221
+ font-weight: var(--matcha-weight-regular, 400);
222
+ line-height: var(--matcha-leading-p-tiny, 14px);
223
+ letter-spacing: 0.3px;
224
+ color: var(--matcha-color-text-secondary, rgba(255, 255, 255, 0.7));
225
+ flex: none;
226
+ }
227
+
228
+ // Bar 4px (sempre size default — Figma não varia)
229
+ .progress--info-track {
230
+ height: var(--matcha-space-050, 4px);
231
+ border-radius: var(--matcha-radius-sm, 2px);
232
+ }
158
233
  }
159
234
 
160
235
  // =============================================================================
161
- // Segmented Progress Bar Step progress indicator (Type=Segmented)
162
- // Aligned with Figma matcha/progress-bar: Type=Segmented, Size=SM|MD
236
+ // Segmented (N steps discretos com gap pill)
163
237
  // =============================================================================
164
-
165
238
  matcha-progress-bar[type="segmented"] {
166
- .matcha-progress-bar {
239
+ .progress-segmented {
240
+ display: flex;
167
241
  flex-direction: row;
242
+ align-items: stretch;
168
243
  gap: var(--matcha-space-050, 4px);
244
+ width: 100%;
169
245
  }
170
246
 
171
247
  .progress-segment {
172
- flex: 1;
173
- border-radius: var(--matcha-radius-sm, 2px);
248
+ flex: 1 1 0;
249
+ height: var(--matcha-space-100, 8px); // default
250
+ background: var(--matcha-color-disabled-bg, #282C34);
251
+ border-radius: var(--matcha-radius-pill, 9999px);
252
+ transition: background var(--matcha-duration-fast, 200ms) ease;
253
+
254
+ &.is-filled {
255
+ background: var(--matcha-progress-fill);
256
+ }
174
257
  }
175
258
 
176
- // ── Sizes ──
177
- &[size="sm"] .progress-segment,
178
- &[size="small"] .progress-segment {
179
- height: var(--matcha-space-200, 16px);
180
- border-radius: var(--matcha-radius-sm, 2px);
259
+ &[size="sm"], &[size="small"] {
260
+ .progress-segment { height: var(--matcha-space-200, 16px); }
181
261
  }
182
-
183
- &[size="md"] .progress-segment,
184
- &[size="medium"] .progress-segment {
185
- height: var(--matcha-space-400, 32px);
186
- border-radius: var(--matcha-radius-md, 4px);
262
+ &[size="md"], &[size="medium"] {
263
+ .progress-segment { height: var(--matcha-space-400, 32px); }
187
264
  }
265
+ }
188
266
 
189
- &:not([size]) .progress-segment {
190
- height: var(--matcha-space-100, 8px);
191
- border-radius: var(--matcha-radius-sm, 2px);
192
- }
267
+ // =============================================================================
268
+ // Animations + a11y
269
+ // =============================================================================
270
+ // Material-style dual-scan keyframes — animam left/right pra criar o efeito
271
+ // de barra que "cruza" o track. ::before é a barra principal (mais larga),
272
+ // ::after é a complementar (mais fina, com delay) que dá o ritmo de scan.
273
+ @keyframes matcha-progress-indeterminate {
274
+ 0% { left: -35%; right: 100%; }
275
+ 60% { left: 100%; right: -90%; }
276
+ 100% { left: 100%; right: -90%; }
277
+ }
193
278
 
194
- // Hide standard progress bar elements
195
- .progress { display: none; }
196
- .progress-info-card { display: none; }
279
+ @keyframes matcha-progress-indeterminate-short {
280
+ 0% { left: -200%; right: 100%; }
281
+ 60% { left: 107%; right: -8%; }
282
+ 100% { left: 107%; right: -8%; }
197
283
  }
198
284
 
199
- @mixin matcha-progress-bar-segmented-theme($theme) {
200
- matcha-progress-bar[type="segmented"] {
201
- .progress-segment {
202
- background: var(--matcha-color-disabled-bg, #{getDisabled($theme)});
285
+ @media (prefers-reduced-motion: reduce) {
286
+ matcha-progress-bar {
287
+ .progress-fill { transition: none; }
288
+ .progress-indeterminate,
289
+ .progress-indeterminate::before { animation: none; }
290
+ .progress-segment { transition: none; }
291
+ }
292
+ }
203
293
 
204
- &.segment-filled {
205
- background: var(--matcha-color-accent, #{getAccent($theme)});
206
- }
294
+ // ── Forced colors ──
295
+ @media (forced-colors: active) {
296
+ matcha-progress-bar {
297
+ .progress-track {
298
+ background: Canvas !important;
299
+ border: 1px solid CanvasText !important;
300
+ }
301
+ .progress-fill,
302
+ .progress-segment.is-filled { background: Highlight !important; }
303
+ .progress-segment:not(.is-filled) {
304
+ background: Canvas !important;
305
+ border: 1px solid CanvasText !important;
207
306
  }
208
307
  }
209
308
  }
309
+
310
+ // ── Print ──
311
+ @media print {
312
+ matcha-progress-bar .progress-indeterminate { display: none !important; }
313
+ }