@cyberskill/design 2.8.0 → 2.9.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 (383) hide show
  1. package/DESIGN.md +7 -7
  2. package/README.md +14 -8
  3. package/SECURITY.md +4 -4
  4. package/SKILL.md +1 -1
  5. package/VERSION +1 -1
  6. package/_ds_bundle.js +2 -2
  7. package/_ds_bundle.js.map +1 -1
  8. package/_ds_manifest.json +210 -200
  9. package/_esm/cs.mjs +2 -2
  10. package/base/a11y.css +18 -2
  11. package/base/ai.css +2 -2
  12. package/base/collections.css +6 -3
  13. package/base/components.css +107 -20
  14. package/base/controls.css +55 -27
  15. package/base/data.css +17 -5
  16. package/base/feedback.css +8 -0
  17. package/base/forms.css +7 -4
  18. package/base/glass.css +95 -0
  19. package/base/navigation.css +9 -1
  20. package/base/responsive.css +9 -4
  21. package/components/contracts.json +202 -62
  22. package/components/css-index.json +145 -41
  23. package/components/data/data.card.html +1 -1
  24. package/components/prompt-api.json +2 -2
  25. package/components/release-compatibility.json +1 -1
  26. package/components/specifications.json +204 -64
  27. package/components/static-html-reference.json +20 -20
  28. package/dist/esm/build.json +1 -1
  29. package/dist/styles.css +385 -86
  30. package/dist/styles.min.css +1 -1
  31. package/docs/benchmark-rubric.md +1 -1
  32. package/docs/consuming.md +1 -1
  33. package/docs/contrast-report.md +8 -8
  34. package/docs/conventions.md +5 -5
  35. package/docs/decisions.md +2 -2
  36. package/docs/deploy.md +1 -1
  37. package/docs/design-styles.md +9 -8
  38. package/docs/doctrine.md +1 -1
  39. package/docs/four-axes.md +3 -3
  40. package/docs/quality-gates.md +3 -1
  41. package/docs/reference-catalog.json +52 -52
  42. package/docs/release-notes.md +18 -2
  43. package/docs/static-html-reference.md +18 -18
  44. package/docs/storybook.md +1 -1
  45. package/docs/template-inventory.json +35 -35
  46. package/docs/vi/benchmark-rubric.md +1 -1
  47. package/docs/vi/consuming.md +1 -1
  48. package/docs/vi/contrast-report.md +8 -8
  49. package/docs/vi/conventions.md +5 -5
  50. package/docs/vi/decisions.md +2 -2
  51. package/docs/vi/deploy.md +1 -1
  52. package/docs/vi/design-styles.md +9 -8
  53. package/docs/vi/doctrine.md +1 -1
  54. package/docs/vi/entrypoints/CONTRIBUTING.md +9 -2
  55. package/docs/vi/entrypoints/DESIGN.md +7 -7
  56. package/docs/vi/entrypoints/README.md +14 -8
  57. package/docs/vi/entrypoints/SKILL.md +1 -1
  58. package/docs/vi/entrypoints/llms.txt +1 -1
  59. package/docs/vi/four-axes.md +3 -3
  60. package/docs/vi/quality-gates.md +3 -1
  61. package/docs/vi/release-notes.md +18 -2
  62. package/docs/vi/static-html-reference.md +18 -18
  63. package/docs/vi/storybook.md +1 -1
  64. package/guidance/agent-contract.json +3 -3
  65. package/guidelines/atomic-view.html +7 -7
  66. package/guidelines/brand-imagery.html +1 -1
  67. package/guidelines/colors-surfaces.html +4 -4
  68. package/guidelines/colors-text.html +4 -4
  69. package/guidelines/elements-components.html +3 -3
  70. package/guidelines/elements-concept.html +1 -1
  71. package/guidelines/guideline-language.js +1 -1
  72. package/guidelines/motion.html +4 -4
  73. package/guidelines/responsive-bilingual.html +4 -4
  74. package/llms.txt +1 -1
  75. package/package.json +1 -1
  76. package/styles/components/manifest.json +179 -139
  77. package/styles.layered.css +245 -59
  78. package/styles.layered.provenance.json +16 -16
  79. package/templates/_vendor/doc-export.js +8 -1
  80. package/templates/ai-cluster-demo.html +2 -2
  81. package/templates/app-shell/AppShell.dc.html +2 -2
  82. package/templates/bod-deck/BodDeck.dc.html +3 -3
  83. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -1
  84. package/templates/dashboard/Dashboard.dc.html +2 -2
  85. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +2 -2
  86. package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +1 -1
  87. package/templates/email/Email-VN-standalone.html +2 -2
  88. package/templates/email-safe/email-announcement.html +5 -5
  89. package/templates/email-safe/email-dunning.html +5 -5
  90. package/templates/email-safe/email-investor.html +5 -5
  91. package/templates/email-safe/email-launch.html +5 -5
  92. package/templates/email-safe/email-newsletter.html +6 -6
  93. package/templates/email-safe/email-status.html +5 -5
  94. package/templates/email-safe/email-transactional.html +5 -5
  95. package/templates/kitchen-sink.html +10 -6
  96. package/templates/marketing-newsletter/MarketingNewsletter.dc.html +4 -4
  97. package/templates/marketing-page/MarketingPage.dc.html +4 -2
  98. package/templates/playground.html +5 -4
  99. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +5 -5
  100. package/tokens/colors.css +1 -1
  101. package/tokens/declarations.json +1851 -1355
  102. package/tokens/element-seeds.json +1 -1
  103. package/tokens/elements.css +40 -10
  104. package/tokens/elevation.css +2 -2
  105. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  106. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  107. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  108. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  109. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  110. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  111. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  112. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  113. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  114. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  115. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  116. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  117. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  118. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  119. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  120. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  121. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  122. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  123. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  124. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  125. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  126. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  127. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  128. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  129. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  130. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  131. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  132. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  133. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  134. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  135. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  136. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  137. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  138. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  139. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  140. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  141. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  142. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  143. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  144. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  145. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  146. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  147. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  148. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  149. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  150. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  151. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  152. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  153. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  154. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  155. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  156. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  157. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  158. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  159. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  160. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  161. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  162. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  163. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  164. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  165. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  166. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  167. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  168. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  169. package/tokens/modes/index.json +275 -275
  170. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  171. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  172. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  173. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  174. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  175. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  176. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  177. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  178. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  179. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  180. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  181. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  182. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  183. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  184. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  185. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  186. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  187. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  188. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  189. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  190. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  191. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  192. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  193. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  194. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  195. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  196. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  197. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  198. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  199. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  200. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  201. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  202. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  203. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  204. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  205. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  206. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  207. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  208. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  209. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  210. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  211. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  212. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  213. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  214. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  215. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  216. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  217. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  218. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  219. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  220. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  221. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  222. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  223. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  224. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  225. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  226. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  227. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  228. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  229. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  230. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  231. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  232. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  233. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  234. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  235. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  236. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  237. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  238. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  239. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  240. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  241. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  242. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  243. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  244. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  245. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  246. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  247. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  248. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  249. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  250. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  251. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  252. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  253. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  254. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  255. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  256. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  257. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  258. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  259. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  260. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  261. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  262. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  263. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  264. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  265. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  266. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  267. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  268. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  269. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  270. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  271. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  272. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  273. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  274. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  275. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  276. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  277. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  278. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  279. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  280. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  281. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  282. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  283. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  284. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  285. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  286. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  287. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  288. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  289. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  290. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  291. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  292. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  293. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  294. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  295. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  296. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  297. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  298. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  299. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  300. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  301. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  302. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  303. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  304. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  305. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  306. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  307. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  308. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  309. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  310. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  311. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  312. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  313. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  314. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  315. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  316. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  317. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  318. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  319. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  320. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  321. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  322. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  323. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  324. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  325. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  326. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  327. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  328. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  329. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  330. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  331. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  332. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  333. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  334. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  335. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  336. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  337. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  338. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  339. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  340. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  341. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  342. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  343. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  344. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  345. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  346. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  347. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  348. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  349. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  350. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  351. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  352. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  353. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  354. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  355. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  356. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  357. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  358. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  359. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  360. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  361. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  362. package/tokens/native/CSModes.kt +129 -125
  363. package/tokens/native/CSModes.swift +129 -125
  364. package/tokens/native/CSTokens.kt +8 -8
  365. package/tokens/native/CSTokens.swift +8 -8
  366. package/tokens/native/cs_modes.dart +129 -125
  367. package/tokens/native/cs_tokens.dart +8 -8
  368. package/tokens/native/mode-provenance.json +11 -11
  369. package/tokens/provenance.json +6 -6
  370. package/tokens/styles.css +8 -4
  371. package/tokens/tokens.dtcg.json +26 -26
  372. package/tokens/tokens.js +12 -12
  373. package/tokens/tokens.json +11 -11
  374. package/tokens/variables.css +48 -15
  375. package/tokens/viewer.html +1 -0
  376. package/ui_kits/status-hub/login.html +3 -3
  377. package/ui_kits/status-hub/project.html +4 -6
  378. package/ui_kits/status-hub/settings.html +2 -3
  379. package/ui_kits/status-hub/status.css +24 -15
  380. package/ui_kits/website/careers.html +10 -17
  381. package/ui_kits/website/chat.html +14 -3
  382. package/ui_kits/website/site.css +21 -21
  383. package/ui_kits/website/work.html +4 -10
@@ -1,4 +1,4 @@
1
- /* Generated by scripts/generate-layered-styles.mjs. Opt-in only; styles.css remains default. Input graph SHA-256 455bbcdd0127eb07c26ed9651fba045adc30efaf142ef24e5fb3467d770bf76c */@layer cs-safety, cs-reset, cs-tokens, cs-components, cs-accessibility, cs-responsive, cs-overrides;@layer cs-safety {@media print {
1
+ /* Generated by scripts/generate-layered-styles.mjs. Opt-in only; styles.css remains default. Input graph SHA-256 72af87c48c650f99b01def7dd8eb26a95a049cb734cf9e8ad83a8ce6d28592a1 */@layer cs-safety, cs-reset, cs-tokens, cs-components, cs-accessibility, cs-responsive, cs-overrides;@layer cs-safety {@media print {
2
2
  [class*="cs-surface-"], .cs-glass-card, .cs-dialog, .cs-ai-disclosure__panel {
3
3
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
4
4
  background: #fff !important; box-shadow: none !important; border: 1px solid #ccc !important;
@@ -182,7 +182,7 @@
182
182
  --cs-color-text-primary: #45210E; /* = Umber */
183
183
  --cs-color-text-inverse: #FFFFFF;
184
184
  --cs-color-text-accent: #6E3B0E; /* accessible ochre-adjacent link/accent text */
185
- --cs-color-text-muted: #3F2D21; /* Secondary text: APCA75 on page/panel/raised, including all element variants */
185
+ --cs-color-text-muted: #5E4436; /* Secondary text: warm umber-taupe, APCA75+ on neutral/soft/middle; deep packs solve per-surface */
186
186
 
187
187
  /* ---- Semantic fills + paired foregrounds (literal-on-semantic, UX-008) ---- */
188
188
  --cs-color-semantic-success: #166534;
@@ -407,9 +407,9 @@
407
407
  /* ---- Shadow scale (warm; umber-tinted) ---- */
408
408
  --cs-shadow-xs: 0 1px 2px rgba(69, 33, 14, 0.06);
409
409
  --cs-shadow-sm: 0 1px 3px rgba(69, 33, 14, 0.04), 0 8px 24px rgba(69, 33, 14, 0.06); /* standard glass card */
410
- --cs-shadow-md: 0 12px 30px rgba(31, 19, 11, 0.18); /* popover / AI panel */
410
+ --cs-shadow-md: 0 12px 30px rgba(69, 33, 14, 0.14); /* popover / AI panel */
411
411
  --cs-shadow-lg: 0 20px 60px rgba(69, 33, 14, 0.18); /* heavy glass */
412
- --cs-shadow-xl: 0 24px 80px rgba(31, 19, 11, 0.26); /* dialog */
412
+ --cs-shadow-xl: 0 24px 80px rgba(69, 33, 14, 0.24); /* dialog */
413
413
  }/* Dark theme: warm-umber shadows vanish on dark surfaces, so switch to deeper
414
414
  * near-black shadows that actually read as elevation. Opt-in with the light ones. */[data-theme="dark"] {
415
415
  --cs-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.40);
@@ -523,7 +523,7 @@
523
523
  * Focus indicator (text-primary contour + ochre halo) and semantic status tokens NEVER remap.
524
524
  * Generative cycle (Tương sinh) only for grad-b: Mộc→Hỏa→Thổ→Kim→Thủy→Mộc. */:root {
525
525
  --cs-accent: #F4BA17;
526
- --cs-accent-strong: #916D11;
526
+ --cs-accent-strong: #A4631E;
527
527
  --cs-accent-bright: #F4BA17;
528
528
  --cs-accent-on: #45210E;
529
529
  --cs-accent-on-strong: #FFFFFF;
@@ -556,7 +556,7 @@
556
556
  --_cs-dark-color-text-inverse: #1a1108;
557
557
  --_cs-light-color-text-accent: #6E3B0E;
558
558
  --_cs-dark-color-text-accent: #FECD5D;
559
- --_cs-light-color-text-muted: #3F2D21;
559
+ --_cs-light-color-text-muted: #5E4436;
560
560
  --_cs-dark-color-text-muted: #E9D6C2;
561
561
  --_cs-light-color-semantic-success: #166534;
562
562
  --_cs-dark-color-semantic-success: #4ADE80;
@@ -608,16 +608,16 @@
608
608
  --_cs-dark-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.40);
609
609
  --_cs-light-shadow-sm: 0 1px 3px rgba(69, 33, 14, 0.04), 0 8px 24px rgba(69, 33, 14, 0.06);
610
610
  --_cs-dark-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.34), 0 8px 24px rgba(0, 0, 0, 0.42);
611
- --_cs-light-shadow-md: 0 12px 30px rgba(31, 19, 11, 0.18);
611
+ --_cs-light-shadow-md: 0 12px 30px rgba(69, 33, 14, 0.14);
612
612
  --_cs-dark-shadow-md: 0 12px 30px rgba(0, 0, 0, 0.50);
613
613
  --_cs-light-shadow-lg: 0 20px 60px rgba(69, 33, 14, 0.18);
614
614
  --_cs-dark-shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.55);
615
- --_cs-light-shadow-xl: 0 24px 80px rgba(31, 19, 11, 0.26);
615
+ --_cs-light-shadow-xl: 0 24px 80px rgba(69, 33, 14, 0.24);
616
616
  --_cs-dark-shadow-xl: 0 24px 80px rgba(0, 0, 0, 0.62);
617
617
  --_cs-light-accent: #F4BA17;
618
618
  --_cs-dark-accent: #F4BA17;
619
- --_cs-light-accent-strong: #916D11;
620
- --_cs-dark-accent-strong: #916D11;
619
+ --_cs-light-accent-strong: #A4631E;
620
+ --_cs-dark-accent-strong: #A4631E;
621
621
  --_cs-light-accent-bright: #F4BA17;
622
622
  --_cs-dark-accent-bright: #F4BA17;
623
623
  --_cs-light-accent-on: #45210E;
@@ -665,6 +665,8 @@
665
665
  --_cs-dark-color-text-accent: #F9E5AE;
666
666
  --_cs-light-color-link: #695300;
667
667
  --_cs-dark-color-link: #F9E5AE;
668
+ --_cs-light-color-text-muted: #5E4436;
669
+ --_cs-dark-color-text-muted: #EBD8C4;
668
670
  --_cs-light-color-link-hover: #45210E;
669
671
  --_cs-dark-color-link-hover: #f5ead9;
670
672
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -682,8 +684,8 @@
682
684
  }[data-cs-element="tho"] {
683
685
  --_cs-light-accent: #F4BA17;
684
686
  --_cs-dark-accent: #E9B321;
685
- --_cs-light-accent-strong: #916D11;
686
- --_cs-dark-accent-strong: #6E5205;
687
+ --_cs-light-accent-strong: #A4631E;
688
+ --_cs-dark-accent-strong: #7D480C;
687
689
  --_cs-light-accent-bright: #F4BA17;
688
690
  --_cs-dark-accent-bright: #FDD378;
689
691
  --_cs-light-accent-on: #45210E;
@@ -702,8 +704,10 @@
702
704
  --_cs-dark-accent-grad-b: #C4B78F;
703
705
  --_cs-light-color-text-accent: #6E3B0E;
704
706
  --_cs-dark-color-text-accent: #FFD57A;
705
- --_cs-light-color-link: #644A05;
707
+ --_cs-light-color-link: #744000;
706
708
  --_cs-dark-color-link: #FFD57A;
709
+ --_cs-light-color-text-muted: #5E4436;
710
+ --_cs-dark-color-text-muted: #E9D6C2;
707
711
  --_cs-light-color-link-hover: #45210E;
708
712
  --_cs-dark-color-link-hover: #f5ead9;
709
713
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -715,7 +719,7 @@
715
719
  --_cs-light-color-border-default: color-mix(in oklab, var(--_cs-light-accent) 40%, #E7D9C6);
716
720
  --_cs-dark-color-border-default: color-mix(in oklab, var(--_cs-dark-accent) 40%, #4a3a2c);
717
721
  --_cs-light-component-button-primary-bg: #45210E;
718
- --_cs-dark-component-button-primary-bg: #6E5205;
722
+ --_cs-dark-component-button-primary-bg: #7D480C;
719
723
  --_cs-light-component-button-primary-fg: #FFFFFF;
720
724
  --_cs-dark-component-button-primary-fg: #FFFFFF;
721
725
  }[data-cs-element="tho"][data-cs-variant="clay"] {
@@ -743,6 +747,8 @@
743
747
  --_cs-dark-color-text-accent: #FFD2AF;
744
748
  --_cs-light-color-link: #462402;
745
749
  --_cs-dark-color-link: #FFD2AF;
750
+ --_cs-light-color-text-muted: #442B1E;
751
+ --_cs-dark-color-text-muted: #E9D6C2;
746
752
  --_cs-light-color-link-hover: #45210E;
747
753
  --_cs-dark-color-link-hover: #f5ead9;
748
754
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -782,6 +788,8 @@
782
788
  --_cs-dark-color-text-accent: #FDDDDE;
783
789
  --_cs-light-color-link: #714B4D;
784
790
  --_cs-dark-color-link: #FDDDDE;
791
+ --_cs-light-color-text-muted: #5E4436;
792
+ --_cs-dark-color-text-muted: #E9D6C2;
785
793
  --_cs-light-color-link-hover: #45210E;
786
794
  --_cs-dark-color-link-hover: #f5ead9;
787
795
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -821,6 +829,8 @@
821
829
  --_cs-dark-color-text-accent: #FFD1BA;
822
830
  --_cs-light-color-link: #793609;
823
831
  --_cs-dark-color-link: #FFD1BA;
832
+ --_cs-light-color-text-muted: #5E4436;
833
+ --_cs-dark-color-text-muted: #E9D6C2;
824
834
  --_cs-light-color-link-hover: #45210E;
825
835
  --_cs-dark-color-link-hover: #f5ead9;
826
836
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -860,6 +870,8 @@
860
870
  --_cs-dark-color-text-accent: #FDD0CA;
861
871
  --_cs-light-color-link: #550306;
862
872
  --_cs-dark-color-link: #FDD0CA;
873
+ --_cs-light-color-text-muted: #422A1D;
874
+ --_cs-dark-color-text-muted: #E9D6C2;
863
875
  --_cs-light-color-link-hover: #45210E;
864
876
  --_cs-dark-color-link-hover: #f5ead9;
865
877
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -899,6 +911,8 @@
899
911
  --_cs-dark-color-text-accent: #A6F8F6;
900
912
  --_cs-light-color-link: #116060;
901
913
  --_cs-dark-color-link: #A6F8F6;
914
+ --_cs-light-color-text-muted: #5E4436;
915
+ --_cs-dark-color-text-muted: #EBD8C4;
902
916
  --_cs-light-color-link-hover: #45210E;
903
917
  --_cs-dark-color-link-hover: #f5ead9;
904
918
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -938,6 +952,8 @@
938
952
  --_cs-dark-color-text-accent: #79EDFF;
939
953
  --_cs-light-color-link: #0D535C;
940
954
  --_cs-dark-color-link: #79EDFF;
955
+ --_cs-light-color-text-muted: #5E4436;
956
+ --_cs-dark-color-text-muted: #E9D6C2;
941
957
  --_cs-light-color-link-hover: #45210E;
942
958
  --_cs-dark-color-link-hover: #f5ead9;
943
959
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -977,6 +993,8 @@
977
993
  --_cs-dark-color-text-accent: #AFE2FA;
978
994
  --_cs-light-color-link: #003142;
979
995
  --_cs-dark-color-link: #AFE2FA;
996
+ --_cs-light-color-text-muted: #452D1F;
997
+ --_cs-dark-color-text-muted: #E9D6C2;
980
998
  --_cs-light-color-link-hover: #45210E;
981
999
  --_cs-dark-color-link-hover: #f5ead9;
982
1000
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1016,6 +1034,8 @@
1016
1034
  --_cs-dark-color-text-accent: #DCF0B1;
1017
1035
  --_cs-light-color-link: #4A5B02;
1018
1036
  --_cs-dark-color-link: #DCF0B1;
1037
+ --_cs-light-color-text-muted: #5E4436;
1038
+ --_cs-dark-color-text-muted: #EBD8C4;
1019
1039
  --_cs-light-color-link-hover: #45210E;
1020
1040
  --_cs-dark-color-link-hover: #f5ead9;
1021
1041
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1055,6 +1075,8 @@
1055
1075
  --_cs-dark-color-text-accent: #B2EC9E;
1056
1076
  --_cs-light-color-link: #24570B;
1057
1077
  --_cs-dark-color-link: #B2EC9E;
1078
+ --_cs-light-color-text-muted: #5E4436;
1079
+ --_cs-dark-color-text-muted: #E9D6C2;
1058
1080
  --_cs-light-color-link-hover: #45210E;
1059
1081
  --_cs-dark-color-link-hover: #f5ead9;
1060
1082
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1094,6 +1116,8 @@
1094
1116
  --_cs-dark-color-text-accent: #B0E7C3;
1095
1117
  --_cs-light-color-link: #04361D;
1096
1118
  --_cs-dark-color-link: #B0E7C3;
1119
+ --_cs-light-color-text-muted: #452D1F;
1120
+ --_cs-dark-color-text-muted: #E9D6C2;
1097
1121
  --_cs-light-color-link-hover: #45210E;
1098
1122
  --_cs-dark-color-link-hover: #f5ead9;
1099
1123
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1133,6 +1157,8 @@
1133
1157
  --_cs-dark-color-text-accent: #D6E9FD;
1134
1158
  --_cs-light-color-link: #3D5670;
1135
1159
  --_cs-dark-color-link: #D6E9FD;
1160
+ --_cs-light-color-text-muted: #5E4436;
1161
+ --_cs-dark-color-text-muted: #EBD8C4;
1136
1162
  --_cs-light-color-link-hover: #45210E;
1137
1163
  --_cs-dark-color-link-hover: #f5ead9;
1138
1164
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1172,6 +1198,8 @@
1172
1198
  --_cs-dark-color-text-accent: #E5DBBA;
1173
1199
  --_cs-light-color-link: #564B27;
1174
1200
  --_cs-dark-color-link: #E5DBBA;
1201
+ --_cs-light-color-text-muted: #5E4436;
1202
+ --_cs-dark-color-text-muted: #E9D6C2;
1175
1203
  --_cs-light-color-link-hover: #45210E;
1176
1204
  --_cs-dark-color-link-hover: #f5ead9;
1177
1205
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1211,6 +1239,8 @@
1211
1239
  --_cs-dark-color-text-accent: #C8DBFD;
1212
1240
  --_cs-light-color-link: #1B2E4C;
1213
1241
  --_cs-dark-color-link: #C8DBFD;
1242
+ --_cs-light-color-text-muted: #442B1E;
1243
+ --_cs-dark-color-text-muted: #E9D6C2;
1214
1244
  --_cs-light-color-link-hover: #45210E;
1215
1245
  --_cs-dark-color-link-hover: #f5ead9;
1216
1246
  --_cs-light-color-surface-panel: color-mix(in oklab, var(--_cs-light-accent) 4%, #FFFFFF);
@@ -1276,14 +1306,16 @@
1276
1306
  color-scheme: var(--_cs-light, light)var(--_cs-dark, dark);
1277
1307
  }/* Source: tokens/styles.css *//* Style axis — data-cs-style packs.
1278
1308
  *
1279
- * Sole pack today: liquid-glass ≡ current elevation + base/glass.css materials.
1280
- * Absent attribute ≡ liquid-glass (same default pattern as light theme / Thổ middle).
1281
- * Future packs override glass scalars / material composition only and must consume
1282
- * the existing 10 --cs-accent-* roles (including on-strong) — never invent parallel Element packs.
1309
+ * Supported packs:
1310
+ * - liquid-glass (default; absent ≡ liquid-glass) — frosted optical depth + base/glass.css materials.
1311
+ * - matte-paper — opaque crisp paper/ledger surfaces with zero backdrop blur for dense/editorial views.
1312
+ * All style packs consume the existing 10 --cs-accent-* roles (including on-strong) — never invent parallel Element packs.
1283
1313
  */:root {
1284
1314
  --cs-style-pack: liquid-glass; /* @kind other */
1285
1315
  }[data-cs-style="liquid-glass"] {
1286
1316
  --cs-style-pack: liquid-glass; /* @kind other */
1317
+ }[data-cs-style="matte-paper"] {
1318
+ --cs-style-pack: matte-paper; /* @kind other */
1287
1319
  }/* Source: tokens/theme-attributes.css *//* CyberSkill — Theme attributes: density + contrast (TASK-IMP-027 / CDS-THEME-002).
1288
1320
  * NOT a fifth product identity axis. Compose with data-theme only.
1289
1321
  * At the root, defaults are comfortable density and standard contrast.
@@ -1403,10 +1435,11 @@
1403
1435
  min-width: var(--cs-component-button-md-minHeight, 44px);
1404
1436
  padding-block: var(--cs-component-button-md-paddingY, 12px);
1405
1437
  padding-inline: var(--cs-component-button-md-paddingX, 20px);
1438
+ text-decoration: none;
1406
1439
  transition: background var(--cs-duration-fast, 120ms) var(--cs-ease-standard, ease),
1407
1440
  border-color var(--cs-duration-fast, 120ms) var(--cs-ease-standard, ease),
1408
1441
  filter var(--cs-duration-fast, 120ms) var(--cs-ease-standard, ease);
1409
- }.cs-button:hover { filter: brightness(1.08); }.cs-button:active { transform: translateY(0.5px); }.cs-button:focus-visible,
1442
+ }.cs-button:hover { color: var(--cs-component-button-primary-fg, #ffffff); filter: brightness(1.08); text-decoration: none; }.cs-button:active { transform: translateY(0.5px); }.cs-button:focus-visible,
1410
1443
  .cs-field__control:focus-visible,
1411
1444
  .cs-ai-disclosure__badge:focus-visible {
1412
1445
  outline: 2px solid var(--cs-color-text-primary);
@@ -1416,21 +1449,37 @@
1416
1449
  background: var(--cs-color-surface-panel, #ffffff);
1417
1450
  border-color: var(--_cs-light, var(--cs-accent-strong, #45210e))var(--_cs-dark, var(--cs-accent, #f4ba17));
1418
1451
  color: var(--_cs-light, var(--cs-color-text-accent, #45210e))var(--_cs-dark, var(--cs-color-text-accent, #f4ba17));
1419
- }.cs-button--secondary:hover { background: var(--cs-color-surface-raised, #fbf4e9); filter: none; }.cs-button--tertiary {
1452
+ }.cs-button--secondary:hover {
1453
+ background: var(--cs-color-surface-raised, #fbf4e9);
1454
+ color: var(--_cs-light, var(--cs-color-text-accent, #45210e))var(--_cs-dark, var(--cs-color-text-accent, #f4ba17));
1455
+ filter: none;
1456
+ }.cs-button--tertiary {
1420
1457
  background: var(--cs-color-surface-raised, #fbf4e9);
1421
1458
  border-color: transparent;
1422
1459
  color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-text-primary));
1423
- }.cs-button--tertiary:hover { filter: none; border-color: var(--cs-color-border-default, #e7d9c6); }.cs-button--ghost {
1460
+ }.cs-button--tertiary:hover {
1461
+ border-color: var(--cs-color-border-default, #e7d9c6);
1462
+ color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-text-primary));
1463
+ filter: none;
1464
+ }.cs-button--ghost {
1424
1465
  background: transparent;
1425
1466
  color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-text-primary));
1426
- }.cs-button--ghost:hover { background: var(--cs-color-surface-raised, #fbf4e9); filter: none; }/* Dark theme: umber text/border on the low-emphasis buttons is invisible on dark surfaces —
1467
+ }.cs-button--ghost:hover {
1468
+ background: var(--cs-color-surface-raised, #fbf4e9);
1469
+ color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-text-primary));
1470
+ filter: none;
1471
+ }/* Dark theme: umber text/border on the low-emphasis buttons is invisible on dark surfaces —
1427
1472
  remap so secondary reads as an ochre outline and tertiary/ghost use the light body colour. */.cs-button--danger {
1428
1473
  background: var(--cs-color-semantic-danger, #b42318);
1429
1474
  color: var(--cs-color-semantic-danger-fg, #ffffff);
1430
- }.cs-button--danger-ghost {
1475
+ }.cs-button--danger:hover { color: var(--cs-color-semantic-danger-fg, #ffffff); }.cs-button--danger-ghost {
1431
1476
  background: transparent;
1432
1477
  color: var(--cs-color-semantic-danger-text, #4b0502);
1433
- }.cs-button--danger-ghost:hover { background: color-mix(in oklab, var(--cs-color-semantic-danger, #b42318) 3%, transparent); filter: none; }.cs-button--xs {
1478
+ }.cs-button--danger-ghost:hover {
1479
+ background: color-mix(in oklab, var(--cs-color-semantic-danger, #b42318) 3%, transparent);
1480
+ color: var(--cs-color-semantic-danger-text, #4b0502);
1481
+ filter: none;
1482
+ }.cs-button--xs {
1434
1483
  min-height: var(--cs-component-button-xs-minHeight, 28px);
1435
1484
  min-width: var(--cs-component-button-xs-minWidth, 28px);
1436
1485
  padding-block: var(--cs-component-button-xs-paddingY, 4px);
@@ -1445,7 +1494,7 @@
1445
1494
  min-height: var(--cs-component-button-lg-minHeight, 52px);
1446
1495
  padding-block: var(--cs-component-button-lg-paddingY, 16px);
1447
1496
  padding-inline: var(--cs-component-button-lg-paddingX, 28px);
1448
- }.cs-button--full { inline-size: 100%; }.cs-button.is-disabled,
1497
+ }.cs-button--md { min-height: var(--cs-component-button-md-minHeight, 44px); }.cs-button__icon, .cs-button__label { display: inline; }.cs-button--full { inline-size: 100%; }.cs-button.is-disabled,
1449
1498
  .cs-field.is-disabled { opacity: 0.58; cursor: not-allowed; }.cs-button.is-loading { opacity: 0.88; cursor: progress; }.cs-button__spinner {
1450
1499
  inline-size: 1em; block-size: 1em; border-radius: 999px;
1451
1500
  border: 2px solid currentColor; border-right-color: transparent;
@@ -1454,7 +1503,7 @@
1454
1503
  .cs-button { min-height: var(--cs-component-button-md-minHeight-coarse, var(--cs-component-button-md-minHeight, 44px)); }
1455
1504
  .cs-button--sm { min-height: var(--cs-component-button-sm-minHeight-coarse, 44px); }
1456
1505
  .cs-button--xs { min-height: var(--cs-component-button-xs-minHeight-coarse, 44px); }
1457
- }/* ---- TextField ---- */.cs-field { align-content: start; color: var(--cs-color-text-primary, #45210e); display: grid; gap: 0.375rem; }.cs-field__label { font-weight: 700; }.cs-field__description { color: var(--cs-color-text-muted, #3f2d21); font-size: 0.875rem; }.cs-field__control {
1506
+ }/* ---- TextField ---- */.cs-field { align-content: start; color: var(--cs-color-text-primary, #45210e); display: grid; gap: 0.375rem; }.cs-field__label { font-weight: 700; }.cs-field__description { color: var(--cs-color-text-muted, #5e4436); font-size: 0.875rem; }.cs-field__control {
1458
1507
  border: 1px solid var(--cs-component-textfield-border-default, #bfa58f);
1459
1508
  border-radius: var(--cs-radius-md, 8px);
1460
1509
  background: var(--cs-color-surface-panel, #fff);
@@ -1463,10 +1512,10 @@
1463
1512
  min-height: var(--cs-component-textfield-minHeight, 44px);
1464
1513
  padding-block: var(--cs-component-textfield-paddingY, 10px);
1465
1514
  padding-inline: var(--cs-component-textfield-paddingX, 12px);
1466
- }.cs-field__control::placeholder { color: var(--cs-color-text-muted, #3f2d21); opacity: 0.7; }.cs-field.is-invalid .cs-field__control, .cs-field__control.is-invalid, .cs-field__control[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }.cs-field__error { color: var(--cs-color-semantic-danger-text, #4b0502); font-size: 0.875rem; }/* ---- Dialog ---- */.cs-dialog-layer { inset: 0; position: fixed; z-index: var(--cs-depth-modal); }.cs-dialog__overlay { background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); inset: 0; position: absolute; }.cs-dialog {
1515
+ }.cs-field__control::placeholder { color: var(--cs-color-text-muted, #5e4436); opacity: 0.7; }.cs-field.is-invalid .cs-field__control, .cs-field__control.is-invalid, .cs-field__control[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }.cs-field__error { color: var(--cs-color-semantic-danger-text, #4b0502); font-size: 0.875rem; }/* ---- Dialog ---- */.cs-dialog-layer { inset: 0; position: fixed; z-index: var(--cs-depth-modal); }.cs-dialog__overlay { background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); inset: 0; position: absolute; }.cs-dialog {
1467
1516
  background: var(--cs-color-surface-panel, #ffffff);
1468
1517
  border-radius: var(--cs-radius-lg, 14px);
1469
- box-shadow: var(--cs-shadow-xl, 0 24px 80px rgba(31, 19, 11, 0.26));
1518
+ box-shadow: var(--cs-shadow-xl, 0 24px 80px rgba(69, 33, 14, 0.24));
1470
1519
  color: var(--cs-color-text-primary, #45210e);
1471
1520
  left: 0;
1472
1521
  right: 0;
@@ -1482,11 +1531,13 @@
1482
1531
  width: 100%;
1483
1532
  }.cs-dialog__header,
1484
1533
  .cs-dialog__actions,
1485
- .cs-review-gate__actions {
1534
+ .cs-review-gate__actions,
1535
+ .cs-human-review-gate__actions {
1486
1536
  align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: space-between;
1487
- }.cs-dialog__actions { justify-content: flex-end; }.cs-dialog__title { font-size: 1.25rem; line-height: 1.35; margin: 0; }.cs-dialog__body { margin-block: 1rem; }/* AlertDialog — confirm/destructive modal (shares dialog layer; tighter panel) */.cs-alert-dialog { max-inline-size: min(28rem, calc(100vw - 2rem)); }.cs-alert-dialog--destructive .cs-dialog__title { color: var(--cs-color-semantic-danger-text, #4b0502); }@media (max-width: 640px) {
1537
+ }.cs-dialog__actions { justify-content: flex-end; }.cs-dialog__title { font-size: 1.25rem; line-height: 1.35; margin: 0; }.cs-dialog__body { margin-block: 1rem; }/* AlertDialog — confirm/destructive modal (shares dialog layer; tighter panel) */.cs-alert-dialog { max-inline-size: min(28rem, calc(100vw - 2rem)); }.cs-alert-dialog__cancel, .cs-alert-dialog__confirm { box-sizing: border-box; }.cs-alert-dialog--destructive .cs-dialog__title { color: var(--cs-color-semantic-danger-text, #4b0502); }@media (max-width: 640px) {
1488
1538
  .cs-dialog { max-inline-size: calc(100vw - 1rem); top: 4vh; padding: var(--cs-space-4, 16px); }
1489
- .cs-dialog__actions .cs-button, .cs-review-gate__actions .cs-button { flex: 1 1 auto; }
1539
+ .cs-dialog__actions .cs-button, .cs-review-gate__actions .cs-button, .cs-human-review-gate__actions .cs-button { flex: 1 1 auto; }
1540
+ .cs-review-gate, .cs-human-review-gate { padding: var(--cs-space-3, 12px); gap: 0.5rem; }
1490
1541
  }/* Progressive viewport geometry: preserve the vh fallback above. Safe-area
1491
1542
  bounds are physical viewport edges; direction does not swap a device notch. */@supports (height: 100dvh) and (top: max(1px, env(safe-area-inset-top, 0px))) {
1492
1543
  .cs-dialog {
@@ -1513,8 +1564,8 @@
1513
1564
  text-align: end;
1514
1565
  }.cs-table thead th {
1515
1566
  font-size: var(--cs-font-size-xs, 0.75rem); text-transform: uppercase;
1516
- letter-spacing: var(--cs-letter-spacing-caps, 0.08em); color: var(--cs-color-text-muted, #3f2d21);
1517
- }.cs-table caption { font-weight: 700; margin-block-end: 0.5rem; text-align: start; }.cs-table__empty { color: var(--cs-color-text-muted, #3f2d21); }/* ---- AIDisclosureBadge ---- */.cs-ai-disclosure { display: inline-block; position: relative; }.cs-ai-disclosure__badge {
1567
+ letter-spacing: var(--cs-letter-spacing-caps, 0.08em); color: var(--cs-color-text-muted, #5e4436);
1568
+ }.cs-table caption { font-weight: 700; margin-block-end: 0.5rem; text-align: start; }.cs-table__empty { color: var(--cs-color-text-muted, #5e4436); }/* ---- AIDisclosureBadge ---- */.cs-ai-disclosure { display: inline-block; position: relative; }.cs-ai-disclosure__badge {
1518
1569
  background: var(--cs-color-semantic-info, #1d4ed8); border: 0; border-radius: 999px;
1519
1570
  color: var(--cs-color-semantic-info-fg, #ffffff); font: inherit; font-size: 0.875rem; font-weight: 700;
1520
1571
  min-block-size: 32px; padding: 0.25rem 0.75rem; cursor: pointer;
@@ -1522,22 +1573,66 @@
1522
1573
  background: var(--cs-color-surface-panel, #ffffff);
1523
1574
  color: var(--cs-color-text-primary, #45210e);
1524
1575
  border: 1px solid var(--cs-color-border-subtle, var(--_cs-border-subtle)); border-radius: var(--cs-radius-md, 8px);
1525
- box-shadow: var(--cs-shadow-xs, 0 1px 2px rgba(31, 19, 11, 0.08));
1576
+ box-shadow: var(--cs-shadow-xs, 0 1px 2px rgba(69, 33, 14, 0.06));
1526
1577
  display: grid; gap: 0.375rem; inset-block-start: calc(100% + 0.375rem); inset-inline-start: 0;
1527
1578
  min-inline-size: 18rem; padding: 0.75rem; position: absolute; z-index: var(--cs-depth-dropdown, 60);
1528
- }.cs-ai-disclosure__sources { color: var(--cs-color-text-muted, #3f2d21); font-size: 0.8125rem; }/* ---- HumanReviewGate ---- */.cs-review-gate {
1579
+ }.cs-ai-disclosure__details { margin: 0; }.cs-ai-disclosure__sources { color: var(--cs-color-text-muted, #5e4436); font-size: 0.8125rem; }/* ---- HumanReviewGate ---- */.cs-review-gate,
1580
+ .cs-human-review-gate {
1529
1581
  border: 1px solid var(--cs-color-semantic-warning, #92400e);
1530
1582
  border-radius: var(--cs-radius-md, 8px); color: var(--cs-color-text-primary, #45210e);
1531
1583
  display: grid; gap: 0.75rem; padding: var(--cs-space-4, 16px);
1532
1584
  background: color-mix(in oklab, var(--cs-color-semantic-warning, #92400e) 5%, var(--cs-color-surface-panel, #fff));
1533
- }.cs-review-gate__risk {
1585
+ }.cs-review-gate__risk,
1586
+ .cs-human-review-gate__risk {
1534
1587
  color: var(--cs-color-semantic-warning-text, #441801); font-weight: 700;
1535
1588
  text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.8125rem;
1536
- }.cs-review-gate__summary { margin: 0; }.cs-review-gate__reviewer { margin: 0; color: var(--cs-color-text-muted, #3f2d21); font-size: 0.875rem; }/* ---- Logo ---- */.cs-logo { block-size: auto; display: inline-block; vertical-align: middle; }/* ---- UI font binding: components consume the brand UI-font token ---- */.cs-button, .cs-field, .cs-field__control, .cs-dialog, .cs-table,
1537
- .cs-ai-disclosure, .cs-review-gate, .cs-logo {
1589
+ }.cs-review-gate__summary,
1590
+ .cs-human-review-gate__summary { margin: 0; }.cs-review-gate__reviewer,
1591
+ .cs-human-review-gate__reviewer { margin: 0; color: var(--cs-color-text-muted, #5e4436); font-size: 0.875rem; }/* ---- Logo & Icon ---- */.cs-logo { block-size: auto; display: inline-block; vertical-align: middle; }.cs-icon { vertical-align: middle; flex: none; }/* ---- Legal / A4 Document Sheet Primitives (.cs-doc-*) ---- */.cs-doc-sheet {
1592
+ background: var(--cs-color-surface-panel, #ffffff);
1593
+ border: 1px solid var(--cs-color-border-default, #e7d9c6);
1594
+ border-radius: var(--cs-radius-lg, 12px);
1595
+ box-shadow: var(--cs-shadow-md);
1596
+ color: var(--cs-color-text-primary, #45210e);
1597
+ inline-size: 100%;
1598
+ max-inline-size: 860px;
1599
+ margin-inline: auto;
1600
+ padding: clamp(20px, 4vw, 48px) clamp(20px, 4.5vw, 56px);
1601
+ box-sizing: border-box;
1602
+ }.cs-doc-motto {
1603
+ text-align: center;
1604
+ padding-block-end: var(--cs-space-4, 16px);
1605
+ margin-block-end: var(--cs-space-4, 16px);
1606
+ border-block-end: 2px double var(--cs-color-border-strong, var(--cs-color-border-default));
1607
+ }.cs-doc-section-bar {
1608
+ display: flex;
1609
+ align-items: center;
1610
+ justify-content: space-between;
1611
+ gap: var(--cs-space-3, 12px);
1612
+ padding: 8px 12px;
1613
+ margin-block: var(--cs-space-4, 16px) var(--cs-space-3, 12px);
1614
+ background: var(--cs-color-surface-raised, #fbf4e9);
1615
+ border-inline-start: 3px solid var(--cs-accent, #f4ba17);
1616
+ border-radius: 0 var(--cs-radius-sm, 6px) var(--cs-radius-sm, 6px) 0;
1617
+ font-weight: 700;
1618
+ }.cs-doc-blank,
1619
+ .cs-doc-field {
1620
+ display: inline-flex;
1621
+ align-items: baseline;
1622
+ gap: 4px;
1623
+ min-inline-size: 5rem;
1624
+ padding-inline: 6px;
1625
+ padding-block: 1px;
1626
+ border-block-end: 1.5px dotted var(--cs-color-text-accent, var(--cs-accent-strong));
1627
+ background: color-mix(in oklab, var(--cs-accent, #f4ba17) 14%, transparent);
1628
+ border-radius: 3px 3px 0 0;
1629
+ font-weight: 600;
1630
+ color: var(--cs-color-text-primary, #45210e);
1631
+ }/* ---- UI font binding: components consume the brand UI-font token ---- */.cs-button, .cs-field, .cs-field__control, .cs-dialog, .cs-table,
1632
+ .cs-ai-disclosure, .cs-review-gate, .cs-human-review-gate, .cs-logo, .cs-doc-sheet {
1538
1633
  font-family: var(--cs-font-family-ui, ui-sans-serif, system-ui);
1539
- }/* Source: base/forms.css *//* CyberSkill — form controls (.cs-*). Built on the design tokens; native
1540
- * controls use accent-color for brand-tinted checks/radios (accessible + minimal). *//* Select — reuses .cs-field label/description/error */.cs-select { position: relative; display: block; }.cs-select select.cs-field__control { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 38px; cursor: pointer; background: var(--cs-color-surface-panel); }.cs-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }.cs-select select.cs-field__control:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }/* NativeSelect — lean progressive-enhancement companion beside Select */.cs-native-select { position: relative; display: block; }.cs-native-select select.cs-field__control { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 38px; cursor: pointer; background: var(--cs-color-surface-panel); }.cs-native-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }.cs-native-select select.cs-field__control:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-native-select--sm select.cs-field__control { min-block-size: 36px; padding-block: 6px; font-size: var(--cs-font-size-sm); }.cs-native-select--md select.cs-field__control { min-block-size: 44px; }/* Checkbox + Radio — native, brand accent */.cs-check, .cs-radio { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); line-height: 1.4; }.cs-check input, .cs-radio input { inline-size: 20px; block-size: 20px; margin: 0; flex: none; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); cursor: pointer; }.cs-check.is-disabled, .cs-radio.is-disabled { opacity: 0.55; cursor: not-allowed; }.cs-check__text, .cs-radio__text { display: grid; gap: 2px; }.cs-check__desc, .cs-radio__desc { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }.cs-radio-group { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; }.cs-radio-group > legend { font-weight: 700; padding: 0; margin-block-end: 6px; }/* Switch — custom track/knob */.cs-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-family: var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-switch input { position: absolute; opacity: 0; width: 0; height: 0; }.cs-switch__track { inline-size: 44px; block-size: 26px; border-radius: 999px; background: var(--cs-color-border-default); position: relative; transition: background var(--cs-duration-fast) var(--cs-ease-standard); flex: none; }.cs-switch__track::after { content: ""; position: absolute; inset-block-start: 3px; inset-inline-start: 3px; inline-size: 20px; block-size: 20px; border-radius: 50%; background: var(--cs-color-surface-panel, #fff); box-shadow: var(--cs-shadow-xs); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-switch input:checked + .cs-switch__track { background: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); }.cs-switch input:checked + .cs-switch__track::after { transform: translateX(18px); }.cs-switch input:focus-visible + .cs-switch__track { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-switch:focus-within { outline-style: solid; outline-width: 2px; outline-color: var(--cs-color-text-primary); outline-offset: 4px; border-radius: 6px; }.cs-switch.is-disabled { opacity: 0.55; cursor: not-allowed; }/* Textarea reuses .cs-field; give it sane sizing */textarea.cs-field__control { min-height: 96px; resize: vertical; line-height: var(--cs-font-lineHeight-body); }/* Source: base/feedback.css *//* CyberSkill — feedback + status (.cs-*). Semantic colour never the only signal. *//* Badge — compact status label */.cs-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-xs); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; padding: 3px 9px; border-radius: var(--cs-radius-full); text-transform: uppercase; letter-spacing: 0.04em; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }.cs-badge--solid { border-color: transparent; color: #fff; /* on-brand-umber ink (allowlisted; text-inverse flips in dark) */ background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-badge--ochre { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border-color: transparent; }[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--solid { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); }[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--ochre { background: var(--cs-accent-tint); color: var(--cs-color-text-accent); border-color: color-mix(in oklab, var(--cs-accent) 55%, transparent); }.cs-badge--success { background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg); border-color: transparent; }.cs-badge--danger { background: var(--cs-color-semantic-danger); color: var(--cs-color-semantic-danger-fg); border-color: transparent; }.cs-badge--warning { background: var(--cs-color-semantic-warning); color: var(--cs-color-semantic-warning-fg); border-color: transparent; }.cs-badge--info { background: var(--cs-color-semantic-info); color: var(--cs-color-semantic-info-fg); border-color: transparent; }.cs-badge__dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: currentColor; }/* Tag / Chip — removable */.cs-tag { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); font-weight: 600; padding: 5px 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }.cs-tag__close { display: inline-grid; place-items: center; inline-size: 18px; block-size: 18px; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; padding: 0; }.cs-tag__close:hover { background: color-mix(in oklab, var(--cs-color-brand-umber) 12%, transparent); }/* Alert / Banner */.cs-alert { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; padding: 14px 16px; border-radius: var(--cs-radius-md); border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); align-items: start; }.cs-alert__icon { color: var(--cs-color-text-accent); display: grid; place-items: start; padding-block-start: 1px; }.cs-alert__title { font-weight: 700; margin: 0 0 2px; }.cs-alert__body { margin: 0; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-alert__dismiss { appearance: none; border: 0; background: transparent; color: var(--cs-color-text-muted); cursor: pointer; font-size: var(--cs-font-size-md, 1.125rem); line-height: 1; padding: 0 2px; border-radius: var(--cs-radius-sm); }.cs-alert__dismiss:hover { color: var(--cs-color-text-primary); }.cs-alert__dismiss:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-alert--info { border-inline-start: 4px solid var(--cs-color-semantic-info); }.cs-alert--info .cs-alert__icon { color: var(--cs-color-semantic-info-text); }.cs-alert--success { border-inline-start: 4px solid var(--cs-color-semantic-success); }.cs-alert--success .cs-alert__icon { color: var(--cs-color-semantic-success-text); }.cs-alert--warning { border-inline-start: 4px solid var(--cs-color-semantic-warning); }.cs-alert--warning .cs-alert__icon { color: var(--cs-color-semantic-warning-text); }.cs-alert--danger { border-inline-start: 4px solid var(--cs-color-semantic-danger); }.cs-alert--danger .cs-alert__icon { color: var(--cs-color-semantic-danger-text); }/* Toast */.cs-toast-stack { position: fixed; inset-block-end: 20px; inset-inline-end: 20px; z-index: var(--cs-depth-toast); display: grid; gap: 10px; max-inline-size: min(380px, calc(100% - 40px)); }.cs-toast { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 12px 14px; border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); box-shadow: var(--cs-shadow-md); color: var(--cs-color-text-primary); animation: cs-toast-in var(--cs-duration-base) var(--cs-ease-entrance); }.cs-toast__icon { color: var(--cs-color-text-accent); }.cs-toast--default { border-inline-start: 4px solid var(--cs-color-semantic-info); }.cs-toast--default .cs-toast__icon { color: var(--cs-color-semantic-info-text); }.cs-toast--success { border-inline-start: 4px solid var(--cs-color-semantic-success); }.cs-toast--success .cs-toast__icon { color: var(--cs-color-semantic-success-text); }.cs-toast--danger { border-inline-start: 4px solid var(--cs-color-semantic-danger); }.cs-toast--danger .cs-toast__icon { color: var(--cs-color-semantic-danger-text); }.cs-toast__title { font-weight: 700; font-size: var(--cs-font-size-sm); }.cs-toast__body { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); margin-block-start: 2px; }.cs-toast__close { border: 0; background: transparent; cursor: pointer; color: var(--cs-color-text-muted); padding: 0; display: grid; place-items: center; }@keyframes cs-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }@media (prefers-reduced-motion: reduce) { .cs-toast { animation: none; } }/* Spinner */.cs-spinner { display: inline-block; inline-size: 20px; block-size: 20px; border-radius: 50%; border: 2.5px solid color-mix(in oklab, var(--cs-accent-strong) 22%, transparent); border-color: var(--_cs-light, color-mix(in oklab, var(--cs-accent-strong) 22%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 26%, transparent)); border-top-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); animation: cs-spin 0.62s linear infinite; }@media (prefers-reduced-motion: reduce) { .cs-spinner { animation: none; } }/* Progress bar */.cs-progress { inline-size: 100%; block-size: 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); overflow: hidden; }.cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-accent); box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }.cs-progress--umber .cs-progress__fill { background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-progress--success .cs-progress__fill { background: var(--cs-color-semantic-success); box-shadow: none; }/* Skeleton */.cs-skeleton { display: block; border-radius: var(--cs-radius-sm); background: linear-gradient(90deg, var(--cs-color-surface-raised) 25%, color-mix(in oklab, var(--cs-color-surface-raised) 55%, var(--cs-color-surface-panel)) 37%, var(--cs-color-surface-raised) 63%); background-size: 400% 100%; animation: cs-shimmer 1.4s ease infinite; }.cs-skeleton--text { block-size: 0.75em; margin-block: 0.25em; }.cs-skeleton--circle { border-radius: 50%; }@keyframes cs-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }@media (prefers-reduced-motion: reduce) { .cs-skeleton { animation: none; } }/* Source: base/data.css *//* CyberSkill — data display + layout (.cs-*). *//* Card */.cs-card { background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-sm); color: var(--cs-color-text-primary); overflow: hidden; }.cs-card--flat { box-shadow: none; }.cs-card--raised { background: var(--cs-color-surface-raised); }.cs-card--featured { background: color-mix(in oklab, var(--cs-accent) 12%, var(--cs-color-surface-raised)); border-color: var(--cs-accent); box-shadow: var(--cs-shadow-md); }.cs-card--interactive { cursor: pointer; transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-card--interactive:hover { border-color: var(--cs-accent); box-shadow: var(--cs-shadow-md); }.cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre), var(--cs-shadow-sm); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-card--flat.cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-card--interactive:active { transform: translateY(1px); }.cs-card__media { display: block; inline-size: 100%; }.cs-card__header { padding: 18px 20px 0; }.cs-card__title { margin: 0; font-size: var(--cs-text-h4); font-weight: 700; line-height: var(--cs-font-lineHeight-heading); }.cs-card__subtitle { margin: 4px 0 0; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-card__body { padding: 16px 20px; }.cs-card__body > :first-child { margin-block-start: 0; }.cs-card__body > :last-child { margin-block-end: 0; }.cs-card__footer { padding: 12px 20px 18px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }/* Stat */.cs-stat { display: grid; gap: 3px; }.cs-stat__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-stat__value { font-size: var(--cs-font-size-3xl); font-weight: 800; line-height: 1.1; letter-spacing: var(--cs-letter-spacing-tight); font-variant-numeric: tabular-nums; }.cs-stat__value:lang(vi) { line-height: 1.22; }.cs-stat__delta { display: inline-flex; align-items: center; gap: 4px; font-size: var(--cs-font-size-sm); font-weight: 700; }.cs-stat__delta--up { color: var(--cs-color-semantic-success-text); }.cs-stat__delta--down { color: var(--cs-color-semantic-danger-text); }.cs-stat__delta--flat { color: var(--cs-color-text-muted); }/* Avatar */.cs-avatar { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); font-family: var(--cs-font-family-ui); font-weight: 700; flex: none; user-select: none; }.cs-avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }.cs-avatar--sm { inline-size: 28px; block-size: 28px; font-size: var(--cs-font-size-xs); }.cs-avatar--md { inline-size: 40px; block-size: 40px; font-size: var(--cs-font-size-sm); }.cs-avatar--lg { inline-size: 56px; block-size: 56px; font-size: var(--cs-font-size-lg); }.cs-avatar--square { border-radius: var(--cs-radius-md); }.cs-avatar-group { display: inline-flex; }.cs-avatar-group > .cs-avatar { box-shadow: 0 0 0 2px var(--cs-color-surface-panel); }.cs-avatar-group > .cs-avatar + .cs-avatar { margin-inline-start: -10px; }/* Tooltip */.cs-tooltip { position: relative; display: inline-flex; }.cs-tooltip__bubble { position: absolute; inset-block-end: calc(100% + 8px); inset-inline-start: 50%; transform: translateX(-50%) translateY(4px); background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-size: var(--cs-font-size-xs); font-weight: 600; line-height: 1.35; padding: 6px 10px; border-radius: var(--cs-radius-sm); white-space: normal; inline-size: max-content; max-inline-size: 240px; overflow-wrap: break-word; opacity: 0; pointer-events: none; transition: opacity var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent), var(--cs-shadow-md); z-index: var(--cs-depth-dropdown, 60); }.cs-tooltip__bubble::after { content: ""; position: absolute; inset-block-start: 100%; inset-inline-start: 50%; transform: translateX(-50%); border: 5px solid transparent; border-block-start-color: var(--cs-color-brand-umber); }.cs-tooltip:not([data-managed]):hover .cs-tooltip__bubble, .cs-tooltip:not([data-managed]):focus-within .cs-tooltip__bubble, .cs-tooltip[data-open="true"] .cs-tooltip__bubble { opacity: 1; transform: translateX(-50%) translateY(0); }/* Divider */.cs-divider { border: 0; block-size: 1px; background: var(--cs-color-border-default); margin-block: var(--cs-space-4); }.cs-divider--label { display: flex; align-items: center; gap: 12px; background: none; block-size: auto; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-divider--label::before, .cs-divider--label::after { content: ""; flex: 1; block-size: 1px; background: var(--cs-color-border-default); }.cs-divider--vertical { inline-size: 1px; block-size: auto; align-self: stretch; margin-inline: var(--cs-space-4); margin-block: 0; }/* ScrollArea — focusable overflow for dense panels */.cs-scroll-area {
1634
+ }/* ---- Compact density scope (44px interactive touch floors remain intact) ---- */[data-cs-density="compact"] :is(.cs-table th, .cs-table td) { padding: 6px 10px; }[data-cs-density="compact"] .cs-dialog { padding: var(--cs-density-space-6, 18px); }[data-cs-density="compact"] .cs-dialog__body { margin-block: var(--cs-density-space-4, 12px); }[data-cs-density="compact"] .cs-field { gap: 4px; }[data-cs-density="compact"] :is(.cs-review-gate, .cs-human-review-gate) { padding: var(--cs-density-space-4, 12px); gap: var(--cs-density-space-2, 6px); }[data-cs-density="compact"] [data-cs-density="comfortable"] :is(.cs-table th, .cs-table td) { padding: 0.625rem 0.75rem; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-dialog { padding: var(--cs-space-6, 24px); }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-dialog__body { margin-block: 1rem; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-field { gap: 0.375rem; }[data-cs-density="compact"] [data-cs-density="comfortable"] :is(.cs-review-gate, .cs-human-review-gate) { padding: var(--cs-space-4, 16px); gap: 0.75rem; }/* Source: base/forms.css *//* CyberSkill — form controls (.cs-*). Built on the design tokens; native
1635
+ * controls use accent-color for brand-tinted checks/radios (accessible + minimal). *//* Select — reuses .cs-field label/description/error */.cs-select { position: relative; display: block; }.cs-select select.cs-field__control { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 38px; cursor: pointer; background: var(--cs-color-surface-panel); }.cs-select__trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; inline-size: 100%; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; box-sizing: border-box; }.cs-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }.cs-select select.cs-field__control:focus-visible, .cs-select__trigger:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-select.is-invalid .cs-select__trigger, .is-invalid .cs-select__trigger, .cs-select__trigger.is-invalid, .cs-select__trigger[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }/* NativeSelect — lean progressive-enhancement companion beside Select */.cs-native-select-field { display: grid; }.cs-native-select { position: relative; display: block; }.cs-native-select select.cs-field__control { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 38px; cursor: pointer; background: var(--cs-color-surface-panel); }.cs-native-select__chevron { position: absolute; inset-inline-end: 12px; inset-block-start: 50%; transform: translateY(-50%); pointer-events: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }.cs-native-select select.cs-field__control:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-color: var(--cs-color-brand-ochre); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-native-select--sm select.cs-field__control { min-block-size: 36px; padding-block: 6px; font-size: var(--cs-font-size-sm); }.cs-native-select--md select.cs-field__control { min-block-size: 44px; }/* Checkbox + Radio — native, brand accent */.cs-check, .cs-radio { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); line-height: 1.4; }.cs-check input, .cs-radio input { inline-size: 20px; block-size: 20px; margin: 0; flex: none; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); cursor: pointer; }.cs-check.is-disabled, .cs-radio.is-disabled { opacity: 0.55; cursor: not-allowed; }.cs-check__text, .cs-radio__text { display: grid; gap: 2px; }.cs-check__desc, .cs-radio__desc { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }.cs-radio-group { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; }.cs-radio-group > legend { font-weight: 700; padding: 0; margin-block-end: 6px; }/* Switch — custom track/knob */.cs-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-family: var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-switch__label { font: inherit; color: inherit; }.cs-switch input { position: absolute; opacity: 0; width: 0; height: 0; }.cs-switch__track { inline-size: 44px; block-size: 26px; border-radius: 999px; background: var(--cs-color-border-default); box-shadow: inset 0 0 0 1px var(--cs-component-textfield-border-default, var(--cs-color-border-default)); position: relative; transition: background var(--cs-duration-fast) var(--cs-ease-standard), box-shadow var(--cs-duration-fast) var(--cs-ease-standard); flex: none; }.cs-switch__track::after { content: ""; position: absolute; inset-block-start: 3px; inset-inline-start: 3px; inline-size: 20px; block-size: 20px; border-radius: 50%; background: var(--cs-color-surface-panel, #fff); box-shadow: var(--cs-shadow-xs); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-switch input:checked + .cs-switch__track { background: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); box-shadow: none; }.cs-switch input:checked + .cs-switch__track::after { transform: translateX(18px); }.cs-switch input:focus-visible + .cs-switch__track { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-switch.is-disabled { opacity: 0.55; cursor: not-allowed; }/* Textarea reuses .cs-field; give it sane sizing */textarea.cs-field__control { min-height: 96px; resize: vertical; line-height: var(--cs-font-lineHeight-body); }/* Source: base/feedback.css *//* CyberSkill — feedback + status (.cs-*). Semantic colour never the only signal. *//* Badge — compact status label */.cs-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-xs); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; padding: 3px 9px; border-radius: var(--cs-radius-full); text-transform: uppercase; letter-spacing: 0.04em; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }.cs-badge--solid { border-color: transparent; color: #fff; /* on-brand-umber ink (allowlisted; text-inverse flips in dark) */ background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-badge--ochre { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border-color: transparent; }[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--solid { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); }[data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--ochre { background: var(--cs-accent-tint); color: var(--cs-color-text-accent); border-color: color-mix(in oklab, var(--cs-accent) 55%, transparent); }.cs-badge--success { background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg); border-color: transparent; }.cs-badge--danger { background: var(--cs-color-semantic-danger); color: var(--cs-color-semantic-danger-fg); border-color: transparent; }.cs-badge--warning { background: var(--cs-color-semantic-warning); color: var(--cs-color-semantic-warning-fg); border-color: transparent; }.cs-badge--info { background: var(--cs-color-semantic-info); color: var(--cs-color-semantic-info-fg); border-color: transparent; }.cs-badge__dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: currentColor; }/* Tag / Chip — removable */.cs-tag { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); font-weight: 600; padding: 5px 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }.cs-tag__close { display: inline-grid; place-items: center; inline-size: 18px; block-size: 18px; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; padding: 0; }.cs-tag__close:hover { background: color-mix(in oklab, var(--cs-color-brand-umber) 12%, transparent); }/* Alert / Banner */.cs-alert { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; padding: 14px 16px; border-radius: var(--cs-radius-md); border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); align-items: start; }.cs-alert__icon { color: var(--cs-color-text-accent); display: grid; place-items: start; padding-block-start: 1px; }.cs-alert__title { font-weight: 700; margin: 0 0 2px; }.cs-alert__body { margin: 0; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-alert__dismiss { appearance: none; border: 0; background: transparent; color: var(--cs-color-text-muted); cursor: pointer; font-size: var(--cs-font-size-md, 1.125rem); line-height: 1; padding: 0 2px; border-radius: var(--cs-radius-sm); }.cs-alert__dismiss:hover { color: var(--cs-color-text-primary); }.cs-alert__dismiss:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-alert--info { border-inline-start: 4px solid var(--cs-color-semantic-info); }.cs-alert--info .cs-alert__icon { color: var(--cs-color-semantic-info-text); }.cs-alert--success { border-inline-start: 4px solid var(--cs-color-semantic-success); }.cs-alert--success .cs-alert__icon { color: var(--cs-color-semantic-success-text); }.cs-alert--warning { border-inline-start: 4px solid var(--cs-color-semantic-warning); }.cs-alert--warning .cs-alert__icon { color: var(--cs-color-semantic-warning-text); }.cs-alert--danger { border-inline-start: 4px solid var(--cs-color-semantic-danger); }.cs-alert--danger .cs-alert__icon { color: var(--cs-color-semantic-danger-text); }/* Toast */.cs-toast-stack { position: fixed; inset-block-end: 20px; inset-inline-end: 20px; z-index: var(--cs-depth-toast); display: grid; gap: 10px; max-inline-size: min(380px, calc(100% - 40px)); }.cs-toast { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 12px 14px; border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); box-shadow: var(--cs-shadow-md); color: var(--cs-color-text-primary); animation: cs-toast-in var(--cs-duration-base) var(--cs-ease-entrance); }.cs-toast__icon { color: var(--cs-color-text-accent); }.cs-toast--default { border-inline-start: 4px solid var(--cs-color-semantic-info); }.cs-toast--default .cs-toast__icon { color: var(--cs-color-semantic-info-text); }.cs-toast--success { border-inline-start: 4px solid var(--cs-color-semantic-success); }.cs-toast--success .cs-toast__icon { color: var(--cs-color-semantic-success-text); }.cs-toast--danger { border-inline-start: 4px solid var(--cs-color-semantic-danger); }.cs-toast--danger .cs-toast__icon { color: var(--cs-color-semantic-danger-text); }.cs-toast__title { font-weight: 700; font-size: var(--cs-font-size-sm); }.cs-toast__body { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); margin-block-start: 2px; }.cs-toast__close { border: 0; background: transparent; cursor: pointer; color: var(--cs-color-text-muted); padding: 0; display: grid; place-items: center; }@keyframes cs-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }@media (prefers-reduced-motion: reduce) { .cs-toast { animation: none; } }/* Spinner */.cs-spinner { display: inline-block; inline-size: 20px; block-size: 20px; border-radius: 50%; border: 2.5px solid color-mix(in oklab, var(--cs-accent-strong) 22%, transparent); border-color: var(--_cs-light, color-mix(in oklab, var(--cs-accent-strong) 22%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 26%, transparent)); border-top-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); animation: cs-spin 0.62s linear infinite; }@media (prefers-reduced-motion: reduce) { .cs-spinner { animation: none; } }/* Progress bar */.cs-progress { inline-size: 100%; block-size: 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); overflow: hidden; }.cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-accent); box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }.cs-progress--umber .cs-progress__fill { background: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-progress--success .cs-progress__fill { background: var(--cs-color-semantic-success); box-shadow: none; }/* Skeleton */.cs-skeleton { display: block; border-radius: var(--cs-radius-sm); background: linear-gradient(90deg, var(--cs-color-surface-raised) 25%, color-mix(in oklab, var(--cs-color-surface-raised) 55%, var(--cs-color-surface-panel)) 37%, var(--cs-color-surface-raised) 63%); background-size: 400% 100%; animation: cs-shimmer 1.4s ease infinite; }.cs-skeleton--text { block-size: 0.75em; margin-block: 0.25em; }.cs-skeleton--circle { border-radius: 50%; }@keyframes cs-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }@media (prefers-reduced-motion: reduce) { .cs-skeleton { animation: none; } }/* Compact density scope (resets cleanly under nested [data-cs-density="comfortable"]) */[data-cs-density="compact"] .cs-alert { padding: 10px 12px; gap: 8px; }[data-cs-density="compact"] .cs-toast { padding: 9px 12px; gap: 8px; }[data-cs-density="compact"] .cs-tag { padding: 3px 8px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-alert { padding: 14px 16px; gap: 12px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-toast { padding: 12px 14px; gap: 12px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-tag { padding: 5px 10px; }/* Source: base/data.css *//* CyberSkill — data display + layout (.cs-*). *//* Card */.cs-card { background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-sm); color: var(--cs-color-text-primary); overflow: hidden; min-inline-size: 0; }.cs-card--flat { box-shadow: none; }.cs-card--raised { background: var(--cs-color-surface-raised); }.cs-card--featured { background: color-mix(in oklab, var(--cs-accent) 12%, var(--cs-color-surface-raised)); border-color: var(--cs-accent); box-shadow: var(--cs-shadow-md); }.cs-card--interactive { cursor: pointer; transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-card--interactive:hover { border-color: var(--cs-accent); box-shadow: var(--cs-shadow-md); }.cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre), var(--cs-shadow-sm); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-card--flat.cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-card--interactive:active { transform: translateY(1px); }.cs-card__media { display: block; inline-size: 100%; }.cs-card__header { padding: 18px 20px 0; min-inline-size: 0; }.cs-card__title { margin: 0; font-size: var(--cs-text-h4); font-weight: 700; line-height: var(--cs-font-lineHeight-heading); overflow-wrap: anywhere; }.cs-card__subtitle { margin: 4px 0 0; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); overflow-wrap: anywhere; }.cs-card__body { padding: 16px 20px; min-inline-size: 0; }.cs-card__body > :first-child { margin-block-start: 0; }.cs-card__body > :last-child { margin-block-end: 0; }.cs-card__footer { padding: 12px 20px 18px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }/* Stat */.cs-stat { display: grid; gap: 3px; }.cs-stat__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-stat__value { font-size: var(--cs-font-size-3xl); font-weight: 800; line-height: 1.1; letter-spacing: var(--cs-letter-spacing-tight); font-variant-numeric: tabular-nums; }.cs-stat__value:lang(vi) { line-height: 1.22; }.cs-stat__delta { display: inline-flex; align-items: center; gap: 4px; font-size: var(--cs-font-size-sm); font-weight: 700; }.cs-stat__delta--up { color: var(--cs-color-semantic-success-text); }.cs-stat__delta--down { color: var(--cs-color-semantic-danger-text); }.cs-stat__delta--flat { color: var(--cs-color-text-muted); }/* Avatar */.cs-avatar { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); font-family: var(--cs-font-family-ui); font-weight: 700; flex: none; user-select: none; }.cs-avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }.cs-avatar--sm { inline-size: 28px; block-size: 28px; font-size: var(--cs-font-size-xs); }.cs-avatar--md { inline-size: 40px; block-size: 40px; font-size: var(--cs-font-size-sm); }.cs-avatar--lg { inline-size: 56px; block-size: 56px; font-size: var(--cs-font-size-lg); }.cs-avatar--square { border-radius: var(--cs-radius-md); }.cs-avatar-group { display: inline-flex; }.cs-avatar-group > .cs-avatar { box-shadow: 0 0 0 2px var(--cs-color-surface-panel); }.cs-avatar-group > .cs-avatar + .cs-avatar { margin-inline-start: -10px; }/* Tooltip */.cs-tooltip { position: relative; display: inline-flex; }.cs-tooltip__bubble { position: absolute; inset-block-end: calc(100% + 8px); inset-inline-start: 50%; transform: translateX(-50%) translateY(4px); background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-size: var(--cs-font-size-xs); font-weight: 600; line-height: 1.35; padding: 6px 10px; border-radius: var(--cs-radius-sm); white-space: normal; inline-size: max-content; max-inline-size: 240px; overflow-wrap: break-word; opacity: 0; pointer-events: none; transition: opacity var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent), var(--cs-shadow-md); z-index: var(--cs-depth-dropdown, 60); }.cs-tooltip__bubble::after { content: ""; position: absolute; inset-block-start: 100%; inset-inline-start: 50%; transform: translateX(-50%); border: 5px solid transparent; border-block-start-color: var(--cs-color-brand-umber); }.cs-tooltip:not([data-managed]):hover .cs-tooltip__bubble, .cs-tooltip:not([data-managed]):focus-within .cs-tooltip__bubble, .cs-tooltip[data-open="true"] .cs-tooltip__bubble { opacity: 1; transform: translateX(-50%) translateY(0); }/* Divider */.cs-divider { border: 0; block-size: 1px; background: var(--cs-color-border-default); margin-block: var(--cs-space-4); }.cs-divider--label { display: flex; align-items: center; gap: 12px; background: none; block-size: auto; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-divider--label::before, .cs-divider--label::after { content: ""; flex: 1; block-size: 1px; background: var(--cs-color-border-default); }.cs-divider--vertical { inline-size: 1px; block-size: auto; align-self: stretch; margin-inline: var(--cs-space-4); margin-block: 0; }/* ScrollArea — focusable overflow for dense panels */.cs-scroll-area {
1541
1636
  overflow: auto;
1542
1637
  overscroll-behavior: contain;
1543
1638
  outline: none;
@@ -1563,14 +1658,14 @@
1563
1658
  .cs-aspect-ratio > video {
1564
1659
  object-fit: cover;
1565
1660
  display: block;
1566
- }/* Hoverable tooltip and a transparent bridge across the visual trigger gap. */.cs-tooltip[data-open="true"] .cs-tooltip__bubble { pointer-events: auto; }.cs-tooltip[data-managed] .cs-tooltip__bubble::before { content: ""; position: absolute; inset-block-start: 100%; inset-inline: 0; block-size: 8px; }/* Portaled tooltip arrows/hover bridges follow the resolved physical side. */.cs-tooltip__bubble[data-cs-placement^="bottom"]::after { top: auto; bottom: 100%; left: 50%; right: auto; transform: translateX(-50%); border-color: transparent; border-bottom-color: var(--cs-color-brand-umber); }.cs-tooltip__bubble[data-cs-placement^="left"]::after { top: 50%; bottom: auto; left: 100%; right: auto; transform: translateY(-50%); border-color: transparent; border-left-color: var(--cs-color-brand-umber); }.cs-tooltip__bubble[data-cs-placement^="right"]::after { top: 50%; bottom: auto; left: auto; right: 100%; transform: translateY(-50%); border-color: transparent; border-right-color: var(--cs-color-brand-umber); }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="bottom"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="bottom"]::before { top: auto; bottom: 100%; left: 0; right: 0; block-size: 8px; }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="left"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="left"]::before { top: 0; bottom: 0; left: 100%; right: auto; inline-size: 8px; block-size: auto; }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="right"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="right"]::before { top: 0; bottom: 0; left: auto; right: 100%; inline-size: 8px; block-size: auto; }.cs-tooltip__bubble[data-cs-placement] { white-space: normal; overflow-wrap: anywhere; }[data-cs-floating-root][data-open="true"] > .cs-tooltip__bubble { opacity: 1; pointer-events: auto; }[data-cs-floating-root][data-managed] > .cs-tooltip__bubble::before { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 8px; }/* Source: base/navigation.css *//* CyberSkill — navigation (.cs-*). *//* Tabs */.cs-tabs { display: flex; gap: 4px; overflow-x: auto; border-block-end: 1px solid var(--cs-color-border-default); }.cs-tab { flex-shrink: 0; appearance: none; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); padding: 10px 14px; cursor: pointer; position: relative; border-block-end: 2px solid transparent; margin-block-end: 0; display: inline-flex; align-items: center; gap: 7px; }.cs-tab:hover { color: var(--cs-color-text-primary); }.cs-tab[aria-selected="true"] { color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); border-block-end-color: var(--cs-accent); }.cs-tab:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: -3px; border-radius: var(--cs-radius-sm); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-tab__count { font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-full); padding: 1px 7px; }/* Breadcrumb */.cs-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); }.cs-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }.cs-breadcrumb a { color: var(--cs-color-text-muted); text-decoration: none; }.cs-breadcrumb a:hover { color: var(--cs-color-text-accent); }.cs-breadcrumb__sep { color: var(--cs-color-border-default); }.cs-breadcrumb__current { color: var(--cs-color-text-primary); font-weight: 600; }/* Pagination */.cs-pagination { display: inline-flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }.cs-pagination button { min-inline-size: 38px; block-size: 38px; padding: 0 10px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: var(--cs-radius-md); font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); cursor: pointer; display: inline-grid; place-items: center; }.cs-pagination button:hover:not(:disabled) { border-color: var(--cs-accent); }.cs-pagination button[aria-current="page"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); border-color: transparent; }.cs-pagination button:disabled { opacity: 0.45; cursor: not-allowed; }.cs-pagination__ellipsis { padding: 0 4px; color: var(--cs-color-text-muted); }/* Menu / Dropdown */.cs-menu { position: relative; display: inline-block; }.cs-menu__list { position: absolute; inset-block-start: calc(100% + 6px); inset-inline-start: 0; min-inline-size: 200px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 6px; z-index: var(--cs-depth-dropdown, 60); display: grid; gap: 2px; }.cs-menu__list--end { inset-inline-start: auto; inset-inline-end: 0; }.cs-menu__item { display: flex; align-items: center; gap: 10px; inline-size: 100%; text-align: start; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-menu__item:hover { background: var(--cs-color-surface-raised); }.cs-menu__item:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -3px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-menu__item--danger { color: var(--cs-color-semantic-danger-text); }.cs-menu__item--danger:hover { background: color-mix(in oklab, var(--cs-color-semantic-danger) 10%, transparent); }.cs-menu__sep { block-size: 1px; background: var(--cs-color-border-default); margin: 4px 2px; }.cs-menu__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); padding: 6px 10px 2px; }/* Source: base/ai.css *//* CyberSkill — AI-native surfaces (.cs-*). The brand is AI-native: Lumi (the
1661
+ }/* Hoverable tooltip and a transparent bridge across the visual trigger gap. */.cs-tooltip[data-open="true"] .cs-tooltip__bubble { pointer-events: auto; }.cs-tooltip[data-managed] .cs-tooltip__bubble::before { content: ""; position: absolute; inset-block-start: 100%; inset-inline: 0; block-size: 8px; }/* Portaled tooltip arrows/hover bridges follow the resolved physical side. */.cs-tooltip__bubble[data-cs-placement^="bottom"]::after { top: auto; bottom: 100%; left: 50%; right: auto; transform: translateX(-50%); border-color: transparent; border-bottom-color: var(--cs-color-brand-umber); }.cs-tooltip__bubble[data-cs-placement^="left"]::after { top: 50%; bottom: auto; left: 100%; right: auto; transform: translateY(-50%); border-color: transparent; border-left-color: var(--cs-color-brand-umber); }.cs-tooltip__bubble[data-cs-placement^="right"]::after { top: 50%; bottom: auto; left: auto; right: 100%; transform: translateY(-50%); border-color: transparent; border-right-color: var(--cs-color-brand-umber); }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="bottom"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="bottom"]::before { top: auto; bottom: 100%; left: 0; right: 0; block-size: 8px; }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="left"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="left"]::before { top: 0; bottom: 0; left: 100%; right: auto; inline-size: 8px; block-size: auto; }.cs-tooltip[data-managed] .cs-tooltip__bubble[data-cs-placement^="right"]::before, [data-cs-floating-root][data-managed] .cs-tooltip__bubble[data-cs-placement^="right"]::before { top: 0; bottom: 0; left: auto; right: 100%; inline-size: 8px; block-size: auto; }.cs-tooltip__bubble[data-cs-placement] { white-space: normal; overflow-wrap: anywhere; }[data-cs-floating-root][data-open="true"] > .cs-tooltip__bubble { opacity: 1; pointer-events: auto; }[data-cs-floating-root][data-managed] > .cs-tooltip__bubble::before { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 8px; }/* Compact density scope (resets cleanly under nested [data-cs-density="comfortable"]) */[data-cs-density="compact"] .cs-card__header { padding: var(--cs-density-space-4, 12px) var(--cs-density-space-5, 16px) 0; }[data-cs-density="compact"] .cs-card__body { padding: var(--cs-density-space-4, 12px) var(--cs-density-space-5, 16px); }[data-cs-density="compact"] .cs-card__footer { padding: var(--cs-density-space-3, 9px) var(--cs-density-space-5, 16px) var(--cs-density-space-4, 12px); gap: var(--cs-density-space-2, 6px); }[data-cs-density="compact"] .cs-stat { gap: 1px; }[data-cs-density="compact"] .cs-divider { margin-block: var(--cs-density-space-3, 9px); }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-card__header { padding: 18px 20px 0; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-card__body { padding: 16px 20px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-card__footer { padding: 12px 20px 18px; gap: 10px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-stat { gap: 3px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-divider { margin-block: var(--cs-space-4); }/* Source: base/navigation.css *//* CyberSkill — navigation (.cs-*). *//* Tabs */.cs-tabs { display: flex; gap: 4px; overflow-x: auto; border-block-end: 1px solid var(--cs-color-border-default); }.cs-tab { flex-shrink: 0; appearance: none; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); padding: 10px 14px; cursor: pointer; position: relative; border-block-end: 2px solid transparent; margin-block-end: 0; display: inline-flex; align-items: center; gap: 7px; }.cs-tab:hover { color: var(--cs-color-text-primary); }.cs-tab[aria-selected="true"] { color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); border-block-end-color: var(--cs-accent); }.cs-tab:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: -3px; border-radius: var(--cs-radius-sm); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-tab__count { font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-full); padding: 1px 7px; }/* Breadcrumb */.cs-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); }.cs-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }.cs-breadcrumb a { color: var(--cs-color-text-muted); text-decoration: none; }.cs-breadcrumb a:hover { color: var(--cs-color-text-accent); }.cs-breadcrumb__sep { color: var(--cs-color-text-muted); }.cs-breadcrumb__current { color: var(--cs-color-text-primary); font-weight: 600; }/* Pagination */.cs-pagination { display: inline-flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }.cs-pagination button { min-inline-size: 38px; block-size: 38px; padding: 0 10px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: var(--cs-radius-md); font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); cursor: pointer; display: inline-grid; place-items: center; }.cs-pagination button:hover:not(:disabled) { border-color: var(--cs-accent); }.cs-pagination button[aria-current="page"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); border-color: transparent; }.cs-pagination button:disabled { opacity: 0.45; cursor: not-allowed; }.cs-pagination__ellipsis { padding: 0 4px; color: var(--cs-color-text-muted); }/* Menu / Dropdown */.cs-menu { position: relative; display: inline-block; }.cs-menu__list { position: absolute; inset-block-start: calc(100% + 6px); inset-inline-start: 0; min-inline-size: 200px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 6px; z-index: var(--cs-depth-dropdown, 60); display: grid; gap: 2px; }.cs-menu__list--end { inset-inline-start: auto; inset-inline-end: 0; }.cs-menu__item { display: flex; align-items: center; gap: 10px; inline-size: 100%; text-align: start; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-menu__item:hover { background: var(--cs-color-surface-raised); }.cs-menu__item:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -3px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-menu__item--danger { color: var(--cs-color-semantic-danger-text); }.cs-menu__item--danger:hover { background: color-mix(in oklab, var(--cs-color-semantic-danger) 10%, transparent); }.cs-menu__sep { block-size: 1px; background: var(--cs-color-border-default); margin: 4px 2px; }.cs-menu__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); padding: 6px 10px 2px; }/* Compact density scope (coarse-pointer 44px hit floors in base/a11y.css still apply) */[data-cs-density="compact"] .cs-tab { padding: 7px 10px; gap: 5px; }[data-cs-density="compact"] .cs-menu__list { padding: 4px; }[data-cs-density="compact"] .cs-menu__item { padding: 6px 8px; gap: 8px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-tab { padding: 10px 14px; gap: 7px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-menu__list { padding: 6px; }[data-cs-density="compact"] [data-cs-density="comfortable"] .cs-menu__item { padding: 8px 10px; gap: 10px; }/* Source: base/ai.css *//* CyberSkill — AI-native surfaces (.cs-*). The brand is AI-native: Lumi (the
1567
1662
  * golden genie) converses, then hands clear wishes to a human. These pair with
1568
- * AIDisclosureBadge + HumanReviewGate (base/components.css). *//* PromptInput */.cs-prompt { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); background: var(--cs-color-surface-panel); padding: 10px 12px; display: grid; gap: 8px; }.cs-prompt.is-invalid, .is-invalid .cs-prompt, .cs-prompt[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-prompt:focus-within {
1663
+ * AIDisclosureBadge + HumanReviewGate (base/components.css). *//* PromptInput */.cs-prompt { border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-lg); background: var(--cs-color-surface-panel); padding: 10px 12px; display: grid; gap: 8px; }.cs-prompt.is-invalid, .is-invalid .cs-prompt, .cs-prompt[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-prompt:focus-within {
1569
1664
  border-color: var(--cs-color-text-primary);
1570
1665
  outline: 2px solid var(--cs-color-text-primary);
1571
1666
  outline-offset: 2px;
1572
1667
  box-shadow: 0 0 0 5px var(--cs-color-accent-ochre);
1573
- }.cs-prompt__field { border: 0; background: transparent; resize: none; font: inherit; font-family: var(--cs-font-family-ui); color: var(--cs-color-text-primary); min-height: 44px; outline: 0; inline-size: 100%; line-height: var(--cs-font-lineHeight-body); }.cs-prompt__field::placeholder { color: var(--cs-color-text-muted); }.cs-prompt__bar { display: flex; align-items: center; gap: 10px; }.cs-prompt__hint { display: inline-flex; align-items: center; gap: 6px; margin-inline-end: auto; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-prompt__hint svg { color: var(--cs-color-brand-ochre); }/* ChatMessage */.cs-chat { display: grid; gap: 14px; }.cs-chat-msg { display: flex; gap: 10px; align-items: flex-start; }.cs-chat-msg--user { flex-direction: row-reverse; }.cs-chat-msg__avatar { flex: none; inline-size: 32px; block-size: 32px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; }.cs-chat-msg--lumi .cs-chat-msg__avatar { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); }.cs-chat-msg--user .cs-chat-msg__avatar { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-weight: 700; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-chat-msg__avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-chat-msg__col { display: grid; gap: 3px; max-inline-size: 80%; }.cs-chat-msg--user .cs-chat-msg__col { justify-items: end; }.cs-chat-msg__name { font-size: var(--cs-font-size-xs); font-weight: 700; color: var(--cs-color-text-muted); }.cs-chat-msg__bubble { padding: 10px 14px; border-radius: 14px; font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }.cs-chat-msg--lumi .cs-chat-msg__bubble { background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-end-start-radius: 4px; color: var(--cs-color-text-primary); }.cs-chat-msg--user .cs-chat-msg__bubble { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ border-end-end-radius: 4px; box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }/* ConfidenceMeter */.cs-confidence { display: grid; gap: 6px; font-family: var(--cs-font-family-ui); }.cs-confidence__head { display: flex; align-items: baseline; justify-content: space-between; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); }.cs-confidence__level { font-weight: 700; letter-spacing: 0; text-transform: none; font-size: var(--cs-font-size-sm); }.cs-confidence__track { display: flex; gap: 3px; }.cs-confidence__seg { block-size: 8px; flex: 1; border-radius: 2px; background: var(--cs-color-surface-raised); }/* ---- AI-native wave 2 — Lumi's conversational surfaces (merged from ai2.css) ---- *//* PromptSuggestions (wish chips) */.cs-suggest { display: flex; flex-wrap: wrap; gap: 8px; }.cs-suggest button { border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); border-radius: var(--cs-radius-full); padding: 8px 14px; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-accent); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }.cs-suggest button:hover { border-color: var(--cs-color-brand-ochre); background: color-mix(in oklab, var(--cs-color-brand-ochre) 8%, var(--cs-color-surface-panel)); }.cs-suggest button svg { color: var(--cs-color-brand-ochre); }/* TypingIndicator */.cs-typing { display: inline-flex; align-items: center; gap: 5px; padding: 12px 16px; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: 14px; border-end-start-radius: 4px; }.cs-typing span { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--cs-color-text-muted); animation: cs-typing 1.2s var(--cs-ease-standard) infinite; }.cs-typing span:nth-child(2) { animation-delay: 0.18s; }.cs-typing span:nth-child(3) { animation-delay: 0.36s; }@keyframes cs-typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-4px); opacity: 1; } }@media (prefers-reduced-motion: reduce) { .cs-typing span { animation: none; opacity: 0.7; } }/* CitationList */.cs-citations { display: grid; gap: 8px; }.cs-citations__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-citation { display: flex; align-items: flex-start; gap: 9px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); text-decoration: none; }a.cs-citation:hover .cs-citation__text { color: var(--cs-color-text-accent); }.cs-citation__num { flex: none; inline-size: 20px; block-size: 20px; border-radius: 6px; background: color-mix(in oklab, var(--cs-color-semantic-info) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-info-text); font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-2xs); font-weight: 700; display: grid; place-items: center; }.cs-citation__text { line-height: 1.4; }.cs-citation__src { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); }/* LumiAvatar */.cs-lumi { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 30%, #ffd873, var(--cs-color-brand-ochre)); color: var(--cs-color-brand-umber); flex: none; }.cs-lumi img { inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-lumi--sm { inline-size: 32px; block-size: 32px; }.cs-lumi--md { inline-size: 44px; block-size: 44px; }.cs-lumi--lg { inline-size: 64px; block-size: 64px; }.cs-lumi--ring { box-shadow: 0 0 0 3px color-mix(in oklab, var(--cs-color-brand-ochre) 34%, transparent); }/* Source: base/controls.css *//* CyberSkill — controls wave 2 (.cs-*). *//* SearchField */.cs-search { display: flex; align-items: center; gap: var(--cs-space-2); border: 1px solid var(--cs-component-textfield-border-default); border-radius: var(--cs-radius-full); padding: 0 14px; min-height: 44px; background: var(--cs-color-surface-panel); }.cs-search.is-invalid, .is-invalid .cs-search, .cs-search[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-search:focus-within {
1668
+ }.cs-prompt__field { border: 0; background: transparent; resize: none; font: inherit; font-family: var(--cs-font-family-ui); color: var(--cs-color-text-primary); min-height: 44px; outline: 0; inline-size: 100%; line-height: var(--cs-font-lineHeight-body); }.cs-prompt__field::placeholder { color: var(--cs-color-text-muted); }.cs-prompt__bar { display: flex; align-items: center; gap: 10px; }.cs-prompt__hint { display: inline-flex; align-items: center; gap: 6px; margin-inline-end: auto; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-prompt__hint svg { color: var(--cs-color-brand-ochre); }/* ChatMessage */.cs-chat { display: grid; gap: 14px; }.cs-chat-msg { display: flex; gap: 10px; align-items: flex-start; }.cs-chat-msg--user { flex-direction: row-reverse; }.cs-chat-msg__avatar { flex: none; inline-size: 32px; block-size: 32px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; }.cs-chat-msg--lumi .cs-chat-msg__avatar { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); }.cs-chat-msg--user .cs-chat-msg__avatar { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ font-weight: 700; font-size: var(--cs-font-size-sm); font-family: var(--cs-font-family-ui); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }.cs-chat-msg__avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-chat-msg__col { display: grid; gap: 3px; max-inline-size: 80%; }.cs-chat-msg--user .cs-chat-msg__col { justify-items: end; }.cs-chat-msg__name { font-size: var(--cs-font-size-xs); font-weight: 700; color: var(--cs-color-text-muted); }.cs-chat-msg__bubble { padding: 10px 14px; border-radius: 14px; font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }.cs-chat-msg--lumi .cs-chat-msg__bubble { background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-end-start-radius: 4px; color: var(--cs-color-text-primary); }.cs-chat-msg--user .cs-chat-msg__bubble { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ border-end-end-radius: 4px; box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cs-color-border-default) 32%, transparent); }/* ConfidenceMeter */.cs-confidence { display: grid; gap: 6px; font-family: var(--cs-font-family-ui); }.cs-confidence__head { display: flex; align-items: baseline; justify-content: space-between; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); }.cs-confidence__level { font-weight: 700; letter-spacing: 0; text-transform: none; font-size: var(--cs-font-size-sm); }.cs-confidence__track { display: flex; gap: 3px; }.cs-confidence__seg { block-size: 8px; flex: 1; border-radius: 2px; background: var(--cs-color-surface-raised); }/* ---- AI-native wave 2 — Lumi's conversational surfaces (merged from ai2.css) ---- *//* PromptSuggestions (wish chips) */.cs-suggest { display: flex; flex-wrap: wrap; gap: 8px; }.cs-suggest button { border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); border-radius: var(--cs-radius-full); padding: 8px 14px; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-accent); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }.cs-suggest button:hover { border-color: var(--cs-color-brand-ochre); background: color-mix(in oklab, var(--cs-color-brand-ochre) 8%, var(--cs-color-surface-panel)); }.cs-suggest button svg { color: var(--cs-color-brand-ochre); }/* TypingIndicator */.cs-typing { display: inline-flex; justify-self: start; inline-size: fit-content; align-items: center; gap: 5px; padding: 12px 16px; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: 14px; border-end-start-radius: 4px; }.cs-typing span { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--cs-color-text-muted); animation: cs-typing 1.2s var(--cs-ease-standard) infinite; }.cs-typing span:nth-child(2) { animation-delay: 0.18s; }.cs-typing span:nth-child(3) { animation-delay: 0.36s; }@keyframes cs-typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-4px); opacity: 1; } }@media (prefers-reduced-motion: reduce) { .cs-typing span { animation: none; opacity: 0.7; } }/* CitationList */.cs-citations { display: grid; gap: 8px; }.cs-citations__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-citation { display: flex; align-items: flex-start; gap: 9px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); text-decoration: none; }a.cs-citation:hover .cs-citation__text { color: var(--cs-color-text-accent); }.cs-citation__num { flex: none; inline-size: 20px; block-size: 20px; border-radius: 6px; background: color-mix(in oklab, var(--cs-color-semantic-info) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-info-text); font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-2xs); font-weight: 700; display: grid; place-items: center; }.cs-citation__text { line-height: 1.4; }.cs-citation__src { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); }/* LumiAvatar */.cs-lumi { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 30%, #ffd873, var(--cs-color-brand-ochre)); color: var(--cs-color-brand-umber); flex: none; }.cs-lumi img { inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-lumi--sm { inline-size: 32px; block-size: 32px; }.cs-lumi--md { inline-size: 44px; block-size: 44px; }.cs-lumi--lg { inline-size: 64px; block-size: 64px; }.cs-lumi--ring { box-shadow: 0 0 0 3px color-mix(in oklab, var(--cs-color-brand-ochre) 34%, transparent); }/* Source: base/controls.css *//* CyberSkill — controls wave 2 (.cs-*). *//* SearchField */.cs-search { display: flex; align-items: center; gap: var(--cs-space-2); border: 1px solid var(--cs-component-textfield-border-default); border-radius: var(--cs-radius-full); padding: 0 14px; min-height: 44px; background: var(--cs-color-surface-panel); }.cs-search.is-invalid, .is-invalid .cs-search, .cs-search[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-search:focus-within {
1574
1669
  border-color: var(--cs-color-text-primary);
1575
1670
  outline: 2px solid var(--cs-color-text-primary);
1576
1671
  outline-offset: 2px;
@@ -1580,23 +1675,31 @@
1580
1675
  outline: 2px solid var(--cs-color-text-primary);
1581
1676
  outline-offset: 2px;
1582
1677
  box-shadow: 0 0 0 5px var(--cs-color-accent-ochre);
1583
- }.cs-stepper button { border: 0; background: var(--cs-color-surface-raised); color: var(--cs-color-text-primary); inline-size: 40px; cursor: pointer; font-size: var(--cs-font-size-md); font-weight: 700; display: grid; place-items: center; }.cs-stepper button:hover:not(:disabled) { color: var(--cs-color-text-accent); }.cs-stepper button:disabled { opacity: 0.45; cursor: not-allowed; }.cs-stepper input { inline-size: 56px; text-align: center; border: 0; border-inline: 1px solid var(--cs-color-border-default); background: transparent; font: inherit; font-family: var(--cs-font-family-mono); color: var(--cs-color-text-primary); outline: 0; min-height: 42px; -moz-appearance: textfield; }.cs-stepper input::-webkit-outer-spin-button, .cs-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }/* Slider (native range) */.cs-slider { inline-size: 100%; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); block-size: 22px; cursor: pointer; }.cs-slider:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 4px; border-radius: var(--cs-radius-full); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }/* FileUpload / dropzone */.cs-dropzone { display: grid; gap: 6px; justify-items: center; text-align: center; border: 2px dashed var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: 28px 24px; background: var(--cs-color-surface-raised); cursor: pointer; color: var(--cs-color-text-primary); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), background var(--cs-duration-fast) var(--cs-ease-standard); }.cs-dropzone:hover, .cs-dropzone.is-dragging { border-color: var(--cs-accent); background: color-mix(in oklab, var(--cs-accent) 8%, var(--cs-color-surface-panel)); }.cs-dropzone__icon { color: var(--cs-color-text-accent); }.cs-dropzone__title { font-weight: 700; }.cs-dropzone__hint { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }/* SegmentedControl (matches Status Hub lens switcher) */.cs-segmented { display: inline-flex; gap: 4px; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-full); padding: 3px; }.cs-segmented button { border: 0; background: transparent; border-radius: var(--cs-radius-full); padding: 7px 15px; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-accent); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }.cs-segmented button[aria-checked="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-selected="true"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); }/* StatusIndicator */.cs-status { display: inline-flex; align-items: center; gap: 7px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); font-weight: 600; color: var(--cs-color-text-primary); }.cs-status__dot { inline-size: 9px; block-size: 9px; border-radius: 50%; background: var(--cs-color-text-muted); flex: none; }.cs-status--online .cs-status__dot { background: var(--cs-color-semantic-success); }.cs-status--busy .cs-status__dot { background: var(--cs-color-brand-ochre); }.cs-status--offline .cs-status__dot { background: var(--cs-color-text-muted); }.cs-status--error .cs-status__dot { background: var(--cs-color-semantic-danger); }.cs-status--pulse .cs-status__dot { box-shadow: 0 0 0 0 currentColor; animation: cs-pulse 1.8s var(--cs-ease-standard) infinite; color: var(--cs-color-semantic-success-text); }@keyframes cs-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--cs-color-semantic-success) 55%, transparent); } 70% { box-shadow: 0 0 0 7px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }@media (prefers-reduced-motion: reduce) { .cs-status--pulse .cs-status__dot { animation: none; } }/* Kbd */.cs-kbd { display: inline-block; font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); line-height: 1; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-block-end-width: 2px; border-radius: 6px; padding: 3px 7px; box-shadow: var(--cs-shadow-xs); }/* ---- v3 Batch 2 inputs (Jul 2026): Toggle · Rating · InputOTP · ButtonGroup ---- */.cs-toggle { display: inline-flex; align-items: center; gap: 8px; font: 600 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 8px 14px; min-block-size: 40px; cursor: pointer; transition: background var(--cs-duration-fast, 120ms), border-color var(--cs-duration-fast, 120ms); }.cs-toggle:hover { background: var(--cs-color-surface-raised); }.cs-toggle[aria-pressed="true"] { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); border-color: var(--cs-accent); color: var(--cs-color-text-primary); }.cs-toggle:disabled { opacity: .5; cursor: not-allowed; }.cs-rating { display: inline-flex; gap: 4px; }.cs-rating button { background: none; border: 0; padding: 2px; cursor: pointer; color: var(--cs-color-border-default); display: grid; place-items: center; }.cs-rating button.on { color: var(--cs-color-text-accent); }.cs-rating[data-readonly="true"] button { cursor: default; }.cs-rating button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-radius: 4px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-otp { display: inline-flex; gap: 8px; }.cs-otp input { inline-size: 44px; block-size: 52px; text-align: center; font: 700 22px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); }.cs-otp.is-invalid input, .is-invalid .cs-otp input, .cs-otp input.is-invalid, .cs-otp input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-otp input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; border-color: var(--cs-accent); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-otp input:disabled { opacity: .5; cursor: not-allowed; background: var(--cs-color-surface-raised); }.cs-btngroup { display: inline-flex; }.cs-btngroup .cs-button { border-radius: 0; }.cs-btngroup .cs-button:first-child { border-start-start-radius: var(--cs-component-button-radius, 8px); border-end-start-radius: var(--cs-component-button-radius, 8px); }.cs-btngroup .cs-button:last-child { border-start-end-radius: var(--cs-component-button-radius, 8px); border-end-end-radius: var(--cs-component-button-radius, 8px); }.cs-btngroup .cs-button + .cs-button { margin-inline-start: -1px; }/* ---- v3 Batch 2 part 2 (Jul 2026): Combobox · InputGroup · TagInput ---- */.cs-combobox { position: relative; display: inline-block; min-inline-size: 260px; }.cs-combobox input { inline-size: 100%; box-sizing: border-box; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 10px 34px 10px var(--cs-space-3); min-block-size: 44px; }.is-invalid .cs-combobox input, .cs-combobox.is-invalid input, .cs-combobox input.is-invalid, .cs-combobox[aria-invalid="true"] input, .cs-combobox input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }.cs-combobox input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-combobox__caret { position: absolute; inset-inline-end: 10px; inset-block-start: 50%; translate: 0 -50%; pointer-events: none; color: var(--cs-color-text-muted); }.cs-combobox__popup { color: var(--cs-color-text-primary); position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline: 0; inset-block-start: calc(100% + 6px); max-block-size: 240px; overflow: auto; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 6px; margin: 0; }.cs-combobox__list { padding: 0; margin: 0; list-style: none; }.cs-combobox__opt { padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; font-size: var(--cs-font-size-sm); }.cs-combobox__opt[aria-selected="true"], .cs-combobox__opt.hl { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-primary))var(--_cs-dark, var(--cs-accent-bright)); }.cs-combobox__empty { padding: 10px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-igroup { display: inline-flex; align-items: stretch; min-inline-size: 260px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); overflow: hidden; }.cs-igroup.is-invalid, .is-invalid .cs-igroup, .cs-igroup[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-igroup:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-igroup > input { flex: 1; min-inline-size: 0; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 10px 12px; min-block-size: 44px; box-sizing: border-box; }.cs-igroup > input:focus { outline: none; }.cs-igroup__fix { display: flex; align-items: center; padding: 0 10px; color: var(--cs-color-text-muted); background: var(--cs-color-surface-raised); border-inline-end: 1px solid var(--cs-color-border-default); font-size: var(--cs-font-size-sm); }.cs-igroup__fix--suffix { border-inline-end: 0; border-inline-start: 1px solid var(--cs-color-border-default); }.cs-igroup__btn { border: 0; background: none; color: var(--cs-color-text-muted); cursor: pointer; display: grid; place-items: center; padding: 0 10px; }.cs-igroup__btn:hover { color: var(--cs-color-text-primary); }.cs-taginput { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-inline-size: 280px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 6px var(--cs-space-2); min-block-size: 44px; box-sizing: border-box; }.cs-taginput.is-invalid, .is-invalid .cs-taginput, .cs-taginput[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-taginput:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-taginput > input { flex: 1; min-inline-size: 120px; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 6px var(--cs-space-1); }.cs-taginput > input:focus { outline: none; }/* Disabled editing must not dim already committed, noninteractive values. */.cs-field.is-disabled:has(> .cs-taginput) { opacity: 1; }.cs-field.is-disabled > .cs-taginput { background: var(--cs-color-surface-raised); }/* ---- v3 Batch 3 (Jul 2026): Calendar · DatePicker · TimePicker ---- */.cs-cal { display: inline-block; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: var(--cs-space-3); min-inline-size: 272px; box-shadow: var(--cs-shadow-sm); }.cs-cal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; font: 700 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-cal__head button { border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: var(--cs-radius-sm); inline-size: 30px; block-size: 30px; cursor: pointer; font-size: var(--cs-font-size-base); }.cs-cal__head button:hover { background: var(--cs-color-surface-raised); }.cs-cal__wd, .cs-cal__grid { display: grid; grid-template-columns: repeat(7, 34px); gap: 2px; }.cs-cal__wd span { text-align: center; font: 700 10.5px/2 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .04em; color: var(--cs-color-text-muted); }.cs-cal__grid button { border: 0; background: none; color: var(--cs-color-text-primary); font: 500 13px var(--cs-font-family-ui); block-size: 34px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-cal__grid button:hover { background: var(--cs-color-surface-raised); }.cs-cal__grid button.today { box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); }.cs-cal__grid button.sel { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); font-weight: 700; box-shadow: inset 0 0 0 2px var(--cs-accent-strong); }.cs-cal__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-datepicker { position: relative; display: inline-block; max-inline-size: 100%; }.cs-datepicker__field, .cs-datepicker__trigger { display: inline-flex; align-items: center; gap: var(--cs-space-2); min-inline-size: 220px; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: var(--cs-space-2) var(--cs-space-3); cursor: pointer; }.cs-datepicker.is-invalid .cs-datepicker__field, .cs-datepicker.is-invalid .cs-datepicker__trigger, .is-invalid .cs-datepicker__field, .is-invalid .cs-datepicker__trigger, .cs-datepicker__field.is-invalid, .cs-datepicker__trigger.is-invalid, .cs-datepicker__field[aria-invalid="true"], .cs-datepicker__trigger[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-datepicker__field:focus-visible, .cs-datepicker__trigger:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-datepicker__field .ph, .cs-datepicker__trigger .ph { color: var(--cs-color-text-muted); }.cs-datepicker__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: max-content; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); }.cs-datepicker__pop .cs-cal { min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; overflow-x: auto; }.cs-timepicker { display: inline-flex; align-items: center; gap: 8px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 0 10px; min-block-size: 44px; color: var(--cs-color-text-muted); }.cs-timepicker.is-invalid, .is-invalid .cs-timepicker, .cs-timepicker[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-timepicker:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-timepicker select { border: 0; background: transparent; color: var(--cs-color-text-primary); font: 600 14px var(--cs-font-family-mono); padding: 8px 2px; cursor: pointer; }.cs-timepicker select:focus { outline: none; }/* ---- v3 Batch 4 (Jul 2026): HoverCard · Popconfirm · ContextMenu · FAB · Result · InlineEdit ---- */.cs-hovercard { position: relative; display: inline-block; }.cs-hovercard__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 8px); inset-inline-start: 0; min-inline-size: 240px; display: block; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 14px 16px; font-size: var(--cs-font-size-sm); line-height: 1.5; color: var(--cs-color-text-primary); }.cs-popconfirm { position: relative; display: inline-block; }.cs-popconfirm__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 8px); inset-inline-start: 0; min-inline-size: 240px; display: block; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 12px 14px; }.cs-popconfirm__title { display: block; font: 600 13.5px/1.45 var(--cs-font-family-ui); color: var(--cs-color-text-primary); margin-bottom: 10px; }.cs-popconfirm__actions { display: flex; gap: 8px; justify-content: flex-end; }.cs-ctxmenu-zone { position: relative; }.cs-fab { position: fixed; inset-inline-end: 24px; inset-block-end: 24px; z-index: var(--cs-depth-overlay, 80); display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }.cs-fab--static { position: static; align-items: flex-start; }.cs-fab__main { inline-size: 56px; block-size: 56px; border-radius: 999px; border: 0; background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); display: grid; place-items: center; cursor: pointer; box-shadow: inset 0 0 0 2px var(--cs-accent-strong), var(--cs-shadow-lg); }.cs-fab__main:hover { filter: brightness(1.05); }.cs-fab__main:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre), var(--cs-shadow-md); }.cs-fab__dial { display: flex; flex-direction: column; gap: 8px; align-items: center; }.cs-fab--static .cs-fab__dial, .cs-fab__dial--static { flex-direction: row; }.cs-fab__mini { inline-size: 42px; block-size: 42px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; box-shadow: var(--cs-shadow-sm); }.cs-result { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 44px 24px; }.cs-result__icon { inline-size: 64px; block-size: 64px; border-radius: 999px; display: grid; place-items: center; background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); color: var(--cs-color-text-accent); }.cs-result--success .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-success) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-success-text); }.cs-result--error .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-danger) 12%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-danger-text); }.cs-result--warning .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-warning) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-warning-text); }.cs-result__title { margin: 0; font: 800 22px/1.3 var(--cs-heading-family, var(--cs-font-family-ui)); letter-spacing: var(--cs-heading-tracking, -0.01em); color: var(--cs-color-text-primary); }.cs-result__body { margin: 0; max-inline-size: 46ch; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: 1.55; }.cs-result__actions { display: flex; gap: 10px; margin-top: 6px; }.cs-inline-edit__view { display: inline-flex; align-items: center; gap: 7px; border: 1px dashed transparent; background: none; font: inherit; color: var(--cs-color-text-primary); padding: 4px 8px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-inline-edit__view:hover { border-color: var(--cs-color-border-default); background: var(--cs-color-surface-raised); }.cs-inline-edit__view svg { color: var(--cs-color-text-muted); }.cs-inline-edit__view .ph { color: var(--cs-color-text-muted); }.cs-inline-edit input { font: inherit; color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-accent); border-radius: var(--cs-radius-sm); padding: 4px 8px; }.cs-inline-edit input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }/* ---- v3 Batch 5 part 1 (Jul 2026): Link · Anchor · Image · Toolbar ---- */.cs-link { color: var(--cs-color-link); text-underline-offset: .15em; }.cs-link:hover { color: var(--cs-color-link-hover); }.cs-link--muted { color: var(--cs-color-text-muted); }.cs-link--standalone { font-weight: 700; text-decoration: none; }.cs-link--standalone:hover { text-decoration: underline; }.cs-anchor { display: grid; gap: 2px; min-inline-size: 180px; border-inline-start: 2px solid var(--cs-color-border-default); }.cs-anchor__title { font: 700 10.5px/1.4 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .1em; color: var(--cs-color-text-muted); padding: 2px 12px 6px; }.cs-anchor__item { display: block; padding: 5px 12px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); text-decoration: none; border-inline-start: 2px solid transparent; margin-inline-start: -2px; }.cs-anchor__item:hover { color: var(--cs-color-text-primary); }.cs-anchor__item.is-active { color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent-bright)); border-inline-start-color: var(--cs-accent); font-weight: 600; }.cs-image { position: relative; display: inline-block; overflow: hidden; border-radius: var(--cs-radius-md); background: var(--cs-color-surface-raised); max-inline-size: 100%; }.cs-image img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-image.is-loading { min-inline-size: 120px; min-block-size: 80px; animation: cs-img-shimmer 1.2s ease-in-out infinite alternate; }@keyframes cs-img-shimmer { from { opacity: .55; } to { opacity: .9; } }.cs-image.is-zoomable { cursor: zoom-in; }.cs-image__fallback { display: grid; place-items: center; min-block-size: 80px; block-size: 100%; color: var(--cs-color-text-muted); }.cs-image__zoom { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: color-mix(in oklab, var(--cs-color-brand-umber, #45210e) 82%, transparent); display: grid; place-items: center; cursor: zoom-out; }.cs-image__zoom img { max-inline-size: 88vw; max-block-size: 86vh; border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-xl); }.cs-image__zoom button { position: absolute; inset-block-start: 18px; inset-inline-end: 18px; inline-size: 40px; block-size: 40px; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .12); color: #fff; /* on-dark-chrome ink */ font-size: var(--cs-font-size-base); cursor: pointer; }.cs-toolbar { display: inline-flex; align-items: center; gap: 4px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 4px; }.cs-toolbar__btn { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: var(--cs-color-text-primary); font: 600 13px var(--cs-font-family-ui); padding: 7px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; min-block-size: 32px; }.cs-toolbar__btn:hover { background: var(--cs-color-surface-raised); }.cs-toolbar__btn:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-toolbar__sep { inline-size: 1px; block-size: 20px; background: var(--cs-color-border-default); margin: 0 4px; }.cs-toolbar__more { position: relative; }.cs-toolbar__more .cs-menu__list { position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + 6px); }/* ---- v3 Batch 5 part 2 (Jul 2026): Menubar · NavigationMenu · Carousel · Comment ---- */.cs-menubar { display: inline-flex; gap: 2px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 3px; }.cs-menubar__wrap { position: relative; }.cs-menubar__top { border: 0; background: none; font: 600 13.5px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 7px 12px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-menubar__top:hover, .cs-menubar__top.is-open { background: var(--cs-color-surface-raised); }.cs-menubar__wrap .cs-menu__list { position: absolute; inset-inline-start: 0; inset-block-start: calc(100% + 5px); }.cs-navmenu { display: inline-flex; gap: 4px; align-items: center; }.cs-navmenu__wrap { position: relative; }.cs-navmenu__top { display: inline-flex; align-items: center; gap: 5px; border: 0; background: none; text-decoration: none; font: 600 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 9px 12px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-navmenu__top:hover, .cs-navmenu__top.is-open { background: var(--cs-color-surface-raised); }.cs-navmenu__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: 468px; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); box-sizing: border-box; inset-block-start: calc(100% + 8px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-md); padding: 10px; }.cs-navmenu__card { min-inline-size: 0; overflow-wrap: anywhere; display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--cs-radius-md); text-decoration: none; color: var(--cs-color-text-primary); }.cs-navmenu__card:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-navmenu__card b { font-size: var(--cs-font-size-sm); }.cs-navmenu__card small { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); line-height: 1.45; }.cs-carousel { display: grid; gap: 10px; }.cs-carousel__view { position: relative; overflow: hidden; border-radius: var(--cs-radius-lg); border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); }.cs-carousel__window { overflow: hidden; min-inline-size: 0; }.cs-carousel__track { display: flex; transition: transform var(--cs-duration-base, 240ms) cubic-bezier(0.2, 0, 0, 1); }.cs-carousel__slide { flex: 0 0 100%; min-inline-size: 100%; }.cs-carousel__nav { position: absolute; inset-block-start: 50%; translate: 0 -50%; inline-size: 36px; block-size: 36px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); cursor: pointer; font-size: var(--cs-font-size-md); box-shadow: var(--cs-shadow-sm); }.cs-carousel__nav.prev { inset-inline-start: 10px; }.cs-carousel__nav.next { inset-inline-end: 10px; }/* Keep the 9px mark inside a real, non-overlapping 24px fine-pointer target.
1584
- * Coarse-pointer rules retain their existing 44px targets and dot paint. */.cs-carousel__dots { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }.cs-carousel__dots button { inline-size: 24px; block-size: 24px; flex: 0 0 24px; border-radius: 999px; border: 0; background: none; cursor: pointer; padding: 0; position: relative; }.cs-carousel__dots button::before { content: ""; position: absolute; inset: 0; margin: auto; inline-size: 9px; block-size: 9px; border-radius: inherit; background: var(--cs-color-border-default); pointer-events: none; }.cs-carousel__dots button[aria-current="true"]::before { background: var(--cs-color-text-accent); }@media (prefers-reduced-motion: reduce) { .cs-carousel__track { transition: none; } }.cs-comment { display: flex; gap: 10px; }.cs-comment__main { flex: 1; min-inline-size: 0; }.cs-comment__head { display: flex; align-items: baseline; gap: 8px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-comment__meta { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); }.cs-comment__body { font-size: var(--cs-font-size-sm); line-height: 1.55; color: var(--cs-color-text-primary); margin: 3px 0 6px; }.cs-comment__actions { display: flex; gap: 12px; }.cs-comment__actions button { border: 0; background: none; padding: 0; font: 600 12.5px var(--cs-font-family-ui); color: var(--cs-color-text-accent); cursor: pointer; }.cs-comment__replies { margin-top: 12px; padding-inline-start: 14px; border-inline-start: 2px solid var(--cs-color-border-default); display: grid; gap: 12px; }/* ---- v3 Batch 6a (Jul 2026): Form · Tree · BackTop · Watermark ---- */.cs-form { display: grid; gap: var(--cs-space-4); }/* FIND-015 — visible pending + interaction lock while asyncRules / submit run. */.cs-form.is-pending { opacity: 0.72; }.cs-form.is-pending :is(button, input, select, textarea, [role="button"]) {
1678
+ }.cs-stepper button { border: 0; background: var(--cs-color-surface-raised); color: var(--cs-color-text-primary); inline-size: 40px; cursor: pointer; font-size: var(--cs-font-size-md); font-weight: 700; display: grid; place-items: center; }.cs-stepper button:hover:not(:disabled) { color: var(--cs-color-text-accent); }.cs-stepper button:disabled { opacity: 0.45; cursor: not-allowed; }.cs-stepper input { inline-size: 56px; text-align: center; border: 0; border-inline: 1px solid var(--cs-color-border-default); background: transparent; font: inherit; font-family: var(--cs-font-family-mono); color: var(--cs-color-text-primary); outline: 0; min-height: 42px; -moz-appearance: textfield; }.cs-stepper input::-webkit-outer-spin-button, .cs-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }/* Slider (native range) */.cs-slider { inline-size: 100%; max-inline-size: 100%; margin: 0; box-sizing: border-box; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); block-size: 22px; cursor: pointer; }.cs-slider:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 4px; border-radius: var(--cs-radius-full); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }/* FileUpload / dropzone */.cs-dropzone { display: grid; gap: 6px; justify-items: center; text-align: center; border: 2px dashed var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: 28px 24px; background: var(--cs-color-surface-raised); cursor: pointer; color: var(--cs-color-text-primary); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), background var(--cs-duration-fast) var(--cs-ease-standard); }.cs-dropzone:hover, .cs-dropzone.is-dragging { border-color: var(--cs-accent); background: color-mix(in oklab, var(--cs-accent) 8%, var(--cs-color-surface-panel)); }.cs-dropzone__icon { color: var(--cs-color-text-accent); }.cs-dropzone__title { font-weight: 700; }.cs-dropzone__hint { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }/* SegmentedControl (matches Status Hub lens switcher) */.cs-segmented { display: inline-flex; gap: 4px; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-full); padding: 3px; }.cs-segmented button { border: 0; background: transparent; border-radius: var(--cs-radius-full); padding: 7px 15px; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-accent); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }.cs-segmented button[aria-checked="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-selected="true"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); }/* StatusIndicator */.cs-status { display: inline-flex; align-items: center; gap: 7px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); font-weight: 600; color: var(--cs-color-text-primary); }.cs-status__dot { inline-size: 9px; block-size: 9px; border-radius: 50%; background: var(--cs-color-text-muted); flex: none; }.cs-status--online .cs-status__dot { background: var(--cs-color-semantic-success); }.cs-status--busy .cs-status__dot { background: var(--cs-color-brand-ochre); }.cs-status--offline .cs-status__dot { background: var(--cs-color-text-muted); }.cs-status--error .cs-status__dot { background: var(--cs-color-semantic-danger); }.cs-status--pulse .cs-status__dot { box-shadow: 0 0 0 0 currentColor; animation: cs-pulse 1.8s var(--cs-ease-standard) infinite; color: var(--cs-color-semantic-success-text); }@keyframes cs-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--cs-color-semantic-success) 55%, transparent); } 70% { box-shadow: 0 0 0 7px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }@media (prefers-reduced-motion: reduce) { .cs-status--pulse .cs-status__dot { animation: none; } }/* Kbd */.cs-kbd { display: inline-block; font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); line-height: 1; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-block-end-width: 2px; border-radius: 6px; padding: 3px 7px; box-shadow: var(--cs-shadow-xs); }/* ---- v3 Batch 2 inputs (Jul 2026): Toggle · Rating · InputOTP · ButtonGroup ---- */.cs-toggle { display: inline-flex; align-items: center; gap: 8px; font: 600 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 8px 14px; min-block-size: 40px; cursor: pointer; transition: background var(--cs-duration-fast, 120ms), border-color var(--cs-duration-fast, 120ms); }.cs-toggle:hover { background: var(--cs-color-surface-raised); }.cs-toggle[aria-pressed="true"] { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); border-color: var(--cs-accent); color: var(--cs-color-text-primary); }.cs-toggle:disabled { opacity: .5; cursor: not-allowed; }.cs-rating { display: inline-flex; gap: 4px; }.cs-rating button { background: none; border: 0; padding: 2px; cursor: pointer; color: var(--cs-color-border-default); display: grid; place-items: center; }.cs-rating button.on { color: var(--cs-color-text-accent); }.cs-rating[data-readonly="true"] button { cursor: default; }.cs-rating button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-radius: 4px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-otp, .cs-input-otp { display: inline-flex; justify-content: space-between; gap: 8px; max-inline-size: 100%; }.cs-otp input, .cs-input-otp input, .cs-otp__slot, .cs-input-otp__slot { inline-size: 44px; block-size: 52px; min-inline-size: 44px; min-block-size: 44px; text-align: center; font: 700 22px var(--cs-font-family-mono); font-variant-numeric: tabular-nums; color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); box-sizing: border-box; }.cs-otp__slot, .cs-input-otp__slot { display: inline-flex; align-items: center; justify-content: center; }.cs-otp.is-invalid input, .cs-input-otp.is-invalid input, .is-invalid :is(.cs-otp, .cs-input-otp) input, :is(.cs-otp, .cs-input-otp) input.is-invalid, :is(.cs-otp, .cs-input-otp) input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-otp input:focus, .cs-input-otp input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-color: var(--cs-accent); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-otp input:disabled, .cs-input-otp input:disabled { opacity: .5; cursor: not-allowed; background: var(--cs-color-surface-raised); }.cs-btngroup { display: inline-flex; }.cs-btngroup .cs-button { border-radius: 0; }.cs-btngroup .cs-button:first-child { border-start-start-radius: var(--cs-component-button-radius, 8px); border-end-start-radius: var(--cs-component-button-radius, 8px); }.cs-btngroup .cs-button:last-child { border-start-end-radius: var(--cs-component-button-radius, 8px); border-end-end-radius: var(--cs-component-button-radius, 8px); }.cs-btngroup .cs-button + .cs-button { margin-inline-start: -1px; }/* ---- v3 Batch 2 part 2 (Jul 2026): Combobox · InputGroup · TagInput ---- */.cs-combobox { position: relative; display: inline-block; min-inline-size: 260px; max-inline-size: 100%; box-sizing: border-box; }.cs-combobox input { inline-size: 100%; box-sizing: border-box; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 10px 34px 10px var(--cs-space-3); min-block-size: 44px; }.is-invalid .cs-combobox input, .cs-combobox.is-invalid input, .cs-combobox input.is-invalid, .cs-combobox[aria-invalid="true"] input, .cs-combobox input[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger, #b42318); }.cs-combobox input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-combobox__caret { position: absolute; inset-inline-end: 10px; inset-block-start: 50%; translate: 0 -50%; pointer-events: none; color: var(--cs-color-text-muted); }.cs-combobox__popup { color: var(--cs-color-text-primary); position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline: 0; inset-block-start: calc(100% + 6px); max-block-size: 240px; overflow: auto; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 6px; margin: 0; }.cs-combobox__list { padding: 0; margin: 0; list-style: none; }.cs-combobox__opt { padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; font-size: var(--cs-font-size-sm); }.cs-combobox__opt[aria-selected="true"], .cs-combobox__opt.hl { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-primary))var(--_cs-dark, var(--cs-accent-bright)); }.cs-combobox__empty { padding: 10px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }.cs-igroup { display: inline-flex; align-items: stretch; min-inline-size: 260px; max-inline-size: 100%; box-sizing: border-box; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); overflow: hidden; }.cs-igroup.is-invalid, .is-invalid .cs-igroup, .cs-igroup[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-igroup:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-igroup > input { flex: 1; min-inline-size: 0; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 10px 12px; min-block-size: 44px; box-sizing: border-box; }.cs-igroup > input:focus { outline: none; }.cs-igroup__fix { display: flex; align-items: center; padding: 0 10px; color: var(--cs-color-text-muted); background: var(--cs-color-surface-raised); border-inline-end: 1px solid var(--cs-color-border-default); font-size: var(--cs-font-size-sm); }.cs-igroup__fix--suffix { border-inline-end: 0; border-inline-start: 1px solid var(--cs-color-border-default); }.cs-igroup__btn { border: 0; background: none; color: var(--cs-color-text-muted); cursor: pointer; display: grid; place-items: center; padding: 0 10px; }.cs-igroup__btn:hover { color: var(--cs-color-text-primary); }.cs-taginput { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-inline-size: 280px; max-inline-size: 100%; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 6px var(--cs-space-2); min-block-size: 44px; box-sizing: border-box; }.cs-taginput.is-invalid, .is-invalid .cs-taginput, .cs-taginput[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-taginput:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-taginput > input { flex: 1; min-inline-size: 120px; border: 0; background: transparent; color: var(--cs-color-text-primary); font: 500 14px var(--cs-font-family-ui); padding: 6px var(--cs-space-1); }.cs-taginput > input:focus { outline: none; }/* Disabled editing must not dim already committed, noninteractive values. */.cs-field.is-disabled:has(> .cs-taginput) { opacity: 1; }.cs-field.is-disabled > .cs-taginput { background: var(--cs-color-surface-raised); }/* ---- v3 Batch 3 (Jul 2026): Calendar · DatePicker · TimePicker ---- */.cs-cal { display: inline-block; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: var(--cs-space-3); min-inline-size: 272px; box-shadow: var(--cs-shadow-sm); }.cs-cal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; font: 700 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-cal__head button { border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: var(--cs-radius-sm); inline-size: 30px; block-size: 30px; cursor: pointer; font-size: var(--cs-font-size-base); }.cs-cal__head button:hover { background: var(--cs-color-surface-raised); }.cs-cal__wd, .cs-cal__grid { display: grid; grid-template-columns: repeat(7, 34px); gap: 2px; }.cs-cal__wd span { text-align: center; font: 700 10.5px/2 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .04em; color: var(--cs-color-text-muted); }.cs-cal__grid button { border: 0; background: none; color: var(--cs-color-text-primary); font: 500 13px var(--cs-font-family-ui); block-size: 34px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-cal__grid button:hover { background: var(--cs-color-surface-raised); }.cs-cal__grid button.today { box-shadow: inset 0 0 0 1px var(--cs-color-text-accent); }.cs-cal__grid button.sel { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); font-weight: 700; box-shadow: inset 0 0 0 2px var(--cs-accent-strong); }.cs-cal__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-datepicker { position: relative; display: inline-block; max-inline-size: 100%; }.cs-datepicker__field { display: inline-flex; align-items: center; gap: var(--cs-space-2); min-inline-size: 220px; max-inline-size: 100%; box-sizing: border-box; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: var(--cs-space-2) var(--cs-space-3); cursor: pointer; }.cs-datepicker__trigger { display: inline-flex; align-items: center; gap: var(--cs-space-2); min-inline-size: 220px; max-inline-size: 100%; box-sizing: border-box; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: var(--cs-space-2) var(--cs-space-3); cursor: pointer; }.cs-datepicker.is-invalid .cs-datepicker__field, .cs-datepicker.is-invalid .cs-datepicker__trigger, .is-invalid .cs-datepicker__field, .is-invalid .cs-datepicker__trigger, .cs-datepicker__field.is-invalid, .cs-datepicker__trigger.is-invalid, .cs-datepicker__field[aria-invalid="true"], .cs-datepicker__trigger[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-datepicker__field:focus-visible, .cs-datepicker__trigger:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-datepicker__field .ph, .cs-datepicker__trigger .ph { color: var(--cs-color-text-muted); }.cs-datepicker__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: max-content; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); }.cs-datepicker__pop .cs-cal { min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; overflow-x: auto; }.cs-timepicker { display: inline-flex; align-items: center; gap: 8px; max-inline-size: 100%; box-sizing: border-box; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 0 10px; min-block-size: 44px; color: var(--cs-color-text-muted); }.cs-timepicker.is-invalid, .is-invalid .cs-timepicker, .cs-timepicker[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-timepicker:focus-within { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-timepicker select { border: 0; background: transparent; color: var(--cs-color-text-primary); font: 600 14px var(--cs-font-family-mono); padding: 8px 2px; cursor: pointer; }.cs-timepicker select:focus { outline: none; }/* ---- v3 Batch 4 (Jul 2026): HoverCard · Popconfirm · ContextMenu · FAB · Result · InlineEdit ---- */.cs-hovercard { position: relative; display: inline-block; }.cs-hovercard__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 8px); inset-inline-start: 0; min-inline-size: 240px; display: block; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 14px 16px; font-size: var(--cs-font-size-sm); line-height: 1.5; color: var(--cs-color-text-primary); }.cs-popconfirm { position: relative; display: inline-block; }.cs-popconfirm__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 8px); inset-inline-start: 0; min-inline-size: 240px; display: block; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 12px 14px; }.cs-popconfirm__title { display: block; font: 600 13.5px/1.45 var(--cs-font-family-ui); color: var(--cs-color-text-primary); margin-bottom: 10px; }.cs-popconfirm__actions { display: flex; gap: 8px; justify-content: flex-end; }.cs-ctxmenu-zone { position: relative; }.cs-fab { position: fixed; inset-inline-end: 24px; inset-block-end: 24px; z-index: var(--cs-depth-overlay, 80); display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }.cs-fab--static { position: static; align-items: flex-start; }.cs-fab__main { inline-size: 56px; block-size: 56px; border-radius: 999px; border: 0; background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); display: grid; place-items: center; cursor: pointer; box-shadow: inset 0 0 0 2px var(--cs-accent-strong), var(--cs-shadow-lg); }.cs-fab__main:hover { filter: brightness(1.05); }.cs-fab__main:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre), var(--cs-shadow-md); }.cs-fab__dial { display: flex; flex-direction: column; gap: 8px; align-items: center; }.cs-fab--static .cs-fab__dial, .cs-fab__dial--static { flex-direction: row; }.cs-fab__mini { inline-size: 42px; block-size: 42px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; box-shadow: var(--cs-shadow-sm); }.cs-result { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 44px 24px; }.cs-result__icon { inline-size: 64px; block-size: 64px; border-radius: 999px; display: grid; place-items: center; background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); color: var(--cs-color-text-accent); }.cs-result--success .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-success) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-success-text); }.cs-result--error .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-danger) 12%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-danger-text); }.cs-result--warning .cs-result__icon { background: color-mix(in oklab, var(--cs-color-semantic-warning) 14%, var(--cs-color-surface-panel)); color: var(--cs-color-semantic-warning-text); }.cs-result__title { margin: 0; font: 800 22px/1.3 var(--cs-heading-family, var(--cs-font-family-ui)); letter-spacing: var(--cs-heading-tracking, -0.01em); color: var(--cs-color-text-primary); }.cs-result__body { margin: 0; max-inline-size: 46ch; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: 1.55; }.cs-result__actions { display: flex; gap: 10px; margin-top: 6px; }.cs-inline-edit__view { display: inline-flex; align-items: center; gap: 7px; border: 1px dashed transparent; background: none; font: inherit; color: var(--cs-color-text-primary); padding: 4px 8px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-inline-edit__view:hover { border-color: var(--cs-color-border-default); background: var(--cs-color-surface-raised); }.cs-inline-edit__view svg { color: var(--cs-color-text-muted); }.cs-inline-edit__view .ph { color: var(--cs-color-text-muted); }.cs-inline-edit input { font: inherit; color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-accent); border-radius: var(--cs-radius-sm); padding: 4px 8px; }.cs-inline-edit input:focus { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }/* ---- v3 Batch 5 part 1 (Jul 2026): Link · Anchor · Image · Toolbar ---- */.cs-link { color: var(--cs-color-link); text-underline-offset: .15em; }.cs-link:hover { color: var(--cs-color-link-hover); }.cs-link--muted { color: var(--cs-color-text-muted); }.cs-link--standalone { font-weight: 700; text-decoration: none; }.cs-link--standalone:hover { text-decoration: underline; }.cs-anchor { display: grid; gap: 2px; min-inline-size: 180px; border-inline-start: 2px solid var(--cs-color-border-default); }.cs-anchor__title { font: 700 10.5px/1.4 var(--cs-font-family-ui); text-transform: uppercase; letter-spacing: .1em; color: var(--cs-color-text-muted); padding: 2px 12px 6px; }.cs-anchor__item { display: block; padding: 5px 12px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); text-decoration: none; border-inline-start: 2px solid transparent; margin-inline-start: -2px; }.cs-anchor__item:hover { color: var(--cs-color-text-primary); }.cs-anchor__item.is-active { color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent-bright)); border-inline-start-color: var(--cs-accent); font-weight: 600; }.cs-image { position: relative; display: inline-block; overflow: hidden; border-radius: var(--cs-radius-md); background: var(--cs-color-surface-raised); max-inline-size: 100%; }.cs-image img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }.cs-image.is-loading { min-inline-size: 120px; min-block-size: 80px; animation: cs-img-shimmer 1.2s ease-in-out infinite alternate; }@keyframes cs-img-shimmer { from { opacity: .55; } to { opacity: .9; } }.cs-image.is-zoomable { cursor: zoom-in; }.cs-image__fallback { display: grid; place-items: center; min-block-size: 80px; block-size: 100%; color: var(--cs-color-text-muted); }.cs-image__zoom { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: color-mix(in oklab, var(--cs-color-brand-umber, #45210e) 82%, transparent); display: grid; place-items: center; cursor: zoom-out; }.cs-image__zoom img { max-inline-size: 88vw; max-block-size: 86vh; border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-xl); }.cs-image__zoom button { position: absolute; inset-block-start: 18px; inset-inline-end: 18px; inline-size: 40px; block-size: 40px; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .12); color: #fff; /* on-dark-chrome ink */ font-size: var(--cs-font-size-base); cursor: pointer; }.cs-toolbar { display: inline-flex; align-items: center; gap: 4px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 4px; }.cs-toolbar__btn { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: var(--cs-color-text-primary); font: 600 13px var(--cs-font-family-ui); padding: 7px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; min-block-size: 32px; }.cs-toolbar__btn:hover { background: var(--cs-color-surface-raised); }.cs-toolbar__btn:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-toolbar__sep { inline-size: 1px; block-size: 20px; background: var(--cs-color-border-default); margin: 0 4px; }.cs-toolbar__more { position: relative; }.cs-toolbar__more .cs-menu__list { position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + 6px); }/* ---- v3 Batch 5 part 2 (Jul 2026): Menubar · NavigationMenu · Carousel · Comment ---- */.cs-menubar { display: inline-flex; gap: 2px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 3px; }.cs-menubar__wrap { position: relative; }.cs-menubar__top { border: 0; background: none; font: 600 13.5px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 7px 12px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-menubar__top:hover, .cs-menubar__top.is-open { background: var(--cs-color-surface-raised); }.cs-menubar__wrap .cs-menu__list { position: absolute; inset-inline-start: 0; inset-block-start: calc(100% + 5px); }.cs-navmenu { display: inline-flex; gap: 4px; align-items: center; }.cs-navmenu__wrap { position: relative; }.cs-navmenu__top { display: inline-flex; align-items: center; gap: 5px; border: 0; background: none; text-decoration: none; font: 600 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 9px 12px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-navmenu__top:hover, .cs-navmenu__top.is-open { background: var(--cs-color-surface-raised); }.cs-navmenu__panel { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline-start: var(--_cs-panel-inline-offset, 0px); inline-size: 468px; max-inline-size: var(--_cs-panel-max-inline-size, calc(100vw - 16px)); box-sizing: border-box; inset-block-start: calc(100% + 8px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-md); padding: 10px; }.cs-navmenu__card { min-inline-size: 0; overflow-wrap: anywhere; display: grid; gap: 3px; padding: 10px 12px; border-radius: var(--cs-radius-md); text-decoration: none; color: var(--cs-color-text-primary); }.cs-navmenu__card:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-navmenu__card b { font-size: var(--cs-font-size-sm); }.cs-navmenu__card small { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); line-height: 1.45; }.cs-carousel { display: grid; gap: 10px; }.cs-carousel__view { position: relative; overflow: hidden; border-radius: var(--cs-radius-lg); border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); }.cs-carousel__window { overflow: hidden; min-inline-size: 0; }.cs-carousel__track { display: flex; transition: transform var(--cs-duration-base, 240ms) cubic-bezier(0.2, 0, 0, 1); }.cs-carousel__slide { flex: 0 0 100%; min-inline-size: 100%; }.cs-carousel__nav { position: absolute; inset-block-start: 50%; translate: 0 -50%; inline-size: 36px; block-size: 36px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); cursor: pointer; font-size: var(--cs-font-size-md); box-shadow: var(--cs-shadow-sm); }.cs-carousel__nav.prev { inset-inline-start: 10px; }.cs-carousel__nav.next { inset-inline-end: 10px; }/* Keep the 9px mark inside a real, non-overlapping 24px fine-pointer target.
1679
+ * Coarse-pointer rules retain their existing 44px targets and dot paint. */.cs-carousel__dots { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }.cs-carousel__dots button { inline-size: 24px; block-size: 24px; flex: 0 0 24px; border-radius: 999px; border: 0; background: none; cursor: pointer; padding: 0; position: relative; }.cs-carousel__dots button::before { content: ""; position: absolute; inset: 0; margin: auto; inline-size: 9px; block-size: 9px; border-radius: inherit; background: var(--cs-color-border-default); pointer-events: none; }.cs-carousel__dots button[aria-current="true"]::before { background: var(--cs-color-text-accent); }@media (prefers-reduced-motion: reduce) { .cs-carousel__track { transition: none; } }.cs-comment { display: flex; gap: 10px; }.cs-comment__avatar { flex: none; }.cs-comment__main { flex: 1; min-inline-size: 0; }.cs-comment__head { display: flex; align-items: baseline; gap: 8px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-comment__meta { color: var(--cs-color-text-muted); font-size: var(--cs-font-size-xs); }.cs-comment__body { font-size: var(--cs-font-size-sm); line-height: 1.55; color: var(--cs-color-text-primary); margin: 3px 0 6px; }.cs-comment__actions { display: flex; gap: 12px; }.cs-comment__actions button { border: 0; background: none; padding: 0; font: 600 12.5px var(--cs-font-family-ui); color: var(--cs-color-text-accent); cursor: pointer; }.cs-comment__replies { margin-top: 12px; padding-inline-start: 14px; border-inline-start: 2px solid var(--cs-color-border-default); display: grid; gap: 12px; }/* ---- v3 Batch 6a (Jul 2026): Form · Tree · BackTop · Watermark ---- */.cs-form { display: grid; gap: var(--cs-space-4); }.cs-form-array { border: 0; padding: 0; margin: 0; }.cs-form-array__rows { display: grid; gap: 8px; }.cs-form-array__row { display: flex; gap: 8px; align-items: center; }.cs-form-wizard, .cs-form-wizard__steps, .cs-form-wizard__body, .cs-form-wizard__nav { box-sizing: border-box; }/* FIND-015 — visible pending + interaction lock while asyncRules / submit run. */.cs-form.is-pending { opacity: 0.72; }.cs-form.is-pending :is(button, input, select, textarea, [role="button"]) {
1585
1680
  pointer-events: none;
1586
1681
  cursor: wait;
1587
- }.cs-form__summary { border: 1px solid var(--cs-color-semantic-danger); border-radius: var(--cs-radius-md); background: color-mix(in oklab, var(--cs-color-semantic-danger) 8%, var(--cs-color-surface-panel)); color: var(--cs-color-text-primary); padding: var(--cs-space-3) 14px; font-size: var(--cs-font-size-sm); }.cs-form__summary b { color: var(--cs-color-semantic-danger-text); }.cs-form__summary ul { margin: 6px 0 0; padding-inline-start: 18px; }.cs-formfield { display: grid; gap: 6px; }.cs-formfield__label { font: 600 13px var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-formfield__label em { color: var(--cs-color-semantic-danger-text); font-style: normal; }.cs-formfield__hint { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-formfield__error { font-size: var(--cs-font-size-xs); color: var(--cs-color-semantic-danger-text); font-weight: 600; }.cs-formfield.has-error input, .cs-formfield.has-error textarea, .cs-formfield.has-error select, .cs-formfield.is-invalid input, .cs-formfield.is-invalid textarea, .cs-formfield.is-invalid select, .cs-formfield input[aria-invalid="true"], .cs-formfield textarea[aria-invalid="true"], .cs-formfield select[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-tree { list-style: none; margin: 0; padding: 0; font-size: var(--cs-font-size-sm); }.cs-tree ul { list-style: none; margin: 0; padding: 0; }.cs-tree__row { display: flex; align-items: center; gap: 2px; border-radius: var(--cs-radius-sm); }.cs-tree__row:hover { background: var(--cs-color-surface-raised); }.cs-tree__row.is-selected { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel))); }.cs-tree__row.is-selected .cs-tree__label { color: var(--cs-color-text-primary); font-weight: 600; }.cs-tree__twist { inline-size: 20px; block-size: 28px; border: 0; background: none; color: var(--cs-color-text-muted); cursor: pointer; padding: 0; display: inline-grid; place-items: center; }.cs-tree__label { border: 0; background: none; color: var(--cs-color-text-primary); font: inherit; padding: 4px 6px; cursor: pointer; border-radius: var(--cs-radius-sm); }.cs-backtop { position: fixed; inset-inline-end: 24px; inset-block-end: 84px; z-index: var(--cs-depth-overlay, 80); inline-size: 44px; block-size: 44px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; box-shadow: var(--cs-shadow-md); }.cs-backtop:hover { border-color: var(--cs-accent); }/* ---- v3 Batch 6b (Jul 2026): TreeSelect · Cascader · Transfer · Mentions ---- */.cs-treeselect, .cs-cascader { position: relative; display: inline-block; min-inline-size: 240px; }.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; inline-size: 100%; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; box-sizing: border-box; }.cs-treeselect.is-invalid :is(.cs-treeselect__field, .cs-treeselect__trigger), .cs-cascader.is-invalid :is(.cs-treeselect__field, .cs-cascader__field, .cs-cascader__trigger), .is-invalid :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger), :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger).is-invalid, :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger)[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-treeselect__field:focus-visible, .cs-treeselect__trigger:focus-visible, .cs-cascader__field:focus-visible, .cs-cascader__trigger:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-treeselect__field .ph, .cs-treeselect__trigger .ph, .cs-cascader__field .ph, .cs-cascader__trigger .ph { color: var(--cs-color-text-muted); }.cs-treeselect__pop, .cs-cascader__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: 0; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 8px; min-inline-size: 100%; }.cs-cascader__pop { display: flex; padding: 0; overflow: hidden; }.cs-cascader__col { list-style: none; margin: 0; padding: 6px; min-inline-size: 150px; max-block-size: 240px; overflow: auto; }.cs-cascader__col + .cs-cascader__col { border-inline-start: 1px solid var(--cs-color-border-default); }.cs-cascader__opt { display: flex; justify-content: space-between; gap: 8px; inline-size: 100%; border: 0; background: none; text-align: start; font: 500 13.5px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-cascader__opt:hover { background: var(--cs-color-surface-raised); }.cs-cascader__opt.on { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent-bright)); font-weight: 600; }.cs-transfer { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 10px; min-inline-size: 0; }.cs-transfer__list { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); min-inline-size: 0; overflow-wrap: anywhere; }.cs-transfer__title { font: 700 12px var(--cs-font-family-ui); padding: 9px 12px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-md) var(--cs-radius-md) 0 0; }.cs-transfer__list ul { list-style: none; margin: 0; padding: 8px 10px; display: grid; gap: 6px; max-block-size: 200px; overflow: auto; }.cs-transfer__list label { display: flex; align-items: center; gap: 8px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: pointer; }.cs-transfer__ops { display: grid; gap: 6px; align-content: center; }.cs-mentions { position: relative; display: block; max-inline-size: 420px; }.cs-mentions__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline-start: 10px; inset-block-start: calc(100% - 6px); display: grid; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 4px; }.cs-mentions__pop button { border: 0; background: none; text-align: start; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); padding: 7px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-mentions__pop button:hover, .cs-mentions__pop button.hl, .cs-mentions__pop button[aria-selected="true"] { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--cs-color-text-primary); }/* ---- v3 Batch 6c (Jul 2026): ColorPicker · Tour · QRCode ---- */.cs-colorpicker { position: relative; display: inline-block; }.cs-colorpicker__field { display: inline-flex; align-items: center; gap: 9px; min-block-size: 44px; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; }.cs-colorpicker__field i { inline-size: 20px; block-size: 20px; border-radius: 6px; border: 1px solid var(--cs-color-border-default); }.cs-colorpicker__field:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 1px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-colorpicker__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: 0; display: grid; gap: 10px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 12px; }.cs-colorpicker__grid { display: grid; grid-template-columns: repeat(5, 26px); gap: 8px; }.cs-colorpicker__grid button { inline-size: 26px; block-size: 26px; border-radius: 7px; border: 1px solid var(--cs-color-border-default); cursor: pointer; }.cs-colorpicker__grid button.on { outline: var(--cs-focus-ring, 3px) solid var(--cs-color-accent-ochre); outline-offset: 1px; }.cs-colorpicker__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-colorpicker__hex input { inline-size: 110px; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-sm); padding: 6px 8px; }.cs-tour__scrim { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); }.cs-tour__hole { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 1); border-radius: var(--cs-radius-md); box-shadow: 0 0 0 4000px var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); outline: var(--cs-focus-ring, 3px) solid var(--cs-color-brand-ochre); pointer-events: none; background: transparent; }.cs-tour__pop { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 2); inline-size: 280px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 14px 16px; }.cs-tour__pop b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-tour__pop p { margin: 6px 0 12px; font-size: var(--cs-font-size-sm); line-height: 1.5; color: var(--cs-color-text-muted); }.cs-tour__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.cs-tour__count { font: 600 11px var(--cs-font-family-mono); color: var(--cs-color-text-muted); }.cs-tour__btns { display: flex; gap: 6px; }.cs-qrcode { display: inline-block; padding: 10px; background: var(--cs-color-surface-panel, #fff); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); line-height: 0; }/* ---- v3 Batch 7a (Jul 2026): Masonry · Splitter · HotKeys · Dock ---- */.cs-masonry__item { break-inside: avoid; }.cs-splitter { display: flex; align-items: stretch; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); overflow: hidden; background: var(--cs-color-surface-panel); }.cs-splitter__pane { overflow: auto; padding: 14px; min-inline-size: 0; }.cs-splitter__bar { inline-size: 8px; cursor: col-resize; background: var(--cs-color-surface-raised); border-inline: 1px solid var(--cs-color-border-default); touch-action: none; }.cs-splitter__bar:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-splitter__bar:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-hotkeys__sheet { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); display: grid; place-items: center; }.cs-hotkeys__card { background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 18px 20px; min-inline-size: 300px; }.cs-hotkeys__card b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-hotkeys__card ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }.cs-hotkeys__card li { display: flex; justify-content: space-between; gap: 20px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-dock { display: inline-flex; align-items: flex-end; gap: 8px; background: color-mix(in oklab, var(--cs-color-surface-panel) 82%, transparent); border: 1px solid var(--cs-color-border-default); border-radius: 18px; padding: 8px 12px; backdrop-filter: blur(10px); }.cs-dock__item { inline-size: 44px; block-size: 44px; border-radius: 12px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; transition: transform var(--cs-duration-fast, 120ms); position: relative; }.cs-dock__item.is-active::after { content: ""; position: absolute; inset-block-end: -6px; inline-size: 4px; block-size: 4px; border-radius: 999px; background: var(--cs-color-text-accent); }@media (prefers-reduced-motion: reduce) { .cs-dock__item { transition: none; } }/* ---- v3 Batch 7b (Jul 2026): DataGrid · TreeTable · Sortable ---- */.cs-datagrid { overflow: auto; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); }.cs-datagrid .cs-table { margin: 0; }.cs-datagrid thead th { position: sticky; inset-block-start: 0; background: var(--cs-color-surface-raised); z-index: 1; }.cs-datagrid__check { display: inline-flex; align-items: center; justify-content: center; }.cs-datagrid__selcol { inline-size: 36px; text-align: center; }.cs-datagrid__sort { border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 0; }.cs-datagrid tr.is-selected td { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel))); }.cs-treetable .cs-treetable__cell { display: inline-flex; align-items: center; gap: 2px; }.cs-sortable { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-inline-size: 380px; }.cs-sortable__item { display: flex; align-items: center; gap: 10px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 10px 12px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: grab; }.cs-sortable__item.is-dragging { opacity: .5; }.cs-sortable__item.is-over { border-color: var(--cs-accent); box-shadow: inset 0 0 0 1px var(--cs-accent); }.cs-sortable__grip { color: var(--cs-color-text-muted); }.cs-sortable__label { flex: 1; min-inline-size: 0; }.cs-sortable__ops { display: inline-flex; gap: 4px; margin-inline-start: auto; }.cs-sortable__ops .cs-button { cursor: pointer; }.cs-sortable__ops .cs-button:disabled { opacity: .4; cursor: not-allowed; }/* ---- v3 Batch 7c (Jul 2026): Chart · Editor · Terminal ---- */.cs-chart { margin: 0; display: grid; gap: 8px; max-inline-size: 420px; }.cs-chart__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-chart__legend b { color: var(--cs-color-text-primary); }.cs-editor { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); max-inline-size: 460px; }.cs-editor__bar { display: flex; gap: 2px; padding: 6px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-md) var(--cs-radius-md) 0 0; }.cs-editor__area { padding: 12px 14px; font: 400 14px/1.6 var(--cs-font-family-ui); color: var(--cs-color-text-primary); outline: none; }.cs-editor__area:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: inset 0 0 0 5px var(--cs-color-accent-ochre); border-radius: 0 0 var(--cs-radius-md) var(--cs-radius-md); }/* Terminal — always-dark chrome (FIND-010: hex only in local custom props) */.cs-terminal {
1682
+ }.cs-form__summary { border: 1px solid var(--cs-color-semantic-danger); border-radius: var(--cs-radius-md); background: color-mix(in oklab, var(--cs-color-semantic-danger) 8%, var(--cs-color-surface-panel)); color: var(--cs-color-text-primary); padding: var(--cs-space-3) 14px; font-size: var(--cs-font-size-sm); }.cs-form__summary b { color: var(--cs-color-semantic-danger-text); }.cs-form__summary ul { margin: 6px 0 0; padding-inline-start: 18px; }.cs-formfield { display: grid; gap: 6px; }.cs-formfield__label { font: 600 13px var(--cs-font-family-ui); color: var(--cs-color-text-primary); }.cs-formfield__label em { color: var(--cs-color-semantic-danger-text); font-style: normal; }.cs-formfield__hint { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-formfield__error { font-size: var(--cs-font-size-xs); color: var(--cs-color-semantic-danger-text); font-weight: 600; }.cs-formfield.has-error input, .cs-formfield.has-error textarea, .cs-formfield.has-error select, .cs-formfield.is-invalid input, .cs-formfield.is-invalid textarea, .cs-formfield.is-invalid select, .cs-formfield input[aria-invalid="true"], .cs-formfield textarea[aria-invalid="true"], .cs-formfield select[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-tree { list-style: none; margin: 0; padding: 0; font-size: var(--cs-font-size-sm); }.cs-tree ul { list-style: none; margin: 0; padding: 0; }.cs-tree__row { display: flex; align-items: center; gap: 2px; border-radius: var(--cs-radius-sm); }.cs-tree__row:hover { background: var(--cs-color-surface-raised); }.cs-tree__row.is-selected { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel))); }.cs-tree__row.is-selected .cs-tree__label { color: var(--cs-color-text-primary); font-weight: 600; }.cs-tree__twist { inline-size: 20px; block-size: 28px; border: 0; background: none; color: var(--cs-color-text-muted); cursor: pointer; padding: 0; display: inline-grid; place-items: center; }.cs-tree__label { border: 0; background: none; color: var(--cs-color-text-primary); font: inherit; padding: 4px 6px; cursor: pointer; border-radius: var(--cs-radius-sm); }.cs-backtop { position: fixed; inset-inline-end: 24px; inset-block-end: 84px; z-index: var(--cs-depth-overlay, 80); inline-size: 44px; block-size: 44px; border-radius: 999px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; box-shadow: var(--cs-shadow-md); }.cs-backtop:hover { border-color: var(--cs-accent); }.cs-watermark { position: relative; }/* ---- v3 Batch 6b (Jul 2026): TreeSelect · Cascader · Transfer · Mentions ---- */.cs-treeselect, .cs-cascader { position: relative; display: inline-block; min-inline-size: 240px; max-inline-size: 100%; box-sizing: border-box; }.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; inline-size: 100%; min-block-size: 44px; font: 500 14px var(--cs-font-family-ui); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; box-sizing: border-box; }.cs-treeselect.is-invalid :is(.cs-treeselect__field, .cs-treeselect__trigger), .cs-cascader.is-invalid :is(.cs-treeselect__field, .cs-cascader__field, .cs-cascader__trigger), .is-invalid :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger), :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger).is-invalid, :is(.cs-treeselect__field, .cs-treeselect__trigger, .cs-cascader__field, .cs-cascader__trigger)[aria-invalid="true"] { border-color: var(--cs-color-semantic-danger); }.cs-treeselect__field:focus-visible, .cs-treeselect__trigger:focus-visible, .cs-cascader__field:focus-visible, .cs-cascader__trigger:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-treeselect__field .ph, .cs-treeselect__trigger .ph, .cs-cascader__field .ph, .cs-cascader__trigger .ph { color: var(--cs-color-text-muted); }.cs-treeselect__pop, .cs-cascader__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: 0; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 8px; min-inline-size: 100%; }.cs-cascader__pop { display: flex; padding: 0; overflow: hidden; }.cs-cascader__col { list-style: none; margin: 0; padding: 6px; min-inline-size: 150px; max-block-size: 240px; overflow: auto; }.cs-cascader__col + .cs-cascader__col { border-inline-start: 1px solid var(--cs-color-border-default); }.cs-cascader__opt { display: flex; justify-content: space-between; gap: 8px; inline-size: 100%; border: 0; background: none; text-align: start; font: 500 13.5px var(--cs-font-family-ui); color: var(--cs-color-text-primary); padding: 8px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-cascader__opt:hover { background: var(--cs-color-surface-raised); }.cs-cascader__opt.on { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent-bright)); font-weight: 600; }.cs-transfer { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 10px; min-inline-size: 0; }.cs-transfer__list { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); min-inline-size: 0; overflow-wrap: anywhere; }.cs-transfer__title { font: 700 12px var(--cs-font-family-ui); padding: 9px 12px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-md) var(--cs-radius-md) 0 0; }.cs-transfer__list ul { list-style: none; margin: 0; padding: 8px 10px; display: grid; gap: 6px; max-block-size: 200px; overflow: auto; }.cs-transfer__list label { display: flex; align-items: center; gap: 8px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: pointer; }.cs-transfer__ops { display: grid; gap: 6px; align-content: center; }.cs-mentions { position: relative; display: block; max-inline-size: 420px; }.cs-mentions__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-inline-start: 10px; inset-block-start: calc(100% - 6px); display: grid; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 4px; }.cs-mentions__pop button { border: 0; background: none; text-align: start; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); padding: 7px 10px; border-radius: var(--cs-radius-sm); cursor: pointer; }.cs-mentions__pop button:hover, .cs-mentions__pop button.hl, .cs-mentions__pop button[aria-selected="true"] { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--cs-color-text-primary); }/* ---- v3 Batch 6c (Jul 2026): ColorPicker · Tour · QRCode ---- */.cs-colorpicker { position: relative; display: inline-block; }.cs-colorpicker__field { display: inline-flex; align-items: center; gap: 9px; min-block-size: 44px; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-component-textfield-border-default, var(--cs-color-border-default)); border-radius: var(--cs-radius-md); padding: 8px 12px; cursor: pointer; }.cs-colorpicker__field i { inline-size: 20px; block-size: 20px; border-radius: 6px; border: 1px solid var(--cs-color-border-default); }.cs-colorpicker__field:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-colorpicker__pop { position: absolute; z-index: var(--cs-depth-dropdown, 60); inset-block-start: calc(100% + 6px); inset-inline-start: 0; display: grid; gap: 10px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 12px; }.cs-colorpicker__grid { display: grid; grid-template-columns: repeat(5, 26px); gap: 8px; }.cs-colorpicker__grid button { inline-size: 26px; block-size: 26px; border-radius: 7px; border: 1px solid var(--cs-color-border-default); cursor: pointer; }.cs-colorpicker__grid button.on { outline: var(--cs-focus-ring, 3px) solid var(--cs-color-accent-ochre); outline-offset: 1px; }.cs-colorpicker__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-colorpicker__hex input { inline-size: 110px; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-sm); padding: 6px 8px; }.cs-tour { display: inline-block; }.cs-tour__scrim { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); }.cs-tour__hole { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 1); border-radius: var(--cs-radius-md); box-shadow: 0 0 0 4000px var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); outline: var(--cs-focus-ring, 3px) solid var(--cs-color-brand-ochre); pointer-events: none; background: transparent; }.cs-tour__pop { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 2); inline-size: 280px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 14px 16px; }.cs-tour__pop b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-tour__pop p { margin: 6px 0 12px; font-size: var(--cs-font-size-sm); line-height: 1.5; color: var(--cs-color-text-muted); }.cs-tour__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.cs-tour__count { font: 600 11px var(--cs-font-family-mono); color: var(--cs-color-text-muted); }.cs-tour__btns { display: flex; gap: 6px; }.cs-qrcode { display: inline-block; padding: 10px; background: var(--cs-color-surface-panel, #fff); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); line-height: 0; }/* ---- v3 Batch 7a (Jul 2026): Masonry · Splitter · HotKeys · Dock ---- */.cs-masonry { display: block; }.cs-masonry__item { break-inside: avoid; }.cs-splitter { display: flex; align-items: stretch; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); overflow: hidden; background: var(--cs-color-surface-panel); }.cs-splitter__pane { overflow: auto; padding: 14px; min-inline-size: 0; min-block-size: 0; scroll-padding-block-end: var(--cs-space-6, 24px); }.cs-splitter__bar { inline-size: 8px; cursor: col-resize; background: var(--cs-color-surface-raised); border-inline: 1px solid var(--cs-color-border-default); touch-action: none; }.cs-splitter__bar:hover { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-splitter__bar:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-hotkeys { display: inline-block; }.cs-hotkeys__sheet { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); display: grid; place-items: center; }.cs-hotkeys__card { background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 18px 20px; min-inline-size: 300px; }.cs-hotkeys__card b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-hotkeys__card ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }.cs-hotkeys__card li { display: flex; justify-content: space-between; gap: 20px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }.cs-dock { display: inline-flex; align-items: flex-end; gap: 8px; background: color-mix(in oklab, var(--cs-color-surface-panel) 82%, transparent); border: 1px solid var(--cs-color-border-default); border-radius: 18px; padding: 8px 12px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }@media (prefers-reduced-transparency: reduce) { .cs-dock { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--cs-color-surface-panel); } }[data-cs-style="matte-paper"] .cs-dock { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--cs-color-surface-panel); box-shadow: var(--cs-shadow-xs); }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-dock { background: color-mix(in oklab, var(--cs-color-surface-panel) 82%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: none; }.cs-dock__item { inline-size: 44px; block-size: 44px; border-radius: 12px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); display: grid; place-items: center; cursor: pointer; transition: transform var(--cs-duration-fast, 120ms); position: relative; }.cs-dock__item.is-active::after { content: ""; position: absolute; inset-block-end: -6px; inline-size: 4px; block-size: 4px; border-radius: 999px; background: var(--cs-color-text-accent); }@media (prefers-reduced-motion: reduce) { .cs-dock__item { transition: none; } }/* ---- v3 Batch 7b (Jul 2026): DataGrid · TreeTable · Sortable ---- */.cs-datagrid { overflow: auto; max-inline-size: 100%; min-inline-size: 0; border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); }.cs-datagrid--virtual { position: relative; overflow: auto; }.cs-datagrid__pinned { position: sticky; inset-inline-start: 0; z-index: 2; background: inherit; }.cs-datagrid .cs-table { margin: 0; }.cs-datagrid thead th { position: sticky; inset-block-start: 0; background: var(--cs-color-surface-raised); z-index: 1; }.cs-datagrid__check { display: inline-flex; align-items: center; justify-content: center; }.cs-datagrid__selcol { inline-size: 36px; text-align: center; }.cs-datagrid__sort { border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 0; }.cs-datagrid tr.is-selected td { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel))); }.cs-treetable .cs-treetable__cell { display: inline-flex; align-items: center; gap: 2px; }.cs-sortable { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-inline-size: 380px; }.cs-sortable__item { display: flex; align-items: center; gap: 10px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 10px 12px; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: grab; }.cs-sortable__item.is-dragging { opacity: .5; }.cs-sortable__item.is-over { border-color: var(--cs-accent); box-shadow: inset 0 0 0 1px var(--cs-accent); }.cs-sortable__grip { color: var(--cs-color-text-muted); }.cs-sortable__label { flex: 1; min-inline-size: 0; }.cs-sortable__ops { display: inline-flex; gap: 4px; margin-inline-start: auto; }.cs-sortable__ops .cs-button { cursor: pointer; }.cs-sortable__ops .cs-button:disabled { opacity: .4; cursor: not-allowed; }/* ---- v3 Batch 7c (Jul 2026): Chart · Editor · Terminal ---- */.cs-chart { margin: 0; display: grid; gap: 8px; max-inline-size: 420px; }.cs-chart__legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-chart__legend b { color: var(--cs-color-text-primary); }.cs-editor { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); max-inline-size: 460px; }.cs-editor__bar { display: flex; gap: 2px; padding: 6px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-md) var(--cs-radius-md) 0 0; }.cs-editor__area { padding: 12px 14px; font: 400 14px/1.6 var(--cs-font-family-ui); color: var(--cs-color-text-primary); outline: none; }.cs-editor__area:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: inset 0 0 0 5px var(--cs-color-accent-ochre); border-radius: 0 0 var(--cs-radius-md) var(--cs-radius-md); }/* Terminal — always-dark chrome (FIND-010: hex only in local custom props) */.cs-terminal {
1588
1683
  --cs-term-border: #3a2a1c;
1589
1684
  --cs-term-bar: #2a1a0d;
1590
1685
  --cs-term-dot: #5b4331;
1591
1686
  --cs-term-bg: #1a1108;
1592
1687
  --cs-term-fg: #f5ead9;
1593
- --cs-term-muted: #c9b7a3;
1594
- max-inline-size: 480px; border-radius: var(--cs-radius-lg); overflow: hidden; border: 1px solid var(--cs-term-border); box-shadow: var(--cs-shadow-md);
1688
+ --cs-term-muted: #e9d6c2;
1689
+ color-scheme: dark; background: var(--cs-term-bg); color: var(--cs-term-fg); max-inline-size: 480px; border-radius: var(--cs-radius-lg); overflow: hidden; border: 1px solid var(--cs-term-border); box-shadow: var(--cs-shadow-md);
1595
1690
  }.cs-terminal__bar { display: flex; align-items: center; gap: 6px; background: var(--cs-term-bar); color: var(--cs-term-muted); font: 600 11px var(--cs-font-family-mono); padding: 8px 12px; }.cs-terminal__bar i { inline-size: 10px; block-size: 10px; border-radius: 999px; background: var(--cs-term-dot); }.cs-terminal__bar span { margin-inline-start: 8px; }.cs-terminal__body { background: var(--cs-term-bg); color: var(--cs-term-fg); font: 500 13px/1.7 var(--cs-font-family-mono); padding: 12px 14px; min-block-size: 130px; }.cs-terminal__line { display: flex; gap: 8px; align-items: center; }.cs-terminal__line .p { color: var(--cs-color-brand-ochre); }.cs-terminal__line input { flex: 1; border: 0; background: transparent; color: inherit; font: inherit; outline: none; }/* Wrapper ring — input clears outline for chrome; focus-within restores ≥3:1 indicator (FIND-038). */.cs-terminal:focus-within {
1596
1691
  outline: 2px solid var(--cs-color-text-primary);
1597
1692
  outline-offset: 2px;
1598
1693
  box-shadow: 0 0 0 5px var(--cs-color-accent-ochre);
1599
- }.cs-terminal__out { color: var(--cs-term-muted); white-space: pre-wrap; }/* Source: base/collections.css *//* CyberSkill — collections + content wave 2 (.cs-*). *//* List */.cs-list { display: grid; gap: 2px; }.cs-list__item { display: flex; align-items: center; gap: var(--cs-space-3); padding: 10px var(--cs-space-3); border-radius: var(--cs-radius-md); color: var(--cs-color-text-primary); text-align: start; }.cs-list__item--button { border: 0; background: transparent; font: inherit; inline-size: 100%; cursor: pointer; }@media (hover: hover) {
1694
+ }.cs-terminal__out { color: var(--cs-term-muted); white-space: pre-wrap; }/* ---- Composed .cs-field alignment + narrow container containment ---- */.cs-field > :is(.cs-timepicker, .cs-colorpicker, .cs-segmented, .cs-toggle) {
1695
+ justify-self: start;
1696
+ }@media (max-width: 360px) {
1697
+ .cs-combobox, .cs-igroup, .cs-taginput, .cs-treeselect, .cs-cascader,
1698
+ .cs-datepicker__field, .cs-datepicker__trigger {
1699
+ min-inline-size: 0;
1700
+ max-inline-size: 100%;
1701
+ }
1702
+ }/* Source: base/collections.css *//* CyberSkill — collections + content wave 2 (.cs-*). *//* List */.cs-list { display: grid; gap: 2px; }.cs-list__item { display: flex; align-items: center; gap: var(--cs-space-3); padding: 10px var(--cs-space-3); border-radius: var(--cs-radius-md); color: var(--cs-color-text-primary); text-align: start; }.cs-list__item--button { border: 0; background: transparent; font: inherit; inline-size: 100%; cursor: pointer; }@media (hover: hover) {
1600
1703
  .cs-list__item--button:hover { background: var(--cs-color-surface-raised); }
1601
1704
  }.cs-list__lead { flex: none; color: var(--cs-color-text-accent); display: grid; place-items: center; }.cs-list__main { flex: 1; min-inline-size: 0; display: grid; gap: 1px; }.cs-list__title { font-weight: 600; font-size: var(--cs-font-size-sm); }.cs-list__sub { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }.cs-list__trail { flex: none; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); }/* Item — settings / nav / list row chrome (sibling of ListItem, first-class) */.cs-item {
1602
1705
  display: flex; align-items: center; gap: 14px;
@@ -1606,14 +1709,14 @@
1606
1709
  background: var(--cs-color-surface-panel);
1607
1710
  }.cs-item--interactive { cursor: pointer; font: inherit; inline-size: 100%; }button.cs-item--interactive { border: 1px solid transparent; background: var(--cs-color-surface-panel); }@media (hover: hover) {
1608
1711
  .cs-item--interactive:hover { background: var(--cs-color-surface-raised); border-color: var(--cs-color-border-default); }
1609
- }.cs-item--interactive:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-item.is-selected { border-color: var(--cs-color-text-accent); background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-item.is-selected .cs-item__description { color: var(--_cs-light, var(--cs-color-text-muted))var(--_cs-dark, var(--cs-color-text-primary)); }.cs-item.is-disabled, .cs-item[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }/* Static Item text remains information, rather than an inactive control. */div.cs-item.is-disabled { opacity: 1; }.cs-item__leading { flex: none; display: grid; place-items: center; color: var(--cs-color-text-accent); }.cs-item__main { flex: 1; min-inline-size: 0; display: grid; gap: 2px; }.cs-item__title { font-weight: 600; font-size: var(--cs-font-size-sm); line-height: 1.35; }.cs-item__description { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); line-height: 1.4; }.cs-item__trailing { flex: none; display: grid; place-items: center; color: var(--cs-color-text-muted); }/* DescriptionList */.cs-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px 24px; margin: 0; }.cs-dl dt { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-dl dd { margin: 2px 0 0; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }/* Timeline */.cs-timeline { display: grid; }.cs-timeline__item { display: grid; grid-template-columns: 26px 1fr; gap: 14px; padding-block-end: var(--cs-space-5); position: relative; }.cs-timeline__item:not(:last-child)::before { content: ""; position: absolute; inset-block: 26px 0; inset-inline-start: 12px; inline-size: 2px; background: var(--cs-color-border-default); }.cs-timeline__marker { inline-size: 26px; block-size: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg, #fff); font-size: var(--cs-font-size-xs); font-weight: 700; z-index: 1; }.cs-timeline__item--now .cs-timeline__marker { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 2px var(--cs-accent-strong); }.cs-timeline__item--todo .cs-timeline__marker { background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); }.cs-timeline__title { font-weight: 700; margin: 2px 0 2px; }.cs-timeline__meta { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); font-family: var(--cs-font-family-mono); }.cs-timeline__body { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); margin-block-start: 4px; }/* Accordion */.cs-accordion { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); overflow: hidden; background: var(--cs-color-surface-panel); }.cs-accordion__item + .cs-accordion__item { border-block-start: 1px solid var(--cs-color-border-default); }.cs-accordion__trigger { inline-size: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--cs-space-3); padding: 15px 18px; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; color: var(--cs-color-text-primary); cursor: pointer; text-align: start; }@media (hover: hover) {
1712
+ }.cs-item--interactive:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }.cs-item.is-selected { border-color: var(--cs-color-text-accent); background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }.cs-item.is-selected .cs-item__description { color: var(--cs-color-text-primary); }tr.cs-item { display: table-row; }tr.cs-item.is-selected > td, tr.cs-item.is-selected > th { background: color-mix(in oklab, var(--cs-accent) 18%, var(--cs-color-surface-panel)); }tr.cs-item.is-selected > td:first-child, tr.cs-item.is-selected > th:first-child { box-shadow: inset 3px 0 0 var(--cs-color-text-accent); }.cs-item.is-disabled, .cs-item[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }/* Static Item text remains information, rather than an inactive control. */div.cs-item.is-disabled { opacity: 1; }.cs-item__leading { flex: none; display: grid; place-items: center; color: var(--cs-color-text-accent); }.cs-item__main { flex: 1; min-inline-size: 0; display: grid; gap: 2px; }.cs-item__title { font-weight: 600; font-size: var(--cs-font-size-sm); line-height: 1.35; }.cs-item__description { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); line-height: 1.4; }.cs-item__trailing { flex: none; display: grid; place-items: center; color: var(--cs-color-text-muted); }/* DescriptionList */.cs-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px 24px; margin: 0; }.cs-dl dt { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); }.cs-dl dd { margin: 2px 0 0; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }/* Timeline */.cs-timeline { display: grid; }.cs-timeline__item { display: grid; grid-template-columns: 26px 1fr; gap: 14px; padding-block-end: var(--cs-space-5); position: relative; }.cs-timeline__item:not(:last-child)::before { content: ""; position: absolute; inset-block: 26px 0; inset-inline-start: 12px; inline-size: 2px; background: var(--cs-color-border-default); }.cs-timeline__marker { inline-size: 26px; block-size: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg, #fff); font-size: var(--cs-font-size-xs); font-weight: 700; z-index: 1; }.cs-timeline__item--now .cs-timeline__marker { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); box-shadow: inset 0 0 0 2px var(--cs-accent-strong); }.cs-timeline__item--todo .cs-timeline__marker { background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); }.cs-timeline__title { font-weight: 700; margin: 2px 0 2px; }.cs-timeline__meta { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); font-family: var(--cs-font-family-mono); }.cs-timeline__body { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); margin-block-start: 4px; }/* Accordion */.cs-accordion { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); overflow: hidden; background: var(--cs-color-surface-panel); }.cs-accordion__item + .cs-accordion__item { border-block-start: 1px solid var(--cs-color-border-default); }.cs-accordion__trigger { inline-size: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--cs-space-3); padding: 15px 18px; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; color: var(--cs-color-text-primary); cursor: pointer; text-align: start; }@media (hover: hover) {
1610
1713
  .cs-accordion__trigger:hover { background: var(--cs-color-surface-raised); }
1611
1714
  }.cs-accordion__chevron { flex: none; color: var(--cs-color-text-muted); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-accordion__trigger[aria-expanded="true"] .cs-accordion__chevron { transform: rotate(180deg); }.cs-accordion__panel { padding: 0 18px 16px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }/* Collapsible — light single-panel expand (no Accordion chrome) */.cs-collapsible { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); background: var(--cs-color-surface-panel); overflow: hidden; }.cs-collapsible__trigger { inline-size: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); cursor: pointer; text-align: start; }.cs-collapsible__trigger:hover { background: var(--cs-color-surface-raised); }.cs-collapsible__label { flex: 1; min-inline-size: 0; }.cs-collapsible__chevron { flex: none; color: var(--cs-color-text-muted); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }.cs-collapsible__trigger[aria-expanded="true"] .cs-collapsible__chevron { transform: rotate(180deg); }.cs-collapsible__panel { padding: 0 16px 14px; color: var(--cs-color-text-muted); font-size: var(--cs-font-size-sm); line-height: var(--cs-font-lineHeight-body); }.cs-collapsible__panel > :first-child { margin-block-start: 0; }.cs-collapsible__panel > :last-child { margin-block-end: 0; }/* CodeBlock — always-dark chrome (FIND-010: hex only in local custom props) */.cs-code {
1612
1715
  --cs-code-bg: #2b1e14;
1613
1716
  --cs-code-fg: #f5ead9;
1614
1717
  --cs-code-border: #4a3a2c;
1615
- --cs-code-muted: #c9b7a3;
1616
- position: relative; background: var(--cs-code-bg); color: var(--cs-code-fg); border-radius: var(--cs-radius-lg); overflow: hidden; border: 1px solid var(--cs-code-border);
1718
+ --cs-code-muted: #e9d6c2;
1719
+ color-scheme: dark; position: relative; background: var(--cs-code-bg); color: var(--cs-code-fg); border-radius: var(--cs-radius-lg); overflow: hidden; border: 1px solid var(--cs-code-border);
1617
1720
  }.cs-code__bar { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; border-block-end: 1px solid var(--cs-code-border); font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); color: var(--cs-code-muted); }.cs-code__copy { border: 0; background: transparent; color: var(--cs-code-muted); cursor: pointer; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; min-block-size: 32px; padding-inline: 8px; border-radius: var(--cs-radius-sm); }.cs-code__copy:hover { color: var(--cs-color-brand-ochre); }.cs-code__copy:focus-visible { outline-color: var(--cs-code-fg); }.cs-code pre { margin: 0; padding: 14px 16px; overflow: auto; font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-sm); line-height: 1.6; }.cs-code code { font-family: inherit; }/* EmptyState */.cs-empty { text-align: center; padding: 48px 24px; display: grid; gap: 8px; justify-items: center; }.cs-empty__icon { inline-size: 56px; block-size: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 24%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); margin-block-end: 6px; }.cs-empty__title { font-size: var(--cs-text-h4); font-weight: 700; }.cs-empty__body { color: var(--cs-color-text-muted); max-inline-size: 380px; }.cs-empty__actions { margin-block-start: 12px; display: flex; gap: 10px; }/* Source: base/shell.css *//* CyberSkill — app shell + overlays wave 2 (.cs-*). *//* Sidebar + NavItem */.cs-sidebar { inline-size: 248px; background: var(--cs-color-surface-panel); border-inline-end: 1px solid var(--cs-color-border-default); padding: 16px 12px; display: flex; flex-direction: column; gap: 3px; }.cs-sidebar__label { font-size: var(--cs-font-size-xs); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-muted); padding: 12px 12px 4px; }.cs-nav-item { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-radius: var(--cs-radius-md); color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); text-decoration: none; cursor: pointer; border: 0; background: transparent; inline-size: 100%; text-align: start; }.cs-nav-item:hover { background: var(--cs-color-surface-raised); }.cs-nav-item__icon { flex: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }.cs-nav-item.is-active { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); }.cs-nav-item.is-active .cs-nav-item__icon { color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); }.cs-nav-item__trail { margin-inline-start: auto; }/* Steps */.cs-steps { display: flex; gap: 0; }.cs-step { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; position: relative; padding-inline-end: 12px; }.cs-step:not(:last-child)::after { content: ""; position: absolute; inset-block-start: 13px; inset-inline-start: 34px; inline-size: calc(100% - 46px); block-size: 2px; background: var(--cs-color-border-default); }.cs-step__marker { inline-size: 28px; block-size: 28px; border-radius: 50%; display: grid; place-items: center; font-family: var(--cs-font-family-mono); font-weight: 700; font-size: var(--cs-font-size-sm); background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); z-index: 1; }.cs-step--done .cs-step__marker { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); border-color: transparent; }.cs-step--done:not(:last-child)::after { background: var(--cs-color-text-accent); }.cs-step--active .cs-step__marker { background: var(--cs-accent-bright); color: var(--cs-color-brand-umber); border-color: transparent; box-shadow: inset 0 0 0 2px var(--cs-accent-strong), 0 0 0 4px color-mix(in oklab, var(--cs-accent) 28%, transparent); }.cs-step__title { font-weight: 700; font-size: var(--cs-font-size-sm); }.cs-step__body { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }/* Popover */.cs-popover { position: relative; display: inline-block; }.cs-popover__panel { position: absolute; inset-block-start: calc(100% + 8px); inset-inline-start: 0; min-inline-size: 240px; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-md); padding: 14px; z-index: var(--cs-depth-dropdown, 60); }.cs-popover__panel--end { inset-inline-start: auto; inset-inline-end: 0; }/* Drawer */.cs-drawer-scrim { position: fixed; inset: 0; background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); z-index: var(--cs-depth-modal); }.cs-drawer { position: fixed; inset-block: 0; inset-inline-end: 0; inline-size: min(480px, 100%); background: var(--cs-color-surface-page); border-inline-start: 1px solid var(--cs-color-border-default); box-shadow: var(--cs-shadow-xl); z-index: calc(var(--cs-depth-modal) + 1); display: flex; flex-direction: column; animation: cs-drawer-in var(--cs-duration-base) var(--cs-ease-standard); }.cs-drawer--left { inset-inline: 0 auto; border-inline: none; border-inline-end: 1px solid var(--cs-color-border-default); box-shadow: var(--cs-shadow-xl); animation-name: cs-drawer-in-left; }.cs-drawer__header { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); }.cs-drawer__title { margin: 0; font-size: var(--cs-text-h4); font-weight: 700; }.cs-drawer__close { margin-inline-start: auto; border: 0; background: transparent; cursor: pointer; color: var(--cs-color-text-muted); display: grid; place-items: center; padding: 4px; }.cs-drawer__close:hover { color: var(--cs-color-semantic-danger-text); }.cs-drawer__body { flex: 1; overflow: auto; padding: 20px; }.cs-drawer__footer { padding: 14px 20px; border-block-start: 1px solid var(--cs-color-border-default); display: flex; gap: 10px; justify-content: flex-end; }@keyframes cs-drawer-in { from { margin-inline-end: calc(-1 * min(480px, 100%)); } to { margin-inline-end: 0; } }@keyframes cs-drawer-in-left { from { margin-inline-start: calc(-1 * min(480px, 100%)); } to { margin-inline-start: 0; } }@media (prefers-reduced-motion: reduce) { .cs-drawer { animation: none; } }/* CommandPalette */.cs-cmdk-scrim { position: fixed; inset: 0; background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); z-index: var(--cs-depth-modal); display: grid; align-items: start; justify-items: center; padding-block-start: 12vh; }.cs-cmdk { inline-size: min(560px, 92vw); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); overflow: hidden; }.cs-cmdk__search { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-block-end: 1px solid var(--cs-color-border-default); }.cs-cmdk__search svg { color: var(--cs-color-text-muted); }.cs-cmdk__search input { flex: 1; border: 0; outline: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-md); color: var(--cs-color-text-primary); }/* Wrapper ring — search input clears outline; focus-within restores ≥3:1 indicator (FIND-038). */.cs-cmdk__search:focus-within {
1618
1721
  outline: 2px solid var(--cs-color-text-primary);
1619
1722
  outline-offset: -2px;
@@ -1704,7 +1807,78 @@
1704
1807
  }.cs-dialog[data-cs-overlay-material] { position: absolute; }.cs-drawer[data-cs-overlay-material] { position: fixed; }.cs-overlay-surface {
1705
1808
  position: absolute; inset: auto; margin: 0; box-sizing: border-box;
1706
1809
  pointer-events: none; border: 0; box-shadow: none; background: transparent;
1707
- }.cs-overlay-surface::before { display: none; }/* Source: base/interaction.css *//* CyberSkill — interaction layer: hover depth, focus glow, entrance motion.
1810
+ }.cs-overlay-surface::before { display: none; }/* ---- 7. Perceptual-chroma semantic variant aliases (gold, champagne, silver, jade, leaf, ember, river, studio, ochre) ----
1811
+ * Canonical [data-cs-element] rules in tokens/elements.css provide the base elemental tokens;
1812
+ * these variant selectors boost primary CTA, active segment, selected row and badge vibrancy. */:is([data-cs-element="kim"][data-cs-variant="gold"], [data-cs-element="kim"][data-cs-variant="champagne"]) :is(.cs-button:not(.cs-button--secondary):not(.cs-button--tertiary):not(.cs-button--ghost):not(.cs-button--danger):not(.cs-button--danger-ghost), .cs-segmented button[aria-selected="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-checked="true"]) {
1813
+ background: color-mix(in oklab, var(--cs-color-brand-ochre, #f4ba17) 64%, var(--cs-component-button-primary-bg, #374151));
1814
+ border-color: color-mix(in oklab, var(--cs-color-brand-ochre, #f4ba17) 75%, var(--cs-color-border-default));
1815
+ }:is([data-cs-element="kim"][data-cs-variant="gold"], [data-cs-element="kim"][data-cs-variant="champagne"]) :is(.cs-item.is-selected, .cs-datagrid tr.is-selected td, .cs-table tr.is-selected td, tr.cs-item.is-selected > td) {
1816
+ background: color-mix(in oklab, var(--cs-color-brand-ochre, #f4ba17) 20%, var(--cs-color-surface-panel));
1817
+ border-color: color-mix(in oklab, var(--cs-color-brand-ochre, #f4ba17) 72%, var(--cs-color-border-default));
1818
+ }:is([data-cs-element="moc"][data-cs-variant="jade"], [data-cs-element="moc"][data-cs-variant="leaf"]) :is(.cs-button:not(.cs-button--secondary):not(.cs-button--tertiary):not(.cs-button--ghost):not(.cs-button--danger):not(.cs-button--danger-ghost), .cs-segmented button[aria-selected="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-checked="true"]) {
1819
+ background: color-mix(in oklab, #109464 58%, var(--cs-component-button-primary-bg, #1f5c3a));
1820
+ }:is([data-cs-element="moc"][data-cs-variant="jade"], [data-cs-element="moc"][data-cs-variant="leaf"]) :is(.cs-item.is-selected, .cs-datagrid tr.is-selected td, .cs-table tr.is-selected td, tr.cs-item.is-selected > td) {
1821
+ background: color-mix(in oklab, #109464 20%, var(--cs-color-surface-panel));
1822
+ border-color: color-mix(in oklab, #109464 72%, var(--cs-color-border-default));
1823
+ }[data-cs-element="hoa"][data-cs-variant="ember"] :is(.cs-button:not(.cs-button--secondary):not(.cs-button--tertiary):not(.cs-button--ghost):not(.cs-button--danger):not(.cs-button--danger-ghost), .cs-segmented button[aria-selected="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-checked="true"]) {
1824
+ background: color-mix(in oklab, #e04819 55%, var(--cs-component-button-primary-bg, #992515));
1825
+ }[data-cs-element="thuy"][data-cs-variant="river"] :is(.cs-button:not(.cs-button--secondary):not(.cs-button--tertiary):not(.cs-button--ghost):not(.cs-button--danger):not(.cs-button--danger-ghost), .cs-segmented button[aria-selected="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-checked="true"]) {
1826
+ background: color-mix(in oklab, #0284c7 55%, var(--cs-component-button-primary-bg, #0d5a8a));
1827
+ }/* ---- 8. Style pack: matte-paper (opaque crisp paper/ledger surfaces, zero backdrop blur) ----
1828
+ * Consumes the exact 10 --cs-accent-* roles and nested theme tokens; nested [data-cs-style="liquid-glass"]
1829
+ * cleanly restores frosted glass composition. */[data-cs-style="matte-paper"] :is(.cs-surface-whisper, .cs-surface-light, .cs-surface-standard, .cs-glass-card, .cs-surface-heavy, .cs-overlay-surface) {
1830
+ -webkit-backdrop-filter: none;
1831
+ backdrop-filter: none;
1832
+ }[data-cs-style="matte-paper"] .cs-surface-whisper {
1833
+ background: var(--cs-color-surface-page, #fffdf8);
1834
+ border: 1px solid var(--cs-color-border-default, #e7d9c6);
1835
+ }[data-cs-style="matte-paper"] :is(.cs-surface-light, .cs-surface-standard, .cs-glass-card) {
1836
+ background: var(--cs-color-surface-panel, #ffffff);
1837
+ border: 1px solid var(--cs-color-border-default, #e7d9c6);
1838
+ box-shadow: var(--cs-shadow-xs);
1839
+ }[data-cs-style="matte-paper"] .cs-surface-heavy {
1840
+ background: var(--cs-color-surface-raised, #fbf4e9);
1841
+ border: 1px solid var(--cs-color-border-default, #e7d9c6);
1842
+ box-shadow: var(--cs-shadow-sm);
1843
+ }[data-cs-style="matte-paper"] :is(.cs-surface-standard, .cs-surface-heavy, .cs-glass-card)::before {
1844
+ display: none;
1845
+ }[data-cs-style="matte-paper"] .cs-card:not(.cs-card--flat) {
1846
+ box-shadow: var(--cs-shadow-xs);
1847
+ }[data-cs-style="matte-paper"] .cs-aurora {
1848
+ background-image: linear-gradient(180deg, color-mix(in oklab, var(--cs-accent, var(--cs-color-brand-ochre)) 18%, var(--cs-color-brand-umber)), var(--cs-color-brand-umber));
1849
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-surface-whisper {
1850
+ background: var(--cs-glass-whisper-bg);
1851
+ border: 0;
1852
+ -webkit-backdrop-filter: blur(var(--cs-glass-whisper-blur, 8px)) saturate(var(--cs-glass-whisper-saturate, 110%));
1853
+ backdrop-filter: blur(var(--cs-glass-whisper-blur, 8px)) saturate(var(--cs-glass-whisper-saturate, 110%));
1854
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-surface-light {
1855
+ background: var(--cs-glass-light-bg);
1856
+ border-color: var(--cs-glass-light-border);
1857
+ box-shadow: none;
1858
+ -webkit-backdrop-filter: blur(var(--cs-glass-light-blur, 12px)) saturate(var(--cs-glass-light-saturate, 130%));
1859
+ backdrop-filter: blur(var(--cs-glass-light-blur, 12px)) saturate(var(--cs-glass-light-saturate, 130%));
1860
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] :is(.cs-surface-standard, .cs-glass-card) {
1861
+ background: var(--cs-glass-standard-bg);
1862
+ border-color: var(--cs-glass-standard-border);
1863
+ box-shadow: var(--cs-shadow-sm);
1864
+ -webkit-backdrop-filter: blur(var(--cs-glass-standard-blur, 16px)) saturate(var(--cs-glass-standard-saturate, 150%));
1865
+ backdrop-filter: blur(var(--cs-glass-standard-blur, 16px)) saturate(var(--cs-glass-standard-saturate, 150%));
1866
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-surface-heavy {
1867
+ background: var(--cs-glass-heavy-bg);
1868
+ border-color: var(--cs-glass-heavy-border);
1869
+ box-shadow: var(--cs-shadow-lg);
1870
+ -webkit-backdrop-filter: blur(var(--cs-glass-heavy-blur, 24px)) saturate(var(--cs-glass-heavy-saturate, 180%));
1871
+ backdrop-filter: blur(var(--cs-glass-heavy-blur, 24px)) saturate(var(--cs-glass-heavy-saturate, 180%));
1872
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] :is(.cs-surface-standard, .cs-surface-heavy, .cs-glass-card)::before {
1873
+ display: block;
1874
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-card:not(.cs-card--flat) {
1875
+ box-shadow: var(--cs-shadow-sm);
1876
+ }[data-cs-style="matte-paper"] [data-cs-style="liquid-glass"] .cs-aurora {
1877
+ background-image:
1878
+ radial-gradient(90% 120% at 12% -10%, color-mix(in oklab, var(--cs-accent, var(--cs-color-brand-ochre)) 46%, transparent), transparent 55%),
1879
+ radial-gradient(70% 90% at 88% 8%, color-mix(in oklab, var(--cs-accent-grad-b, #ffcf5c) 32%, transparent), transparent 60%),
1880
+ radial-gradient(120% 120% at 50% 120%, color-mix(in oklab, #1a1108 60%, transparent), transparent 60%);
1881
+ }/* Source: base/interaction.css *//* CyberSkill — interaction layer: hover depth, focus glow, entrance motion.
1708
1882
  * Additive layer loaded after component sheets so it enhances base components without changing
1709
1883
  * their structure. Everything degrades under prefers-reduced-motion. Anchors
1710
1884
  * (Umber/Ochre) unchanged — this only adds warmth to elevation + interaction. *//* ---- 1. Warm hover depth — filled controls lift on a warm umber shadow ---- */.cs-button--primary, .cs-button--secondary, .cs-button--tertiary, .cs-button--danger {
@@ -1857,8 +2031,17 @@
1857
2031
  * --cs-color-border-default / --cs-color-text-muted from the --_cs-standard /
1858
2032
  * --_cs-high channel toggles, which flip to high under prefers-contrast: more
1859
2033
  * (light #9a8060 / #45210e · dark #7a6450 / #f5ead9) unless a scope sets
1860
- * data-cs-contrast explicitly. The former contextual overrides here were
1861
- * already superseded by that resolver's higher specificity. *//* Forced colors removes authored backgrounds and shadows. State must survive
2034
+ * data-cs-contrast explicitly. Below, explicit [data-cs-contrast="high"] also
2035
+ * reinforces field controls, glass borders and table cell dividers, with a
2036
+ * clean nested [data-cs-contrast="standard"] reset. */[data-cs-contrast="high"] :is(.cs-field__control, .cs-select, .cs-combobox, .cs-search, .cs-taginput, .cs-otp__slot, .cs-datepicker__field, .cs-surface-light, .cs-surface-standard, .cs-glass-card, .cs-surface-heavy) {
2037
+ border-color: color-mix(in oklab, var(--cs-color-text-primary) 54%, var(--cs-color-surface-panel));
2038
+ }[data-cs-contrast="high"] :is(.cs-table th, .cs-table td, .cs-datagrid th, .cs-datagrid td) {
2039
+ border-block-end-color: color-mix(in oklab, var(--cs-color-text-primary) 42%, var(--cs-color-surface-panel));
2040
+ }[data-cs-contrast="high"] [data-cs-contrast="standard"] :is(.cs-field__control, .cs-select, .cs-combobox, .cs-search, .cs-taginput, .cs-otp__slot, .cs-datepicker__field) {
2041
+ border-color: var(--cs-component-textfield-border-default, #bfa58f);
2042
+ }[data-cs-contrast="high"] [data-cs-contrast="standard"] .cs-surface-light { border-color: var(--cs-glass-light-border); }[data-cs-contrast="high"] [data-cs-contrast="standard"] :is(.cs-surface-standard, .cs-glass-card) { border-color: var(--cs-glass-standard-border); }[data-cs-contrast="high"] [data-cs-contrast="standard"] .cs-surface-heavy { border-color: var(--cs-glass-heavy-border); }[data-cs-contrast="high"] [data-cs-contrast="standard"] :is(.cs-table th, .cs-table td, .cs-datagrid th, .cs-datagrid td) {
2043
+ border-block-end-color: var(--cs-color-border-subtle, var(--_cs-border-subtle));
2044
+ }/* Forced colors removes authored backgrounds and shadows. State must survive
1862
2045
  * that substitution using real borders, system colors and knob position. */@media (forced-colors: active) {
1863
2046
  .cs-switch__track {
1864
2047
  box-sizing: border-box;
@@ -1939,7 +2122,7 @@
1939
2122
  * being propped open. It only breaks a token when it would otherwise overflow, so
1940
2123
  * ordinary prose is untouched. Scoped to the print-doc wrapper; the print @page is
1941
2124
  * wide, so this screen breakpoint never fires during export. */@media screen and (max-width: 768px) {
1942
- .cs-desk, .cs-sheet { overflow-wrap: anywhere; }
2125
+ .cs-desk, .cs-sheet, .cs-avoid { overflow-wrap: anywhere; }
1943
2126
  }/* 10 — App-shell layout: sidebar + main is a fixed two-column INLINE grid
1944
2127
  * (grid-template-columns: 248px 1fr). §4 restyles the .cs-sidebar itself, but the
1945
2128
  * parent grid still reserved the 248px column, so on a phone the main column (and its
@@ -1950,17 +2133,20 @@
1950
2133
  * table scroll inside its panel instead of forcing the page wide. */@media screen and (max-width: 768px) {
1951
2134
  main { min-width: 0; }
1952
2135
  main > * { min-width: 0; }
1953
- .cs-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
2136
+ .cs-table-wrap, main .cs-card { overflow-x: auto; -webkit-overflow-scrolling: touch; }
2137
+ .cs-steps { flex-wrap: wrap; }
2138
+ }@media (max-width: 640px) {
2139
+ .cs-otp, .cs-input-otp { display: flex; inline-size: 100%; justify-content: space-between; }
1954
2140
  }/* ---- 320 reflow (UX-003 / WCAG 1.4.10) ---- */@media (max-width: 360px) {
1955
2141
  .cs-tabs { overflow-x: auto; overscroll-behavior-x: contain; }
1956
2142
  .cs-pagination { flex-wrap: wrap; max-inline-size: 100%; }
1957
2143
  /* Keep the inherited 44px coarse-pointer floor; wrap controls instead of shrinking targets. */
1958
- .cs-otp { flex-wrap: wrap; gap: 4px; }
2144
+ .cs-otp, .cs-input-otp { flex-wrap: wrap; gap: 4px; }
1959
2145
  .cs-dl { grid-template-columns: 1fr; }
1960
2146
  .cs-field { min-inline-size: 0; }
1961
2147
  .cs-field__control { min-inline-size: 0; }
1962
2148
  }/* Preserve the narrow fine-pointer scrollbar without overriding coarse hit regions. */@media (max-width: 360px) and (pointer: fine) {
1963
2149
  .cs-tabs { scrollbar-width: thin; }
1964
- .cs-otp input { inline-size: 36px; block-size: 40px; font-size: var(--cs-font-size-base); }
2150
+ .cs-otp input, .cs-input-otp input { inline-size: 44px; block-size: 44px; font-size: var(--cs-font-size-base); }
1965
2151
  }
1966
2152
  }@layer cs-overrides