@idyeah/diya 0.0.0-stage → 1.0.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 (191) hide show
  1. package/CHANGELOG.md +317 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +29 -0
  4. package/README.md +599 -2
  5. package/dist/DiyaProvider.d.ts +79 -0
  6. package/dist/DiyaProvider.js +77 -0
  7. package/dist/Icon.d.ts +10 -0
  8. package/dist/Icon.js +27 -0
  9. package/dist/accordion/Accordion.d.ts +34 -0
  10. package/dist/accordion/Accordion.js +15 -0
  11. package/dist/alert/Alert.d.ts +49 -0
  12. package/dist/alert/Alert.js +11 -0
  13. package/dist/alert/messages.d.ts +9 -0
  14. package/dist/alert/messages.js +2 -0
  15. package/dist/api.json +7277 -0
  16. package/dist/api.schema.json +214 -0
  17. package/dist/application-patterns/Chatbot.d.ts +114 -0
  18. package/dist/application-patterns/Chatbot.js +110 -0
  19. package/dist/application-patterns/SideNavigation.d.ts +74 -0
  20. package/dist/application-patterns/SideNavigation.js +31 -0
  21. package/dist/application-patterns/chatbot-messages.d.ts +20 -0
  22. package/dist/application-patterns/chatbot-messages.js +2 -0
  23. package/dist/application-patterns/side-navigation-messages.d.ts +5 -0
  24. package/dist/application-patterns/side-navigation-messages.js +2 -0
  25. package/dist/avatar/Avatar.d.ts +32 -0
  26. package/dist/avatar/Avatar.js +19 -0
  27. package/dist/avatar/messages.d.ts +7 -0
  28. package/dist/avatar/messages.js +2 -0
  29. package/dist/badge/Badge.d.ts +42 -0
  30. package/dist/badge/Badge.js +16 -0
  31. package/dist/badge/badge-utils.d.ts +6 -0
  32. package/dist/badge/badge-utils.js +24 -0
  33. package/dist/badge/messages.d.ts +4 -0
  34. package/dist/badge/messages.js +2 -0
  35. package/dist/breadcrumbs/Breadcrumbs.d.ts +34 -0
  36. package/dist/breadcrumbs/Breadcrumbs.js +19 -0
  37. package/dist/breadcrumbs/messages.d.ts +5 -0
  38. package/dist/breadcrumbs/messages.js +2 -0
  39. package/dist/button/Button.d.ts +46 -0
  40. package/dist/button/Button.js +44 -0
  41. package/dist/calendar/Calendar.d.ts +55 -0
  42. package/dist/calendar/Calendar.js +61 -0
  43. package/dist/calendar/messages.d.ts +8 -0
  44. package/dist/calendar/messages.js +2 -0
  45. package/dist/calendar/month.d.ts +61 -0
  46. package/dist/calendar/month.js +134 -0
  47. package/dist/card/Card.d.ts +46 -0
  48. package/dist/card/Card.js +8 -0
  49. package/dist/choice/Choice.d.ts +72 -0
  50. package/dist/choice/Choice.js +68 -0
  51. package/dist/choice/messages.d.ts +4 -0
  52. package/dist/choice/messages.js +2 -0
  53. package/dist/code-block/CodeBlock.d.ts +20 -0
  54. package/dist/code-block/CodeBlock.js +49 -0
  55. package/dist/code-block/messages.d.ts +8 -0
  56. package/dist/code-block/messages.js +2 -0
  57. package/dist/combobox/Combobox.d.ts +60 -0
  58. package/dist/combobox/Combobox.js +160 -0
  59. package/dist/combobox/messages.d.ts +9 -0
  60. package/dist/combobox/messages.js +2 -0
  61. package/dist/combobox/useAnchoredPopover.d.ts +5 -0
  62. package/dist/combobox/useAnchoredPopover.js +100 -0
  63. package/dist/data-viz/DataViz.d.ts +140 -0
  64. package/dist/data-viz/DataViz.js +469 -0
  65. package/dist/data-viz/index.d.ts +2 -0
  66. package/dist/data-viz/index.js +1 -0
  67. package/dist/data-viz/messages.d.ts +11 -0
  68. package/dist/data-viz/messages.js +2 -0
  69. package/dist/date-picker/DatePicker.d.ts +57 -0
  70. package/dist/date-picker/DatePicker.js +146 -0
  71. package/dist/date-picker/messages.d.ts +13 -0
  72. package/dist/date-picker/messages.js +2 -0
  73. package/dist/dialog/Dialog.d.ts +84 -0
  74. package/dist/dialog/Dialog.js +107 -0
  75. package/dist/dialog/messages.d.ts +9 -0
  76. package/dist/dialog/messages.js +2 -0
  77. package/dist/fonts/DIYASans-Italic.woff2 +0 -0
  78. package/dist/fonts/DIYASans.woff2 +0 -0
  79. package/dist/fonts/OFL.txt +94 -0
  80. package/dist/index.d.ts +50 -0
  81. package/dist/index.js +46 -0
  82. package/dist/internal/brand.d.ts +33 -0
  83. package/dist/internal/brand.js +57 -0
  84. package/dist/internal/cx.d.ts +2 -0
  85. package/dist/internal/cx.js +4 -0
  86. package/dist/internal/link.d.ts +14 -0
  87. package/dist/internal/link.js +7 -0
  88. package/dist/internal/slot.d.ts +15 -0
  89. package/dist/internal/slot.js +67 -0
  90. package/dist/layout/Inline.d.ts +4 -0
  91. package/dist/layout/Inline.js +7 -0
  92. package/dist/layout/Stack.d.ts +4 -0
  93. package/dist/layout/Stack.js +7 -0
  94. package/dist/layout/layout.d.ts +32 -0
  95. package/dist/layout/layout.js +12 -0
  96. package/dist/link/TextLink.d.ts +23 -0
  97. package/dist/link/TextLink.js +17 -0
  98. package/dist/list/List.d.ts +48 -0
  99. package/dist/list/List.js +17 -0
  100. package/dist/list/messages.d.ts +4 -0
  101. package/dist/list/messages.js +2 -0
  102. package/dist/menu/Menu.d.ts +49 -0
  103. package/dist/menu/Menu.js +54 -0
  104. package/dist/messages-defaults.d.ts +201 -0
  105. package/dist/messages-defaults.js +61 -0
  106. package/dist/messages.d.ts +12 -0
  107. package/dist/messages.js +1 -0
  108. package/dist/metric/Metric.d.ts +42 -0
  109. package/dist/metric/Metric.js +11 -0
  110. package/dist/metric/messages.d.ts +9 -0
  111. package/dist/metric/messages.js +2 -0
  112. package/dist/overlay/FloatingSurface.d.ts +29 -0
  113. package/dist/overlay/FloatingSurface.js +254 -0
  114. package/dist/page-header/PageHeader.d.ts +38 -0
  115. package/dist/page-header/PageHeader.js +10 -0
  116. package/dist/pagination/Pagination.d.ts +44 -0
  117. package/dist/pagination/Pagination.js +26 -0
  118. package/dist/pagination/messages.d.ts +11 -0
  119. package/dist/pagination/messages.js +2 -0
  120. package/dist/popover/Popover.d.ts +23 -0
  121. package/dist/popover/Popover.js +8 -0
  122. package/dist/progress/Progress.d.ts +33 -0
  123. package/dist/progress/Progress.js +14 -0
  124. package/dist/progress/messages.d.ts +4 -0
  125. package/dist/progress/messages.js +2 -0
  126. package/dist/prose/Prose.d.ts +14 -0
  127. package/dist/prose/Prose.js +7 -0
  128. package/dist/rating/Rating.d.ts +32 -0
  129. package/dist/rating/Rating.js +27 -0
  130. package/dist/rating/messages.d.ts +6 -0
  131. package/dist/rating/messages.js +2 -0
  132. package/dist/search/Search.d.ts +11 -0
  133. package/dist/search/Search.js +9 -0
  134. package/dist/select/Select.d.ts +65 -0
  135. package/dist/select/Select.js +19 -0
  136. package/dist/select/messages.d.ts +4 -0
  137. package/dist/select/messages.js +2 -0
  138. package/dist/site-header/SiteHeader.d.ts +88 -0
  139. package/dist/site-header/SiteHeader.js +211 -0
  140. package/dist/site-header/messages.d.ts +8 -0
  141. package/dist/site-header/messages.js +2 -0
  142. package/dist/slider/Slider.d.ts +54 -0
  143. package/dist/slider/Slider.js +89 -0
  144. package/dist/slider/messages.d.ts +5 -0
  145. package/dist/slider/messages.js +2 -0
  146. package/dist/styles.css +3379 -0
  147. package/dist/switch/Switch.d.ts +47 -0
  148. package/dist/switch/Switch.js +18 -0
  149. package/dist/table/Table.d.ts +99 -0
  150. package/dist/table/Table.js +158 -0
  151. package/dist/table/messages.d.ts +23 -0
  152. package/dist/table/messages.js +2 -0
  153. package/dist/tabs/Tabs.d.ts +49 -0
  154. package/dist/tabs/Tabs.js +26 -0
  155. package/dist/tag/Tag.d.ts +37 -0
  156. package/dist/tag/Tag.js +20 -0
  157. package/dist/tag/messages.d.ts +4 -0
  158. package/dist/tag/messages.js +2 -0
  159. package/dist/text-area/TextArea.d.ts +47 -0
  160. package/dist/text-area/TextArea.js +19 -0
  161. package/dist/text-input/TextInput.d.ts +53 -0
  162. package/dist/text-input/TextInput.js +35 -0
  163. package/dist/text-input/messages.d.ts +4 -0
  164. package/dist/text-input/messages.js +3 -0
  165. package/dist/text-input/native-field.d.ts +15 -0
  166. package/dist/text-input/native-field.js +56 -0
  167. package/dist/toast/Toast.d.ts +24 -0
  168. package/dist/toast/Toast.js +79 -0
  169. package/dist/toast/messages.d.ts +4 -0
  170. package/dist/toast/messages.js +2 -0
  171. package/dist/tooltip/Tooltip.d.ts +22 -0
  172. package/dist/tooltip/Tooltip.js +92 -0
  173. package/dist/workflow/ContentState.d.ts +44 -0
  174. package/dist/workflow/ContentState.js +11 -0
  175. package/dist/workflow/Drawer.d.ts +48 -0
  176. package/dist/workflow/Drawer.js +51 -0
  177. package/dist/workflow/FileUpload.d.ts +67 -0
  178. package/dist/workflow/FileUpload.js +47 -0
  179. package/dist/workflow/Form.d.ts +52 -0
  180. package/dist/workflow/Form.js +16 -0
  181. package/dist/workflow/Wizard.d.ts +76 -0
  182. package/dist/workflow/Wizard.js +31 -0
  183. package/dist/workflow/drawer-messages.d.ts +4 -0
  184. package/dist/workflow/drawer-messages.js +2 -0
  185. package/dist/workflow/file-upload-messages.d.ts +11 -0
  186. package/dist/workflow/file-upload-messages.js +2 -0
  187. package/dist/workflow/form-messages.d.ts +5 -0
  188. package/dist/workflow/form-messages.js +2 -0
  189. package/dist/workflow/wizard-messages.d.ts +9 -0
  190. package/dist/workflow/wizard-messages.js +2 -0
  191. package/package.json +84 -4
@@ -0,0 +1,3379 @@
1
+ /* @idyeah/diya. Every rule is in the "diya" cascade layer, so your own CSS wins.
2
+ With Tailwind v4, order the layers once: @layer theme, base, diya, components, utilities; */
3
+ @layer diya {
4
+ /* DIYA Sans: DIYA's typeface, a modified Mona Sans under the SIL Open Font
5
+ License (fonts/OFL.txt). Variable weight 200-900 and width 75%-125%. */
6
+ @font-face {
7
+ font-family: 'DIYA Sans';
8
+ src: url('./fonts/DIYASans.woff2') format('woff2');
9
+ font-style: normal;
10
+ font-weight: 200 900;
11
+ font-stretch: 75% 125%;
12
+ font-display: swap;
13
+ }
14
+ @font-face {
15
+ font-family: 'DIYA Sans';
16
+ src: url('./fonts/DIYASans-Italic.woff2') format('woff2');
17
+ font-style: italic;
18
+ font-weight: 200 900;
19
+ font-stretch: 75% 125%;
20
+ font-display: swap;
21
+ }
22
+
23
+ /* Arial resized to DIYA Sans's metrics, so the page does not shift when the
24
+ web font arrives. */
25
+ @font-face {
26
+ font-family: 'DIYA Sans Fallback';
27
+ src: local('Arial');
28
+ size-adjust: 104.5%;
29
+ ascent-override: 104.3%;
30
+ descent-override: 30.6%;
31
+ line-gap-override: 0%;
32
+ }
33
+
34
+ /* DIYA foundations. Appearance is local to each provider, including its portals. */
35
+ .diya-root {
36
+ /* Type scale. Reader-facing text never goes below caption. */
37
+ --diya-text-caption: 14px;
38
+ --diya-text-body: 15px;
39
+ --diya-text-large: 17px;
40
+ --diya-text-title: 20px;
41
+ --diya-text-heading: 26px;
42
+ --diya-text-display: 34px;
43
+ --diya-text-hero: 44px;
44
+ /* Leading. DIYA Sans's own line gap is tall, so titles set it explicitly. */
45
+ --diya-leading-tight: 1.2;
46
+ --diya-leading-body: 1.5;
47
+ /* Spacing scale, for Stack, Inline and your own layouts. */
48
+ --diya-space-1: 4px;
49
+ --diya-space-2: 8px;
50
+ --diya-space-3: 12px;
51
+ --diya-space-4: 16px;
52
+ --diya-space-5: 24px;
53
+ --diya-space-6: 32px;
54
+ --diya-space-7: 48px;
55
+ --diya-space-8: 64px;
56
+ /* One corner for every control: buttons, fields, selects and menu triggers. */
57
+ --diya-radius-control: calc(6px * var(--diya-corner-scale, 1));
58
+ /* One corner for every surface that sits in the page: Card, chart cards, Page Header, Form, Table. */
59
+ --diya-radius-surface: calc(16px * var(--diya-corner-scale, 1));
60
+ /* Neutral grays. Dark is the base; Light overrides below. Dark sits on a near-black
61
+ ground; raised surfaces lift only slightly and recessed wells sink below it. */
62
+ --diya-color-text: #f1f3f2;
63
+ --diya-color-muted: #bec8cb;
64
+ --diya-color-line: #ffffff26;
65
+ --diya-color-surface: #111113;
66
+ --diya-color-recessed: #0a0a0b;
67
+ --diya-color-raised: #18181b;
68
+ --diya-color-glass: #ffffff0d;
69
+ /* The dimming layer behind dialogs and drawers, in Light and Dark alike; Glass sets a lighter one,
70
+ since its blur already sets the page back. Use it for your own overlays and spotlights too. */
71
+ --diya-color-scrim: #00000088;
72
+ --diya-color-hover: #ffffff10;
73
+ --diya-color-selected: #ffffff1c;
74
+ /* The brand: DiyaProvider's brandColor sets the private pair per theme; the fallbacks
75
+ are DIYA's default (src/internal/brand.ts, DIYA_DEFAULT_BRAND). */
76
+ --diya-color-accent: var(--diya-internal-accent-dark, #e8e8e8);
77
+ --diya-color-accent-text: var(--diya-internal-accent-text-dark, #1c1c1c);
78
+ --diya-color-accent-soft: var(--diya-internal-accent-soft-dark, #e8e8e833);
79
+ --diya-color-accent-ink: var(--diya-internal-accent-ink-dark, #e8e8e8);
80
+ --diya-internal-edge: #ffffff30;
81
+ --diya-internal-highlight: #ffffff30;
82
+ --diya-shadow-raised: inset 0 1px 0 #ffffff0a, 0 -6px 24px -6px #ffffff24,
83
+ 0 0 44px -10px #ffffff18, 0 18px 40px -8px #000000a6;
84
+ --diya-internal-blur: blur(14px);
85
+ --diya-internal-backdrop: none;
86
+ --diya-internal-header-fill: var(--diya-color-raised);
87
+ --diya-internal-header-border: color-mix(in srgb, var(--diya-color-text) 18%, transparent);
88
+ /* In-page surfaces (Card, chart cards, Form, Table, Page Header panel) lift with a soft
89
+ shadow and the faintest edge, never a bright outline. */
90
+ --diya-internal-surface-border: color-mix(in srgb, var(--diya-color-text) 8%, transparent);
91
+ --diya-internal-surface-shadow: inset 0 1px 0 #ffffff08, 0 1px 2px #00000066, 0 18px 40px -22px #000000cc;
92
+ --diya-internal-overlay-fill: var(--diya-color-raised);
93
+ --diya-internal-overlay-border: color-mix(in srgb, var(--diya-color-line) 50%, transparent);
94
+ --diya-internal-overlay-top-border: var(--diya-internal-overlay-border);
95
+ --diya-internal-tabs-fill: transparent;
96
+ --diya-internal-outline-fill: transparent;
97
+ --diya-color-destructive: #ffaaaa;
98
+ --diya-color-neutral-fill: #b9c3c8;
99
+ --diya-color-neutral-on-fill: #000;
100
+ /* Status tones come from the Vivid family: bright, warm and saturated, never dusty.
101
+ Each label reads at 4.5:1 or more on its own tint and on every surface. */
102
+ --diya-color-success-fill: #30d158;
103
+ --diya-color-success-on-fill: #000;
104
+ --diya-color-warning-fill: #ff9f0a;
105
+ --diya-color-warning-on-fill: #000;
106
+ --diya-color-error-fill: #ff453a;
107
+ --diya-color-error-on-fill: #000;
108
+ --diya-color-info-fill: #0a84ff;
109
+ --diya-color-info-on-fill: #000;
110
+ --diya-color-success: #30d158;
111
+ --diya-color-success-surface: color-mix(in srgb, #30d158 18%, transparent);
112
+ --diya-color-warning: #ffb340;
113
+ --diya-color-warning-surface: color-mix(in srgb, #ff9f0a 18%, transparent);
114
+ --diya-color-error: #ff7a72;
115
+ --diya-color-error-surface: color-mix(in srgb, #ff453a 20%, transparent);
116
+ --diya-color-info: #5eb0ff;
117
+ --diya-color-info-surface: color-mix(in srgb, #0a84ff 22%, transparent);
118
+ --diya-internal-warning-mark: var(--diya-color-warning-fill);
119
+ color-scheme: dark;
120
+ color: var(--diya-color-text);
121
+ font-family: var(--diya-font, 'DIYA Sans', 'DIYA Sans Fallback', Arial, Helvetica, sans-serif);
122
+ font-synthesis: none;
123
+ }
124
+
125
+ .diya-root[data-theme='light'] {
126
+ /* Light is white all the way down: hierarchy comes from hairlines, spacing and type. */
127
+ --diya-color-text: #202627;
128
+ --diya-color-muted: #495659;
129
+ --diya-color-line: #1c1e2024;
130
+ --diya-color-surface: #ffffff;
131
+ --diya-color-recessed: #fafafa;
132
+ --diya-color-raised: #ffffff;
133
+ --diya-color-glass: #ffffff90;
134
+ --diya-color-hover: #2026270a;
135
+ --diya-color-selected: #20262712;
136
+ --diya-color-accent: var(--diya-internal-accent-light, #262626);
137
+ --diya-color-accent-text: var(--diya-internal-accent-text-light, #fafafa);
138
+ --diya-color-accent-soft: var(--diya-internal-accent-soft-light, #2626261f);
139
+ --diya-color-accent-ink: var(--diya-internal-accent-ink-light, #262626);
140
+ --diya-internal-edge: #ffffffa0;
141
+ --diya-internal-highlight: #ffffffdc;
142
+ --diya-shadow-raised: inset 0 1px 0 #ffffff80, 0 10px 30px #0002;
143
+ --diya-internal-surface-border: color-mix(in srgb, var(--diya-color-text) 9%, transparent);
144
+ --diya-internal-surface-shadow: 0 1px 2px #1014180a, 0 10px 30px -14px #10141824;
145
+ --diya-color-destructive: #a72735;
146
+ --diya-color-neutral-fill: #52616b;
147
+ --diya-color-neutral-on-fill: #fff;
148
+ --diya-color-success-fill: #34c759;
149
+ --diya-color-success-on-fill: #000;
150
+ --diya-color-warning-fill: #ff9f0a;
151
+ --diya-color-warning-on-fill: #000;
152
+ --diya-color-error-fill: #de1c24;
153
+ --diya-color-error-on-fill: #fff;
154
+ --diya-color-info-fill: #0071dc;
155
+ --diya-color-info-on-fill: #fff;
156
+ --diya-color-success: #0d7a33;
157
+ --diya-color-success-surface: #dff6e4;
158
+ --diya-color-warning: #b34700;
159
+ --diya-color-warning-surface: #ffeed3;
160
+ --diya-color-error: #d70015;
161
+ --diya-color-error-surface: #ffe7e6;
162
+ --diya-color-info: #0062cc;
163
+ --diya-color-info-surface: #e0efff;
164
+ --diya-internal-warning-mark: var(--diya-color-warning);
165
+ color-scheme: light;
166
+ }
167
+ @media (prefers-color-scheme: light) {
168
+ .diya-root[data-theme='system'] {
169
+ /* Light is white all the way down: hierarchy comes from hairlines, spacing and type. */
170
+ --diya-color-text: #202627;
171
+ --diya-color-muted: #495659;
172
+ --diya-color-line: #1c1e2024;
173
+ --diya-color-surface: #ffffff;
174
+ --diya-color-recessed: #fafafa;
175
+ --diya-color-raised: #ffffff;
176
+ --diya-color-glass: #ffffff90;
177
+ --diya-color-hover: #2026270a;
178
+ --diya-color-selected: #20262712;
179
+ --diya-color-accent: var(--diya-internal-accent-light, #262626);
180
+ --diya-color-accent-text: var(--diya-internal-accent-text-light, #fafafa);
181
+ --diya-color-accent-soft: var(--diya-internal-accent-soft-light, #2626261f);
182
+ --diya-color-accent-ink: var(--diya-internal-accent-ink-light, #262626);
183
+ --diya-internal-edge: #ffffffa0;
184
+ --diya-internal-highlight: #ffffffdc;
185
+ --diya-shadow-raised: inset 0 1px 0 #ffffff80, 0 10px 30px #0002;
186
+ --diya-internal-surface-border: color-mix(in srgb, var(--diya-color-text) 9%, transparent);
187
+ --diya-internal-surface-shadow: 0 1px 2px #1014180a, 0 10px 30px -14px #10141824;
188
+ --diya-color-destructive: #a72735;
189
+ --diya-color-neutral-fill: #52616b;
190
+ --diya-color-neutral-on-fill: #fff;
191
+ --diya-color-success-fill: #34c759;
192
+ --diya-color-success-on-fill: #000;
193
+ --diya-color-warning-fill: #ff9f0a;
194
+ --diya-color-warning-on-fill: #000;
195
+ --diya-color-error-fill: #de1c24;
196
+ --diya-color-error-on-fill: #fff;
197
+ --diya-color-info-fill: #0071dc;
198
+ --diya-color-info-on-fill: #fff;
199
+ --diya-color-success: #0d7a33;
200
+ --diya-color-success-surface: #dff6e4;
201
+ --diya-color-warning: #b34700;
202
+ --diya-color-warning-surface: #ffeed3;
203
+ --diya-color-error: #d70015;
204
+ --diya-color-error-surface: #ffe7e6;
205
+ --diya-color-info: #0062cc;
206
+ --diya-color-info-surface: #e0efff;
207
+ --diya-internal-warning-mark: var(--diya-color-warning);
208
+ color-scheme: light;
209
+ }
210
+ }
211
+
212
+ /* The provider paints its own ground unless surface={false}. */
213
+ .diya-root[data-surface='true'] {
214
+ background-color: var(--diya-color-surface);
215
+ }
216
+
217
+ /* Resets reach only DIYA's own elements: anything with a diya- class and what DIYA
218
+ renders inside it. Your markup elsewhere in the provider keeps its own styles. */
219
+ :where(.diya-root, .diya-root [class*='diya-'], .diya-root [class*='diya-'] *) {
220
+ box-sizing: border-box;
221
+ }
222
+
223
+ /* Button */
224
+ .diya-root .diya-button {
225
+ position: relative;
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ gap: 8px;
230
+ min-height: 40px;
231
+ padding: 0 20px;
232
+ border: 1px solid transparent;
233
+ border-radius: var(--diya-radius-control, calc(6px * var(--diya-corner-scale, 1)));
234
+ background: var(--diya-color-accent);
235
+ color: var(--diya-color-accent-text);
236
+ font: inherit;
237
+ font-size: var(--diya-text-caption);
238
+ font-weight: 500;
239
+ white-space: nowrap;
240
+ text-decoration: none;
241
+ cursor: pointer;
242
+ -webkit-tap-highlight-color: transparent;
243
+ }
244
+
245
+ .diya-root .diya-button[data-size='small'] {
246
+ min-height: 32px;
247
+ padding-inline: 16px;
248
+ font-size: var(--diya-text-caption);
249
+ }
250
+
251
+ .diya-root .diya-button[data-size='large'] {
252
+ min-height: 48px;
253
+ padding-inline: 24px;
254
+ font-size: var(--diya-text-large);
255
+ }
256
+
257
+ .diya-root .diya-button[data-shape='pill'] {
258
+ border-radius: 999px;
259
+ }
260
+
261
+ .diya-root .diya-button[data-shape='rounded'] {
262
+ border-radius: var(--diya-radius-control, calc(6px * var(--diya-corner-scale, 1)));
263
+ }
264
+
265
+ .diya-root .diya-button[data-variant='outline'] {
266
+ background: var(--diya-internal-outline-fill);
267
+ border-color: var(--diya-color-line);
268
+ color: var(--diya-color-text);
269
+ backdrop-filter: var(--diya-internal-backdrop);
270
+ }
271
+
272
+ .diya-root .diya-button[data-variant='quiet'] {
273
+ background: transparent;
274
+ color: var(--diya-color-text);
275
+ }
276
+
277
+ /* Destructive: the theme's own red, with the page surface as its text. */
278
+ .diya-root .diya-button[data-variant='destructive'] {
279
+ background: var(--diya-color-destructive);
280
+ color: var(--diya-color-raised);
281
+ }
282
+
283
+ .diya-root .diya-button:not(:disabled, [aria-disabled='true']):hover {
284
+ filter: brightness(0.88);
285
+ }
286
+
287
+ .diya-root .diya-button[data-variant='outline']:not(:disabled, [aria-disabled='true']):hover,
288
+ .diya-root .diya-button[data-variant='quiet']:not(:disabled, [aria-disabled='true']):hover {
289
+ background: var(--diya-color-selected);
290
+ filter: none;
291
+ }
292
+
293
+ .diya-root .diya-button:not(:disabled, [aria-disabled='true']):active {
294
+ box-shadow: inset 0 0 0 2px var(--diya-color-line);
295
+ }
296
+
297
+ .diya-root .diya-button:focus-visible {
298
+ outline: 2px solid var(--diya-color-text);
299
+ outline-offset: 4px;
300
+ }
301
+
302
+ .diya-root .diya-button:disabled {
303
+ opacity: 0.4;
304
+ cursor: not-allowed;
305
+ }
306
+
307
+ /* A disabled link or asChild element can't use :disabled. */
308
+ .diya-root .diya-button[aria-disabled='true'] {
309
+ opacity: 0.4;
310
+ cursor: not-allowed;
311
+ pointer-events: none;
312
+ }
313
+
314
+ /* Loading: focusable and inert. The button takes its own clicks (and drops them), with the disabled cursor. */
315
+ .diya-root .diya-button[aria-busy='true'] {
316
+ opacity: 0.8;
317
+ pointer-events: auto;
318
+ }
319
+
320
+ .diya-root .diya-button-progress {
321
+ position: static;
322
+ font-size: var(--diya-text-caption);
323
+ line-height: 1;
324
+ }
325
+
326
+ .diya-root .diya-button svg {
327
+ flex-shrink: 0;
328
+ }
329
+
330
+ .diya-root .diya-button[data-icon-only='true'] {
331
+ width: 40px;
332
+ height: 40px;
333
+ padding: 0;
334
+ }
335
+
336
+ .diya-root .diya-button[data-icon-only='true'][data-size='small'] {
337
+ width: 32px;
338
+ height: 32px;
339
+ }
340
+
341
+ .diya-root .diya-button[data-icon-only='true'][data-size='large'] {
342
+ width: 48px;
343
+ height: 48px;
344
+ }
345
+
346
+ /* Page Header owns the material previously supplied by the preview frame. */
347
+ .diya-root .diya-page-header {
348
+ container-type: inline-size;
349
+ width: 100%;
350
+ padding: 30px;
351
+ border: 1px solid var(--diya-internal-surface-border);
352
+ border-radius: var(--diya-radius-surface);
353
+ box-shadow: var(--diya-internal-surface-shadow);
354
+ background: var(--diya-internal-header-fill);
355
+ color: var(--diya-color-text);
356
+ backdrop-filter: var(--diya-internal-backdrop);
357
+ }
358
+
359
+ .diya-root .diya-page-header-breadcrumbs {
360
+ margin-bottom: 28px;
361
+ }
362
+
363
+ .diya-root .diya-page-header-main {
364
+ display: flex;
365
+ align-items: flex-start;
366
+ justify-content: space-between;
367
+ gap: 32px;
368
+ }
369
+
370
+ .diya-root .diya-page-header-copy {
371
+ min-width: 0;
372
+ }
373
+
374
+ .diya-root .diya-page-header-title,
375
+ .diya-root .diya-page-header-copy > :is(h1, h2, h3, h4, h5, h6) {
376
+ margin: 0;
377
+ color: inherit;
378
+ font-size: var(--diya-text-heading);
379
+ line-height: 1.2;
380
+ letter-spacing: -0.025em;
381
+ font-weight: 540;
382
+ overflow-wrap: anywhere;
383
+ }
384
+
385
+ .diya-root .diya-page-header-description {
386
+ max-width: 62ch;
387
+ margin: 8px 0 0;
388
+ color: var(--diya-color-muted);
389
+ font-size: var(--diya-text-body);
390
+ line-height: 1.65;
391
+ }
392
+
393
+ .diya-root .diya-page-header-tags {
394
+ display: flex;
395
+ flex-wrap: wrap;
396
+ gap: 8px;
397
+ margin-top: 20px;
398
+ }
399
+
400
+ .diya-root .diya-page-header-actions {
401
+ display: flex;
402
+ flex-wrap: wrap;
403
+ flex-shrink: 0;
404
+ gap: 10px;
405
+ }
406
+
407
+ .diya-root .diya-page-header-navigation {
408
+ margin-top: 30px;
409
+ }
410
+
411
+ .diya-root .diya-page-header-navigation .diya-tabs[data-variant='underline'] .diya-tab-list {
412
+ width: 100%;
413
+ }
414
+
415
+ @container (max-width: 620px) {
416
+ .diya-root .diya-page-header-main {
417
+ flex-direction: column;
418
+ gap: 24px;
419
+ }
420
+
421
+ .diya-root .diya-page-header-title,
422
+ .diya-root .diya-page-header-copy > :is(h1, h2, h3, h4, h5, h6) {
423
+ font-size: var(--diya-text-heading);
424
+ }
425
+
426
+ .diya-root .diya-page-header-actions {
427
+ width: 100%;
428
+ }
429
+ }
430
+
431
+ @media (max-width: 500px) {
432
+ .diya-root .diya-page-header {
433
+ padding: 20px;
434
+ }
435
+ }
436
+
437
+ /* surface={false}: the header sits straight on the page, with no panel around it,
438
+ so a screen's first surface is its content. Placed after the padding rule so it wins. */
439
+ .diya-root .diya-page-header[data-surface='false'] {
440
+ padding: 0;
441
+ border: 0;
442
+ border-radius: 0;
443
+ background: none;
444
+ box-shadow: none;
445
+ backdrop-filter: none;
446
+ }
447
+
448
+ /* Breadcrumbs, including the optional collapsed menu. */
449
+ .diya-root .diya-breadcrumbs {
450
+ min-width: 0;
451
+ max-width: 100%;
452
+ color: var(--diya-color-muted);
453
+ font-size: var(--diya-text-body);
454
+ }
455
+
456
+ .diya-root .diya-breadcrumbs ol {
457
+ display: flex;
458
+ flex-wrap: wrap;
459
+ align-items: center;
460
+ gap: 12px;
461
+ margin: 0;
462
+ padding: 0;
463
+ list-style: none;
464
+ }
465
+
466
+ .diya-root .diya-breadcrumbs li {
467
+ display: flex;
468
+ align-items: center;
469
+ gap: 12px;
470
+ min-width: 0;
471
+ max-width: 100%;
472
+ overflow-wrap: anywhere;
473
+ }
474
+
475
+ .diya-root .diya-breadcrumbs a {
476
+ display: inline-flex;
477
+ align-items: center;
478
+ min-height: 28px;
479
+ min-width: 0;
480
+ border-radius: calc(4px * var(--diya-corner-scale, 1));
481
+ color: inherit;
482
+ text-decoration: none;
483
+ }
484
+
485
+ .diya-root .diya-breadcrumbs a:hover {
486
+ color: var(--diya-color-text);
487
+ text-decoration: underline;
488
+ text-underline-offset: 4px;
489
+ }
490
+
491
+ .diya-root .diya-breadcrumbs a:focus-visible {
492
+ outline: 2px solid var(--diya-color-text);
493
+ outline-offset: 4px;
494
+ }
495
+
496
+ .diya-root .diya-breadcrumbs [aria-current='page'] {
497
+ min-width: 0;
498
+ color: var(--diya-color-text);
499
+ font-weight: 500;
500
+ }
501
+
502
+ .diya-root .diya-breadcrumb-separator {
503
+ opacity: 0.6;
504
+ flex-shrink: 0;
505
+ }
506
+
507
+ .diya-root .diya-breadcrumb-collapse .diya-button {
508
+ min-height: 28px;
509
+ padding: 0 10px;
510
+ border-color: transparent;
511
+ font-size: var(--diya-text-caption);
512
+ }
513
+
514
+ .diya-root .diya-floating-surface {
515
+ position: fixed;
516
+ z-index: 1100;
517
+ width: 288px;
518
+ max-width: calc(100vw - 24px);
519
+ max-height: calc(100dvh - 24px);
520
+ overflow: auto;
521
+ margin: 0;
522
+ padding: 20px;
523
+ border: 1px solid var(--diya-internal-overlay-border);
524
+ border-top-color: var(--diya-internal-overlay-top-border);
525
+ border-radius: calc(16px * var(--diya-corner-scale, 1));
526
+ background: var(--diya-internal-overlay-fill);
527
+ color: var(--diya-color-text);
528
+ box-shadow: var(--diya-shadow-raised);
529
+ backdrop-filter: var(--diya-internal-backdrop);
530
+ }
531
+
532
+ .diya-root .diya-floating-menu {
533
+ width: 230px;
534
+ padding: 6px;
535
+ }
536
+
537
+ .diya-root .diya-menu-item {
538
+ display: flex;
539
+ align-items: center;
540
+ gap: 10px;
541
+ width: 100%;
542
+ min-height: 38px;
543
+ padding: 8px 12px;
544
+ border: 0;
545
+ border-radius: calc(10px * var(--diya-corner-scale, 1));
546
+ background: transparent;
547
+ color: var(--diya-color-text);
548
+ text-align: left;
549
+ font: inherit;
550
+ font-size: var(--diya-text-body);
551
+ cursor: pointer;
552
+ }
553
+
554
+ .diya-root .diya-menu-item:hover:not(:disabled),
555
+ .diya-root .diya-menu-item:focus-visible {
556
+ background: var(--diya-color-selected);
557
+ }
558
+
559
+ .diya-root .diya-menu-item:focus-visible {
560
+ outline: 2px solid var(--diya-color-text);
561
+ outline-offset: -2px;
562
+ }
563
+
564
+ .diya-root .diya-menu-item:disabled {
565
+ opacity: 0.4;
566
+ cursor: not-allowed;
567
+ }
568
+
569
+ .diya-root .diya-menu-item[data-destructive='true'] {
570
+ color: var(--diya-color-destructive);
571
+ }
572
+
573
+ .diya-root a.diya-menu-item {
574
+ text-decoration: none;
575
+ }
576
+
577
+ .diya-root .diya-menu-item[aria-current='page'] {
578
+ font-weight: 500;
579
+ }
580
+
581
+ .diya-root .diya-menu-shortcut {
582
+ margin-left: auto;
583
+ color: var(--diya-color-muted);
584
+ font-size: var(--diya-text-caption);
585
+ }
586
+
587
+ .diya-root .diya-menu-icon {
588
+ display: inline-flex;
589
+ flex-shrink: 0;
590
+ }
591
+
592
+ .diya-root .diya-menu-item > span:not([aria-hidden]) { flex:1; min-width:0; overflow-wrap:anywhere; }
593
+ .diya-root .diya-menu-shortcut { flex-shrink:0; white-space:nowrap; }
594
+
595
+ .diya-root .diya-menu-separator {
596
+ margin: 5px 8px;
597
+ border-top: 1px solid var(--diya-color-line);
598
+ }
599
+
600
+ /* Tabs */
601
+ .diya-root .diya-tabs {
602
+ width: 100%;
603
+ color: var(--diya-color-text);
604
+ }
605
+
606
+ .diya-root .diya-tab-list {
607
+ display: flex;
608
+ align-items: center;
609
+ gap: 8px;
610
+ width: fit-content;
611
+ max-width: 100%;
612
+ overflow-x: auto;
613
+ padding: 4px;
614
+ background: var(--diya-internal-tabs-fill);
615
+ backdrop-filter: var(--diya-internal-backdrop);
616
+ }
617
+
618
+ /* Underline Tabs have no track, so Glass gives them no pane either. */
619
+ .diya-root .diya-tabs[data-variant='underline'] .diya-tab-list {
620
+ gap: 24px;
621
+ padding: 0;
622
+ border-bottom: 1px solid color-mix(in srgb, var(--diya-color-line) 55%, transparent);
623
+ border-radius: 0;
624
+ background: transparent;
625
+ backdrop-filter: none;
626
+ }
627
+
628
+ .diya-root .diya-tab {
629
+ position: relative;
630
+ display: inline-flex;
631
+ align-items: center;
632
+ justify-content: center;
633
+ flex-shrink: 0;
634
+ gap: 8px;
635
+ min-height: 40px;
636
+ padding: 0 18px;
637
+ border: 0;
638
+ border-radius: 999px;
639
+ background: transparent;
640
+ color: var(--diya-color-muted);
641
+ font: inherit;
642
+ font-size: var(--diya-text-body);
643
+ font-weight: 500;
644
+ white-space: nowrap;
645
+ cursor: pointer;
646
+ }
647
+
648
+ .diya-root .diya-tab:hover:not(:disabled) {
649
+ background: var(--diya-color-hover);
650
+ color: var(--diya-color-text);
651
+ }
652
+
653
+ .diya-root .diya-tab[aria-selected='true'] {
654
+ color: var(--diya-color-text);
655
+ }
656
+
657
+ /* In Glass a pill Tabs track shows; it is a capsule like its thumb. */
658
+ .diya-root[data-glass='true'] .diya-tabs[data-variant='pill'] .diya-tab-list {
659
+ border-radius: 999px;
660
+ }
661
+
662
+ .diya-root .diya-tabs[data-variant='pill'] .diya-tab[aria-selected='true'] {
663
+ background: var(--diya-color-accent);
664
+ color: var(--diya-color-accent-text);
665
+ }
666
+
667
+ .diya-root .diya-tabs[data-variant='underline'] .diya-tab {
668
+ padding-inline: 4px;
669
+ border-radius: 4px 4px 0 0;
670
+ font-weight: 400;
671
+ }
672
+
673
+ .diya-root .diya-tabs[data-variant='underline'] .diya-tab[aria-selected='true'] {
674
+ font-weight: 600;
675
+ }
676
+
677
+ .diya-root .diya-tabs[data-variant='underline'] .diya-tab[aria-selected='true']::after {
678
+ position: absolute;
679
+ right: 0;
680
+ bottom: 0;
681
+ left: 0;
682
+ height: 2px;
683
+ border-radius: 2px;
684
+ background: currentColor;
685
+ content: '';
686
+ }
687
+
688
+ .diya-root .diya-tab:disabled {
689
+ opacity: 0.4;
690
+ cursor: not-allowed;
691
+ }
692
+
693
+ .diya-root .diya-tabs .diya-tab:focus-visible,
694
+ .diya-root .diya-tab-panel:focus-visible {
695
+ outline: 2px solid var(--diya-color-text);
696
+ outline-offset: 2px;
697
+ }
698
+
699
+ .diya-root .diya-tabs[data-variant='underline'] .diya-tab:focus-visible {
700
+ outline-offset: -2px;
701
+ }
702
+
703
+ .diya-root .diya-tab-icon {
704
+ display: inline-flex;
705
+ }
706
+
707
+ .diya-root .diya-tab-icon svg {
708
+ width: 16px;
709
+ height: 16px;
710
+ }
711
+
712
+ .diya-root .diya-tabs[data-size='small'] .diya-tab {
713
+ gap: 6px;
714
+ min-height: 32px;
715
+ padding-inline: 14px;
716
+ font-size: var(--diya-text-caption);
717
+ }
718
+
719
+ .diya-root .diya-tabs[data-size='large'] .diya-tab {
720
+ gap: 10px;
721
+ min-height: 48px;
722
+ padding-inline: 22px;
723
+ font-size: var(--diya-text-large);
724
+ }
725
+
726
+ .diya-root .diya-tab-panel {
727
+ margin-top: 24px;
728
+ border-radius: calc(8px * var(--diya-corner-scale, 1));
729
+ }
730
+
731
+ .diya-root .diya-tab-panel[hidden] {
732
+ display: none;
733
+ }
734
+
735
+ .diya-root .diya-tabs[data-variant='pill'] .diya-tab[aria-selected='true'] .diya-badge[data-color='neutral'] {
736
+ --diya-internal-badge-fill: var(--diya-color-accent-text);
737
+ --diya-internal-badge-ink: var(--diya-color-accent);
738
+ }
739
+
740
+ /* Badge */
741
+ .diya-root .diya-badge {
742
+ --diya-internal-badge-fill: var(--diya-color-neutral-fill);
743
+ --diya-internal-badge-ink: var(--diya-color-neutral-on-fill);
744
+ display: inline-flex;
745
+ align-items: center;
746
+ justify-content: center;
747
+ flex-shrink: 0;
748
+ border-radius: 999px;
749
+ background: var(--diya-internal-badge-fill);
750
+ color: var(--diya-internal-badge-ink);
751
+ vertical-align: middle;
752
+ font-family: inherit;
753
+ font-weight: 600;
754
+ line-height: 1;
755
+ }
756
+
757
+ .diya-root .diya-badge[data-color='success'] {
758
+ --diya-internal-badge-fill: var(--diya-color-success-fill);
759
+ --diya-internal-badge-ink: var(--diya-color-success-on-fill);
760
+ }
761
+ .diya-root .diya-badge[data-color='warning'] {
762
+ --diya-internal-badge-fill: var(--diya-color-warning-fill);
763
+ --diya-internal-badge-ink: var(--diya-color-warning-on-fill);
764
+ }
765
+ .diya-root .diya-badge[data-color='error'] { --diya-internal-badge-fill: var(--diya-color-error-fill); --diya-internal-badge-ink: var(--diya-color-error-on-fill); }
766
+ .diya-root .diya-badge[data-color='info'] { --diya-internal-badge-fill: var(--diya-color-info-fill); --diya-internal-badge-ink: var(--diya-color-info-on-fill); }
767
+ .diya-root .diya-badge[data-color='brand'] { --diya-internal-badge-fill: var(--diya-color-accent); --diya-internal-badge-ink: var(--diya-color-accent-text); }
768
+
769
+ .diya-root .diya-badge[data-variant='dot'] {
770
+ width: 9px;
771
+ height: 9px;
772
+ }
773
+
774
+ .diya-root .diya-badge[data-variant='dot'][data-size='small'] {
775
+ width: 6px;
776
+ height: 6px;
777
+ }
778
+
779
+ .diya-root .diya-badge[data-variant='dot'][data-size='large'] {
780
+ width: 12px;
781
+ height: 12px;
782
+ }
783
+
784
+ .diya-root .diya-badge[data-variant='count'] {
785
+ width: fit-content;
786
+ min-width: 22px;
787
+ height: 22px;
788
+ padding: 0 6px;
789
+ font-size: var(--diya-text-caption);
790
+ }
791
+
792
+ .diya-root .diya-badge[data-variant='count'][data-size='small'] {
793
+ min-width: 20px;
794
+ height: 20px;
795
+ padding: 0 5px;
796
+ font-size: var(--diya-text-caption);
797
+ }
798
+
799
+ .diya-root .diya-badge[data-variant='count'][data-size='large'] {
800
+ min-width: 26px;
801
+ height: 26px;
802
+ padding: 0 8px;
803
+ font-size: var(--diya-text-caption);
804
+ }
805
+
806
+ .diya-root .diya-badge[data-variant='count'][data-multiple='true'] { padding-inline: 9px; }
807
+ .diya-root .diya-badge[data-variant='count'][data-multiple='true'][data-size='small'] { padding-inline: 8px; }
808
+ .diya-root .diya-badge[data-variant='count'][data-multiple='true'][data-size='large'] { padding-inline: 11px; }
809
+
810
+ /* Keep pale/custom indicator fills visible without changing their dimensions. */
811
+ @media (forced-colors: none) {
812
+ .diya-root[data-theme='light'] .diya-badge[data-variant='dot'][data-color='warning'] { box-shadow:inset 0 0 0 1px var(--diya-color-warning); }
813
+ @media (prefers-color-scheme: light) {
814
+ .diya-root[data-theme='system'] .diya-badge[data-variant='dot'][data-color='warning'] { box-shadow:inset 0 0 0 1px var(--diya-color-warning); }
815
+ }
816
+ .diya-root .diya-badge[data-variant='dot'][data-color='brand'] { box-shadow:inset 0 0 0 1px var(--diya-color-accent-ink, var(--diya-color-accent)); }
817
+ }
818
+
819
+ /* Tag */
820
+ .diya-root .diya-tag {
821
+ display: inline-flex;
822
+ width: fit-content;
823
+ align-items: center;
824
+ gap: 7px;
825
+ min-height: 28px;
826
+ padding: 5px 9px;
827
+ border-radius: calc(7px * var(--diya-corner-scale, 1));
828
+ background: var(--diya-color-selected);
829
+ color: var(--diya-color-text);
830
+ font-size: var(--diya-text-caption);
831
+ line-height: 18px;
832
+ min-width: 0;
833
+ max-width: 100%;
834
+ white-space: normal;
835
+ }
836
+
837
+ .diya-root .diya-tag > span:not([aria-hidden]) { min-width:0; overflow-wrap:anywhere; }
838
+
839
+ .diya-root .diya-tag[data-size='small'] {
840
+ min-height: 24px;
841
+ padding: 3px 7px;
842
+ font-size: var(--diya-text-caption);
843
+ }
844
+
845
+ .diya-root .diya-tag[data-size='large'] {
846
+ min-height: 34px;
847
+ padding: 7px 12px;
848
+ font-size: var(--diya-text-body);
849
+ }
850
+
851
+ .diya-root .diya-tag-icon,
852
+ .diya-root .diya-tag > span[aria-hidden] {
853
+ display: inline-flex;
854
+ align-items: center;
855
+ }
856
+
857
+ .diya-root .diya-tag button {
858
+ display: grid;
859
+ place-items: center;
860
+ width: 24px;
861
+ height: 24px;
862
+ flex: 0 0 24px;
863
+ margin: -3px -4px -3px 0;
864
+ padding: 0;
865
+ border: 0;
866
+ border-radius: calc(5px * var(--diya-corner-scale, 1));
867
+ background: transparent;
868
+ color: var(--diya-color-muted);
869
+ font: inherit;
870
+ cursor: pointer;
871
+ }
872
+
873
+ .diya-root .diya-tag button:hover {
874
+ background: var(--diya-color-hover);
875
+ color: var(--diya-color-text);
876
+ }
877
+
878
+ .diya-root .diya-tag button:focus-visible {
879
+ outline: 2px solid var(--diya-color-text);
880
+ outline-offset: 3px;
881
+ }
882
+
883
+ .diya-root .diya-tag[data-color='success'] {
884
+ --diya-internal-tag-tone: var(--diya-color-success);
885
+ --diya-internal-tag-surface: var(--diya-color-success-surface);
886
+ }
887
+ .diya-root .diya-tag[data-color='warning'] {
888
+ --diya-internal-tag-tone: var(--diya-color-warning);
889
+ --diya-internal-tag-surface: var(--diya-color-warning-surface);
890
+ }
891
+ .diya-root .diya-tag[data-color='error'] {
892
+ --diya-internal-tag-tone: var(--diya-color-error);
893
+ --diya-internal-tag-surface: var(--diya-color-error-surface);
894
+ }
895
+ .diya-root .diya-tag[data-color='info'] {
896
+ --diya-internal-tag-tone: var(--diya-color-info);
897
+ --diya-internal-tag-surface: var(--diya-color-info-surface);
898
+ }
899
+
900
+ .diya-root .diya-tag:is([data-color='success'], [data-color='warning'], [data-color='error'], [data-color='info']) {
901
+ background: var(--diya-internal-tag-surface, color-mix(in srgb, var(--diya-internal-tag-tone) 18%, transparent));
902
+ color: var(--diya-internal-tag-tone);
903
+ font-weight: 500;
904
+ }
905
+
906
+ .diya-root .diya-tag[data-color='brand'] {
907
+ background: var(--diya-color-accent-soft, color-mix(in srgb, var(--diya-color-accent) 12%, transparent));
908
+ color: var(--diya-color-accent-ink, var(--diya-color-accent));
909
+ font-weight: 500;
910
+ }
911
+
912
+ .diya-root .diya-tag[data-color='brand'] .diya-badge {
913
+ background: var(--diya-color-accent);
914
+ }
915
+
916
+ .diya-root .diya-tag[data-color] button {
917
+ color: inherit;
918
+ }
919
+
920
+ /* Unsupported browsers retain the solid material above. */
921
+ @supports (backdrop-filter: blur(14px)) {
922
+ .diya-root[data-glass='true'] {
923
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 78%, transparent);
924
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 72%, transparent);
925
+ --diya-internal-overlay-border: var(--diya-internal-edge);
926
+ --diya-internal-overlay-top-border: var(--diya-internal-highlight);
927
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 72%, transparent);
928
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 22%, transparent);
929
+ --diya-internal-backdrop: var(--diya-internal-blur);
930
+ }
931
+
932
+ /* Light Glass reads as clear glass, not a gray wash: more white, a deeper blur that
933
+ lifts what's behind it, and bright edges that catch the light along the top. */
934
+ .diya-root[data-glass='true']:where([data-theme='light']) {
935
+ --diya-internal-blur: blur(24px) saturate(1.5) brightness(1.06);
936
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
937
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
938
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
939
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 40%, transparent);
940
+ --diya-internal-header-border: color-mix(in srgb, var(--diya-color-text) 11%, transparent);
941
+ --diya-shadow-raised: inset 0 1px 0 #ffffff, 0 10px 30px #0000001a;
942
+ }
943
+ @media (prefers-color-scheme: light) {
944
+ .diya-root[data-glass='true']:where([data-theme='system']) {
945
+ --diya-internal-blur: blur(24px) saturate(1.5) brightness(1.06);
946
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
947
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
948
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
949
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 40%, transparent);
950
+ --diya-internal-header-border: color-mix(in srgb, var(--diya-color-text) 11%, transparent);
951
+ --diya-shadow-raised: inset 0 1px 0 #ffffff, 0 10px 30px #0000001a;
952
+ }
953
+ }
954
+ }
955
+
956
+ @media (prefers-reduced-transparency: reduce) {
957
+ .diya-root[data-glass='true'] {
958
+ --diya-internal-header-border: color-mix(in srgb, var(--diya-color-text) 18%, transparent);
959
+ --diya-internal-header-fill: var(--diya-color-raised);
960
+ --diya-internal-overlay-fill: var(--diya-color-raised);
961
+ --diya-internal-tabs-fill: var(--diya-color-raised);
962
+ --diya-internal-outline-fill: var(--diya-color-raised);
963
+ --diya-internal-backdrop: none;
964
+ }
965
+ }
966
+
967
+ @media (forced-colors: active) {
968
+ .diya-root,
969
+ .diya-root[data-theme='light'],
970
+ .diya-root[data-theme='dark'] {
971
+ --diya-color-text: CanvasText;
972
+ --diya-color-muted: CanvasText;
973
+ --diya-color-line: ButtonText;
974
+ --diya-color-surface: Canvas;
975
+ --diya-color-recessed: Canvas;
976
+ --diya-color-raised: Canvas;
977
+ --diya-color-glass: Canvas;
978
+ --diya-color-hover: Canvas;
979
+ --diya-color-selected: Canvas;
980
+ --diya-color-accent: Highlight;
981
+ --diya-color-accent-text: HighlightText;
982
+ --diya-internal-edge: CanvasText;
983
+ --diya-internal-highlight: CanvasText;
984
+ --diya-shadow-raised: none;
985
+ }
986
+ @media (prefers-color-scheme: light) {
987
+ .diya-root[data-theme='system'] {
988
+ --diya-color-text: CanvasText;
989
+ --diya-color-muted: CanvasText;
990
+ --diya-color-line: ButtonText;
991
+ --diya-color-surface: Canvas;
992
+ --diya-color-recessed: Canvas;
993
+ --diya-color-raised: Canvas;
994
+ --diya-color-glass: Canvas;
995
+ --diya-color-hover: Canvas;
996
+ --diya-color-selected: Canvas;
997
+ --diya-color-accent: Highlight;
998
+ --diya-color-accent-text: HighlightText;
999
+ --diya-internal-edge: CanvasText;
1000
+ --diya-internal-highlight: CanvasText;
1001
+ --diya-shadow-raised: none;
1002
+ }
1003
+ }
1004
+ @media (prefers-color-scheme: dark) {
1005
+ .diya-root[data-theme='system'] {
1006
+ --diya-color-text: CanvasText;
1007
+ --diya-color-muted: CanvasText;
1008
+ --diya-color-line: ButtonText;
1009
+ --diya-color-surface: Canvas;
1010
+ --diya-color-recessed: Canvas;
1011
+ --diya-color-raised: Canvas;
1012
+ --diya-color-glass: Canvas;
1013
+ --diya-color-hover: Canvas;
1014
+ --diya-color-selected: Canvas;
1015
+ --diya-color-accent: Highlight;
1016
+ --diya-color-accent-text: HighlightText;
1017
+ --diya-internal-edge: CanvasText;
1018
+ --diya-internal-highlight: CanvasText;
1019
+ --diya-shadow-raised: none;
1020
+ }
1021
+ }
1022
+
1023
+ .diya-root .diya-page-header,
1024
+ .diya-root[data-theme='dark'] .diya-page-header,
1025
+ .diya-root[data-glass='true'] .diya-page-header,
1026
+ .diya-root .diya-floating-surface,
1027
+ .diya-root[data-glass='true'] .diya-floating-surface {
1028
+ border-color: CanvasText;
1029
+ background: Canvas;
1030
+ color: CanvasText;
1031
+ box-shadow: none;
1032
+ backdrop-filter: none;
1033
+ }
1034
+ @media (prefers-color-scheme: dark) {
1035
+ .diya-root[data-theme='system'] .diya-page-header {
1036
+ border-color: CanvasText;
1037
+ background: Canvas;
1038
+ color: CanvasText;
1039
+ box-shadow: none;
1040
+ backdrop-filter: none;
1041
+ }
1042
+ }
1043
+
1044
+ .diya-root .diya-tab-list,
1045
+ .diya-root[data-glass='true'] .diya-tab-list {
1046
+ border-color: CanvasText;
1047
+ background: Canvas;
1048
+ backdrop-filter: none;
1049
+ }
1050
+
1051
+ .diya-root .diya-button,
1052
+ .diya-root .diya-button[data-variant='outline'],
1053
+ .diya-root .diya-button[data-variant='quiet'],
1054
+ .diya-root[data-glass='true'] .diya-button[data-variant='outline'] {
1055
+ border-color: ButtonText;
1056
+ background: ButtonFace;
1057
+ color: ButtonText;
1058
+ backdrop-filter: none;
1059
+ filter: none;
1060
+ }
1061
+
1062
+ .diya-root .diya-button:disabled,
1063
+ .diya-root .diya-button[aria-disabled='true'],
1064
+ .diya-root .diya-tab:disabled,
1065
+ .diya-root .diya-menu-item:disabled {
1066
+ opacity: 1;
1067
+ color: GrayText;
1068
+ border-color: GrayText;
1069
+ }
1070
+
1071
+ .diya-root .diya-tab[aria-selected='true'] {
1072
+ outline: 2px solid Highlight;
1073
+ outline-offset: -2px;
1074
+ }
1075
+
1076
+ .diya-root .diya-badge,
1077
+ .diya-root .diya-tag[data-color='brand'] .diya-badge {
1078
+ forced-color-adjust: none;
1079
+ background: CanvasText;
1080
+ color: Canvas;
1081
+ box-shadow: 0 0 0 1px Canvas;
1082
+ }
1083
+
1084
+ .diya-root .diya-tag[data-color],
1085
+ .diya-root .diya-tag[data-color='brand'] {
1086
+ border: 1px solid CanvasText;
1087
+ background: Canvas;
1088
+ color: CanvasText;
1089
+ }
1090
+
1091
+ .diya-root .diya-menu-item[data-destructive='true'],
1092
+ .diya-root[data-theme='light'] .diya-menu-item[data-destructive='true'] {
1093
+ color: CanvasText;
1094
+ }
1095
+ @media (prefers-color-scheme: light) {
1096
+ .diya-root[data-theme='system'] .diya-menu-item[data-destructive='true'] {
1097
+ color: CanvasText;
1098
+ }
1099
+ }
1100
+ }
1101
+
1102
+
1103
+ /* iOS Safari zooms the page when a field's text is under 16px, so on touch screens every
1104
+ text field is at least 16px. Desktop sizes stay as they are, and large fields are larger. */
1105
+ @media (pointer: coarse) {
1106
+ .diya-root { --diya-internal-field-min: 16px; }
1107
+ }
1108
+
1109
+ /* Shared defaults required by the components. Zero specificity, and only on DIYA's own
1110
+ elements and what it renders inside them, never on the rest of your page. */
1111
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(button, input, select, textarea),
1112
+ :where(.diya-root) :where(button, input, select, textarea)[class*='diya-'] {
1113
+ font: inherit;
1114
+ color: inherit;
1115
+ }
1116
+
1117
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(button, a, input, select, textarea, summary),
1118
+ :where(.diya-root) :where(button, a, input, select, textarea, summary)[class*='diya-'] {
1119
+ -webkit-tap-highlight-color: transparent;
1120
+ }
1121
+
1122
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(button),
1123
+ :where(.diya-root) :where(button)[class*='diya-'] {
1124
+ cursor: pointer;
1125
+ background: none;
1126
+ border: 0;
1127
+ }
1128
+
1129
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(button):disabled,
1130
+ :where(.diya-root) :where(button)[class*='diya-']:disabled {
1131
+ cursor: not-allowed;
1132
+ opacity: 0.5;
1133
+ }
1134
+
1135
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(a),
1136
+ :where(.diya-root) :where(a)[class*='diya-'] {
1137
+ color: inherit;
1138
+ text-decoration: none;
1139
+ }
1140
+
1141
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(h1, h2, h3, h4, h5, h6),
1142
+ :where(.diya-root) :where(h1, h2, h3, h4, h5, h6)[class*='diya-'] {
1143
+ margin: 0;
1144
+ font-weight: 500;
1145
+ letter-spacing: -0.035em;
1146
+ }
1147
+
1148
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(p),
1149
+ :where(.diya-root) :where(p)[class*='diya-'] {
1150
+ margin: 0;
1151
+ color: var(--diya-color-muted);
1152
+ line-height: 1.6;
1153
+ }
1154
+
1155
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(svg),
1156
+ :where(.diya-root) :where(svg)[class*='diya-'] {
1157
+ flex-shrink: 0;
1158
+ }
1159
+
1160
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(small),
1161
+ :where(.diya-root) :where(small)[class*='diya-'] {
1162
+ font-size: var(--diya-text-caption);
1163
+ }
1164
+
1165
+ :where(.diya-root [class*='diya-']:not(.diya-root, .diya-portal-root)) :where(a, button, input, select, textarea, summary):focus-visible,
1166
+ :where(.diya-root) :where(a, button, input, select, textarea, summary)[class*='diya-']:focus-visible {
1167
+ outline: 2px solid var(--diya-color-text);
1168
+ outline-offset: 4px;
1169
+ }
1170
+
1171
+ /* Stack and Inline. Low specificity, so your className can change any of it. */
1172
+ :where(.diya-stack, .diya-inline) {
1173
+ display: flex;
1174
+ gap: var(--diya-internal-gap);
1175
+ min-width: 0;
1176
+ }
1177
+
1178
+ :where(.diya-stack) {
1179
+ flex-direction: column;
1180
+ }
1181
+
1182
+ :where(.diya-stack, .diya-inline)[data-wrap='true'] { flex-wrap: wrap; }
1183
+ :where(.diya-stack, .diya-inline)[data-gap='0'] { --diya-internal-gap: 0px; }
1184
+ :where(.diya-stack, .diya-inline)[data-gap='1'] { --diya-internal-gap: var(--diya-space-1, 4px); }
1185
+ :where(.diya-stack, .diya-inline)[data-gap='2'] { --diya-internal-gap: var(--diya-space-2, 8px); }
1186
+ :where(.diya-stack, .diya-inline)[data-gap='3'] { --diya-internal-gap: var(--diya-space-3, 12px); }
1187
+ :where(.diya-stack, .diya-inline)[data-gap='4'] { --diya-internal-gap: var(--diya-space-4, 16px); }
1188
+ :where(.diya-stack, .diya-inline)[data-gap='5'] { --diya-internal-gap: var(--diya-space-5, 24px); }
1189
+ :where(.diya-stack, .diya-inline)[data-gap='6'] { --diya-internal-gap: var(--diya-space-6, 32px); }
1190
+ :where(.diya-stack, .diya-inline)[data-gap='7'] { --diya-internal-gap: var(--diya-space-7, 48px); }
1191
+ :where(.diya-stack, .diya-inline)[data-gap='8'] { --diya-internal-gap: var(--diya-space-8, 64px); }
1192
+ :where(.diya-stack, .diya-inline)[data-align='start'] { align-items: flex-start; }
1193
+ :where(.diya-stack, .diya-inline)[data-align='center'] { align-items: center; }
1194
+ :where(.diya-stack, .diya-inline)[data-align='end'] { align-items: flex-end; }
1195
+ :where(.diya-stack, .diya-inline)[data-align='stretch'] { align-items: stretch; }
1196
+ :where(.diya-stack, .diya-inline)[data-align='baseline'] { align-items: baseline; }
1197
+ :where(.diya-stack, .diya-inline)[data-justify='start'] { justify-content: flex-start; }
1198
+ :where(.diya-stack, .diya-inline)[data-justify='center'] { justify-content: center; }
1199
+ :where(.diya-stack, .diya-inline)[data-justify='end'] { justify-content: flex-end; }
1200
+ :where(.diya-stack, .diya-inline)[data-justify='between'] { justify-content: space-between; }
1201
+ :where(.diya-stack, .diya-inline)[data-justify='around'] { justify-content: space-around; }
1202
+ :where(.diya-stack, .diya-inline)[data-justify='evenly'] { justify-content: space-evenly; }
1203
+
1204
+ /* TextInputLibrary.css: portable component rules. */
1205
+ .diya-root .diya-text-field {
1206
+ --diya-internal-field-height: 40px;
1207
+ --diya-internal-field-font-size: max(var(--diya-internal-field-min, 0px), var(--diya-text-body));
1208
+ width: 100%;
1209
+ min-width: 0;
1210
+ max-width: min(100%, 400px);
1211
+ color: var(--diya-color-text);
1212
+ }
1213
+ .diya-root .diya-text-field[data-size='small'] {
1214
+ --diya-internal-field-height: 32px;
1215
+ --diya-internal-field-font-size: max(var(--diya-internal-field-min, 0px), var(--diya-text-caption));
1216
+ }
1217
+ .diya-root .diya-text-field[data-size='large'] {
1218
+ --diya-internal-field-height: 48px;
1219
+ --diya-internal-field-font-size: var(--diya-text-large);
1220
+ }
1221
+ .diya-root .diya-text-field > label {
1222
+ display: block;
1223
+ font-size: var(--diya-text-body);
1224
+ font-weight: 500;
1225
+ margin-bottom: 10px;
1226
+ overflow-wrap: anywhere;
1227
+ }
1228
+ .diya-root .diya-text-field-control {
1229
+ display: flex;
1230
+ align-items: center;
1231
+ gap: 10px;
1232
+ border: 1px solid var(--diya-color-line);
1233
+ border-radius: var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1)));
1234
+ background: var(--diya-color-hover);
1235
+ padding: 0 14px;
1236
+ height: var(--diya-internal-field-height);
1237
+ min-height: var(--diya-internal-field-height);
1238
+ }
1239
+ .diya-root .diya-text-field .diya-text-field-control input {
1240
+ appearance: none;
1241
+ background: transparent;
1242
+ border: 0;
1243
+ box-shadow: none;
1244
+ border-radius: 0;
1245
+ color: var(--diya-color-text);
1246
+ font: inherit;
1247
+ font-size: var(--diya-internal-field-font-size);
1248
+ width: 100%;
1249
+ min-width: 0;
1250
+ height: calc(var(--diya-internal-field-height) - 2px);
1251
+ padding: 0;
1252
+ outline: none;
1253
+ }
1254
+ .diya-root .diya-text-field-control:focus-within {
1255
+ outline: 2px solid var(--diya-color-text);
1256
+ outline-offset: 3px;
1257
+ }
1258
+ .diya-root .diya-text-field input:focus-visible {
1259
+ outline: none;
1260
+ }
1261
+ .diya-root .diya-text-field input::placeholder {
1262
+ color: var(--diya-color-muted);
1263
+ opacity: 1;
1264
+ }
1265
+ .diya-root .diya-text-field-leading {
1266
+ display: flex;
1267
+ color: var(--diya-color-muted);
1268
+ }
1269
+ .diya-root .diya-text-field-clear {
1270
+ display: grid;
1271
+ place-items: center;
1272
+ width: 28px;
1273
+ height: 28px;
1274
+ flex-shrink: 0;
1275
+ color: var(--diya-color-muted);
1276
+ border-radius: calc(6px * var(--diya-corner-scale, 1));
1277
+ }
1278
+ .diya-root .diya-text-field-clear:not(:disabled):hover {
1279
+ color: var(--diya-color-text);
1280
+ background: var(--diya-color-selected);
1281
+ }
1282
+ .diya-root .diya-text-field-clear:disabled {
1283
+ opacity: 0.3;
1284
+ cursor: not-allowed;
1285
+ }
1286
+ .diya-root .diya-text-field-description {
1287
+ color: var(--diya-color-muted);
1288
+ font-size: var(--diya-text-caption);
1289
+ line-height: 1.6;
1290
+ margin: 10px 0 0;
1291
+ display: flex;
1292
+ gap: 8px;
1293
+ align-items: baseline;
1294
+ min-width: 0;
1295
+ overflow-wrap: anywhere;
1296
+ }
1297
+ .diya-root .diya-text-field-description > span,
1298
+ .diya-root .diya-field-help > span,
1299
+ .diya-root .diya-switch-description > span {
1300
+ display: inline-grid;
1301
+ place-items: center;
1302
+ border: 1px solid currentColor;
1303
+ border-radius: 50%;
1304
+ font-size: var(--diya-text-caption);
1305
+ width: 14px;
1306
+ height: 14px;
1307
+ flex-shrink: 0;
1308
+ line-height: 1;
1309
+ }
1310
+ .diya-root .diya-text-field[data-disabled='true'] {
1311
+ opacity: 0.45;
1312
+ }
1313
+ .diya-root .diya-text-field input:disabled {
1314
+ cursor: not-allowed;
1315
+ }
1316
+ .diya-root .diya-sr-only {
1317
+ position: absolute;
1318
+ width: 1px;
1319
+ height: 1px;
1320
+ padding: 0;
1321
+ overflow: hidden;
1322
+ clip-path: inset(50%);
1323
+ white-space: nowrap;
1324
+ }
1325
+ @media (forced-colors: active) {
1326
+ .diya-root .diya-text-field-control {
1327
+ border-color: ButtonText;
1328
+ }
1329
+ .diya-root .diya-text-field[data-disabled='true'] {
1330
+ opacity: 1;
1331
+ color: GrayText;
1332
+ }
1333
+ }
1334
+
1335
+
1336
+ /* SelectLibrary.css: portable component rules. */
1337
+ .diya-root .diya-select-control {
1338
+ position: relative;
1339
+ border: 1px solid var(--diya-color-line);
1340
+ border-radius: var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1)));
1341
+ background: var(--diya-color-hover);
1342
+ height: var(--diya-internal-field-height);
1343
+ min-height: var(--diya-internal-field-height);
1344
+ }
1345
+ .diya-root .diya-select-control select {
1346
+ appearance: none;
1347
+ display: block;
1348
+ width: 100%;
1349
+ min-width: 0;
1350
+ height: calc(var(--diya-internal-field-height) - 2px);
1351
+ padding: 0 40px 0 14px;
1352
+ background: transparent;
1353
+ border: 0;
1354
+ border-radius: var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1)));
1355
+ box-shadow: none;
1356
+ color: var(--diya-color-text);
1357
+ font: inherit;
1358
+ font-size: var(--diya-internal-field-font-size);
1359
+ cursor: pointer;
1360
+ }
1361
+ .diya-root .diya-select-control select option {
1362
+ background: var(--diya-color-surface);
1363
+ color: var(--diya-color-text);
1364
+ }
1365
+ .diya-root .diya-select-control select option:disabled {
1366
+ color: var(--diya-color-muted);
1367
+ }
1368
+ .diya-root .diya-select-control:has(.diya-select-leading) select {
1369
+ padding-left: 40px;
1370
+ }
1371
+ .diya-root .diya-select-leading {
1372
+ position: absolute;
1373
+ left: 14px;
1374
+ top: 50%;
1375
+ transform: translateY(-50%);
1376
+ display: flex;
1377
+ color: var(--diya-color-muted);
1378
+ pointer-events: none;
1379
+ }
1380
+ .diya-root .diya-select-chevron {
1381
+ position: absolute;
1382
+ right: 14px;
1383
+ top: 50%;
1384
+ transform: translateY(-50%);
1385
+ color: var(--diya-color-muted);
1386
+ pointer-events: none;
1387
+ }
1388
+ .diya-root .diya-select-control select:disabled {
1389
+ cursor: not-allowed;
1390
+ }
1391
+ @media (forced-colors: active) {
1392
+ .diya-root .diya-select-control {
1393
+ border-color: ButtonText;
1394
+ }
1395
+ }
1396
+
1397
+
1398
+ /* ChoiceLibrary.css: portable component rules. */
1399
+ .diya-root .diya-choice {
1400
+ --diya-internal-choice-control: 18px;
1401
+ --diya-internal-choice-font: var(--diya-text-body);
1402
+ border: 0;
1403
+ margin: 0;
1404
+ padding: 0;
1405
+ width: fit-content;
1406
+ max-width: 100%;
1407
+ min-width: 0;
1408
+ color: var(--diya-color-text);
1409
+ }
1410
+ .diya-root .diya-choice > legend {
1411
+ padding: 0;
1412
+ margin-bottom: 18px;
1413
+ font-size: var(--diya-text-body);
1414
+ font-weight: 500;
1415
+ max-width: 100%;
1416
+ overflow-wrap: anywhere;
1417
+ }
1418
+ .diya-root .diya-choice-items {
1419
+ display: flex;
1420
+ flex-direction: column;
1421
+ gap: 4px;
1422
+ }
1423
+ .diya-root .diya-choice-option {
1424
+ display: flex;
1425
+ align-items: flex-start;
1426
+ gap: 12px;
1427
+ padding: 9px 0;
1428
+ cursor: pointer;
1429
+ }
1430
+ .diya-root .diya-choice-option > span { min-width:0; overflow-wrap:anywhere; }
1431
+ .diya-root .diya-choice-option input {
1432
+ appearance: none;
1433
+ -webkit-appearance: none;
1434
+ width: var(--diya-internal-choice-control);
1435
+ height: var(--diya-internal-choice-control);
1436
+ flex-shrink: 0;
1437
+ margin: 1px 0 0;
1438
+ padding: 0;
1439
+ border: 1px solid var(--diya-color-muted);
1440
+ background: transparent;
1441
+ border-radius: 4px;
1442
+ box-shadow: none;
1443
+ display: grid;
1444
+ place-content: center;
1445
+ cursor: pointer;
1446
+ }
1447
+ .diya-root .diya-choice-option input[type='radio'] {
1448
+ border-radius: 50%;
1449
+ }
1450
+ .diya-root .diya-choice-option input:checked {
1451
+ background: var(--diya-color-accent);
1452
+ border-color: var(--diya-color-accent);
1453
+ }
1454
+ .diya-root .diya-choice-option input[type='radio']:checked::before {
1455
+ content: '';
1456
+ width: 6px;
1457
+ height: 6px;
1458
+ border-radius: 50%;
1459
+ background: var(--diya-color-accent-text);
1460
+ }
1461
+ .diya-root .diya-choice-option input[type='checkbox']:checked::before {
1462
+ content: '';
1463
+ width: 4px;
1464
+ height: 8px;
1465
+ border: solid var(--diya-color-accent-text);
1466
+ border-width: 0 1.5px 1.5px 0;
1467
+ transform: translateY(-1px) rotate(45deg);
1468
+ }
1469
+ .diya-root .diya-choice-label {
1470
+ display: block;
1471
+ font-size: var(--diya-internal-choice-font);
1472
+ line-height: 20px;
1473
+ }
1474
+ .diya-root .diya-choice-description {
1475
+ display: block;
1476
+ font-size: var(--diya-text-caption);
1477
+ line-height: 1.6;
1478
+ color: var(--diya-color-muted);
1479
+ margin-top: 4px;
1480
+ }
1481
+ .diya-root .diya-choice[data-size='small'] {
1482
+ --diya-internal-choice-control: 16px;
1483
+ --diya-internal-choice-font: var(--diya-text-caption);
1484
+ }
1485
+ .diya-root .diya-choice[data-size='large'] {
1486
+ --diya-internal-choice-control: 22px;
1487
+ --diya-internal-choice-font: var(--diya-text-large);
1488
+ }
1489
+ .diya-root .diya-choice[data-size='large'] .diya-choice-label {
1490
+ line-height: 24px;
1491
+ }
1492
+ .diya-root .diya-choice-option[data-disabled='true'] {
1493
+ opacity: 0.45;
1494
+ cursor: not-allowed;
1495
+ }
1496
+ /* A disabled Choice fades as one field, legend and message included. */
1497
+ .diya-root .diya-choice:disabled { opacity: 0.45; }
1498
+ .diya-root .diya-choice:disabled .diya-choice-option[data-disabled='true'] { opacity: 1; }
1499
+ .diya-root .diya-choice-option input:disabled {
1500
+ cursor: not-allowed;
1501
+ }
1502
+ .diya-root .diya-choice-option:not([data-disabled='true']):hover input:not(:checked) {
1503
+ border-color: var(--diya-color-text);
1504
+ }
1505
+ @media (forced-colors: active) {
1506
+ .diya-root .diya-choice-option input {
1507
+ appearance: auto;
1508
+ }
1509
+ .diya-root .diya-choice-option input::before {
1510
+ display: none;
1511
+ }
1512
+ .diya-root .diya-choice-option[data-disabled='true'] {
1513
+ opacity: 1;
1514
+ color: GrayText;
1515
+ }
1516
+ }
1517
+ .diya-root .diya-choice input[type='checkbox']:indeterminate { background: var(--diya-color-accent); border-color: var(--diya-color-accent); }
1518
+ .diya-root .diya-choice input[type='checkbox']:indeterminate::before { content: ''; width: 8px; height: 2px; border: 0; transform: none; background: var(--diya-color-accent-text); }
1519
+ @media (forced-colors: active) { .diya-root .diya-choice input[type='checkbox']:indeterminate::before { display: none; } }
1520
+
1521
+
1522
+ /* NewAtoms.css: portable component rules. */
1523
+ .diya-root .diya-switch-field { display: flex; align-items: center; gap: 14px; min-width:0; max-width:100%; color: var(--diya-color-text); }
1524
+ .diya-root .diya-switch-field > div { min-width:0; overflow-wrap:anywhere; }
1525
+ .diya-root .diya-switch-field[data-disabled='true'] { opacity: .45; }
1526
+ .diya-root .diya-switch { appearance: none; -webkit-appearance: none; display: inline-grid; align-content: center; justify-content: start; flex-shrink: 0; width: 42px; height: 24px; margin: 0; padding: 3px; border-radius: 999px; border: 1px solid var(--diya-color-line); background: var(--diya-color-selected); cursor: pointer; }
1527
+ .diya-root .diya-switch::before { content: ''; display: block; width: 16px; height: 16px; border-radius: 50%; background: var(--diya-color-muted); }
1528
+ .diya-root .diya-switch:checked { background: var(--diya-color-accent); border-color: transparent; justify-content: end; }
1529
+ .diya-root .diya-switch:checked::before { background: var(--diya-color-accent-text); }
1530
+ .diya-root .diya-switch:disabled { cursor: not-allowed; }
1531
+ .diya-root .diya-switch-field label { cursor: pointer; }
1532
+ .diya-root .diya-switch-field[data-disabled='true'] label { cursor: not-allowed; }
1533
+ .diya-root .diya-switch:focus-visible,
1534
+ .diya-root .diya-tooltip-trigger:focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: 4px; }
1535
+ .diya-root .diya-switch-field[data-size='small'] .diya-switch { width: 34px; height: 20px; }
1536
+ .diya-root .diya-switch-field[data-size='small'] .diya-switch::before { width: 12px; height: 12px; }
1537
+ .diya-root .diya-switch-field[data-size='large'] .diya-switch { width: 50px; height: 28px; }
1538
+ .diya-root .diya-switch-field[data-size='large'] .diya-switch::before { width: 20px; height: 20px; }
1539
+ .diya-root .diya-switch-label { font-size: var(--diya-text-body); }
1540
+ /* With helper text, the switch lines up with the label's line, not the middle of the block. */
1541
+ .diya-root .diya-switch-field:has(.diya-switch-description) { align-items: flex-start; }
1542
+ .diya-root .diya-switch-description { margin: 5px 0 0; color: var(--diya-color-muted); font-size: var(--diya-text-caption); line-height: 1.5; display: flex; gap: 8px; align-items: baseline; }
1543
+ .diya-root .diya-avatar { display: inline-flex; position: relative; align-items: center; justify-content: center; width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; background: var(--diya-color-selected); color: var(--diya-color-text); font-size: var(--diya-text-large); font-weight: 500; }
1544
+ .diya-root .diya-avatar[data-size='small'] { width: 32px; height: 32px; font-size: var(--diya-text-caption); }
1545
+ .diya-root .diya-avatar[data-size='large'] { width: 64px; height: 64px; font-size: var(--diya-text-title); }
1546
+ .diya-root .diya-avatar[data-shape='rounded'] { border-radius: 25%; }
1547
+ .diya-root .diya-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
1548
+ .diya-root .diya-avatar svg { width: 50%; height: 50%; }
1549
+ .diya-root .diya-avatar::after { content: ''; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--diya-color-text) 10%, transparent); pointer-events: none; }
1550
+ .diya-root .diya-avatar-status { z-index: 1; }
1551
+ .diya-root .diya-avatar-status { position: absolute; right: -1px; bottom: -1px; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--diya-color-surface); background: var(--diya-color-success-fill); }
1552
+ .diya-root .diya-avatar-status[data-status='away'] { background: var(--diya-internal-warning-mark); }
1553
+ .diya-root .diya-avatar-status[data-status='busy'] { background: var(--diya-color-error-fill); }
1554
+
1555
+ /* Rating: neutral stars in the text color on a faint track of the same ink, so they
1556
+ read the same in Light, Dark and Glass. The row is inline text, so it shares a
1557
+ baseline with whatever sits beside it. */
1558
+ .diya-root .diya-rating { --diya-internal-rating-star: 16px; --diya-internal-rating-gap: 2px; display: inline-block; color: var(--diya-color-text); font-size: var(--diya-text-body); line-height: var(--diya-leading-tight); white-space: nowrap; font-variant-numeric: tabular-nums; }
1559
+ .diya-root .diya-rating[data-size='small'] { --diya-internal-rating-star: 14px; font-size: var(--diya-text-caption); }
1560
+ .diya-root .diya-rating[data-size='large'] { --diya-internal-rating-star: 20px; --diya-internal-rating-gap: 3px; font-size: var(--diya-text-large); }
1561
+ /* The stars centre on the middle of the capitals and figures beside them (DIYA Sans: .729em). */
1562
+ .diya-root .diya-rating-stars { display: inline-flex; gap: var(--diya-internal-rating-gap); vertical-align: calc(.365em - var(--diya-internal-rating-star) / 2); vertical-align: calc(.5cap - var(--diya-internal-rating-star) / 2); }
1563
+ .diya-root .diya-rating-stars svg { display: block; flex: none; width: var(--diya-internal-rating-star); height: var(--diya-internal-rating-star); fill: currentColor; }
1564
+ .diya-root .diya-rating-empty { fill: color-mix(in srgb, var(--diya-color-text) 22%, transparent); }
1565
+ .diya-root[data-theme='light'] .diya-rating-empty { fill: color-mix(in srgb, var(--diya-color-text) 16%, transparent); }
1566
+ @media (prefers-color-scheme: light) {
1567
+ .diya-root[data-theme='system'] .diya-rating-empty { fill: color-mix(in srgb, var(--diya-color-text) 16%, transparent); }
1568
+ }
1569
+ /* A half star fills from the start of the line, so from the right in right-to-left text. */
1570
+ .diya-root .diya-rating-stars svg[data-fill='half']:dir(rtl) { transform: scaleX(-1); }
1571
+ .diya-root .diya-rating-value { margin-inline-end: .4em; font-weight: 500; }
1572
+ .diya-root .diya-rating-count { margin-inline-start: .4em; color: var(--diya-color-muted); }
1573
+ @media (forced-colors: active) {
1574
+ .diya-root .diya-rating-stars { color: CanvasText; }
1575
+ .diya-root .diya-rating .diya-rating-empty { fill: Canvas; stroke: CanvasText; stroke-width: 1.5; }
1576
+ }
1577
+ .diya-root .diya-tooltip-anchor { display: inline-flex; min-width:0; max-width:100%; }
1578
+ .diya-root .diya-tooltip-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; min-width:0; max-width:100%; overflow-wrap:anywhere; padding: 0 18px; border-radius: 999px; border: 1px solid var(--diya-color-line); background: var(--diya-color-hover); color: var(--diya-color-text); font: inherit; font-size: var(--diya-text-body); cursor: help; }
1579
+ .diya-root .diya-tooltip-bubble { position: fixed; z-index: 1000; max-width: min(240px, calc(100vw - 16px)); overflow-wrap:anywhere; padding: 10px 14px; border-radius: calc(10px * var(--diya-corner-scale, 1)); background: var(--diya-color-text); color: var(--diya-color-surface); font-size: var(--diya-text-caption); line-height: 1.5; box-shadow: 0 calc(8px * var(--diya-elevation, 1)) calc(24px * var(--diya-elevation, 1)) #0003; }
1580
+ .diya-root .diya-textarea textarea { display: block; width: 100%; min-height: 112px; padding: 12px 14px; border: 1px solid var(--diya-color-line); border-radius: var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1))); background: var(--diya-color-hover); color: var(--diya-color-text); font: inherit; font-size: max(var(--diya-internal-field-min, 0px), var(--diya-text-body)); line-height: 1.6; box-sizing: border-box; }
1581
+ .diya-root .diya-textarea[data-size='small'] textarea { min-height: 88px; padding: 10px 12px; font-size: max(var(--diya-internal-field-min, 0px), var(--diya-text-caption)); }
1582
+ .diya-root .diya-textarea[data-size='large'] textarea { min-height: 136px; padding: 14px 16px; font-size: var(--diya-text-large); }
1583
+ .diya-root .diya-textarea textarea:focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1584
+ .diya-root .diya-textarea textarea::placeholder { color: var(--diya-color-muted); opacity:1; }
1585
+ .diya-root .diya-textarea[data-disabled='true'] { opacity: .45; }
1586
+ .diya-root .diya-textarea-footer { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
1587
+ .diya-root .diya-textarea-count { margin-top: 10px; margin-left: auto; color: var(--diya-color-muted); font-size: var(--diya-text-caption); white-space: nowrap; }
1588
+ .diya-root .diya-text-field input[type='search']::-webkit-search-cancel-button { appearance: none; }
1589
+ @media (forced-colors: active) {
1590
+ .diya-root .diya-switch { forced-color-adjust: none; border-color: ButtonText; background: Canvas; }
1591
+ .diya-root .diya-switch::before { background: ButtonText; }
1592
+ .diya-root .diya-switch:checked { background: Highlight; }
1593
+ .diya-root .diya-switch:checked::before { background: HighlightText; }
1594
+ .diya-root .diya-switch:disabled { border-color: GrayText; }
1595
+ .diya-root .diya-switch:disabled::before { background: GrayText; }
1596
+ }
1597
+
1598
+ .diya-root .diya-search-pill .diya-text-field-control { border-radius: 999px; }
1599
+
1600
+
1601
+ /* CollectionAtoms.css: portable component rules. */
1602
+ .diya-root .diya-list { list-style: none; padding: 0; margin: 0; width: 100%; max-width: 440px; color: var(--diya-color-text); }
1603
+ .diya-root .diya-list-row { width: 100%; display: flex; align-items: center; gap: 14px; padding: 16px 14px; border: 0; border-radius: calc(10px * var(--diya-corner-scale, 1)); color: inherit; background: transparent; text-align: left; font: inherit; box-sizing: border-box; }
1604
+ .diya-root button.diya-list-row { cursor: pointer; }
1605
+ .diya-root button.diya-list-row:hover:not(:disabled) { background: var(--diya-color-hover); }
1606
+ .diya-root .diya-list[data-divided='true'] > li + li { border-top: 1px solid var(--diya-color-line); }
1607
+ .diya-root .diya-list[data-size='small'] .diya-list-row { padding-block: 10px; }
1608
+ .diya-root .diya-list[data-size='large'] .diya-list-row { padding-block: 22px; }
1609
+ .diya-root .diya-list-copy { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 0; overflow-wrap:anywhere; }
1610
+ .diya-root .diya-list-label { font-size: var(--diya-text-body); font-weight: 500; }
1611
+ .diya-root .diya-list-description,
1612
+ .diya-root .diya-list-trailing { font-size: var(--diya-text-caption); color: var(--diya-color-muted); line-height: 1.5; }
1613
+ .diya-root .diya-list-leading { display: inline-flex; align-items: center; flex-shrink: 0; }
1614
+ .diya-root .diya-list-row:disabled { opacity: .4; cursor: not-allowed; }
1615
+ /* The open item reads as selected, like Side Navigation's current item, and stays so on hover. */
1616
+ .diya-root :is(.diya-list-row[aria-current], .diya-list > li[aria-current] > .diya-list-row),
1617
+ .diya-root button.diya-list-row[aria-current]:hover:not(:disabled) { background: var(--diya-color-selected); }
1618
+ /* Unread: a heavier label and a small dot at the row's end, so the dots line up down the list. */
1619
+ .diya-root .diya-list-row[data-unread] .diya-list-label { font-weight: 650; }
1620
+ .diya-root .diya-list-unread { flex-shrink: 0; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--diya-color-accent); }
1621
+ .diya-root .diya-accordion { width: 100%; max-width: 480px; min-width:0; overflow-wrap:anywhere; color: var(--diya-color-text); }
1622
+ .diya-root .diya-accordion-heading { margin: 0; font-size: var(--diya-text-body); font-weight: 500; }
1623
+ .diya-root .diya-accordion-heading button { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 24px; padding: 18px 12px; border: 0; border-radius: calc(8px * var(--diya-corner-scale, 1)); color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; }
1624
+ .diya-root .diya-accordion-heading button:hover:not(:disabled) { background: var(--diya-color-hover); }
1625
+ .diya-root .diya-accordion-heading button:disabled { opacity: .4; cursor: not-allowed; }
1626
+ /* Accordion panels, Table cells and Chatbot's welcome take your content, so their rules for plain
1627
+ elements end in the same guard as Dialog's below. Table's guard passes its own diya-table parts. */
1628
+ .diya-root .diya-accordion[data-divided='true'] > .diya-accordion-item + .diya-accordion-item { border-top: 1px solid var(--diya-color-line); }
1629
+ .diya-root .diya-accordion-content { padding: 0 12px 20px; color: var(--diya-color-muted); font-size: var(--diya-text-body); line-height: 1.7; }
1630
+ .diya-root .diya-accordion-content[hidden] { display: none; }
1631
+ .diya-root .diya-dialog { width: min(480px, calc(100vw - 48px)); max-height: calc(100dvh - 48px); overflow: auto; margin: auto; padding: 28px; border: 1px solid var(--diya-color-line); border-radius: calc(22px * var(--diya-corner-scale, 1)); background: var(--diya-color-surface); color: var(--diya-color-text); box-shadow: var(--diya-shadow-raised); box-sizing: border-box; }
1632
+ .diya-root .diya-dialog[data-size='small'] { width: min(380px, calc(100vw - 48px)); }
1633
+ .diya-root .diya-dialog[data-size='large'] { width: min(640px, calc(100vw - 48px)); }
1634
+ .diya-root .diya-dialog::backdrop { background: var(--diya-color-scrim, #0008); backdrop-filter: blur(5px); }
1635
+ /* Container rules for plain elements (Dialog, Card, Drawer, Form and the other workflow surfaces) end in
1636
+ the guard Prose uses: they reach your own plain elements, never a DIYA component placed inside, nor
1637
+ anything it renders. Parts at a fixed place are reached with child combinators instead. Neither
1638
+ changes specificity. */
1639
+ .diya-root .diya-dialog header:not(:where([class*='diya-'], .diya-dialog [class*='diya-']:not(.diya-dialog, .diya-dialog-layout, .diya-dialog-content) *)) { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
1640
+ .diya-root .diya-dialog h3:not(:where([class*='diya-'], .diya-dialog [class*='diya-']:not(.diya-dialog, .diya-dialog-layout, .diya-dialog-content) *)) { margin: 0; font-size: var(--diya-text-title); font-weight: 500; }
1641
+ .diya-root .diya-dialog-close { display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: var(--diya-color-muted); cursor: pointer; }
1642
+ .diya-root .diya-dialog-close:hover { background: var(--diya-color-hover); }
1643
+ .diya-root .diya-dialog-description { margin: 12px 0 0; color: var(--diya-color-muted); font-size: var(--diya-text-body); line-height: 1.6; }
1644
+ .diya-root .diya-dialog-content { margin-top: 24px; }
1645
+ .diya-root .diya-dialog footer:not(:where([class*='diya-'], .diya-dialog [class*='diya-']:not(.diya-dialog, .diya-dialog-layout, .diya-dialog-content) *)) { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
1646
+ .diya-root .diya-list-row:focus-visible,
1647
+ .diya-root .diya-accordion button:not(:where([class*='diya-'], .diya-accordion [class*='diya-']:not([class*='diya-accordion']) *)):focus-visible,
1648
+ .diya-root .diya-dialog button:not(:where([class*='diya-'], .diya-dialog [class*='diya-']:not(.diya-dialog, .diya-dialog-layout, .diya-dialog-content) *)):focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1649
+ @media (forced-colors: active) { .diya-root .diya-dialog { border: 1px solid CanvasText; background: Canvas; color: CanvasText; } }
1650
+
1651
+
1652
+ /* DataAtoms.css: portable component rules. */
1653
+ .diya-root .diya-metric { display: flex; flex-direction: column; gap: 10px; color: var(--diya-color-text); }
1654
+ .diya-root .diya-metric-label { font-size: var(--diya-text-caption); color: var(--diya-color-muted); }
1655
+ /* Figures are tabular: DIYA Sans's tabular 0 and 1 match its default figures (apps/diya/scripts/fonts/tabular_figures.py). */
1656
+ .diya-root .diya-metric-number { display: flex; align-items: baseline; gap: 8px; font-size: var(--diya-text-heading); font-weight: 500; line-height: 1.15; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
1657
+ .diya-root .diya-metric-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
1658
+ .diya-root .diya-metric-unit { font-size: max(var(--diya-text-caption), .5em); font-weight: 400; letter-spacing: 0; color: var(--diya-color-muted); }
1659
+ .diya-root .diya-metric[data-size='small'] .diya-metric-number { font-size: var(--diya-text-large); letter-spacing: -.02em; }
1660
+ .diya-root .diya-metric[data-size='large'] .diya-metric-number { font-size: var(--diya-text-display); }
1661
+ .diya-root .diya-metric-comparison { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: var(--diya-text-caption); color: var(--diya-color-muted); }
1662
+ .diya-root .diya-metric-change { display: inline-flex; align-items: center; gap: 4px; }
1663
+ .diya-root .diya-metric-change[data-meaning='positive'] { color: #95c381; }
1664
+ .diya-root .diya-metric-change[data-meaning='negative'] { color: #ef8e92; }
1665
+ .diya-root .diya-text-link { color: var(--diya-color-text); font-size: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; border-radius: 3px; }
1666
+ .diya-root .diya-text-link:not([data-inline='true']) { display: inline-flex; align-items: center; gap: 7px; font-size: var(--diya-text-body); }
1667
+ .diya-root .diya-text-link > span { display: inline-flex; vertical-align: middle; }
1668
+ .diya-root .diya-text-link[data-inline='true'] > span { margin-inline: 4px; }
1669
+ .diya-root .diya-text-link:hover { text-decoration-thickness: 2px; }
1670
+ .diya-root .diya-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 20px 24px; width: 100%; color: var(--diya-color-text); container: diya-pagination / inline-size; }
1671
+ .diya-root .diya-pagination nav { display: flex; align-items: center; justify-content:center; flex-wrap:wrap; gap:8px 4px; min-width:0; max-width:100%; }
1672
+ .diya-root .diya-pagination nav .diya-button[aria-label] { min-width: 32px; padding: 0 8px; }
1673
+ .diya-root .diya-pagination-count,
1674
+ .diya-root .diya-pagination-size { margin: 0; font-size: var(--diya-text-caption); color: var(--diya-color-muted); }
1675
+ .diya-root .diya-pagination-size { display: flex; align-items: center; gap: 8px; }
1676
+ .diya-root .diya-pagination-size .diya-select-field { width: 76px; }
1677
+ .diya-root .diya-pagination-gap { padding: 0 5px; color: var(--diya-color-muted); font-size: var(--diya-text-body); }
1678
+ /* Narrow spaces: Previous and Next become arrows (their text stays the name), then the first, last and gaps drop out, so the row never wraps. */
1679
+ .diya-root .diya-pagination-chevron { display: none; }
1680
+ @container diya-pagination (max-width: 400px) {
1681
+ .diya-root .diya-pagination nav { flex-wrap: nowrap; gap: 4px; }
1682
+ .diya-root .diya-pagination nav > .diya-button:not([aria-label]) { width: 32px; min-width: 32px; padding: 0; }
1683
+ .diya-root .diya-pagination-chevron { display: block; }
1684
+ .diya-root .diya-pagination-step { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
1685
+ }
1686
+ @container diya-pagination (max-width: 310px) {
1687
+ .diya-root .diya-pagination nav:is([data-cells='6'], [data-cells='7']) > :is([data-far], .diya-pagination-gap) { display: none; }
1688
+ }
1689
+ @container diya-pagination (max-width: 250px) {
1690
+ .diya-root .diya-pagination nav > :is([data-far], .diya-pagination-gap) { display: none; }
1691
+ }
1692
+ .diya-root .diya-text-link:focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1693
+ @media (forced-colors: active) { .diya-root .diya-metric-change[data-meaning] { color: CanvasText; } .diya-root .diya-text-link { color: LinkText; } }
1694
+
1695
+
1696
+ /* combobox/Combobox.css: portable component rules. */
1697
+ .diya-root .diya-combobox{position:relative;max-width:400px;width:100%;color:var(--diya-color-text)}.diya-root .diya-combobox>label{display:block;font-size:var(--diya-text-body);font-weight:500;margin-bottom:10px}.diya-root .diya-combobox-control{min-height:40px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 12px;border:1px solid var(--diya-color-line);border-radius:var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1)));background:var(--diya-color-hover)}.diya-root .diya-combobox-control input{flex:1;min-width:90px;width:100%;background:transparent;border:0;padding:0;font:inherit;font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body));color:inherit;outline:0}.diya-root .diya-combobox-control:focus-within{outline:2px solid var(--diya-color-text);outline-offset:3px}.diya-root .diya-combobox[data-size='small'] .diya-combobox-control{min-height:32px;padding-block:3px}.diya-root .diya-combobox[data-size='large'] .diya-combobox-control{min-height:48px}.diya-root .diya-combobox[data-invalid='true'] .diya-combobox-control{border-color:var(--diya-color-error)}.diya-root .diya-combobox:has(.diya-combobox-control input:disabled){opacity:.45}.diya-root .diya-combobox-chip{display:inline-flex;gap:8px;align-items:center;background:var(--diya-color-hover);padding:3px 8px;border-radius:calc(6px * var(--diya-corner-scale, 1));font-size:var(--diya-text-caption)}.diya-root .diya-combobox-chip button{color:inherit;font-size:var(--diya-text-body)}.diya-root .diya-combobox-options{position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;list-style:none;margin:0;padding:6px;border:1px solid var(--diya-internal-overlay-border);border-top-color:var(--diya-internal-overlay-top-border);border-radius:calc(16px * var(--diya-corner-scale, 1));background:var(--diya-color-raised);box-shadow:var(--diya-shadow-raised);max-height:240px;overflow:auto}.diya-root .diya-combobox-options li{display:flex;justify-content:space-between;padding:10px 12px;font-size:var(--diya-text-body);border-radius:calc(6px * var(--diya-corner-scale, 1));cursor:pointer}.diya-root .diya-combobox-options li[data-active='true']{background:var(--diya-color-hover)}.diya-root .diya-combobox-options li[aria-disabled='true']{opacity:.4;cursor:not-allowed}.diya-root .diya-combobox input::placeholder{color:var(--diya-color-muted)}
1698
+ .diya-root .diya-combobox-options[popover]{position:fixed;inset:auto;margin:0;color:var(--diya-color-text)}
1699
+ .diya-root .diya-combobox { min-width:0; max-width:min(100%,400px); }
1700
+ .diya-root .diya-combobox > label { overflow-wrap:anywhere; }
1701
+ .diya-root .diya-combobox-chip { min-width:0; max-width:100%; overflow-wrap:anywhere; }
1702
+ .diya-root .diya-combobox-chip button { flex-shrink:0; }
1703
+ .diya-root .diya-combobox-options li > span:not([aria-hidden]) { min-width:0; overflow-wrap:anywhere; }
1704
+ .diya-root .diya-combobox-options li > span[aria-hidden] { flex-shrink:0; }
1705
+ .diya-root .diya-combobox input::placeholder { opacity:1; }
1706
+
1707
+ .diya-root .diya-combobox-toggle{display:grid;place-items:center;flex:0 0 20px;height:24px;border:0;background:transparent;color:var(--diya-color-muted);cursor:pointer;padding:0}.diya-root .diya-combobox-chip button{border:0;background:transparent;padding:0;cursor:pointer;line-height:1}.diya-root .diya-combobox-control input{width:auto}.diya-root .diya-combobox-options li[aria-selected='true']{font-weight:500}.diya-root .diya-combobox-options li[aria-disabled='true']{pointer-events:none}
1708
+
1709
+ .diya-root .diya-combobox[data-invalid='true'] .diya-field-help{color:var(--diya-color-error)}.diya-root .diya-combobox-toggle:focus-visible,
1710
+ .diya-root .diya-combobox-chip button:focus-visible{outline:2px solid var(--diya-color-text);outline-offset:2px}
1711
+ .diya-root .diya-combobox .diya-combobox-control input,
1712
+ .diya-root .diya-combobox .diya-combobox-control input:focus,
1713
+ .diya-root .diya-combobox .diya-combobox-control input:focus-visible { appearance:none; border:0; border-radius:0; outline:none; box-shadow:none; background:transparent; padding:0; height:24px; font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body)); }
1714
+ .diya-root .diya-combobox[data-size='small'] .diya-combobox-control input { height:18px; font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-caption)); }
1715
+ .diya-root .diya-combobox[data-size='large'] .diya-combobox-control input { height:30px; font-size:var(--diya-text-large); }
1716
+
1717
+
1718
+ /* date-picker/DatePicker.css: portable component rules. */
1719
+ .diya-root .diya-date-field{position:relative;width:100%;min-width:0;max-width:min(100%,400px);color:var(--diya-color-text)}
1720
+ .diya-root .diya-date-field>label{display:block;font-size:var(--diya-text-body);font-weight:500;margin-bottom:10px;overflow-wrap:anywhere}
1721
+ .diya-root .diya-date-trigger{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border:1px solid var(--diya-color-line);border-radius:var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1)));background:var(--diya-color-hover);color:inherit;font-size:var(--diya-text-body);text-align:left}
1722
+ .diya-root .diya-date-field[data-size='small'] .diya-date-trigger{min-height:32px;font-size:var(--diya-text-caption)}.diya-root .diya-date-field[data-size='large'] .diya-date-trigger{min-height:48px;font-size:var(--diya-text-large)}
1723
+ .diya-root .diya-date-trigger:disabled{opacity:1;cursor:not-allowed}.diya-root .diya-date-field:has(.diya-date-trigger:disabled){opacity:.45}.diya-root .diya-date-field[data-invalid='true'] .diya-date-trigger{border-color:var(--diya-color-error)}.diya-root .diya-field-help{font-size:var(--diya-text-caption);color:var(--diya-color-muted);margin:10px 0 0}.diya-root .diya-date-field[data-invalid='true'] .diya-field-help{color:var(--diya-color-error)}
1724
+ .diya-root .diya-calendar{position:absolute;top:calc(100% + 8px);left:0;width:300px;z-index:30;padding:16px;background:var(--diya-color-raised);border:1px solid var(--diya-internal-overlay-border);border-top-color:var(--diya-internal-overlay-top-border);border-radius:calc(16px * var(--diya-corner-scale, 1));box-shadow:var(--diya-shadow-raised)}
1725
+ .diya-root .diya-calendar-heading,
1726
+ .diya-root .diya-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.diya-root .diya-calendar-heading strong{font-size:var(--diya-text-body)}.diya-root .diya-calendar-heading button{width:30px;height:30px;border-radius:calc(8px * var(--diya-corner-scale, 1));color:inherit;font-size:var(--diya-text-title)}.diya-root .diya-calendar-hint{font-size:var(--diya-text-caption);color:var(--diya-color-muted);margin:8px 0}
1727
+ .diya-root .diya-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:12px}.diya-root .diya-calendar-row{display:grid;grid-column:1/-1;gap:3px;grid-template-columns:repeat(7,1fr);grid-template-columns:subgrid}.diya-root .diya-calendar-weekday{font-size:var(--diya-text-caption);color:var(--diya-color-muted);text-align:center;padding:6px 0}.diya-root .diya-calendar-grid button{height:34px;border-radius:calc(8px * var(--diya-corner-scale, 1));font-size:var(--diya-text-body);color:inherit}.diya-root .diya-calendar-grid button:hover,
1728
+ .diya-root .diya-calendar-heading button:hover{background:var(--diya-color-hover)}.diya-root .diya-calendar-grid button[aria-selected='true']:not([data-between='true']){background:var(--diya-color-accent);color:var(--diya-color-accent-text)}.diya-root .diya-calendar-grid button[data-between='true']{background:var(--diya-color-accent-soft, var(--diya-color-hover))}.diya-root .diya-calendar-grid button[data-today='true']{text-decoration:underline;text-underline-offset:4px}.diya-root .diya-calendar-footer{border-top:1px solid var(--diya-color-line);margin-top:12px;padding-top:12px}.diya-root .diya-calendar-footer button{font-size:var(--diya-text-caption);color:inherit;padding:4px 6px}
1729
+ .diya-root .diya-date-field button:focus-visible{outline:2px solid var(--diya-color-text);outline-offset:3px}
1730
+ .diya-root .diya-calendar[popover]{position:fixed;margin:0;inset:auto;color:var(--diya-color-text)}
1731
+ .diya-root .diya-calendar-grid button[aria-disabled='true']{color:var(--diya-color-muted);opacity:.45;cursor:not-allowed}
1732
+ .diya-root .diya-calendar-grid button[aria-disabled='true']:hover{background:transparent}
1733
+ /* Calendar: the same month grid, on the page. No surface of its own, so it sits on a card or the page;
1734
+ days are as tall as a field of the same size, and seven of them set its widest. */
1735
+ .diya-root .diya-inline-calendar{--diya-internal-field-height:40px;--diya-internal-field-font-size:var(--diya-text-body);position:relative;width:100%;min-width:0;max-width:calc(7 * var(--diya-internal-field-height) + 18px);color:var(--diya-color-text)}
1736
+ .diya-root .diya-inline-calendar[data-size='small']{--diya-internal-field-height:32px;--diya-internal-field-font-size:var(--diya-text-caption)}
1737
+ .diya-root .diya-inline-calendar[data-size='large']{--diya-internal-field-height:48px;--diya-internal-field-font-size:var(--diya-text-large)}
1738
+ .diya-root .diya-inline-calendar>.diya-calendar-label{display:block;font-size:var(--diya-text-body);font-weight:500;margin-bottom:10px;overflow-wrap:anywhere}
1739
+ .diya-root .diya-inline-calendar .diya-calendar-heading button{width:var(--diya-internal-field-height);height:var(--diya-internal-field-height)}
1740
+ .diya-root .diya-inline-calendar .diya-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
1741
+ .diya-root .diya-inline-calendar .diya-calendar-row{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-columns:subgrid}
1742
+ .diya-root .diya-inline-calendar .diya-calendar-grid button{height:var(--diya-internal-field-height);font-size:var(--diya-internal-field-font-size)}
1743
+ .diya-root .diya-inline-calendar button:focus-visible{outline:2px solid var(--diya-color-text);outline-offset:3px}
1744
+ .diya-root .diya-inline-calendar button:disabled:hover{background:transparent}
1745
+ .diya-root .diya-inline-calendar[data-disabled='true'] :is(.diya-calendar-heading,.diya-calendar-hint,.diya-calendar-grid){opacity:.45}
1746
+ .diya-root .diya-inline-calendar[data-disabled='true'] button:disabled{opacity:1}
1747
+
1748
+
1749
+ /* alert/Alert.css: portable component rules. */
1750
+ .diya-root .diya-alert {
1751
+ --diya-internal-alert-accent: var(--diya-internal-alert-info);
1752
+ display: flex; align-items: flex-start; gap: 14px; width: 100%; min-width:0; max-width:min(100%,520px);
1753
+ padding: 20px; box-sizing: border-box; border-radius: calc(16px * var(--diya-corner-scale, 1));
1754
+ border: 1px solid color-mix(in srgb, var(--diya-internal-alert-accent) 28%, transparent);
1755
+ background: color-mix(in srgb, var(--diya-internal-alert-accent) 7%, var(--diya-color-surface));
1756
+ color: var(--diya-color-text);
1757
+ }
1758
+ .diya-root .diya-alert[data-tone='success'] { --diya-internal-alert-accent: var(--diya-internal-alert-success); }
1759
+ .diya-root .diya-alert[data-tone='warning'] { --diya-internal-alert-accent: var(--diya-internal-alert-warning); }
1760
+ .diya-root .diya-alert[data-tone='error'] { --diya-internal-alert-accent: var(--diya-internal-alert-error); }
1761
+ .diya-root .diya-alert-icon { flex-shrink: 0; color: var(--diya-internal-alert-ink, var(--diya-internal-alert-accent)); margin-top: 1px; }
1762
+ .diya-root .diya-alert-copy { flex: 1; min-width: 0; overflow-wrap:anywhere; }
1763
+ .diya-root .diya-alert-title { margin: 0 0 6px; color:var(--diya-color-text); font-size: var(--diya-text-body); font-weight: 600; line-height: 1.5; }
1764
+ .diya-root .diya-alert-description { font-size: var(--diya-text-body); line-height: 1.65; color: var(--diya-color-muted); }
1765
+ .diya-root .diya-alert-action { display: block; border: 0; border-radius: calc(4px * var(--diya-corner-scale, 1)); background: transparent; color: var(--diya-internal-alert-ink, var(--diya-internal-alert-accent)); font: inherit; font-size: var(--diya-text-body); font-weight: 500; padding: 4px 0; margin-top: 12px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
1766
+ .diya-root .diya-alert-dismiss { display: grid; place-items: center; flex-shrink: 0; width: 28px; height: 28px; padding: 0; margin: -3px -3px 0 0; border: 0; border-radius: 50%; background: transparent; color: var(--diya-color-muted); cursor: pointer; }
1767
+ .diya-root .diya-alert-dismiss:hover { background: var(--diya-color-hover); color: var(--diya-color-text); }
1768
+ .diya-root .diya-alert button:focus-visible { outline: 2px solid var(--diya-internal-alert-ink, var(--diya-internal-alert-accent)); outline-offset: 3px; }
1769
+ .diya-root .diya-alert-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
1770
+ .diya-root .diya-alert[data-layout='banner'] { max-width:none; min-height:64px; align-items:center; padding:14px 20px; }
1771
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-icon { margin:0; }
1772
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-copy { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; }
1773
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-copy > [role] { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; }
1774
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-title { margin:0; }
1775
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-action { margin:0; }
1776
+ .diya-root .diya-alert[data-layout='banner'] .diya-alert-dismiss { margin:0; width:32px; height:32px; }
1777
+ @media (forced-colors: active) { .diya-root .diya-alert { border-color: CanvasText; background: Canvas; color: CanvasText; } .diya-root .diya-alert-icon,
1778
+ .diya-root .diya-alert-action { color: CanvasText; } }
1779
+ .diya-root .diya-alert[data-tone='brand'] { --diya-internal-alert-accent: var(--diya-color-accent); --diya-internal-alert-ink: var(--diya-color-accent-ink, var(--diya-color-text)); }
1780
+ .diya-root .diya-toast-region { position: fixed; z-index: 1200; bottom: 28px; right: 28px; width: min(420px, calc(100vw - 40px)); }
1781
+ .diya-root .diya-toast-region .diya-alert { box-shadow: var(--diya-shadow-raised); }
1782
+ @media (max-width: 600px) { .diya-root .diya-toast-region { bottom: 20px; right: 20px; } }
1783
+
1784
+
1785
+ /* slider/Slider.css: portable component rules. */
1786
+ .diya-root .diya-slider { width: min(100%, 400px); color: var(--diya-color-text); }
1787
+ .diya-root .diya-slider[data-disabled='true'] { opacity: .45; }
1788
+ .diya-root .diya-slider-values { display: flex; justify-content: space-between; font-size: var(--diya-text-body); font-variant-numeric: tabular-nums; margin-bottom: 12px; }
1789
+ .diya-root .diya-slider-inputs { position: relative; height: 28px; }
1790
+ .diya-root .diya-slider-rail { position: absolute; inset: 11px 9px; height: 6px; border-radius: 999px; background: var(--diya-color-selected); }
1791
+ .diya-root .diya-slider-rail > span { position: absolute; left: var(--diya-internal-slider-start); right: calc(100% - var(--diya-internal-slider-end)); height: 100%; border-radius: inherit; background: var(--diya-color-accent); }
1792
+ .diya-root .diya-slider input { position: absolute; inset: 0; margin: 0; width: 100%; height: 28px; appearance: none; background: transparent; pointer-events: none; }
1793
+ .diya-root .diya-slider input::-webkit-slider-runnable-track { height: 6px; background: transparent; }
1794
+ .diya-root .diya-slider input::-moz-range-track { height: 6px; background: transparent; }
1795
+ .diya-root .diya-slider input::-webkit-slider-thumb { appearance: none; width: 18px; height: 18px; margin-top: -6px; border-radius: 50%; background: var(--diya-color-accent); border: 3px solid var(--diya-color-surface); box-shadow: 0 0 0 1px var(--diya-color-line); pointer-events: auto; cursor: grab; }
1796
+ .diya-root .diya-slider input::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: var(--diya-color-accent); border: 3px solid var(--diya-color-surface); box-shadow: 0 0 0 1px var(--diya-color-line); pointer-events: auto; cursor: grab; }
1797
+ .diya-root .diya-slider input:focus-visible { outline: none; z-index: 1; }
1798
+ .diya-root .diya-slider input:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1799
+ .diya-root .diya-slider input:focus-visible::-moz-range-thumb { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1800
+ .diya-root .diya-slider input:disabled::-webkit-slider-thumb { cursor: not-allowed; }
1801
+ .diya-root .diya-slider input:disabled::-moz-range-thumb { cursor: not-allowed; }
1802
+ .diya-root .diya-slider-marks { display: flex; justify-content: space-between; margin: 10px 4px 0; font-size: var(--diya-text-caption); color: var(--diya-color-muted); }
1803
+ .diya-root .diya-slider-marks span::before { content: ''; display: block; width: 1px; height: 4px; background: var(--diya-color-line); margin: 0 auto 7px; }
1804
+ @media (forced-colors: active) { .diya-root .diya-slider-rail { background: GrayText; } .diya-root .diya-slider-rail > span { background: Highlight; } .diya-root .diya-slider input::-webkit-slider-thumb { background: Highlight; border-color: Canvas; } }
1805
+ .diya-root .diya-slider input { border: 0; border-radius: 0; padding: 0; }
1806
+ .diya-root .diya-slider input:focus-visible { outline: none; }
1807
+
1808
+
1809
+ /* progress/Progress.css: portable component rules. */
1810
+ .diya-root .diya-progress { position: relative; color: var(--diya-color-text); }
1811
+ .diya-root .diya-progress[data-variant='linear'] { width: min(100%, 400px); display: flex; align-items: center; gap: 20px; }
1812
+ .diya-root .diya-progress[data-variant='linear'] .diya-progress-meter { flex: 1; }
1813
+ .diya-root .diya-progress-track { height: 6px; background: var(--diya-color-selected); border-radius: 999px; overflow: hidden; }
1814
+ .diya-root .diya-progress-track > span { display: block; height: 100%; border-radius: inherit; background: var(--diya-color-accent); }
1815
+ .diya-root .diya-progress-value { font-size: var(--diya-text-caption); font-variant-numeric: tabular-nums; }
1816
+ .diya-root .diya-progress[data-variant='linear'] .diya-progress-value { width: 38px; text-align: right; }
1817
+ .diya-root .diya-progress[data-variant='circular'] { width: 100px; height: 100px; }
1818
+ .diya-root .diya-progress[data-variant='circular'] svg { width: 100%; height: 100%; fill: none; stroke-width: 5; transform: rotate(-90deg); }
1819
+ .diya-root .diya-progress-track-circle { stroke: var(--diya-color-selected); }
1820
+ .diya-root .diya-progress-fill-circle { stroke: var(--diya-color-accent); stroke-linecap: round; }
1821
+ .diya-root .diya-progress[data-variant='circular'] .diya-progress-value { position: absolute; inset: 0; display: grid; place-items: center; }
1822
+ .diya-root .diya-progress[data-indeterminate='true'][data-variant='linear'] .diya-progress-track > span { animation: diya-progress-travel 1.8s ease-in-out infinite alternate; }
1823
+ .diya-root .diya-progress[data-indeterminate='true'][data-variant='circular'] svg { animation: diya-progress-spin 1.4s linear infinite; }
1824
+ @keyframes diya-progress-travel { from { transform: translateX(-100%); } to { transform: translateX(285%); } }
1825
+ @keyframes diya-progress-spin { to { transform: rotate(270deg); } }
1826
+ @media (prefers-reduced-motion: reduce) { .diya-root .diya-progress[data-indeterminate='true'] svg,
1827
+ .diya-root .diya-progress[data-indeterminate='true'] .diya-progress-track > span { animation: none !important; } }
1828
+ @media (forced-colors: active) { .diya-root .diya-progress-track { outline: 1px solid CanvasText; } .diya-root .diya-progress-track > span { background: Highlight; } .diya-root .diya-progress-fill-circle { stroke: Highlight; } }
1829
+
1830
+
1831
+ /* card/Card.css: portable component rules. */
1832
+ .diya-root .diya-card { width:100%; border:1px solid var(--diya-color-line); border-radius:var(--diya-radius-surface); background:var(--diya-color-surface); color:var(--diya-color-text); overflow:hidden; }
1833
+ /* A Card fills the height it is given (a stretched grid or flex cell): the content
1834
+ grows and the footer stays at the bottom. At its natural height nothing changes. */
1835
+ .diya-root .diya-card { display:flex; flex-direction:column; }
1836
+ .diya-root .diya-card-body { padding:24px; flex:1; display:flex; flex-direction:column; }
1837
+ .diya-root .diya-card-content { flex:1; }
1838
+ .diya-root .diya-card-media { flex-shrink:0; }
1839
+ .diya-root .diya-card-header { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; }
1840
+ .diya-root .diya-card-header > div:first-child { min-width:0; }
1841
+ .diya-root .diya-card-title { font-size:var(--diya-text-title); line-height:var(--diya-leading-tight); letter-spacing:-.015em; font-weight:600; margin:0; overflow-wrap:anywhere; }
1842
+ .diya-root .diya-card-header p:not(:where([class*='diya-'], .diya-card-header [class*='diya-'] *)) { color:var(--diya-color-muted); font-size:var(--diya-text-body); line-height:1.6; margin:10px 0 0; }
1843
+ .diya-root .diya-card-tag { margin-bottom:16px; }
1844
+ .diya-root .diya-card-menu { flex-shrink:0; }
1845
+ .diya-root .diya-card-menu .diya-button { width:32px; height:32px; min-height:32px; padding:6px; }
1846
+ .diya-root .diya-card-content { margin-top:24px; }
1847
+ /* A List inside a Card or Drawer lines up with its title, edge to edge, and shares
1848
+ its material instead of laying a second pane of Glass on it. Rows that are buttons
1849
+ keep their inset, since their hover fill needs it. */
1850
+ .diya-root :is(.diya-card-content, .diya-drawer-body) .diya-list { max-width:none; background:transparent; backdrop-filter:none; }
1851
+ .diya-root :is(.diya-card-content, .diya-drawer-body) .diya-list > li > div.diya-list-row { padding-inline:0; }
1852
+ .diya-root .diya-card-footer { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:24px; }
1853
+ .diya-root .diya-card-footer[data-divider='true'] { border-top:1px solid var(--diya-color-line); padding-top:20px; }
1854
+ .diya-root .diya-card-media { aspect-ratio:2/1; overflow:hidden; }
1855
+ .diya-root .diya-card-media img:not(:where([class*='diya-'], .diya-card-media [class*='diya-'] *)) { width:100%; height:100%; object-fit:cover; display:block; }
1856
+
1857
+ .diya-root .diya-card[data-shadow="true"] { box-shadow:var(--diya-shadow-raised); }
1858
+
1859
+
1860
+ /* dialog/Dialog.css: portable component rules. */
1861
+ .diya-root .diya-dialog { padding: 0; text-align: left; }
1862
+ .diya-root .diya-dialog-layout { margin: 0; padding: 28px; display: flex; flex-direction: column; gap: 28px; }
1863
+ .diya-root .diya-dialog-heading { display: flex; align-items: flex-start; gap: 20px; }
1864
+ .diya-root .diya-dialog-heading > div { flex: 1; min-width: 0; overflow-wrap:anywhere; }
1865
+ .diya-root .diya-dialog-heading h3 { font-size: var(--diya-text-title); line-height: 28px; letter-spacing: -.025em; }
1866
+ .diya-root .diya-dialog .diya-dialog-close { flex: 0 0 32px; margin: -2px -6px 0 0; }
1867
+ .diya-root .diya-dialog .diya-dialog-description { margin: 8px 0 0; line-height: 1.6; }
1868
+ .diya-root .diya-dialog .diya-dialog-content { margin: 0; display: grid; gap: 20px; }
1869
+ .diya-root .diya-dialog-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap:wrap; gap: 12px; }
1870
+ .diya-root :is(.diya-dialog-actions, .diya-drawer-modal > footer) .diya-button { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; padding-block:4px; }
1871
+ .diya-root .diya-dialog-actions[data-divider] { padding-top: 20px; border-top: 1px solid var(--diya-color-line); }
1872
+ .diya-root .diya-dialog-close:focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: 3px; }
1873
+ @media (max-width: 600px) {
1874
+ .diya-root .diya-dialog-layout { padding: 24px; gap: 24px; }
1875
+ }
1876
+ .diya-root .diya-dialog .diya-text-field { width: 100%; max-width: none; }
1877
+
1878
+
1879
+ /* table/Table.css: portable component rules. */
1880
+ .diya-root .diya-table { --diya-internal-table-surface:var(--diya-color-raised); }
1881
+ /* Row hover: Light shades the row with the hover token; Dark lifts it a little toward the text,
1882
+ since on near-black there is no room left to sink. The Vivid status tags still read at 4.5:1. */
1883
+ .diya-root .diya-table { --diya-internal-table-hover:color-mix(in srgb,var(--diya-color-text) 4.5%,var(--diya-internal-table-surface)); }
1884
+ .diya-root[data-theme='light'] .diya-table { --diya-internal-table-hover:color-mix(in srgb,var(--diya-color-hover) 60%,var(--diya-internal-table-surface)); }
1885
+ @media (prefers-color-scheme: light) {
1886
+ .diya-root[data-theme='system'] .diya-table { --diya-internal-table-hover:color-mix(in srgb,var(--diya-color-hover) 60%,var(--diya-internal-table-surface)); }
1887
+ }
1888
+ /* Selected rows: a text-colored tint, calmer in Dark. The checkbox and the selection bar carry the state too.
1889
+ Status tags keep the table surface under their own tint, so they read as on a resting row. */
1890
+ .diya-root .diya-table { --diya-internal-table-selected-weight:12%; }
1891
+ .diya-root[data-theme='light'] .diya-table { --diya-internal-table-selected-weight:10%; }
1892
+ @media (prefers-color-scheme: light) {
1893
+ .diya-root[data-theme='system'] .diya-table { --diya-internal-table-selected-weight:10%; }
1894
+ }
1895
+ .diya-root .diya-table tbody tr[data-selected] .diya-tag:is([data-color='success'], [data-color='warning'], [data-color='error'], [data-color='info']) {
1896
+ background:linear-gradient(var(--diya-internal-tag-surface), var(--diya-internal-tag-surface)), var(--diya-internal-table-surface);
1897
+ }
1898
+ .diya-root .diya-table { width:100%; min-width:0; color:var(--diya-color-text); font-size:var(--diya-text-caption); container-type:inline-size; container-name:diya-table; }
1899
+ .diya-root .diya-table-toolbar { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
1900
+ .diya-root .diya-table-toolbar .diya-search { margin-left:auto; width:240px; max-width:100%; }
1901
+ .diya-root .diya-table-scroll { position:relative; overflow:auto; border:1px solid var(--diya-color-line); border-radius:var(--diya-radius-surface); }
1902
+ .diya-root .diya-table-scroll:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:4px; }
1903
+ .diya-root .diya-table table:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { width:100%; border-collapse:separate; border-spacing:0; text-align:left; }
1904
+ .diya-root .diya-table th:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { background:var(--diya-internal-table-surface); color:var(--diya-color-muted); font-size:var(--diya-text-caption); font-weight:500; height:48px; }
1905
+ .diya-root .diya-table th:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)),
1906
+ .diya-root .diya-table td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { padding:12px 16px; box-sizing:border-box; vertical-align:middle; }
1907
+ .diya-root .diya-table td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { height:60px; border-top:1px solid color-mix(in srgb, var(--diya-color-line) 70%, transparent); background:var(--diya-internal-table-surface); }
1908
+ .diya-root .diya-table[data-density='compact'] td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { height:48px; padding-top:6px; padding-bottom:6px; }
1909
+ .diya-root .diya-table tbody tr:hover td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { background:var(--diya-internal-table-hover); }
1910
+ .diya-root .diya-table tbody tr[data-selected] td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { background:var(--diya-color-selected); }
1911
+ /* Data figures are tabular, so a column of amounts lines up digit for digit. */
1912
+ .diya-root .diya-table .diya-table-numeric { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
1913
+ .diya-root .diya-table-sort { display:inline-flex; align-items:center; gap:8px; padding:4px 0; border:0; background:none; color:inherit; font:inherit; cursor:pointer; }
1914
+ .diya-root .diya-table-sort span { font-size:var(--diya-text-caption); }
1915
+ .diya-root .diya-table-sort:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:4px; border-radius:3px; }
1916
+ .diya-root .diya-table-scroll :is(button, input, a) { scroll-margin:8px 24px; }
1917
+ .diya-root .diya-table .diya-table-check { width:48px; padding-right:8px; }
1918
+ .diya-root .diya-table input[type='checkbox']:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { width:16px; height:16px; margin:0; accent-color:var(--diya-color-text); cursor:pointer; vertical-align:middle; }
1919
+ .diya-root .diya-table .diya-table-actions { width:56px; padding:8px; position:sticky; right:0; box-shadow:-1px 0 var(--diya-color-line); }
1920
+ .diya-root .diya-table .diya-pagination { margin-top:20px; }
1921
+ .diya-root .diya-table-bulk { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:12px 16px; margin-bottom:8px; border:1px solid var(--diya-color-line); border-radius:calc(12px * var(--diya-corner-scale, 1)); background:var(--diya-color-selected); }
1922
+ .diya-root .diya-table-bulk > span { margin-right:auto; }
1923
+ .diya-root .diya-table .diya-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
1924
+ .diya-root .diya-table-empty { padding:40px 16px; text-align:center; }
1925
+ .diya-root .diya-table-empty p { color:var(--diya-color-muted); margin:8px 0 20px; }
1926
+ .diya-root .diya-table-project { display:block; font-weight:500; white-space:nowrap; }
1927
+ .diya-root .diya-table-owner { color:var(--diya-color-muted); white-space:nowrap; }
1928
+ @media(max-width:600px) { .diya-root .diya-table-toolbar { flex-wrap:wrap; } .diya-root .diya-table-toolbar .diya-search { width:100%; } }
1929
+ .diya-root .diya-table-toolbar { gap:16px; align-items:flex-start; margin-bottom:16px; }
1930
+ .diya-root .diya-table-filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; flex:1; min-width:0; }
1931
+ .diya-root .diya-table-filter > span > button,
1932
+ .diya-root
1933
+ .diya-table-filter button[aria-haspopup] { height:36px; min-height:36px; border-radius:999px; padding:0 12px; gap:10px; font-size:var(--diya-text-body); background:transparent; box-shadow:none; }
1934
+ .diya-root .diya-table-filter button[aria-haspopup]::after { content:''; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); flex-shrink:0; opacity:.75; }
1935
+ .diya-root .diya-table-filter[data-active] button[aria-haspopup] { background:var(--diya-color-selected); border-color:var(--diya-color-muted); }
1936
+ .diya-root .diya-table-clear { height:36px; padding:0 8px; background:none; border:0; color:var(--diya-color-muted); font:inherit; font-size:var(--diya-text-caption); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
1937
+ .diya-root .diya-table-clear:hover { color:var(--diya-color-text); }
1938
+ .diya-root .diya-table-clear:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:2px; }
1939
+ .diya-root .diya-table-toolbar .diya-search { flex-shrink:0; }
1940
+ .diya-root .diya-table-toolbar .diya-search .diya-text-field-control { height:var(--diya-internal-field-height); min-height:var(--diya-internal-field-height); box-sizing:border-box; }
1941
+ .diya-root .diya-table-toolbar .diya-search input { height:calc(var(--diya-internal-field-height) - 2px); }
1942
+ .diya-root .diya-table[data-sticky] .diya-table-check { min-width:48px; max-width:48px; }
1943
+ .diya-root .diya-table[data-sticky] .diya-table-actions { z-index:2; }
1944
+ .diya-root .diya-table-skeleton { display:block; height:14px; width:70%; min-width:16px; border-radius:calc(4px * var(--diya-corner-scale, 1)); background:var(--diya-color-selected); margin:8px 0; }
1945
+ .diya-root .diya-table-loading,
1946
+ .diya-root .diya-table-secondary { color:var(--diya-color-muted); font-size:var(--diya-text-caption); }
1947
+ .diya-root .diya-table-secondary { display:block; margin-top:4px; }
1948
+ .diya-root .diya-table-person,
1949
+ .diya-root .diya-table-progress { display:inline-flex; align-items:center; gap:10px; white-space:nowrap; }
1950
+ .diya-root .diya-table-progress progress { width:72px; height:6px; accent-color:var(--diya-color-text); }
1951
+ .diya-root .diya-table-resource { border:0; padding:0; background:none; color:var(--diya-color-text); font:inherit; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; cursor:pointer; }
1952
+
1953
+
1954
+ .diya-root .diya-table[data-sticky] tbody tr[data-selected] td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { background:color-mix(in srgb,var(--diya-color-text) calc(var(--diya-internal-table-selected-weight) + 2%),var(--diya-internal-table-surface)); }
1955
+ .diya-root .diya-table time:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { white-space:nowrap; }
1956
+ .diya-root .diya-table .diya-metric-number { font-size:var(--diya-text-body); }
1957
+ .diya-root .diya-table { --diya-internal-table-rule:color-mix(in srgb,var(--diya-color-line) 62%,transparent); }
1958
+ .diya-root .diya-table table:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { table-layout:fixed; }
1959
+ .diya-root .diya-table th:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { height:44px; background:color-mix(in srgb,var(--diya-color-text) 3%,var(--diya-internal-table-surface)); }
1960
+ .diya-root .diya-table th:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)),
1961
+ .diya-root .diya-table td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { padding-left:16px; padding-right:16px; }
1962
+ .diya-root .diya-table td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { border-top-color:var(--diya-internal-table-rule); height:60px; }
1963
+ .diya-root .diya-table .diya-table-actions { position:static; box-shadow:none; padding:8px; text-align:center; }
1964
+ .diya-root .diya-table[data-sticky] .diya-table-actions { position:sticky; right:0; box-shadow:-1px 0 var(--diya-color-line); }
1965
+ .diya-root .diya-table tbody tr[data-selected] td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) { background:color-mix(in srgb,var(--diya-color-text) var(--diya-internal-table-selected-weight),var(--diya-internal-table-surface)); }
1966
+ .diya-root .diya-table-sort { gap:6px; line-height:20px; }
1967
+ .diya-root .diya-table-sort svg { opacity:.45; flex-shrink:0; }
1968
+ .diya-root .diya-table th[aria-sort='ascending'] .diya-table-sort,
1969
+ .diya-root .diya-table th[aria-sort='descending'] .diya-table-sort { color:var(--diya-color-text); }
1970
+ .diya-root .diya-table th[aria-sort='ascending'] svg:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)),
1971
+ .diya-root .diya-table th[aria-sort='descending'] svg:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)),
1972
+ .diya-root .diya-table-sort:hover svg { opacity:1; }
1973
+ .diya-root .diya-table-sort:disabled { cursor:default; }
1974
+ .diya-root .diya-table .diya-pagination { display:grid; grid-template-columns:1fr auto 1fr; gap:16px; margin-top:16px; }
1975
+ .diya-root .diya-table .diya-pagination-count { justify-self:start; }
1976
+ .diya-root .diya-table .diya-pagination-size { justify-self:end; }
1977
+ .diya-root .diya-table .diya-pagination-size .diya-select-field { width:84px; }
1978
+ .diya-root .diya-table .diya-metric { gap:4px; align-items:flex-end; }
1979
+ .diya-root .diya-table .diya-metric[data-size='small'] .diya-metric-number { font-size:var(--diya-text-body); letter-spacing:0; }
1980
+ .diya-root .diya-table .diya-metric-comparison { font-size:var(--diya-text-caption); }
1981
+ .diya-root .diya-table-progress { font-size:var(--diya-text-caption); font-variant-numeric:tabular-nums; }
1982
+ .diya-root .diya-table-progress progress { appearance:none; border:0; border-radius:10px; overflow:hidden; background:var(--diya-color-selected); }
1983
+ .diya-root .diya-table-progress progress::-webkit-progress-bar { background:var(--diya-color-selected); border-radius:10px; }
1984
+ .diya-root .diya-table-progress progress::-webkit-progress-value { background:var(--diya-color-text); border-radius:10px; }
1985
+ .diya-root .diya-table-progress progress::-moz-progress-bar { background:var(--diya-color-text); border-radius:10px; }
1986
+ .diya-root .diya-table-empty { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
1987
+ .diya-root .diya-table-empty strong { font-size:var(--diya-text-large); font-weight:500; }
1988
+ .diya-root .diya-table-empty p { font-size:var(--diya-text-body); max-width:300px; line-height:1.6; }
1989
+ .diya-root .diya-table-scroll { scrollbar-width:thin; scrollbar-color:var(--diya-color-muted) var(--diya-internal-table-surface); }
1990
+ .diya-root .diya-table-resource:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:4px; border-radius:2px; }
1991
+ @media(max-width:1100px) { .diya-root .diya-table .diya-pagination { display:flex; justify-content:space-between; } }
1992
+ @media(max-width:600px) { .diya-root .diya-table .diya-pagination nav { width:100%; order:3; justify-content:center; } }
1993
+ .diya-root .diya-table[aria-busy='true'] .diya-table-sort { opacity:.5; }
1994
+ .diya-root .diya-table-progress { display:inline-grid; grid-template-columns:72px 34px; gap:10px; width:116px; }
1995
+ .diya-root .diya-table-progress progress { width:72px; min-width:72px; max-width:72px; }
1996
+ .diya-root .diya-table-progress > span { text-align:right; }
1997
+ .diya-root
1998
+ .diya-table[data-sticky] .diya-table-actions {
1999
+ background:color-mix(in srgb,var(--diya-internal-table-surface) 78%,transparent);
2000
+ backdrop-filter:blur(16px);
2001
+ }
2002
+ .diya-root
2003
+ .diya-table[data-sticky] tbody tr:hover > .diya-table-actions {
2004
+ background:color-mix(in srgb,var(--diya-internal-table-surface) 85%,transparent);
2005
+ }
2006
+ .diya-root
2007
+ .diya-table[data-sticky] tbody tr[data-selected] > .diya-table-actions {
2008
+ background:color-mix(in srgb,var(--diya-color-text) var(--diya-internal-table-selected-weight),color-mix(in srgb,var(--diya-internal-table-surface) 80%,transparent));
2009
+ }
2010
+ @media(prefers-reduced-transparency:reduce) {
2011
+ .diya-root
2012
+ .diya-table[data-sticky] .diya-table-actions { background:var(--diya-internal-table-surface); backdrop-filter:none; }
2013
+ }
2014
+ .diya-root .diya-table .diya-table-expander { width:40px; padding:6px; }
2015
+ .diya-root .diya-table-expander button { display:grid; place-items:center; width:28px; height:32px; padding:0; border:0; border-radius:calc(6px * var(--diya-corner-scale, 1)); color:var(--diya-color-muted); background:transparent; cursor:pointer; }
2016
+ .diya-root .diya-table-expander button:hover { background:var(--diya-color-selected); color:var(--diya-color-text); }
2017
+ .diya-root .diya-table-expander button[aria-expanded='true'] svg { transform:rotate(90deg); }
2018
+ .diya-root .diya-table-expander button:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:2px; }
2019
+ .diya-root .diya-table .diya-table-detail-row > td { padding:24px 24px 28px 56px; background:color-mix(in srgb,var(--diya-color-text) 3%,var(--diya-internal-table-surface)); }
2020
+ .diya-root .diya-table .diya-table-scroll { background:var(--diya-internal-table-surface); border-color:var(--diya-internal-table-rule); box-shadow:var(--diya-internal-table-elevation); }
2021
+ @media(forced-colors:active) { .diya-root .diya-table { --diya-internal-table-surface:Canvas; } }
2022
+
2023
+ .diya-root .diya-table-toolbar { align-items:center; justify-content:space-between; flex-wrap:wrap; }
2024
+ .diya-root .diya-table-title { margin:0; font-size:var(--diya-text-title); line-height:1.4; font-weight:500; letter-spacing:-.02em; }
2025
+ .diya-root .diya-table-tools { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin-left:auto; min-width:0; }
2026
+ .diya-root .diya-table-tools .diya-search { margin-left:0; }
2027
+ @media(max-width:600px) {
2028
+ .diya-root .diya-table-tools { width:100%; }
2029
+ .diya-root .diya-table-tools .diya-search { width:100%; }
2030
+ }
2031
+ .diya-root .diya-table .diya-table-toolbar > .diya-table-title { margin:0; line-height:36px; }
2032
+
2033
+
2034
+ /* site-header/SiteHeader.css: portable component rules. */
2035
+ .diya-root .diya-site-header-container {
2036
+ --diya-internal-site-search-min-width:160px;
2037
+ --diya-internal-site-brand-nav-gap:32px;
2038
+ --diya-internal-site-header-spacer:24px;
2039
+ --diya-internal-site-utilities-gap:16px;
2040
+ --diya-internal-site-full-inset:24px;
2041
+ --diya-internal-site-compact-inset:16px;
2042
+ --diya-internal-site-compact-gap:8px;
2043
+ container-type:inline-size;
2044
+ width:100%;
2045
+ }
2046
+ .diya-root .diya-site-header { color:var(--diya-color-text); border-bottom:1px solid var(--diya-internal-header-border); }
2047
+ .diya-root .diya-site-header-row {
2048
+ display:flex;
2049
+ flex-wrap:nowrap;
2050
+ align-items:center;
2051
+ min-height:64px;
2052
+ column-gap:var(--diya-internal-site-utilities-gap);
2053
+ row-gap:8px;
2054
+ padding:12px var(--diya-internal-site-full-inset);
2055
+ }
2056
+ .diya-root .diya-site-identity { display:flex; align-items:center; gap:var(--diya-internal-site-brand-nav-gap); min-width:0; flex:0 0 auto; margin-inline-end:calc(var(--diya-internal-site-header-spacer) - var(--diya-internal-site-utilities-gap)); }
2057
+ .diya-root .diya-site-brand { display:inline-flex; align-items:center; gap:8px; min-width:0; padding:0; border:0; background:transparent; font:inherit; font-size:var(--diya-text-large); line-height:24px; letter-spacing:-.01em; font-weight:600; color:inherit; flex-shrink:0; text-align:left; white-space:nowrap; }
2058
+ .diya-root button.diya-site-brand, .diya-root a.diya-site-brand { cursor:pointer; }
2059
+ .diya-root .diya-site-nav { display:flex; align-items:center; gap:4px; min-width:0; flex-shrink:0; }
2060
+ .diya-root .diya-site-nav[hidden], .diya-root .diya-site-menu-toggle[hidden] { display:none; }
2061
+ .diya-root .diya-site-nav :is(button, a),
2062
+ .diya-root .diya-site-mobile-nav :is(button, a) { display:inline-flex; align-items:center; min-height:40px; padding:0 12px; border:0; background:transparent; color:var(--diya-color-muted); font:inherit; font-size:var(--diya-text-body); line-height:20px; font-weight:400; border-radius:calc(8px * var(--diya-corner-scale, 1)); text-decoration:none; white-space:nowrap; cursor:pointer; }
2063
+ .diya-root .diya-site-nav :is(button, a):not(:disabled):hover,
2064
+ .diya-root .diya-site-mobile-nav :is(button, a):not(:disabled):hover { color:var(--diya-color-text); background:var(--diya-color-hover); }
2065
+ .diya-root .diya-site-nav :is(button, a)[aria-current],
2066
+ .diya-root .diya-site-mobile-nav :is(button, a)[aria-current] { color:var(--diya-color-text); background:var(--diya-color-selected); }
2067
+ .diya-root .diya-site-nav button:disabled, .diya-root .diya-site-mobile-nav button:disabled { opacity:.5; cursor:not-allowed; }
2068
+ .diya-root .diya-site-utilities { margin-inline-start:auto; display:flex; align-items:center; min-width:0; flex:0 0 auto; gap:var(--diya-internal-site-utilities-gap); }
2069
+ .diya-root .diya-site-search { width:240px; min-width:var(--diya-internal-site-search-min-width); margin-inline-start:auto; flex:0 1 auto; }
2070
+ .diya-root .diya-site-header-container:not([data-stacked='true']) .diya-site-header-row:has(> .diya-site-search) > .diya-site-utilities { margin-inline-start:0; }
2071
+ .diya-root .diya-site-tools { display:flex; align-items:center; flex-shrink:0; gap:4px; }
2072
+ .diya-root .diya-site-avatar { display:flex; align-items:center; justify-content:center; flex-shrink:0; }
2073
+ .diya-root .diya-site-account { display:flex; align-items:center; gap:8px; }
2074
+ .diya-root .diya-site-header .diya-button[data-icon-only='true'] { width:40px; height:40px; min-height:40px; flex-shrink:0; padding:0; }
2075
+ .diya-root .diya-site-tools .diya-button > svg { width:20px; height:20px; }
2076
+ .diya-root .diya-site-tools .diya-button[data-icon-only='true'][data-variant='quiet'] { color:var(--diya-color-muted); }
2077
+ .diya-root .diya-site-tools .diya-button[data-icon-only='true'][data-variant='quiet']:not(:disabled):hover { color:var(--diya-color-text); }
2078
+ .diya-root .diya-site-avatar .diya-button[data-icon-only='true'] { border-radius:50%; }
2079
+ .diya-root .diya-site-header .diya-site-search .diya-text-field-control { height:40px; min-height:40px; box-sizing:border-box; }
2080
+ .diya-root .diya-site-search input { font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body)); line-height:20px; }
2081
+ .diya-root .diya-site-header .diya-site-menu-toggle { display:none; }
2082
+ .diya-root .diya-site-brand:focus-visible,
2083
+ .diya-root .diya-site-nav :is(button, a):focus-visible,
2084
+ .diya-root .diya-site-mobile-nav :is(button, a):focus-visible { outline:2px solid var(--diya-color-text); outline-offset:3px; }
2085
+ .diya-root .diya-site-header-container[data-compact='true'] .diya-site-header-row { flex-wrap:wrap; }
2086
+ .diya-root .diya-site-header-container[data-compact='true'] .diya-site-header .diya-site-menu-toggle { display:inline-flex; }
2087
+ .diya-root .diya-site-header-container[data-compact='true'] .diya-site-nav { flex:0 0 100%; width:100%; align-items:stretch; flex-direction:column; gap:4px; }
2088
+ .diya-root .diya-site-header-container[data-compact='true'] .diya-site-nav :is(button, a) { min-width:0; max-width:100%; text-align:left; white-space:normal; overflow-wrap:anywhere; padding-block:8px; }
2089
+ .diya-root .diya-site-header-container[data-compact='true']:not([data-stacked='true']) .diya-site-search { flex:1 1 var(--diya-internal-site-search-min-width); max-width:240px; }
2090
+ .diya-root .diya-site-header-container[data-stacked='true'] .diya-site-header-row { flex-wrap:wrap; column-gap:var(--diya-internal-site-compact-gap); padding-inline:var(--diya-internal-site-compact-inset); }
2091
+ .diya-root .diya-site-header-container[data-stacked='true'] .diya-site-identity { margin-inline-end:0; }
2092
+ .diya-root .diya-site-header-container[data-stacked='true'] .diya-site-utilities { gap:var(--diya-internal-site-compact-gap); }
2093
+ .diya-root .diya-site-header-container[data-stacked='true'] .diya-site-search { flex:0 0 100%; width:100%; min-width:0; }
2094
+ /* Only a caller's measured utility overflow creates another row. */
2095
+ .diya-root .diya-site-header-container[data-tools-wrap='true'] .diya-site-header-row { flex-wrap:wrap; }
2096
+ .diya-root .diya-site-header-container[data-tools-wrap='true'] .diya-site-utilities { display:contents; }
2097
+ .diya-root .diya-site-header-container[data-tools-wrap='true'] .diya-site-avatar { margin-inline-start:auto; }
2098
+ .diya-root .diya-site-header-container[data-tools-wrap='true'] .diya-site-tools { flex:0 0 100%; width:100%; flex-wrap:wrap; justify-content:flex-end; }
2099
+
2100
+ /* workflow/WorkflowPatterns.css: portable component rules. */
2101
+ .diya-root .diya-workflow-surface { background:var(--diya-color-raised,var(--diya-color-surface)); color:var(--diya-color-text); border:1px solid var(--diya-color-line); border-radius:var(--diya-radius-surface); }
2102
+ .diya-root .diya-workflow-surface h3:not(:where([class*='diya-'], .diya-workflow-surface [class*='diya-']:not(.diya-workflow-surface, .diya-drawer-body, .diya-wizard-body) *)) { margin:0; font-size:var(--diya-text-title); font-weight:600; letter-spacing:-.025em; }
2103
+ /* A surface's own paragraphs (its description, FileUpload's error) are pinned by place, so they hold
2104
+ however deep the surface sits; plain paragraphs in your content take the same style. */
2105
+ .diya-root .diya-workflow-surface p:where(.diya-workflow-surface > *, .diya-workflow-surface > header > *, .diya-drawer-modal > header > div > *, .diya-wizard-body > form > header > *, .diya-upload-drop > *, .diya-content-state > div > *),
2106
+ .diya-root .diya-workflow-surface p:not(:where([class*='diya-'], .diya-workflow-surface [class*='diya-']:not(.diya-workflow-surface, .diya-drawer-body, .diya-wizard-body) *)) { color:var(--diya-color-muted); font-size:var(--diya-text-body); line-height:1.6; margin:8px 0 0; }
2107
+ .diya-root .diya-workflow-symbol { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--diya-color-hover); margin:0 auto 18px; }
2108
+ .diya-root .diya-workflow-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
2109
+ .diya-root .diya-upload { max-width:600px; margin:auto; padding:20px; }
2110
+ .diya-root .diya-upload-drop { border:1px dashed var(--diya-color-line); border-radius:calc(12px * var(--diya-corner-scale, 1)); text-align:center; padding:32px 20px; }
2111
+ .diya-root .diya-upload-drop[data-dragging='true'] { background:var(--diya-color-hover); border-color:var(--diya-color-text); }
2112
+ .diya-root .diya-upload-drop .diya-button { margin-top:20px; }.diya-root .diya-upload-drop small { display:block; margin-top:16px; color:var(--diya-color-muted); font-size:var(--diya-text-caption); }
2113
+ .diya-root .diya-upload-files { margin:16px 0 0; padding:0; list-style:none; }.diya-root .diya-upload-files li { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--diya-color-line); }.diya-root .diya-upload-files li:last-child { border:0; }.diya-root .diya-upload-files li>span { flex:1; min-width:0; }.diya-root .diya-upload-files strong { display:block; font-size:var(--diya-text-body); overflow-wrap:anywhere; font-weight:500; }.diya-root .diya-upload-files small { display:block; color:var(--diya-color-muted); font-size:var(--diya-text-caption); margin-top:4px; }
2114
+ .diya-root .diya-workflow-surface .diya-workflow-error { color:var(--diya-color-error); }
2115
+ .diya-root :is(.diya-project-form-title, .diya-upload-title) { margin:0; font-size:var(--diya-text-title); font-weight:600; letter-spacing:-0.015em; line-height:var(--diya-leading-tight); }
2116
+ .diya-root .diya-project-form { max-width:520px; margin:auto; padding:24px; display:grid; gap:24px; }.diya-root .diya-project-form > footer { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; padding-top:8px; }
2117
+ .diya-root .diya-workflow-eyebrow { font-size:var(--diya-text-caption); letter-spacing:0; color:var(--diya-color-muted); display:block; margin-bottom:16px; }
2118
+ .diya-root .diya-drawer-modal>header { display:flex; gap:16px; align-items:flex-start; padding:24px; border-bottom:1px solid var(--diya-color-line); }.diya-root .diya-drawer-body { padding:24px; }.diya-root .diya-drawer-body h4:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)) { font-size:var(--diya-text-title); margin:0; }.diya-root .diya-drawer-body dl:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)) { margin:24px 0 0; }.diya-root .diya-drawer-body dl div:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)) { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--diya-color-line); font-size:var(--diya-text-body); }.diya-root .diya-drawer-body dt:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)) { color:var(--diya-color-muted); }.diya-root .diya-drawer-body dd:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)) { margin:0; }.diya-root .diya-drawer-modal > footer { display:flex; justify-content:flex-end; gap:12px; padding:20px 24px; border-top:1px solid var(--diya-color-line); }
2119
+ .diya-root .diya-drawer-modal { position:fixed; inset:0 0 0 auto; width:min(440px,100vw); height:100dvh; max-height:100dvh; max-width:100vw; padding:0; margin:0; border-radius:calc(16px * var(--diya-corner-scale, 1)) 0 0 calc(16px * var(--diya-corner-scale, 1)); overflow:hidden; box-shadow:var(--diya-shadow-raised); }.diya-root .diya-drawer-modal[data-side='left'] { inset:0 auto 0 0; border-radius:0 calc(16px * var(--diya-corner-scale, 1)) calc(16px * var(--diya-corner-scale, 1)) 0; }.diya-root .diya-drawer-modal::backdrop { background:var(--diya-color-scrim, #0008); backdrop-filter:blur(5px); }.diya-root .diya-drawer-modal>header>div { flex:1; min-width:0; overflow-wrap:anywhere; }.diya-root .diya-drawer-modal>header>.diya-button { flex-shrink:0; }.diya-root .diya-drawer-modal[open] { display:flex; flex-direction:column; }.diya-root .diya-drawer-modal > footer { margin-top:auto; flex-wrap:wrap; }
2120
+ .diya-root .diya-content-state { max-width:600px; margin:auto; padding:44px 32px; text-align:center; }.diya-root .diya-content-state p { max-width:360px; margin:10px auto 24px; }
2121
+ .diya-root .diya-workflow-surface :is(.diya-content-state-title, .diya-wizard-title) { margin:0; font-size:var(--diya-text-title); font-weight:600; letter-spacing:-.015em; line-height:var(--diya-leading-tight); }
2122
+ @media(max-width:700px) {.diya-root .diya-project-form { padding:20px; } }
2123
+
2124
+ .diya-root .diya-project-form{max-width:640px;width:100%}.diya-root .diya-project-form .diya-text-field,
2125
+ .diya-root .diya-project-form .diya-combobox,
2126
+ .diya-root .diya-project-form .diya-date-field{max-width:none;width:100%}.diya-root .diya-form-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:24px}
2127
+ .diya-root .diya-wizard{max-width:720px;margin:auto;width:100%;padding:28px;container-type:inline-size;container-name:diya-wizard}.diya-root .diya-wizard-steps{list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding:0 0 24px;margin:0 0 28px;border-bottom:1px solid var(--diya-color-line)}.diya-root .diya-wizard-steps li{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;color:var(--diya-color-muted);font-size:var(--diya-text-body)}.diya-root .diya-wizard-steps li>span{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid var(--diya-color-line);border-radius:50%;font-size:var(--diya-text-caption)}.diya-root .diya-wizard-steps strong{min-width:0;font-weight:500;overflow-wrap:anywhere}.diya-root .diya-wizard-steps li[aria-current],
2128
+ .diya-root .diya-wizard-steps li[data-complete='true']{color:var(--diya-color-text)}.diya-root .diya-wizard-steps li[aria-current]>span{background:var(--diya-color-accent);color:var(--diya-color-accent-text,var(--diya-color-raised))}.diya-root .diya-wizard-body > form{display:grid;gap:24px}.diya-root .diya-wizard-body .diya-text-field,
2129
+ .diya-root .diya-wizard-body .diya-combobox{max-width:none}.diya-root .diya-wizard-body{flex:1;min-width:0}.diya-root .diya-wizard-body > :where(form) > footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:8px}.diya-root .diya-wizard-summary{font-size:var(--diya-text-caption);color:var(--diya-color-muted)}.diya-root .diya-wizard-review{margin:0;display:grid;gap:16px}.diya-root .diya-wizard-review>div{display:grid;grid-template-columns:90px 1fr;gap:20px;font-size:var(--diya-text-body)}.diya-root .diya-wizard-review dt{color:var(--diya-color-muted)}.diya-root .diya-wizard-review dd{margin:0;overflow-wrap:anywhere}.diya-root .diya-wizard-complete{text-align:center;padding:32px 0}.diya-root .diya-wizard-complete .diya-button{margin-top:24px}.diya-root .diya-wizard[data-orientation='vertical']{display:flex;flex-wrap:wrap;gap:28px}.diya-root .diya-wizard[data-orientation='vertical'] .diya-wizard-steps{flex:0 0 140px;flex-direction:column;justify-content:flex-start;border-bottom:0;border-right:1px solid var(--diya-color-line);padding:0 24px 0 0;margin:0;gap:28px}
2130
+ @media(max-width:700px){.diya-root .diya-wizard{padding:20px}.diya-root .diya-wizard-steps{gap:12px}.diya-root .diya-wizard-steps li{gap:6px}}
2131
+ /* A 140px rail plus 28px gap leaves at least 232px for fields before stacking. */
2132
+ @container diya-wizard (max-width:400px) {
2133
+ /* Step labels are compact labels in a narrow wizard, so the steps stay on one row. */
2134
+ .diya-root .diya-wizard-steps li{font-size:var(--diya-text-caption)}
2135
+ .diya-root .diya-wizard[data-orientation='vertical'] .diya-wizard-steps{flex-basis:100%;flex-direction:row;justify-content:space-between;border-right:0;border-bottom:1px solid var(--diya-color-line);padding:0 0 20px;gap:12px}
2136
+ .diya-root .diya-wizard[data-orientation='vertical'] .diya-wizard-body{flex-basis:100%}
2137
+ }
2138
+ .diya-root .diya-workflow-surface .diya-text-field-control input,
2139
+ .diya-root
2140
+ .diya-workflow-surface .diya-select-control select { height:calc(var(--diya-internal-field-height) - 2px); font-size:var(--diya-internal-field-font-size); }
2141
+ .diya-root .diya-workflow-surface .diya-date-trigger,
2142
+ .diya-root
2143
+ .diya-workflow-surface .diya-combobox-control { min-height:40px; font-size:var(--diya-text-body); }
2144
+ .diya-root .diya-workflow-surface .diya-combobox-control input { height:24px; font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body)); }
2145
+ .diya-root .diya-workflow-surface :is(.diya-date-trigger,.diya-combobox-control,.diya-text-field-control,.diya-select-control) { border-radius:var(--diya-radius-control, calc(10px * var(--diya-corner-scale, 1))); }
2146
+ .diya-root .diya-workflow-surface :is(.diya-combobox,.diya-date-field)>label { font-size:var(--diya-text-body); margin-bottom:10px; }
2147
+
2148
+ .diya-root .diya-workflow-surface input[name='project-title']::-webkit-contacts-auto-fill-button { visibility:hidden; display:none; pointer-events:none; }
2149
+
2150
+
2151
+ /* application-patterns/ApplicationPatterns.css: portable component rules. */
2152
+ .diya-root .diya-app-pattern-surface{background:var(--diya-color-raised,var(--diya-color-surface));color:var(--diya-color-text);border:1px solid var(--diya-color-line);border-radius:var(--diya-radius-surface);overflow:hidden}
2153
+ .diya-root .diya-chat{width:100%;max-width:620px;display:flex;flex-direction:column}
2154
+ .diya-root .diya-chat-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
2155
+ .diya-root .diya-chat[data-presentation='floating']{max-width:380px;margin-left:auto;box-shadow:0 calc(12px * var(--diya-elevation, 1)) calc(32px * var(--diya-elevation, 1)) #0002}
2156
+ .diya-root .diya-chat[data-presentation='full-page']{max-width:none;height:100%;min-height:0}
2157
+ .diya-root .diya-chat-header{flex:none;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--diya-color-line)}
2158
+ .diya-root .diya-chat-header > :where(div) > small{display:block;color:var(--diya-color-muted);font-size:var(--diya-text-caption);margin-top:5px}
2159
+ /* The thread takes what the header and composer leave: 280px (380px full-page) when the chat sizes
2160
+ itself, and the rest of any height the chat is given, scrolling inside. */
2161
+ .diya-root .diya-chat-thread{padding:24px;flex:1 1 280px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
2162
+ .diya-root .diya-chat[data-presentation='full-page'] .diya-chat-thread{flex-basis:380px}
2163
+ .diya-root .diya-chat-welcome{text-align:center;margin:24px auto;max-width:430px;font-size:var(--diya-text-large)}
2164
+ .diya-root .diya-chat-welcome>span{font-size:var(--diya-text-display)}.diya-root .diya-chat-welcome h3:not(:where([class*='diya-'], .diya-chat-welcome [class*='diya-'] *)),.diya-root .diya-chat-welcome .diya-chat-welcome-title{font-size:var(--diya-text-title);margin:16px 0 8px}.diya-root .diya-chat-welcome p:not(:where([class*='diya-'], .diya-chat-welcome [class*='diya-'] *)){font-size:var(--diya-text-body);color:var(--diya-color-muted)}
2165
+ .diya-root .diya-chat-suggestions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:24px}
2166
+ .diya-root .diya-chat-message{margin-bottom:20px;max-width:90%;font-size:var(--diya-text-body);line-height:1.65}.diya-root .diya-chat-message small{color:var(--diya-color-muted);font-size:var(--diya-text-caption)}.diya-root .diya-chat-message p{white-space:pre-wrap;margin:6px 0}
2167
+ .diya-root .diya-chat-message[data-role='user']{width:fit-content;margin-left:auto;background:var(--diya-color-selected);padding:12px 16px;border-radius:calc(14px * var(--diya-corner-scale, 1))}
2168
+ .diya-root .diya-chat-composer{flex:none;margin:0 20px 12px;padding:12px 14px;border:1px solid var(--diya-color-line);border-radius:calc(16px * var(--diya-corner-scale, 1));background:var(--diya-color-glass)}
2169
+ .diya-root .diya-chat-composer textarea{display:block;resize:none;border:0;width:100%;background:transparent;color:inherit;font:inherit;font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body));line-height:1.6;outline:0;min-height:50px}.diya-root .diya-chat-composer:focus-within{outline:2px solid var(--diya-color-text);outline-offset:2px}
2170
+ .diya-root .diya-chat-composer textarea::placeholder{color:var(--diya-color-muted);opacity:1}
2171
+ .diya-root .diya-chat-composer>div{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.diya-root .diya-chat-attach{position:relative;cursor:pointer;font-size:var(--diya-text-caption);color:var(--diya-color-muted);padding:8px;border-radius:calc(6px * var(--diya-corner-scale, 1))}.diya-root .diya-chat-attach input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.diya-root .diya-chat-attach:focus-within{outline:2px solid currentColor}
2172
+ .diya-root .diya-chat-notice{flex:none;font-size:var(--diya-text-caption);color:var(--diya-color-muted);padding:0 20px 12px}.diya-root .diya-chat-notice:empty{display:none}.diya-root .diya-side-navigation{width:220px;flex:none;padding:24px 16px;border-right:1px solid var(--diya-color-line)}.diya-root .diya-side-navigation[data-collapsed='true']{width:72px}.diya-root .diya-side-navigation>strong{display:block;padding:0 12px 20px;font-size:var(--diya-text-title)}.diya-root .diya-side-navigation>div{margin-bottom:20px}.diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > small{display:block;padding:0 12px;margin-bottom:8px;font-size:var(--diya-text-caption);letter-spacing:0;color:var(--diya-color-muted)}.diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:var(--diya-color-muted);text-align:left;padding:10px 12px;border-radius:calc(8px * var(--diya-corner-scale, 1));font:inherit;font-size:var(--diya-text-caption);cursor:pointer}.diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > button[aria-current]{background:var(--diya-color-selected);color:var(--diya-color-text)}.diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > button:hover{background:var(--diya-color-hover)}.diya-root .diya-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.diya-root .diya-filter-bar>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diya-root .diya-filter-bar select{height:40px;background:var(--diya-color-glass);color:inherit;border:1px solid var(--diya-color-line);border-radius:calc(8px * var(--diya-corner-scale, 1));padding:0 12px;font:inherit;font-size:max(var(--diya-internal-field-min, 0px), var(--diya-text-body))}.diya-root .diya-filter-bar .diya-search{width:220px}.diya-root .diya-active-filters{display:flex;align-items:center;gap:10px;margin-top:16px}.diya-root .diya-active-filters>button{font:inherit;font-size:var(--diya-text-caption);padding:6px 10px;background:var(--diya-color-selected);color:inherit;border:0;border-radius:calc(6px * var(--diya-corner-scale, 1));cursor:pointer}
2173
+ @media(max-width:600px){.diya-root .diya-side-navigation{width:150px;padding:20px 10px}.diya-root .diya-chat-thread{padding:18px}.diya-root .diya-filter-bar>div{width:100%}.diya-root .diya-filter-bar .diya-search{width:100%}.diya-root .diya-chat-composer{margin-inline:12px}}
2174
+
2175
+ /* The caller owns the application frame; navigation owns its single divider. */
2176
+ .diya-root .diya-side-navigation { border:0; border-right:1px solid var(--diya-color-line); border-radius:0; }
2177
+ /* Link items match button items. */
2178
+ .diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > a { display:flex; align-items:center; gap:12px; width:100%; color:var(--diya-color-muted); text-decoration:none; padding:10px 12px; border-radius:calc(8px * var(--diya-corner-scale, 1)); font-size:var(--diya-text-caption); }
2179
+ .diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > a[aria-current] { background:var(--diya-color-selected); color:var(--diya-color-text); }
2180
+ .diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > a:hover { background:var(--diya-color-hover); }
2181
+ /* A count sits quietly at the end of the label's line. When a narrow nav can't fit both, the count
2182
+ moves under the label instead of breaking its words. */
2183
+ .diya-root .diya-side-navigation-label { flex:1 1 auto; min-width:0; max-width:100%; overflow-wrap:break-word; }
2184
+ .diya-root .diya-side-navigation-text { flex:1 1 auto; min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; column-gap:8px; row-gap:2px; }
2185
+ .diya-root .diya-side-navigation-count { flex-shrink:0; margin-left:auto; color:var(--diya-color-muted); font-variant-numeric:tabular-nums; }
2186
+ /* Collapsed, a dot on the icon says there is a count; the item's name carries the number. */
2187
+ .diya-root .diya-side-navigation-icon { position:relative; }
2188
+ /* The footer (an account or workspace menu) sits at the bottom of a full-height nav. Item rules stop at
2189
+ the group rows above, so a Menu, Avatar or Button in it keeps its own look. */
2190
+ .diya-root .diya-side-navigation:has(> .diya-side-navigation-footer) { display:flex; flex-direction:column; }
2191
+ .diya-root .diya-side-navigation > .diya-side-navigation-footer { margin:auto 0 0; padding-top:16px; min-width:0; }
2192
+ .diya-root .diya-side-navigation[data-collapsed='true'] > .diya-side-navigation-footer { display:flex; justify-content:center; }
2193
+ .diya-root .diya-side-navigation-dot { position:absolute; top:-4px; right:-7px; width:8px; height:8px; border-radius:50%; background:var(--diya-color-accent); }
2194
+
2195
+ .diya-root .diya-chat-attach{display:inline-flex;align-items:center;gap:7px;line-height:20px}
2196
+
2197
+
2198
+ /* data-viz/DataViz.css: portable component rules. */
2199
+ .diya-root .diya-data-viz { width:100%; height:300px; min-width:0; }
2200
+ .diya-root .diya-analytics-card { width:100%; border:1px solid var(--diya-color-line); border-radius:var(--diya-radius-surface); padding:24px; background:var(--diya-color-raised); color:var(--diya-color-text); }
2201
+ .diya-root .diya-analytics-card[data-shadow='true'] { box-shadow:var(--diya-shadow-raised); }
2202
+ .diya-root .diya-analytics-header { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:24px; }
2203
+ .diya-root .diya-analytics-title { margin:0 0 6px; font-size:var(--diya-text-title); font-weight:600; letter-spacing:-.015em; line-height:var(--diya-leading-tight); }
2204
+ .diya-root .diya-analytics-header p,
2205
+ .diya-root .diya-analytics-footer { font-size:var(--diya-text-caption); color:var(--diya-color-muted); margin:0; }
2206
+ .diya-root .diya-analytics-tools { display:flex; align-items:center; gap:12px; font-size:var(--diya-text-body); color:var(--diya-color-muted); }
2207
+ .diya-root .diya-analytics-tools select { background:var(--diya-color-hover); color:var(--diya-color-text); border:1px solid var(--diya-color-line); padding:8px 12px; border-radius:calc(8px * var(--diya-corner-scale, 1)); }
2208
+ .diya-root .diya-analytics-metric { font-size:var(--diya-text-display); font-weight:500; line-height:var(--diya-leading-tight); margin-bottom:12px; letter-spacing:-.04em; }
2209
+ .diya-root .diya-analytics-metric small { font-size:var(--diya-text-caption); letter-spacing:0; color:var(--diya-color-muted); margin-left:12px; }
2210
+ .diya-root .diya-analytics-footer { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-top:20px; }
2211
+ .diya-root .diya-analytics-data { width:100%; font-size:var(--diya-text-caption); border-collapse:collapse; margin-top:20px; font-variant-numeric:tabular-nums; }
2212
+ .diya-root .diya-analytics-data-scroll { min-width:0; max-width:100%; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--diya-color-muted) transparent; }
2213
+ .diya-root .diya-analytics-data-scroll:focus-visible { outline:2px solid var(--diya-color-text); outline-offset:4px; }
2214
+ .diya-root .diya-analytics-data th,
2215
+ .diya-root .diya-analytics-data td { padding:10px; text-align:left; border-bottom:1px solid var(--diya-color-line); }
2216
+ @media(max-width:600px){.diya-root .diya-analytics-card{padding:20px}.diya-root .diya-card-body{padding:20px}.diya-root .diya-analytics-tools{flex-wrap:wrap}.diya-root .diya-data-viz{height:260px}}
2217
+
2218
+ .diya-root .diya-chart-frame{position:relative;width:100%;min-width:0}.diya-root .diya-donut-total{position:absolute;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;color:var(--diya-color-text)}.diya-root .diya-donut-total strong{font-size:var(--diya-text-display);line-height:1;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.diya-root .diya-donut-total span{font-size:var(--diya-text-caption);color:var(--diya-color-muted)}
2219
+
2220
+
2221
+
2222
+ /* Material values belong to each provider so nested appearances stay independent. */
2223
+ .diya-root {
2224
+ --diya-internal-control-line: color-mix(in srgb, var(--diya-color-muted) 70%, transparent);
2225
+ --diya-internal-alert-alpha: 7%;
2226
+ --diya-internal-alert-fill: var(--diya-color-raised);
2227
+ --diya-internal-alert-backdrop: none;
2228
+ --diya-internal-table-shadow: 0 calc(6px * var(--diya-elevation, 1)) calc(20px * var(--diya-elevation, 1)) #0002;
2229
+ --diya-internal-field-fill: var(--diya-color-hover);
2230
+ --diya-internal-collection-fill: transparent;
2231
+ --diya-internal-popup-control-fill: var(--diya-color-hover);
2232
+ --diya-internal-popup-fill: var(--diya-color-raised);
2233
+ --diya-internal-pattern-fill: var(--diya-color-raised);
2234
+ --diya-internal-workflow-fill: var(--diya-color-raised);
2235
+ --diya-internal-application-fill: var(--diya-color-raised);
2236
+ --diya-internal-analytics-fill: var(--diya-color-raised);
2237
+ --diya-internal-table-fill: var(--diya-color-raised);
2238
+ --diya-internal-field-backdrop: none;
2239
+ --diya-internal-popup-backdrop: none;
2240
+ --diya-internal-pattern-backdrop: none;
2241
+ --diya-internal-workflow-backdrop: none;
2242
+ --diya-internal-application-backdrop: none;
2243
+ --diya-internal-analytics-backdrop: none;
2244
+ }
2245
+
2246
+ .diya-root[data-theme='light'] {
2247
+ /* On white, fields are white too; their border carries the edge (no gray slab). */
2248
+ --diya-internal-field-fill: var(--diya-color-raised);
2249
+ --diya-internal-popup-control-fill: var(--diya-color-raised);
2250
+ --diya-internal-table-shadow: 0 calc(6px * var(--diya-elevation, 1)) calc(20px * var(--diya-elevation, 1)) #25342e0c;
2251
+ }
2252
+ @media (prefers-color-scheme: light) {
2253
+ .diya-root[data-theme='system'] {
2254
+ /* On white, fields are white too; their border carries the edge (no gray slab). */
2255
+ --diya-internal-field-fill: var(--diya-color-raised);
2256
+ --diya-internal-popup-control-fill: var(--diya-color-raised);
2257
+ --diya-internal-table-shadow: 0 calc(6px * var(--diya-elevation, 1)) calc(20px * var(--diya-elevation, 1)) #25342e0c;
2258
+ }
2259
+ }
2260
+
2261
+ .diya-root .diya-text-field-control,
2262
+ .diya-root .diya-select-control,
2263
+ .diya-root .diya-textarea textarea {
2264
+ border-color: var(--diya-internal-control-line);
2265
+ background: var(--diya-internal-field-fill);
2266
+ backdrop-filter: var(--diya-internal-field-backdrop);
2267
+ }
2268
+
2269
+ .diya-root .diya-list,
2270
+ .diya-root .diya-accordion {
2271
+ background: var(--diya-internal-collection-fill);
2272
+ }
2273
+
2274
+ .diya-root .diya-combobox-control,
2275
+ .diya-root .diya-date-trigger {
2276
+ border-color: var(--diya-internal-control-line);
2277
+ background: var(--diya-internal-popup-control-fill);
2278
+ backdrop-filter: var(--diya-internal-popup-backdrop);
2279
+ }
2280
+
2281
+ .diya-root .diya-combobox-options,
2282
+ .diya-root .diya-calendar {
2283
+ background: var(--diya-internal-popup-fill);
2284
+ color: var(--diya-color-text);
2285
+ backdrop-filter: var(--diya-internal-popup-backdrop);
2286
+ }
2287
+
2288
+ .diya-root .diya-card,
2289
+ .diya-root .diya-dialog,
2290
+ .diya-root .diya-site-header-container {
2291
+ background: var(--diya-internal-pattern-fill);
2292
+ border-color: var(--diya-internal-header-border);
2293
+ backdrop-filter: var(--diya-internal-pattern-backdrop);
2294
+ }
2295
+
2296
+ /* In-page surfaces: the faintest edge plus a soft shadow. */
2297
+ .diya-root :is(.diya-card, .diya-analytics-card, .diya-workflow-surface, .diya-app-pattern-surface, .diya-table .diya-table-scroll) {
2298
+ border-color: var(--diya-internal-surface-border);
2299
+ }
2300
+ .diya-root :is(.diya-card:not([data-shadow='true']), .diya-analytics-card:not([data-shadow='true']), .diya-project-form, .diya-table .diya-table-scroll) {
2301
+ box-shadow: var(--diya-internal-surface-shadow);
2302
+ }
2303
+
2304
+ .diya-root .diya-site-header-container {
2305
+ width: 100%;
2306
+ min-width: 0;
2307
+ border: 0;
2308
+ border-radius: 0;
2309
+ color: var(--diya-color-text);
2310
+ }
2311
+
2312
+ .diya-root .diya-site-brand,
2313
+ .diya-root .diya-site-nav :is(button, a),
2314
+ .diya-root .diya-site-mobile-nav :is(button, a) {
2315
+ font-family: inherit;
2316
+ text-decoration: none;
2317
+ }
2318
+
2319
+ .diya-root .diya-workflow-surface {
2320
+ background: var(--diya-internal-workflow-fill);
2321
+ backdrop-filter: var(--diya-internal-workflow-backdrop);
2322
+ }
2323
+
2324
+ .diya-root .diya-app-pattern-surface {
2325
+ background: var(--diya-internal-application-fill);
2326
+ backdrop-filter: var(--diya-internal-application-backdrop);
2327
+ }
2328
+
2329
+ .diya-root .diya-analytics-card {
2330
+ background: var(--diya-internal-analytics-fill);
2331
+ backdrop-filter: var(--diya-internal-analytics-backdrop);
2332
+ }
2333
+
2334
+ .diya-root .diya-table {
2335
+ --diya-internal-table-elevation: var(--diya-internal-table-shadow);
2336
+ --diya-internal-table-selection-left: 0px;
2337
+ --diya-internal-table-primary-left: 0px;
2338
+ }
2339
+
2340
+ .diya-root .diya-table .diya-table-scroll {
2341
+ background: var(--diya-internal-table-fill);
2342
+ border-color: var(--diya-internal-surface-border);
2343
+ backdrop-filter: var(--diya-internal-field-backdrop);
2344
+ }
2345
+
2346
+ .diya-root .diya-alert {
2347
+ --diya-internal-alert-info: var(--diya-color-info-fill);
2348
+ --diya-internal-alert-success: var(--diya-color-success-fill);
2349
+ --diya-internal-alert-warning: var(--diya-internal-warning-mark);
2350
+ --diya-internal-alert-error: var(--diya-color-error-fill);
2351
+ --diya-internal-alert-tint: var(--diya-internal-alert-accent);
2352
+ background: color-mix(in srgb, var(--diya-internal-alert-tint) var(--diya-internal-alert-alpha), var(--diya-internal-alert-fill));
2353
+ backdrop-filter: var(--diya-internal-alert-backdrop);
2354
+ }
2355
+
2356
+ .diya-root[data-theme='light'] .diya-alert[data-tone='warning'] {
2357
+ --diya-internal-alert-tint: var(--diya-color-warning-fill);
2358
+ }
2359
+ @media (prefers-color-scheme: light) {
2360
+ .diya-root[data-theme='system'] .diya-alert[data-tone='warning'] {
2361
+ --diya-internal-alert-tint: var(--diya-color-warning-fill);
2362
+ }
2363
+ }
2364
+
2365
+ /* Icons and actions use the status tone, which is readable on a surface. */
2366
+ .diya-root .diya-alert {
2367
+ --diya-internal-alert-ink: var(--diya-color-info);
2368
+ }
2369
+
2370
+ .diya-root .diya-alert[data-tone='success'] {
2371
+ --diya-internal-alert-ink: var(--diya-color-success);
2372
+ }
2373
+
2374
+ .diya-root .diya-alert[data-tone='warning'] {
2375
+ --diya-internal-alert-ink: var(--diya-color-warning);
2376
+ }
2377
+
2378
+ .diya-root .diya-alert[data-tone='error'] {
2379
+ --diya-internal-alert-ink: var(--diya-color-error);
2380
+ }
2381
+
2382
+ @media (forced-colors: none) {
2383
+ .diya-root[data-theme='dark'][data-glass='true'] .diya-alert-action {
2384
+ color: var(--diya-color-text);
2385
+ }
2386
+ @media (prefers-color-scheme: dark) {
2387
+ .diya-root[data-theme='system'][data-glass='true'] .diya-alert-action {
2388
+ color: var(--diya-color-text);
2389
+ }
2390
+ }
2391
+ }
2392
+
2393
+ .diya-root .diya-metric-change[data-meaning='positive'] {
2394
+ color: var(--diya-color-success);
2395
+ }
2396
+
2397
+ .diya-root .diya-metric-change[data-meaning='negative'] {
2398
+ color: var(--diya-color-error);
2399
+ }
2400
+
2401
+ /* Composite editors keep a single focus treatment around the whole control. */
2402
+ .diya-root .diya-select-control:focus-within {
2403
+ outline: 2px solid var(--diya-color-text);
2404
+ outline-offset: 3px;
2405
+ }
2406
+
2407
+ .diya-root .diya-select-control select:focus-visible,
2408
+ .diya-root .diya-combobox-control input:focus-visible,
2409
+ .diya-root .diya-chat-composer textarea:focus-visible {
2410
+ outline: none;
2411
+ box-shadow: none;
2412
+ }
2413
+
2414
+ .diya-root .diya-field-help {
2415
+ line-height: 1.6;
2416
+ min-width: 0;
2417
+ overflow-wrap: anywhere;
2418
+ display: flex;
2419
+ gap: 8px;
2420
+ align-items: baseline;
2421
+ }
2422
+
2423
+ /* Every invalid field reads the same: a solid error border, and the message (with its "!") in the error color. */
2424
+ .diya-root .diya-text-field[data-invalid='true'] .diya-text-field-description,
2425
+ .diya-root .diya-select-field[data-invalid='true'] .diya-text-field-description,
2426
+ .diya-root .diya-choice[aria-invalid='true'] > .diya-text-field-description,
2427
+ .diya-root .diya-combobox[data-invalid='true'] .diya-field-help,
2428
+ .diya-root .diya-date-field[data-invalid='true'] .diya-field-help,
2429
+ .diya-root .diya-workflow-error {
2430
+ color: var(--diya-color-error);
2431
+ }
2432
+
2433
+ .diya-root .diya-text-field[data-invalid='true'] .diya-text-field-control,
2434
+ .diya-root .diya-select-field[data-invalid='true'] .diya-select-control,
2435
+ .diya-root .diya-textarea[data-invalid='true'] textarea,
2436
+ .diya-root .diya-combobox[data-invalid='true'] .diya-combobox-control,
2437
+ .diya-root .diya-date-field[data-invalid='true'] .diya-date-trigger,
2438
+ .diya-root .diya-switch[aria-invalid='true'],
2439
+ .diya-root .diya-choice[aria-invalid='true'] .diya-choice-option input:not(:checked) {
2440
+ border-color: var(--diya-color-error);
2441
+ }
2442
+
2443
+ /* Calendar controls remain styled when the popup is in the provider portal. */
2444
+ .diya-root .diya-calendar button:focus-visible {
2445
+ outline: 2px solid var(--diya-color-text);
2446
+ outline-offset: 3px;
2447
+ }
2448
+
2449
+ .diya-root .diya-combobox-options,
2450
+ .diya-root .diya-calendar {
2451
+ max-width: calc(100vw - 24px);
2452
+ }
2453
+
2454
+ /* Sticky columns account for optional expansion and selection independently. */
2455
+ .diya-root .diya-table[data-expandable] {
2456
+ --diya-internal-table-selection-left: 40px;
2457
+ --diya-internal-table-primary-left: 40px;
2458
+ }
2459
+
2460
+ .diya-root .diya-table[data-selection] {
2461
+ --diya-internal-table-primary-left: 48px;
2462
+ }
2463
+
2464
+ .diya-root .diya-table[data-expandable][data-selection] {
2465
+ --diya-internal-table-primary-left: 88px;
2466
+ }
2467
+
2468
+ .diya-root .diya-table[data-sticky] [data-pinned] {
2469
+ position: sticky;
2470
+ z-index: 2;
2471
+ background: color-mix(in srgb, var(--diya-internal-table-surface) 78%, transparent);
2472
+ backdrop-filter: blur(16px);
2473
+ }
2474
+
2475
+ .diya-root .diya-table[data-sticky] [data-pinned='expander'] {
2476
+ left: 0;
2477
+ width: 40px;
2478
+ min-width: 40px;
2479
+ max-width: 40px;
2480
+ }
2481
+
2482
+ .diya-root .diya-table[data-sticky] [data-pinned='selection'] {
2483
+ left: var(--diya-internal-table-selection-left);
2484
+ width: 48px;
2485
+ min-width: 48px;
2486
+ max-width: 48px;
2487
+ }
2488
+
2489
+ .diya-root .diya-table[data-sticky] [data-pinned='primary'] {
2490
+ left: var(--diya-internal-table-primary-left);
2491
+ box-shadow: 1px 0 var(--diya-color-line), 8px 0 14px -12px #0006;
2492
+ }
2493
+
2494
+ .diya-root .diya-table[data-sticky] tbody tr:hover > [data-pinned] {
2495
+ background: color-mix(in srgb, var(--diya-internal-table-surface) 85%, transparent);
2496
+ }
2497
+
2498
+ .diya-root .diya-table[data-sticky] tbody tr[data-selected] > [data-pinned] {
2499
+ background: color-mix(in srgb, var(--diya-color-text) var(--diya-internal-table-selected-weight), color-mix(in srgb, var(--diya-internal-table-surface) 80%, transparent));
2500
+ }
2501
+
2502
+ /* A narrow table needs room to reveal data between its frozen columns. */
2503
+ @container diya-table (max-width: 600px) {
2504
+ .diya-root .diya-table[data-sticky] [data-pinned] {
2505
+ left: auto;
2506
+ box-shadow: none;
2507
+ }
2508
+ }
2509
+
2510
+ @supports (backdrop-filter: blur(14px)) {
2511
+ .diya-root[data-glass='true'] {
2512
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 72%, transparent);
2513
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 76%, transparent);
2514
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 76%, transparent);
2515
+ --diya-internal-pattern-fill: color-mix(in srgb, var(--diya-color-raised) 78%, transparent);
2516
+ --diya-internal-workflow-fill: color-mix(in srgb, var(--diya-color-raised) 75%, transparent);
2517
+ --diya-internal-application-fill: color-mix(in srgb, var(--diya-color-raised) 76%, transparent);
2518
+ --diya-internal-analytics-fill: color-mix(in srgb, var(--diya-color-raised) 72%, transparent);
2519
+ --diya-internal-table-fill: color-mix(in srgb, var(--diya-color-raised) 72%, transparent);
2520
+ --diya-internal-field-backdrop: var(--diya-internal-blur);
2521
+ --diya-internal-popup-backdrop: blur(16px);
2522
+ --diya-internal-pattern-backdrop: var(--diya-internal-blur);
2523
+ --diya-internal-workflow-backdrop: blur(18px);
2524
+ --diya-internal-application-backdrop: blur(18px);
2525
+ --diya-internal-analytics-backdrop: var(--diya-internal-blur);
2526
+ --diya-internal-alert-alpha: 8%;
2527
+ --diya-internal-alert-fill: var(--diya-color-glass);
2528
+ --diya-internal-alert-backdrop: blur(20px);
2529
+ }
2530
+
2531
+ .diya-root[data-glass='true']:where([data-theme='light']) {
2532
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2533
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2534
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2535
+ --diya-internal-pattern-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2536
+ --diya-internal-workflow-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2537
+ --diya-internal-application-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2538
+ --diya-internal-analytics-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2539
+ --diya-internal-table-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2540
+ --diya-internal-popup-backdrop: var(--diya-internal-blur);
2541
+ --diya-internal-workflow-backdrop: var(--diya-internal-blur);
2542
+ --diya-internal-application-backdrop: var(--diya-internal-blur);
2543
+ --diya-internal-alert-backdrop: var(--diya-internal-blur);
2544
+ }
2545
+ @media (prefers-color-scheme: light) {
2546
+ .diya-root[data-glass='true']:where([data-theme='system']) {
2547
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2548
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2549
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2550
+ --diya-internal-pattern-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2551
+ --diya-internal-workflow-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2552
+ --diya-internal-application-fill: color-mix(in srgb, var(--diya-color-raised) 82%, transparent);
2553
+ --diya-internal-analytics-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2554
+ --diya-internal-table-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2555
+ --diya-internal-popup-backdrop: var(--diya-internal-blur);
2556
+ --diya-internal-workflow-backdrop: var(--diya-internal-blur);
2557
+ --diya-internal-application-backdrop: var(--diya-internal-blur);
2558
+ --diya-internal-alert-backdrop: var(--diya-internal-blur);
2559
+ }
2560
+ }
2561
+ }
2562
+
2563
+ /* Glass, the material. Every surface is see-through frosted glass: cards, chart cards,
2564
+ tables (clear rows on the card's glass), inline alerts, side navigation, headers,
2565
+ tab tracks, controls, menus, popovers, dialogs, drawers and toasts. Cards are the
2566
+ clearest pane, so the backdrop's light and shade pass visibly behind them; the
2567
+ floating layer is denser, so menus and dialogs always read. The material is
2568
+ neutral: the blur lifts saturation by 1.15 at most, so the backdrop arrives as
2569
+ soft light, never as a color wash, and text and controls keep their neutral color.
2570
+ Every pane has a hairline rim, brighter along the top, and a soft shadow. */
2571
+ @supports (backdrop-filter: blur(14px)) {
2572
+ .diya-root[data-glass='true'] {
2573
+ --diya-internal-blur: blur(28px) saturate(1.15);
2574
+ /* Cards dim what is behind them a little, so a bright patch never washes out
2575
+ light text, while its shape still passes through. */
2576
+ --diya-internal-content-blur: blur(18px) saturate(1.15) brightness(0.92);
2577
+ --diya-internal-glass-edge: color-mix(in srgb, #ffffff 13%, transparent);
2578
+ --diya-internal-glass-top-edge: color-mix(in srgb, #ffffff 22%, transparent);
2579
+ /* The specular rim: a hairline edge, brighter along the top where the light falls,
2580
+ over a soft shadow (and no glow). Menus, popovers, dialogs and toasts share it. */
2581
+ --diya-internal-overlay-border: var(--diya-internal-glass-edge);
2582
+ --diya-internal-overlay-top-border: var(--diya-internal-glass-top-edge);
2583
+ --diya-shadow-raised: inset 0 1px 0 #ffffff1f, inset 0 -1px 0 #ffffff0a, 0 1px 1px #0000004d, 0 30px 64px -20px #000000c7;
2584
+ /* A pane, not a printed card: a faint sheen across its top. */
2585
+ --diya-internal-glass-sheen: linear-gradient(180deg, #ffffff0f, #ffffff00 38%);
2586
+ /* The floating layer: denser where text is dense (menus, dialogs), lighter where
2587
+ the pane is navigation or a single control. */
2588
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 62%, transparent);
2589
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2590
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 80%, transparent);
2591
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 56%, transparent);
2592
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 50%, transparent);
2593
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 56%, transparent);
2594
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 56%, transparent);
2595
+ --diya-internal-field-backdrop: var(--diya-internal-blur);
2596
+ --diya-internal-popup-backdrop: var(--diya-internal-blur);
2597
+ --diya-internal-toast-fill: var(--diya-internal-overlay-fill);
2598
+ /* Status tags keep a solid base under their tint, so a bright shape behind the
2599
+ glass never thins their label. */
2600
+ --diya-internal-tag-base: var(--diya-color-raised);
2601
+ /* Small text that sits straight on the backdrop (pagination labels) gets a soft
2602
+ frosted lift behind it, so it reads over any shape the backdrop has. */
2603
+ --diya-internal-text-lift: color-mix(in srgb, var(--diya-color-raised) 74%, transparent);
2604
+ --diya-internal-toast-backdrop: var(--diya-internal-blur);
2605
+ /* Cards and every other content surface: the clearest pane. */
2606
+ --diya-internal-content-fill: color-mix(in srgb, var(--diya-color-raised) 34%, transparent);
2607
+ --diya-internal-surface-border: var(--diya-internal-glass-edge);
2608
+ --diya-internal-surface-shadow: inset 0 1px 0 #ffffff1f, inset 0 -1px 0 #ffffff0a, 0 1px 1px #00000040, 0 24px 56px -22px #000000a6;
2609
+ --diya-internal-collection-fill: transparent;
2610
+ --diya-internal-pattern-fill: var(--diya-internal-content-fill);
2611
+ --diya-internal-workflow-fill: var(--diya-internal-content-fill);
2612
+ --diya-internal-application-fill: var(--diya-internal-content-fill);
2613
+ --diya-internal-analytics-fill: var(--diya-internal-content-fill);
2614
+ --diya-internal-table-fill: var(--diya-internal-content-fill);
2615
+ --diya-internal-pattern-backdrop: var(--diya-internal-content-blur);
2616
+ --diya-internal-workflow-backdrop: var(--diya-internal-content-blur);
2617
+ --diya-internal-application-backdrop: var(--diya-internal-content-blur);
2618
+ --diya-internal-analytics-backdrop: var(--diya-internal-content-blur);
2619
+ --diya-internal-alert-fill: var(--diya-internal-content-fill);
2620
+ --diya-internal-alert-backdrop: var(--diya-internal-content-blur);
2621
+ /* A dimming layer behind dialogs and drawers, as Apple asks for over busy content. */
2622
+ --diya-color-scrim: #00000059;
2623
+ }
2624
+ .diya-root[data-glass='true']:where([data-theme='light']) {
2625
+ --diya-internal-blur: blur(28px) saturate(1.15) brightness(1.04);
2626
+ --diya-internal-content-blur: blur(18px) saturate(1.15) brightness(1.02);
2627
+ --diya-internal-glass-top-edge: #ffffff;
2628
+ --diya-internal-glass-edge: color-mix(in srgb, #ffffff 55%, transparent);
2629
+ --diya-shadow-raised: inset 0 1px 0 #ffffff, inset 0 -1px 0 #ffffff66, 0 0 0 0.5px #1014181f, 0 2px 6px -2px #10141814, 0 22px 50px -26px #10141824;
2630
+ --diya-internal-glass-sheen: linear-gradient(180deg, #ffffff80, #ffffff00 42%);
2631
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 62%, transparent);
2632
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2633
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2634
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 60%, transparent);
2635
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 58%, transparent);
2636
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 66%, transparent);
2637
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 66%, transparent);
2638
+ --diya-internal-content-fill: color-mix(in srgb, var(--diya-color-raised) 35%, transparent);
2639
+ /* Muted text a step deeper, like a vibrant secondary label, so it holds 4.5:1
2640
+ over the shade the clearer glass lets through. */
2641
+ --diya-color-muted: #384346;
2642
+ --diya-internal-surface-shadow: inset 0 1px 0 #ffffff, inset 0 -1px 0 #ffffff59, 0 0 0 0.5px #1014181a, 0 2px 4px -1px #1014180f, 0 24px 56px -24px #1014183d;
2643
+ --diya-color-scrim: #10141824;
2644
+ }
2645
+ @media (prefers-color-scheme: light) {
2646
+ .diya-root[data-glass='true']:where([data-theme='system']) {
2647
+ --diya-internal-blur: blur(28px) saturate(1.15) brightness(1.04);
2648
+ --diya-internal-content-blur: blur(18px) saturate(1.15) brightness(1.02);
2649
+ --diya-internal-glass-top-edge: #ffffff;
2650
+ --diya-internal-glass-edge: color-mix(in srgb, #ffffff 55%, transparent);
2651
+ --diya-shadow-raised: inset 0 1px 0 #ffffff, inset 0 -1px 0 #ffffff66, 0 0 0 0.5px #1014181f, 0 2px 6px -2px #10141814, 0 22px 50px -26px #10141824;
2652
+ --diya-internal-glass-sheen: linear-gradient(180deg, #ffffff80, #ffffff00 42%);
2653
+ --diya-internal-header-fill: color-mix(in srgb, var(--diya-color-raised) 62%, transparent);
2654
+ --diya-internal-overlay-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2655
+ --diya-internal-popup-fill: color-mix(in srgb, var(--diya-color-raised) 84%, transparent);
2656
+ --diya-internal-tabs-fill: color-mix(in srgb, var(--diya-color-raised) 60%, transparent);
2657
+ --diya-internal-outline-fill: color-mix(in srgb, var(--diya-color-raised) 58%, transparent);
2658
+ --diya-internal-field-fill: color-mix(in srgb, var(--diya-color-raised) 66%, transparent);
2659
+ --diya-internal-popup-control-fill: color-mix(in srgb, var(--diya-color-raised) 66%, transparent);
2660
+ --diya-internal-content-fill: color-mix(in srgb, var(--diya-color-raised) 35%, transparent);
2661
+ /* Muted text a step deeper, like a vibrant secondary label, so it holds 4.5:1
2662
+ over the shade the clearer glass lets through. */
2663
+ --diya-color-muted: #384346;
2664
+ --diya-internal-surface-shadow: inset 0 1px 0 #ffffff, inset 0 -1px 0 #ffffff59, 0 0 0 0.5px #1014181a, 0 2px 4px -1px #1014180f, 0 24px 56px -24px #1014183d;
2665
+ --diya-color-scrim: #10141824;
2666
+ }
2667
+ }
2668
+ /* Dialogs and drawers float: denser glass with the specular rim. */
2669
+ .diya-root[data-glass='true'] :is(.diya-dialog, .diya-drawer-modal) {
2670
+ background: var(--diya-internal-overlay-fill);
2671
+ border-color: var(--diya-internal-glass-edge);
2672
+ border-top-color: var(--diya-internal-glass-top-edge);
2673
+ }
2674
+ .diya-root[data-glass='true'] :is(.diya-card, .diya-analytics-card, .diya-workflow-surface, .diya-app-pattern-surface, .diya-table .diya-table-scroll, .diya-floating-surface, .diya-dialog, .diya-drawer-modal) {
2675
+ background-image: var(--diya-internal-glass-sheen);
2676
+ }
2677
+ .diya-root[data-glass='true'] .diya-tag:is([data-color='success'], [data-color='warning'], [data-color='error'], [data-color='info']) {
2678
+ background: linear-gradient(var(--diya-internal-tag-surface), var(--diya-internal-tag-surface)), var(--diya-internal-tag-base);
2679
+ }
2680
+ .diya-root[data-glass='true'] .diya-metric-change[data-meaning='positive'] {
2681
+ background: linear-gradient(var(--diya-color-success-surface), var(--diya-color-success-surface)), var(--diya-internal-tag-base);
2682
+ }
2683
+ .diya-root[data-glass='true'] .diya-metric-change[data-meaning='negative'] {
2684
+ background: linear-gradient(var(--diya-color-error-surface), var(--diya-color-error-surface)), var(--diya-internal-tag-base);
2685
+ }
2686
+ .diya-root[data-glass='true'] :is(.diya-pagination-count, .diya-pagination-size > span) {
2687
+ border-radius: 999px;
2688
+ background: var(--diya-internal-text-lift);
2689
+ box-shadow: 0 0 10px 6px var(--diya-internal-text-lift);
2690
+ }
2691
+ /* A toast floats; an inline alert is content. */
2692
+ .diya-root[data-glass='true'] .diya-toast-region .diya-alert {
2693
+ --diya-internal-alert-fill: var(--diya-internal-toast-fill);
2694
+ --diya-internal-alert-backdrop: var(--diya-internal-toast-backdrop);
2695
+ }
2696
+ /* The Site Header is navigation, so it is glass even though it shares the Card's fill. */
2697
+ .diya-root[data-glass='true'] .diya-site-header-container {
2698
+ background: var(--diya-internal-header-fill);
2699
+ backdrop-filter: var(--diya-internal-backdrop);
2700
+ }
2701
+ /* Table cells are clear, so the table's own surface shows through every row; frozen
2702
+ columns keep a denser pane so what scrolls beneath them stays out of the way. */
2703
+ .diya-root[data-glass='true'] .diya-table { --diya-internal-table-surface: transparent; }
2704
+ .diya-root[data-glass='true'] .diya-table[data-sticky] [data-pinned] { background: var(--diya-internal-overlay-fill); }
2705
+ }
2706
+
2707
+ /* Increase Contrast: solid surfaces and firmer edges, as Apple's glass does. Safari has
2708
+ no prefers-reduced-transparency yet, so this is the setting it does pass through. */
2709
+ @media (prefers-contrast: more) {
2710
+ .diya-root[data-glass='true'] {
2711
+ --diya-internal-header-fill: var(--diya-color-raised);
2712
+ --diya-internal-overlay-fill: var(--diya-color-raised);
2713
+ --diya-internal-popup-fill: var(--diya-color-raised);
2714
+ --diya-internal-tabs-fill: var(--diya-color-raised);
2715
+ --diya-internal-outline-fill: var(--diya-color-raised);
2716
+ --diya-internal-field-fill: var(--diya-color-raised);
2717
+ --diya-internal-popup-control-fill: var(--diya-color-raised);
2718
+ --diya-internal-content-fill: var(--diya-color-raised);
2719
+ --diya-internal-glass-edge: color-mix(in srgb, var(--diya-color-text) 40%, transparent);
2720
+ --diya-internal-glass-sheen: none;
2721
+ --diya-internal-glass-top-edge: var(--diya-internal-glass-edge);
2722
+ }
2723
+ }
2724
+
2725
+ @media (prefers-reduced-transparency: reduce) {
2726
+ .diya-root[data-glass='true'] {
2727
+ --diya-internal-header-fill: var(--diya-color-raised);
2728
+ --diya-internal-overlay-fill: var(--diya-color-raised);
2729
+ --diya-internal-tabs-fill: var(--diya-color-raised);
2730
+ --diya-internal-outline-fill: var(--diya-color-raised);
2731
+ --diya-internal-backdrop: none;
2732
+ --diya-internal-glass-edge: var(--diya-internal-header-border);
2733
+ --diya-internal-glass-sheen: none;
2734
+ --diya-internal-surface-border: color-mix(in srgb, var(--diya-color-text) 9%, transparent);
2735
+ --diya-internal-field-fill: var(--diya-color-hover);
2736
+ --diya-internal-collection-fill: transparent;
2737
+ --diya-internal-popup-control-fill: var(--diya-color-hover);
2738
+ --diya-internal-popup-fill: var(--diya-color-raised);
2739
+ --diya-internal-pattern-fill: var(--diya-color-raised);
2740
+ --diya-internal-workflow-fill: var(--diya-color-raised);
2741
+ --diya-internal-application-fill: var(--diya-color-raised);
2742
+ --diya-internal-analytics-fill: var(--diya-color-raised);
2743
+ --diya-internal-table-fill: var(--diya-color-raised);
2744
+ --diya-internal-field-backdrop: none;
2745
+ --diya-internal-popup-backdrop: none;
2746
+ --diya-internal-pattern-backdrop: none;
2747
+ --diya-internal-workflow-backdrop: none;
2748
+ --diya-internal-application-backdrop: none;
2749
+ --diya-internal-analytics-backdrop: none;
2750
+ --diya-internal-alert-alpha: 7%;
2751
+ --diya-internal-alert-fill: var(--diya-color-surface);
2752
+ --diya-internal-alert-backdrop: none;
2753
+ }
2754
+
2755
+ .diya-root .diya-table[data-sticky] [data-pinned] {
2756
+ background: var(--diya-internal-table-surface);
2757
+ backdrop-filter: none;
2758
+ }
2759
+ }
2760
+
2761
+ @media (forced-colors: active) {
2762
+ .diya-root,
2763
+ .diya-root[data-theme='light'],
2764
+ .diya-root[data-theme='dark'],
2765
+ .diya-root[data-glass='true'] {
2766
+ --diya-color-error: CanvasText;
2767
+ --diya-internal-control-line: ButtonText;
2768
+ --diya-internal-table-shadow: none;
2769
+ --diya-internal-field-fill: Canvas;
2770
+ --diya-internal-collection-fill: Canvas;
2771
+ --diya-internal-popup-control-fill: Canvas;
2772
+ --diya-internal-popup-fill: Canvas;
2773
+ --diya-internal-pattern-fill: Canvas;
2774
+ --diya-internal-workflow-fill: Canvas;
2775
+ --diya-internal-application-fill: Canvas;
2776
+ --diya-internal-analytics-fill: Canvas;
2777
+ --diya-internal-table-fill: Canvas;
2778
+ --diya-internal-field-backdrop: none;
2779
+ --diya-internal-popup-backdrop: none;
2780
+ --diya-internal-pattern-backdrop: none;
2781
+ --diya-internal-workflow-backdrop: none;
2782
+ --diya-internal-application-backdrop: none;
2783
+ --diya-internal-analytics-backdrop: none;
2784
+ --diya-internal-alert-backdrop: none;
2785
+ }
2786
+ @media (prefers-color-scheme: light) {
2787
+ .diya-root[data-theme='system'] {
2788
+ --diya-color-error: CanvasText;
2789
+ --diya-internal-control-line: ButtonText;
2790
+ --diya-internal-table-shadow: none;
2791
+ --diya-internal-field-fill: Canvas;
2792
+ --diya-internal-collection-fill: Canvas;
2793
+ --diya-internal-popup-control-fill: Canvas;
2794
+ --diya-internal-popup-fill: Canvas;
2795
+ --diya-internal-pattern-fill: Canvas;
2796
+ --diya-internal-workflow-fill: Canvas;
2797
+ --diya-internal-application-fill: Canvas;
2798
+ --diya-internal-analytics-fill: Canvas;
2799
+ --diya-internal-table-fill: Canvas;
2800
+ --diya-internal-field-backdrop: none;
2801
+ --diya-internal-popup-backdrop: none;
2802
+ --diya-internal-pattern-backdrop: none;
2803
+ --diya-internal-workflow-backdrop: none;
2804
+ --diya-internal-application-backdrop: none;
2805
+ --diya-internal-analytics-backdrop: none;
2806
+ --diya-internal-alert-backdrop: none;
2807
+ }
2808
+ }
2809
+ @media (prefers-color-scheme: dark) {
2810
+ .diya-root[data-theme='system'] {
2811
+ --diya-color-error: CanvasText;
2812
+ --diya-internal-control-line: ButtonText;
2813
+ --diya-internal-table-shadow: none;
2814
+ --diya-internal-field-fill: Canvas;
2815
+ --diya-internal-collection-fill: Canvas;
2816
+ --diya-internal-popup-control-fill: Canvas;
2817
+ --diya-internal-popup-fill: Canvas;
2818
+ --diya-internal-pattern-fill: Canvas;
2819
+ --diya-internal-workflow-fill: Canvas;
2820
+ --diya-internal-application-fill: Canvas;
2821
+ --diya-internal-analytics-fill: Canvas;
2822
+ --diya-internal-table-fill: Canvas;
2823
+ --diya-internal-field-backdrop: none;
2824
+ --diya-internal-popup-backdrop: none;
2825
+ --diya-internal-pattern-backdrop: none;
2826
+ --diya-internal-workflow-backdrop: none;
2827
+ --diya-internal-application-backdrop: none;
2828
+ --diya-internal-analytics-backdrop: none;
2829
+ --diya-internal-alert-backdrop: none;
2830
+ }
2831
+ }
2832
+
2833
+ .diya-root .diya-card,
2834
+ .diya-root .diya-dialog,
2835
+ .diya-root .diya-site-header-container,
2836
+ .diya-root .diya-workflow-surface,
2837
+ .diya-root .diya-app-pattern-surface,
2838
+ .diya-root .diya-analytics-card,
2839
+ .diya-root .diya-table .diya-table-scroll,
2840
+ .diya-root .diya-combobox-control,
2841
+ .diya-root .diya-combobox-options,
2842
+ .diya-root .diya-date-trigger,
2843
+ .diya-root .diya-calendar {
2844
+ border-color: CanvasText;
2845
+ box-shadow: none;
2846
+ }
2847
+
2848
+ .diya-root .diya-alert {
2849
+ background: Canvas;
2850
+ border-color: CanvasText;
2851
+ }
2852
+
2853
+ .diya-root .diya-metric-change[data-meaning] {
2854
+ color: CanvasText;
2855
+ }
2856
+
2857
+ .diya-root .diya-table[data-sticky] [data-pinned],
2858
+ .diya-root .diya-table[data-sticky] .diya-table-actions {
2859
+ background: Canvas;
2860
+ color: CanvasText;
2861
+ backdrop-filter: none;
2862
+ box-shadow: none;
2863
+ }
2864
+
2865
+ .diya-root .diya-table tbody tr[data-selected] td:not(:where([class*='diya-']:not([class*='diya-table']), .diya-table [class*='diya-']:not([class*='diya-table']) *)) {
2866
+ outline: 1px solid Highlight;
2867
+ outline-offset: -1px;
2868
+ }
2869
+
2870
+ .diya-root :where([class*='diya-']:not(.diya-root, .diya-portal-root)) :where(button, input, select, textarea):disabled,
2871
+ .diya-root :where(button, input, select, textarea):where([class*='diya-']):disabled,
2872
+ .diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > button:disabled {
2873
+ color: GrayText;
2874
+ opacity: 1;
2875
+ }
2876
+
2877
+ .diya-root .diya-calendar-grid button[aria-selected='true']:not([data-between='true']),
2878
+ .diya-root .diya-site-nav [aria-current],
2879
+ .diya-root .diya-site-mobile-nav [aria-current],
2880
+ .diya-root .diya-side-navigation > :where(div:not(.diya-side-navigation-footer)) > [aria-current],
2881
+ .diya-root .diya-list-row[aria-current],
2882
+ .diya-root .diya-list > li[aria-current] > .diya-list-row {
2883
+ outline: 1px solid Highlight;
2884
+ outline-offset: -1px;
2885
+ }
2886
+
2887
+ .diya-root :is(.diya-list-unread, .diya-side-navigation-dot) {
2888
+ forced-color-adjust: none;
2889
+ background: CanvasText;
2890
+ }
2891
+ }
2892
+
2893
+ /* Long drawers keep their actions visible while content scrolls. */
2894
+ .diya-root .diya-drawer-modal > :is(header,footer) { flex-shrink:0; }
2895
+ .diya-root .diya-drawer-modal > .diya-drawer-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
2896
+
2897
+ /* Dialog and Drawer titles look the same at every heading level. */
2898
+ .diya-root .diya-dialog .diya-dialog-title,
2899
+ .diya-root .diya-drawer-modal .diya-drawer-title { margin: 0; font-size: var(--diya-text-title); font-weight: 600; letter-spacing: -0.015em; line-height: var(--diya-leading-tight); }
2900
+
2901
+ /* Type roles. Every title-role heading shares one spec now that DIYA Sans
2902
+ renders real medium and semibold weights. */
2903
+ .diya-root :is(.diya-card-header h3:not(:where([class*='diya-'], .diya-card-header [class*='diya-'] *)), .diya-dialog h3:not(:where([class*='diya-'], .diya-dialog [class*='diya-']:not(.diya-dialog, .diya-dialog-layout, .diya-dialog-content) *)), .diya-dialog-heading h3, .diya-table-title, .diya-workflow-surface h3:not(:where([class*='diya-'], .diya-workflow-surface [class*='diya-']:not(.diya-workflow-surface, .diya-drawer-body, .diya-wizard-body) *)), .diya-drawer-body h4:not(:where([class*='diya-'], .diya-drawer-body [class*='diya-'] *)), .diya-chat-welcome h3:not(:where([class*='diya-'], .diya-chat-welcome [class*='diya-'] *)), .diya-side-navigation > strong) {
2904
+ font-weight: 600;
2905
+ letter-spacing: -0.015em;
2906
+ line-height: var(--diya-leading-tight);
2907
+ }
2908
+ /* The welcome's heading, at any level: a plain h3, or any heading with this class. */
2909
+ .diya-root .diya-chat-welcome .diya-chat-welcome-title { font-weight: 600; letter-spacing: -0.015em; line-height: var(--diya-leading-tight); }
2910
+ .diya-root .diya-chat-header > :where(div) > strong { font-size: var(--diya-text-large); font-weight: 600; }
2911
+ /* Underline tabs keep their tight inset at every size. */
2912
+ .diya-root .diya-tabs[data-variant='underline'][data-size] .diya-tab { padding-inline: 4px; }
2913
+ .diya-root .diya-switch-description[data-invalid] { color: var(--diya-color-error); }
2914
+ .diya-root .diya-slider-label { display: block; font-size: var(--diya-text-body); font-weight: 500; margin-bottom: 10px; overflow-wrap: anywhere; }
2915
+
2916
+ /* In-page surface titles are quiet: 15px at 550, so the content leads, not the frame. */
2917
+ .diya-root :is(.diya-card-title, .diya-analytics-title, .diya-project-form-title, .diya-upload-title, .diya-table-title, .diya-card-header h3:not(:where([class*='diya-'], .diya-card-header [class*='diya-'] *)), .diya-workflow-surface h3:not(:where([class*='diya-'], .diya-workflow-surface [class*='diya-']:not(.diya-workflow-surface, .diya-drawer-body, .diya-wizard-body) *))) {
2918
+ font-size: var(--diya-text-body);
2919
+ font-weight: 550;
2920
+ letter-spacing: -0.01em;
2921
+ line-height: 1.35;
2922
+ }
2923
+ .diya-root .diya-card-header p:not(:where([class*='diya-'], .diya-card-header [class*='diya-'] *)) { font-size: var(--diya-text-caption); margin-top: 4px; line-height: 1.55; }
2924
+ .diya-root .diya-analytics-title { margin-bottom: 4px; }
2925
+ .diya-root .diya-card-content { margin-top: 20px; }
2926
+
2927
+ /* A change that means something reads as a vivid chip: a bright tint behind a strong label. */
2928
+ .diya-root .diya-metric-change:is([data-meaning='positive'], [data-meaning='negative']) {
2929
+ padding: 1px 8px;
2930
+ border-radius: 999px;
2931
+ font-weight: 560;
2932
+ }
2933
+ .diya-root .diya-metric-change[data-meaning='positive'] { background: var(--diya-color-success-surface); }
2934
+ .diya-root .diya-metric-change[data-meaning='negative'] { background: var(--diya-color-error-surface); }
2935
+ @media (forced-colors: active) { .diya-root .diya-metric-change[data-meaning] { background: none; border: 1px solid CanvasText; } }
2936
+
2937
+
2938
+ /* prose/Prose.css: your own HTML in DIYA's type and rhythm. Every rule ends in the same
2939
+ guard, so it reaches plain elements in your content only: never a DIYA component placed
2940
+ inside, nor anything that component renders. Prose only spaces those components.
2941
+ Text sizes are set on the text, not on Prose itself, so nothing inherits into them. */
2942
+ .diya-root :is(.diya-prose, .diya-code-block) {
2943
+ --diya-internal-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
2944
+ --diya-internal-code-fill: var(--diya-color-recessed);
2945
+ --diya-internal-code-backdrop: none;
2946
+ /* A neutral hairline that holds on white, near-black and either Glass. */
2947
+ --diya-internal-code-edge: color-mix(in srgb, var(--diya-color-text) 10%, transparent);
2948
+ }
2949
+ .diya-root .diya-prose {
2950
+ --diya-internal-prose-font-body: var(--diya-text-large);
2951
+ --diya-internal-prose-font-small: var(--diya-text-body);
2952
+ --diya-internal-prose-font-h1: var(--diya-text-display);
2953
+ --diya-internal-prose-font-h2: var(--diya-text-heading);
2954
+ --diya-internal-prose-font-h3: var(--diya-text-title);
2955
+ --diya-internal-prose-font-h4: var(--diya-text-large);
2956
+ --diya-internal-prose-font-mark: var(--diya-text-hero);
2957
+ --diya-internal-prose-leading: 1.65;
2958
+ /* The space around blocks that stand apart: code, tables, figures, quotes and components. */
2959
+ --diya-internal-prose-gap: calc(var(--diya-internal-prose-font-body) * 1.6);
2960
+ min-width: 0;
2961
+ /* A comfortable reading measure, about 70 characters a line at every size. */
2962
+ max-width: calc(var(--diya-internal-prose-font-body) * 34);
2963
+ }
2964
+ .diya-root .diya-prose[data-size='small'] {
2965
+ --diya-internal-prose-font-body: var(--diya-text-body);
2966
+ --diya-internal-prose-font-small: var(--diya-text-caption);
2967
+ --diya-internal-prose-font-h1: var(--diya-text-heading);
2968
+ --diya-internal-prose-font-h2: var(--diya-text-title);
2969
+ --diya-internal-prose-font-h3: var(--diya-text-large);
2970
+ --diya-internal-prose-font-h4: var(--diya-text-body);
2971
+ --diya-internal-prose-font-mark: var(--diya-text-display);
2972
+ --diya-internal-prose-leading: 1.6;
2973
+ }
2974
+ .diya-root .diya-prose[data-size='large'] {
2975
+ --diya-internal-prose-font-body: var(--diya-text-title);
2976
+ --diya-internal-prose-font-small: var(--diya-text-large);
2977
+ --diya-internal-prose-font-h1: var(--diya-text-hero);
2978
+ --diya-internal-prose-font-h2: var(--diya-text-display);
2979
+ --diya-internal-prose-font-h3: var(--diya-text-heading);
2980
+ --diya-internal-prose-font-h4: var(--diya-text-title);
2981
+ --diya-internal-prose-leading: 1.6;
2982
+ }
2983
+ @media (max-width: 600px) {
2984
+ .diya-root .diya-prose[data-size='large'] {
2985
+ --diya-internal-prose-font-h1: var(--diya-text-display);
2986
+ --diya-internal-prose-font-h2: var(--diya-text-heading);
2987
+ }
2988
+ }
2989
+
2990
+ .diya-root .diya-prose :is(p, ul, ol, dl, blockquote):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
2991
+ margin: 0;
2992
+ color: var(--diya-color-text);
2993
+ font-size: var(--diya-internal-prose-font-body);
2994
+ line-height: var(--diya-internal-prose-leading);
2995
+ overflow-wrap: break-word;
2996
+ }
2997
+ .diya-root .diya-prose :is(p, li, dd, blockquote, figcaption):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
2998
+ text-wrap: pretty;
2999
+ }
3000
+ .diya-root .diya-prose :is(td, th, figcaption, caption) :is(p, ul, ol, dl):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3001
+ font-size: inherit;
3002
+ line-height: inherit;
3003
+ }
3004
+ .diya-root .diya-prose :is(h1, h2, h3, h4, h5, h6):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3005
+ margin: 0;
3006
+ color: var(--diya-color-text);
3007
+ font-weight: 600;
3008
+ overflow-wrap: break-word;
3009
+ text-wrap: balance;
3010
+ }
3011
+ .diya-root .diya-prose h1:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3012
+ font-size: var(--diya-internal-prose-font-h1);
3013
+ line-height: 1.12;
3014
+ letter-spacing: -0.028em;
3015
+ }
3016
+ .diya-root .diya-prose h2:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3017
+ font-size: var(--diya-internal-prose-font-h2);
3018
+ line-height: 1.2;
3019
+ letter-spacing: -0.022em;
3020
+ }
3021
+ .diya-root .diya-prose h3:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3022
+ font-size: var(--diya-internal-prose-font-h3);
3023
+ line-height: 1.3;
3024
+ letter-spacing: -0.015em;
3025
+ }
3026
+ .diya-root .diya-prose :is(h4, h5, h6):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3027
+ font-size: var(--diya-internal-prose-font-h4);
3028
+ line-height: 1.4;
3029
+ letter-spacing: -0.01em;
3030
+ }
3031
+ .diya-root .diya-prose :is(pre, table, figure, hr):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin: 0; }
3032
+
3033
+ /* Rhythm: each block sits a measured step below the one before it, and the first has no
3034
+ space above. Headings take more space above than below, so they belong to what follows. */
3035
+ .diya-root .diya-prose * + :is(p, ul, ol, dl):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3036
+ margin-block-start: 1.1em;
3037
+ }
3038
+ .diya-root .diya-prose * + :is(blockquote, pre, table, figure, :where([role='region'])):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3039
+ margin-block-start: var(--diya-internal-prose-gap);
3040
+ }
3041
+ .diya-root .diya-prose :is(blockquote, pre, table, figure, :where([role='region'], [class*='diya-'])) + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3042
+ margin-block-start: var(--diya-internal-prose-gap);
3043
+ }
3044
+ .diya-root .diya-prose * + h1:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 1.3em; }
3045
+ .diya-root .diya-prose * + h2:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 1.7em; }
3046
+ .diya-root .diya-prose * + h3:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 1.55em; }
3047
+ .diya-root .diya-prose * + :is(h4, h5, h6):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3048
+ margin-block-start: 1.6em;
3049
+ }
3050
+ .diya-root .diya-prose h1 + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 0.85em; }
3051
+ .diya-root .diya-prose h2 + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 0.7em; }
3052
+ .diya-root .diya-prose :is(h3, h4, h5, h6) + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3053
+ margin-block-start: 0.5em;
3054
+ }
3055
+ .diya-root .diya-prose * + hr:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)),
3056
+ .diya-root .diya-prose hr + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3057
+ margin-block-start: calc(var(--diya-internal-prose-font-body) * 2.25);
3058
+ }
3059
+ /* DIYA components in the flow keep their own styles; Prose only gives them room. */
3060
+ .diya-root .diya-prose > * + :where([class*='diya-']),
3061
+ .diya-root .diya-prose :is(li, blockquote, figure, dd):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) > * + :where([class*='diya-']) {
3062
+ margin-block-start: var(--diya-internal-prose-gap);
3063
+ }
3064
+ .diya-root .diya-prose > :is(h1, h2, h3, h4, h5, h6) + :where([class*='diya-']) {
3065
+ margin-block-start: calc(var(--diya-internal-prose-font-body) * 0.7);
3066
+ }
3067
+
3068
+ .diya-root .diya-prose a:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3069
+ border-radius: 3px;
3070
+ color: var(--diya-color-text);
3071
+ text-decoration-line: underline;
3072
+ text-decoration-thickness: 1px;
3073
+ text-underline-offset: 0.24em;
3074
+ }
3075
+ .diya-root .diya-prose a:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):hover { text-decoration-thickness: 2px; }
3076
+ .diya-root .diya-prose a:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):focus-visible {
3077
+ outline: 2px solid var(--diya-color-text);
3078
+ outline-offset: 2px;
3079
+ }
3080
+ .diya-root .diya-prose :is(strong, b):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { font-weight: 600; }
3081
+ .diya-root .diya-prose small:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3082
+ font-size: max(var(--diya-text-caption), 0.85em);
3083
+ }
3084
+ .diya-root .diya-prose :is(sup, sub):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3085
+ font-size: max(var(--diya-text-caption), 0.75em);
3086
+ line-height: 0;
3087
+ }
3088
+
3089
+ .diya-root .diya-prose :is(ul, ol):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { padding-inline-start: 1.6em; }
3090
+ .diya-root .diya-prose ul:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { list-style: disc; }
3091
+ .diya-root .diya-prose ol:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { list-style: decimal; }
3092
+ .diya-root .diya-prose ul ul:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { list-style: circle; }
3093
+ .diya-root .diya-prose li:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { padding-inline-start: 0.3em; }
3094
+ .diya-root .diya-prose li + li:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)),
3095
+ .diya-root .diya-prose li > :is(ul, ol):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 0.4em; }
3096
+ .diya-root .diya-prose li:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *))::marker {
3097
+ color: var(--diya-color-muted);
3098
+ font-variant-numeric: tabular-nums;
3099
+ }
3100
+ .diya-root .diya-prose dt:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { font-weight: 600; }
3101
+ .diya-root .diya-prose dd:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin: 0; padding-inline-start: 1.25em; }
3102
+ .diya-root .diya-prose dd + dt:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 0.75em; }
3103
+
3104
+ /* A quote is set in from the text with a hanging quotation mark: no rule beside it. */
3105
+ .diya-root .diya-prose blockquote:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3106
+ position: relative;
3107
+ padding-inline-start: 1.6em;
3108
+ }
3109
+ .diya-root .diya-prose blockquote:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *))::before {
3110
+ content: '\201C';
3111
+ content: '\201C' / '';
3112
+ position: absolute;
3113
+ inset-block-start: 0.06em;
3114
+ inset-inline-start: -0.04em;
3115
+ color: var(--diya-color-muted);
3116
+ font-size: var(--diya-internal-prose-font-mark);
3117
+ font-weight: 400;
3118
+ line-height: 1;
3119
+ }
3120
+
3121
+ .diya-root .diya-prose hr:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3122
+ height: 0;
3123
+ border: 0;
3124
+ border-block-start: 1px solid var(--diya-color-line);
3125
+ }
3126
+
3127
+ .diya-root .diya-prose code:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3128
+ padding: 0.1em 0.32em;
3129
+ border-radius: calc(5px * var(--diya-corner-scale, 1));
3130
+ background: color-mix(in srgb, var(--diya-color-text) 7%, transparent);
3131
+ font-family: var(--diya-internal-mono);
3132
+ font-size: max(var(--diya-text-caption), 0.86em);
3133
+ font-variant-ligatures: none;
3134
+ -webkit-box-decoration-break: clone;
3135
+ box-decoration-break: clone;
3136
+ }
3137
+ /* Plain pre can't take keyboard focus, so its lines wrap rather than scroll. CodeBlock
3138
+ scrolls instead, in a region the keyboard can reach. */
3139
+ .diya-root .diya-prose pre:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3140
+ padding: 14px 16px;
3141
+ border: 1px solid var(--diya-internal-code-edge);
3142
+ border-radius: calc(12px * var(--diya-corner-scale, 1));
3143
+ background: var(--diya-internal-code-fill);
3144
+ backdrop-filter: var(--diya-internal-code-backdrop);
3145
+ color: var(--diya-color-text);
3146
+ font-family: var(--diya-internal-mono);
3147
+ font-size: var(--diya-text-caption);
3148
+ font-variant-ligatures: none;
3149
+ line-height: 1.7;
3150
+ tab-size: 4;
3151
+ white-space: pre-wrap;
3152
+ overflow-wrap: anywhere;
3153
+ }
3154
+ .diya-root .diya-prose pre code:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3155
+ padding: 0;
3156
+ border-radius: 0;
3157
+ background: none;
3158
+ font-size: inherit;
3159
+ }
3160
+ .diya-root .diya-prose kbd:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3161
+ display: inline-block;
3162
+ min-width: 1.6em;
3163
+ padding: 0 0.4em;
3164
+ border: 1px solid var(--diya-color-line);
3165
+ border-radius: calc(5px * var(--diya-corner-scale, 1));
3166
+ background: var(--diya-color-raised);
3167
+ box-shadow: inset 0 -1px 0 var(--diya-color-line);
3168
+ color: var(--diya-color-text);
3169
+ font-family: inherit;
3170
+ font-size: max(var(--diya-text-caption), 0.82em);
3171
+ font-weight: 500;
3172
+ line-height: 1.6;
3173
+ text-align: center;
3174
+ white-space: nowrap;
3175
+ }
3176
+
3177
+ /* Tables fit the measure: words wrap whole, and links and code, the long ones, break
3178
+ anywhere, so a table doesn't run off a phone. Wrap a wide table in an element with
3179
+ role="region", an aria-label and tabindex="0" to let it scroll sideways instead. */
3180
+ .diya-root .diya-prose table:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3181
+ width: 100%;
3182
+ border-collapse: collapse;
3183
+ color: var(--diya-color-text);
3184
+ font-size: var(--diya-internal-prose-font-small);
3185
+ font-variant-numeric: tabular-nums;
3186
+ line-height: 1.55;
3187
+ }
3188
+ .diya-root .diya-prose caption:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3189
+ padding-block-end: 0.75em;
3190
+ color: var(--diya-color-muted);
3191
+ text-align: start;
3192
+ }
3193
+ .diya-root .diya-prose :is(th, td):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3194
+ padding: 0.7em 1em;
3195
+ border-block-end: 1px solid var(--diya-color-line);
3196
+ overflow-wrap: break-word;
3197
+ vertical-align: top;
3198
+ }
3199
+ .diya-root .diya-prose :is(th, td) :is(a, code):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3200
+ overflow-wrap: anywhere;
3201
+ }
3202
+ .diya-root .diya-prose th:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { font-weight: 600; }
3203
+ .diya-root .diya-prose th:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):not([align]) { text-align: start; }
3204
+ .diya-root .diya-prose thead th:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3205
+ border-block-end-color: color-mix(in srgb, var(--diya-color-text) 26%, transparent);
3206
+ vertical-align: bottom;
3207
+ }
3208
+ .diya-root .diya-prose :is(th, td):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):first-child {
3209
+ padding-inline-start: 0;
3210
+ }
3211
+ .diya-root .diya-prose :is(th, td):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):last-child {
3212
+ padding-inline-end: 0;
3213
+ }
3214
+ .diya-root .diya-prose [role='region'][tabindex]:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3215
+ max-width: 100%;
3216
+ overflow-x: auto;
3217
+ overscroll-behavior-x: contain;
3218
+ scrollbar-color: color-mix(in srgb, var(--diya-color-muted) 50%, transparent) transparent;
3219
+ scrollbar-width: thin;
3220
+ }
3221
+ .diya-root .diya-prose [role='region'][tabindex]:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)):focus-visible {
3222
+ outline: 2px solid var(--diya-color-text);
3223
+ outline-offset: 4px;
3224
+ }
3225
+ .diya-root .diya-prose [role='region'] :is(th, td, a, code):not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3226
+ overflow-wrap: normal;
3227
+ }
3228
+ .diya-root .diya-prose [role='region'] th:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { white-space: nowrap; }
3229
+
3230
+ .diya-root .diya-prose img:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { max-width: 100%; height: auto; }
3231
+ .diya-root .diya-prose > img:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)),
3232
+ .diya-root .diya-prose figure > img:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3233
+ display: block;
3234
+ border-radius: calc(10px * var(--diya-corner-scale, 1));
3235
+ }
3236
+ .diya-root .diya-prose > * + img:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)),
3237
+ .diya-root .diya-prose > img + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3238
+ margin-block-start: var(--diya-internal-prose-gap);
3239
+ }
3240
+ .diya-root .diya-prose figure > * + *:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { margin-block-start: 0.85em; }
3241
+ .diya-root .diya-prose figcaption:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) {
3242
+ color: var(--diya-color-muted);
3243
+ font-size: var(--diya-internal-prose-font-small);
3244
+ line-height: 1.5;
3245
+ }
3246
+
3247
+ @media (forced-colors: active) {
3248
+ .diya-root .diya-prose a:not(:where([class*='diya-'], .diya-prose [class*='diya-']:not(.diya-prose) *)) { color: LinkText; }
3249
+ }
3250
+
3251
+
3252
+ /* code-block/CodeBlock.css: portable component rules. It sets its own type, so the text
3253
+ around it (a list item, a quote, Prose) never reaches the code. */
3254
+ .diya-root .diya-code-block {
3255
+ position: relative;
3256
+ display: grid;
3257
+ grid-template-columns: minmax(0, 1fr) auto;
3258
+ align-items: start;
3259
+ min-width: 0;
3260
+ max-width: 100%;
3261
+ border: 1px solid var(--diya-internal-code-edge);
3262
+ --diya-internal-code-corner: max(0px, calc(12px * var(--diya-corner-scale, 1) - 1px));
3263
+ border-radius: calc(12px * var(--diya-corner-scale, 1));
3264
+ background: var(--diya-internal-code-fill);
3265
+ backdrop-filter: var(--diya-internal-code-backdrop);
3266
+ color: var(--diya-color-text);
3267
+ font-size: var(--diya-text-caption);
3268
+ font-style: normal;
3269
+ font-weight: 400;
3270
+ letter-spacing: normal;
3271
+ line-height: 1.5;
3272
+ overflow-wrap: normal;
3273
+ text-align: start;
3274
+ text-transform: none;
3275
+ text-wrap: wrap;
3276
+ }
3277
+ .diya-root .diya-code-block-header {
3278
+ grid-column: 1 / -1;
3279
+ display: flex;
3280
+ align-items: center;
3281
+ justify-content: space-between;
3282
+ gap: 12px;
3283
+ min-width: 0;
3284
+ padding: 6px 6px 6px 16px;
3285
+ border-block-end: 1px solid var(--diya-internal-code-edge);
3286
+ }
3287
+ .diya-root .diya-code-block-label {
3288
+ min-width: 0;
3289
+ overflow: hidden;
3290
+ color: var(--diya-color-muted);
3291
+ font-size: var(--diya-text-caption);
3292
+ font-weight: 500;
3293
+ text-overflow: ellipsis;
3294
+ white-space: nowrap;
3295
+ }
3296
+ .diya-root .diya-code-block-code {
3297
+ min-width: 0;
3298
+ margin: 0;
3299
+ padding: 12px 16px;
3300
+ overflow-x: auto;
3301
+ overflow-y: hidden;
3302
+ overscroll-behavior-x: contain;
3303
+ color: var(--diya-color-text);
3304
+ font-family: var(--diya-internal-mono);
3305
+ font-size: var(--diya-text-caption);
3306
+ font-variant-ligatures: none;
3307
+ line-height: 1.7;
3308
+ tab-size: 4;
3309
+ white-space: pre;
3310
+ scrollbar-color: color-mix(in srgb, var(--diya-color-muted) 50%, transparent) transparent;
3311
+ scrollbar-width: thin;
3312
+ }
3313
+ .diya-root .diya-code-block[data-labelled='true'] .diya-code-block-code { grid-column: 1 / -1; padding-block: 14px 16px; }
3314
+ .diya-root .diya-code-block-code code { font: inherit; color: inherit; }
3315
+ .diya-root .diya-code-block .diya-code-block-copy { gap: 6px; padding-inline: 10px 12px; color: var(--diya-color-muted); }
3316
+ .diya-root .diya-code-block .diya-code-block-copy:hover { color: var(--diya-color-text); }
3317
+ .diya-root .diya-code-block > .diya-code-block-copy { margin: 8px 8px 8px 0; }
3318
+ .diya-root .diya-code-block-code:focus-visible { outline: 2px solid var(--diya-color-text); outline-offset: -2px; }
3319
+ /* The code region's corners follow the block's, so its focus ring sits neatly inside. */
3320
+ .diya-root .diya-code-block-code { border-radius: var(--diya-internal-code-corner) 0 0 var(--diya-internal-code-corner); }
3321
+ .diya-root .diya-code-block[data-labelled='true'] .diya-code-block-code { border-radius: 0 0 var(--diya-internal-code-corner) var(--diya-internal-code-corner); }
3322
+ /* The live region: read out quietly after Copy, and shown only when copying failed. */
3323
+ .diya-root .diya-code-block-status:not([data-failed]) {
3324
+ position: absolute;
3325
+ width: 1px;
3326
+ height: 1px;
3327
+ overflow: hidden;
3328
+ clip-path: inset(50%);
3329
+ white-space: nowrap;
3330
+ }
3331
+ .diya-root .diya-code-block-status[data-failed] {
3332
+ grid-column: 1 / -1;
3333
+ padding: 10px 16px 12px;
3334
+ border-block-start: 1px solid var(--diya-internal-code-edge);
3335
+ color: var(--diya-color-muted);
3336
+ font-size: var(--diya-text-caption);
3337
+ line-height: 1.5;
3338
+ }
3339
+ @media print {
3340
+ .diya-root .diya-code-block-code { white-space: pre-wrap; }
3341
+ .diya-root .diya-code-block .diya-code-block-copy { display: none; }
3342
+ }
3343
+
3344
+ /* Code on Glass is a smoked pane, clear enough to show the backdrop, dense enough to read. */
3345
+ @supports (backdrop-filter: blur(14px)) {
3346
+ .diya-root[data-glass='true'] :is(.diya-prose, .diya-code-block) {
3347
+ --diya-internal-code-fill: color-mix(in srgb, var(--diya-color-recessed) 52%, transparent);
3348
+ --diya-internal-code-backdrop: var(--diya-internal-blur);
3349
+ }
3350
+ .diya-root[data-glass='true']:where([data-theme='light']) :is(.diya-prose, .diya-code-block) {
3351
+ --diya-internal-code-fill: color-mix(in srgb, var(--diya-color-recessed) 66%, transparent);
3352
+ }
3353
+ @media (prefers-color-scheme: light) {
3354
+ .diya-root[data-glass='true']:where([data-theme='system']) :is(.diya-prose, .diya-code-block) {
3355
+ --diya-internal-code-fill: color-mix(in srgb, var(--diya-color-recessed) 66%, transparent);
3356
+ }
3357
+ }
3358
+ }
3359
+ @media (prefers-contrast: more) {
3360
+ .diya-root :is(.diya-prose, .diya-code-block) { --diya-internal-code-edge: color-mix(in srgb, var(--diya-color-text) 40%, transparent); }
3361
+ }
3362
+ @media (prefers-contrast: more), (prefers-reduced-transparency: reduce) {
3363
+ .diya-root[data-glass='true'] :is(.diya-prose, .diya-code-block) {
3364
+ --diya-internal-code-fill: var(--diya-color-recessed);
3365
+ --diya-internal-code-backdrop: none;
3366
+ }
3367
+ }
3368
+
3369
+ /* A surface inside a card, form, dialog or drawer sits on that surface: it drops its own frame,
3370
+ so the page never shows a card inside a card. A Drawer keeps its own: it opens above the page.
3371
+ As specific as the Glass surface rule, and later. */
3372
+ .diya-root :is(.diya-card-content, .diya-workflow-surface, .diya-drawer-body, .diya-dialog-content) :is(.diya-workflow-surface:not(dialog), .diya-table .diya-table-scroll) {
3373
+ border: 0;
3374
+ background: transparent;
3375
+ box-shadow: none;
3376
+ backdrop-filter: none;
3377
+ }
3378
+
3379
+ }