osi-cards-lib 1.5.32 → 1.5.34

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 (87) hide show
  1. package/fesm2022/osi-cards-lib.mjs +31889 -0
  2. package/fesm2022/osi-cards-lib.mjs.map +1 -0
  3. package/index.d.ts +11528 -0
  4. package/package.json +25 -13
  5. package/scripts/setup-angular-styles.js +169 -0
  6. package/styles/_components.scss +38 -0
  7. package/styles/_index.scss +25 -0
  8. package/styles/_osi-cards-mixins.scss +459 -0
  9. package/styles/_osi-cards-tokens.scss +333 -0
  10. package/styles/_styles-scoped.scss +81 -0
  11. package/styles/_styles.scss +26 -0
  12. package/styles/bundles/_ai-card.scss +245 -0
  13. package/styles/bundles/_all.scss +68 -0
  14. package/styles/bundles/_base.scss +60 -0
  15. package/styles/bundles/_card-skeleton.scss +290 -0
  16. package/styles/bundles/_index.scss +25 -0
  17. package/styles/bundles/_sections.scss +48 -0
  18. package/styles/bundles/_tokens-only.scss +139 -0
  19. package/styles/components/_ai-card-renderer.scss +104 -0
  20. package/styles/components/_badges.scss +317 -0
  21. package/styles/components/_card-actions.scss +169 -0
  22. package/styles/components/_card-footer.scss +47 -0
  23. package/styles/components/_component-styles.scss +205 -0
  24. package/styles/components/_empty-state.scss +630 -0
  25. package/styles/components/_hero-card.scss +422 -0
  26. package/styles/components/_image-fallback.scss +28 -0
  27. package/styles/components/_streaming-effects.scss +518 -0
  28. package/styles/components/cards/_ai-card.scss +718 -0
  29. package/styles/components/sections/_all-sections.generated.scss +41 -0
  30. package/styles/components/sections/_all-sections.scss +1086 -0
  31. package/styles/components/sections/_balanced-compact-system.scss +186 -0
  32. package/styles/components/sections/_compact-mixins.scss +180 -0
  33. package/styles/components/sections/_component-mixins.scss +454 -0
  34. package/styles/components/sections/_design-system.scss +477 -0
  35. package/styles/components/sections/_design-tokens.scss +308 -0
  36. package/styles/components/sections/_enhanced-design-variables.scss +147 -0
  37. package/styles/components/sections/_master-compact-system.scss +302 -0
  38. package/styles/components/sections/_master-dense-system.scss +239 -0
  39. package/styles/components/sections/_minimalistic-design.scss +268 -0
  40. package/styles/components/sections/_modern-effects.scss +392 -0
  41. package/styles/components/sections/_modern-sections.scss +351 -0
  42. package/styles/components/sections/_perfect-system.scss +204 -0
  43. package/styles/components/sections/_section-animations.scss +331 -0
  44. package/styles/components/sections/_section-shell.scss +337 -0
  45. package/styles/components/sections/_section-types.generated.scss +30 -0
  46. package/styles/components/sections/_sections-all.scss +26 -0
  47. package/styles/components/sections/_sections-base.scss +334 -0
  48. package/styles/components/sections/_typography-system.scss +327 -0
  49. package/styles/components/sections/_ultra-compact-tokens.scss +375 -0
  50. package/styles/components/sections/_unified-section-style.scss +157 -0
  51. package/styles/components/sections/_utility-classes.scss +567 -0
  52. package/styles/components/sections/_visual-effects-library.scss +374 -0
  53. package/styles/core/_animations.scss +1498 -0
  54. package/styles/core/_bootstrap-reset.scss +445 -0
  55. package/styles/core/_color-helpers.scss +46 -0
  56. package/styles/core/_global-unified.scss +118 -0
  57. package/styles/core/_global.scss +73 -0
  58. package/styles/core/_mixins.scss +491 -0
  59. package/styles/core/_surface-layers.scss +76 -0
  60. package/styles/core/_utilities.scss +326 -0
  61. package/styles/core/_variables-unified.scss +57 -0
  62. package/styles/core/_variables.scss +36 -0
  63. package/styles/core/variables/_colors-source.scss +34 -0
  64. package/styles/core/variables/_colors-unified.scss +26 -0
  65. package/styles/core/variables/_colors.scss +21 -0
  66. package/styles/critical.scss +353 -0
  67. package/styles/design-system/_compact-theme.scss +159 -0
  68. package/styles/design-system/_section-base.scss +426 -0
  69. package/styles/design-system/_tokens.scss +237 -0
  70. package/styles/design-system/_unified-sections.scss +215 -0
  71. package/styles/layout/_feature-grid.scss +322 -0
  72. package/styles/layout/_masonry.scss +734 -0
  73. package/styles/layout/_tilt.scss +244 -0
  74. package/styles/micro-interactions.scss +583 -0
  75. package/styles/mixins/_section-mixins.scss +280 -0
  76. package/styles/non-critical.scss +643 -0
  77. package/styles/reset/_framework-reset.scss +457 -0
  78. package/styles/reset/_index.scss +14 -0
  79. package/styles/reset/_shadow-reset.scss +383 -0
  80. package/styles/responsive.scss +326 -0
  81. package/styles/themes.scss +573 -0
  82. package/styles/tokens/_index.scss +92 -0
  83. package/styles/tokens/_master.scss +1404 -0
  84. package/styles/tokens/_section-tokens.generated.scss +140 -0
  85. package/postcss.config.js +0 -81
  86. package/section-registry.json +0 -3864
  87. package/section-registry.schema.json +0 -264
@@ -0,0 +1,718 @@
1
+ /* ===================================================================
2
+ AI Card Styles - Unified with Docs App
3
+ =================================================================== */
4
+
5
+ /* Host element styles - transparent container with padding */
6
+ :host {
7
+ display: block;
8
+ padding: var(--osi-card-padding);
9
+ background: transparent !important;
10
+ background-color: transparent !important;
11
+
12
+ /* Responsive: reduce padding on mobile */
13
+ @media (max-width: 480px) {
14
+ padding: var(--osi-card-padding-mobile);
15
+ }
16
+ }
17
+
18
+ .ai-card-surface {
19
+ position: relative;
20
+ display: flex;
21
+ flex-direction: column;
22
+ width: 100%;
23
+ min-height: 0; // Allow content to determine height
24
+ overflow: visible;
25
+
26
+ /* CSS Isolation */
27
+ isolation: isolate;
28
+
29
+ /* Performance optimization: CSS containment (no paint to avoid clipping shadows/glow) */
30
+ contain: layout style;
31
+
32
+ /* Card base */
33
+ @include surface-ai-card-base;
34
+
35
+ /* ========== MAIN CARD SPECIFIC STYLING (Theme-aware) ========== */
36
+ /* These are specific to the main card container, not sections */
37
+
38
+ /* Background - follows theme but has card-specific styling */
39
+ background: var(--osi-card-background) !important;
40
+
41
+ /* Backdrop filter - blur effect for glassmorphism */
42
+ backdrop-filter: var(--osi-card-backdrop-filter) !important;
43
+ -webkit-backdrop-filter: var(--osi-card-backdrop-filter) !important;
44
+
45
+ /* Border - card-specific (stronger than section borders) */
46
+ border: var(--osi-card-border) !important;
47
+
48
+ /* Box shadow - card-specific elevation */
49
+ box-shadow: var(--osi-card-shadow) !important;
50
+
51
+ /* Padding - card-specific spacing */
52
+ padding: var(--osi-card-padding) !important;
53
+ padding-bottom: var(--osi-card-padding) !important;
54
+
55
+ /* Border radius - card-specific (larger than sections) */
56
+ border-radius: var(--osi-card-border-radius) !important;
57
+
58
+ /* Gap - specific space between header and sections */
59
+ gap: var(--osi-card-gap) !important;
60
+ /* ========== END CARD SPECIFIC STYLES ========== */
61
+
62
+ /* Smooth transitions */
63
+ transition:
64
+ var(--osi-card-transition-border), var(--osi-card-transition-background),
65
+ var(--osi-card-transition-shadow) !important;
66
+
67
+ /* Text rendering optimization */
68
+ -webkit-font-smoothing: antialiased;
69
+ -moz-osx-font-smoothing: grayscale;
70
+ text-rendering: optimizeLegibility;
71
+
72
+ * {
73
+ -webkit-font-smoothing: antialiased;
74
+ -moz-osx-font-smoothing: grayscale;
75
+ text-rendering: optimizeLegibility;
76
+ }
77
+
78
+ h1 {
79
+ transition: opacity 0.2s ease;
80
+ }
81
+ }
82
+
83
+ .ai-card-surface:hover {
84
+ @include surface-ai-card-hover;
85
+
86
+ /* ========== CARD HOVER - Theme-aware with card-specific effects ========== */
87
+ /* Background hover - card-specific (different from sections) */
88
+ background: var(--osi-card-background-hover) !important;
89
+
90
+ /* Border hover - card-specific accent */
91
+ border: var(--osi-card-border-hover) !important;
92
+
93
+ /* Box shadow hover - card-specific elevation */
94
+ box-shadow: var(--osi-card-shadow-hover) !important;
95
+ /* ========== END CARD HOVER ========== */
96
+ }
97
+
98
+ .ai-card-surface--fullscreen {
99
+ /* Fullscreen styling - use SAME background as normal card */
100
+ border: var(--osi-card-border-fullscreen) !important;
101
+ box-shadow: var(--osi-card-shadow-fullscreen) !important;
102
+ background: var(--osi-card-background-fullscreen) !important; /* Same as normal mode */
103
+ max-height: none !important;
104
+ max-width: none !important;
105
+ width: 100% !important;
106
+ overflow: visible !important;
107
+ padding: var(--osi-card-padding) !important;
108
+
109
+ /* Disable hover background change in fullscreen */
110
+ &:hover {
111
+ background: var(
112
+ --osi-card-background-fullscreen
113
+ ) !important; /* Keep same background on hover */
114
+ border: var(--osi-card-border-fullscreen) !important;
115
+ box-shadow: var(--osi-card-shadow-fullscreen) !important;
116
+ }
117
+
118
+ /* Disable all tilt effects in fullscreen - handled by _tilt.scss */
119
+ /* Tilt effects are disabled via .ai-card-surface--fullscreen selector in _tilt.scss */
120
+
121
+ /* Remove box-shadow glow from masonry items (sections) in fullscreen */
122
+ .masonry-item {
123
+ box-shadow: none !important;
124
+
125
+ &:hover {
126
+ box-shadow: none !important;
127
+ }
128
+ }
129
+
130
+ /* Compact header - invisible container */
131
+ .ai-card-header {
132
+ padding: 0 !important;
133
+ margin: 0 !important;
134
+ border: none !important;
135
+ background: transparent !important;
136
+ box-shadow: none !important;
137
+ }
138
+
139
+ .ai-card-title {
140
+ font-size: var(--text-sm) !important;
141
+ }
142
+ }
143
+
144
+ .ai-card-fullscreen-btn {
145
+ display: inline-flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: var(--osi-card-fullscreen-btn-size);
149
+ height: var(--osi-card-fullscreen-btn-size);
150
+ border-radius: var(--osi-card-fullscreen-btn-radius);
151
+ background: var(--osi-card-fullscreen-btn-bg);
152
+ border: var(--border-width-default) solid var(--osi-card-fullscreen-btn-border);
153
+ color: var(--foreground);
154
+ cursor: pointer;
155
+ transition: all 0.2s ease;
156
+ flex-shrink: 0;
157
+
158
+ /* Position absolutely in top-right corner */
159
+ position: absolute;
160
+ top: var(--osi-card-padding);
161
+ right: var(--osi-card-padding);
162
+ z-index: 100;
163
+ }
164
+
165
+ .ai-card-fullscreen-btn:hover {
166
+ transform: translateY(calc(var(--motion-distance-xs) * -1));
167
+ background: var(--osi-card-fullscreen-btn-bg-hover);
168
+ border-color: var(--osi-card-fullscreen-btn-border-hover);
169
+ box-shadow: var(--osi-card-fullscreen-btn-shadow);
170
+ }
171
+
172
+ .ai-card-fullscreen-btn:active {
173
+ transform: translateY(0);
174
+ }
175
+
176
+ .ai-card-fullscreen-btn__icon {
177
+ color: currentColor;
178
+ }
179
+
180
+ .ai-card-header {
181
+ position: relative;
182
+ z-index: 10;
183
+ /* INVISIBLE CONTAINER - No visual styling */
184
+ /* NO PADDING - completely removed */
185
+ padding: 0 !important;
186
+ padding-top: 0 !important;
187
+ padding-bottom: 0 !important;
188
+ padding-left: 0 !important;
189
+ padding-right: 0 !important;
190
+ padding-block: 0 !important;
191
+ padding-block-start: 0 !important;
192
+ padding-block-end: 0 !important;
193
+ padding-inline: 0 !important;
194
+ padding-inline-start: 0 !important;
195
+ padding-inline-end: 0 !important;
196
+ margin: 0 !important;
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: var(--card-element-gap-md);
200
+ /* NO BORDER - completely invisible */
201
+ border: none !important;
202
+ border-top: none !important;
203
+ border-bottom: none !important;
204
+ border-left: none !important;
205
+ border-right: none !important;
206
+ border-width: 0 !important;
207
+ border-style: none !important;
208
+ border-color: transparent !important;
209
+ border-image: none !important;
210
+ border-block: none !important;
211
+ border-block-start: none !important;
212
+ border-block-end: none !important;
213
+ border-inline: none !important;
214
+ border-inline-start: none !important;
215
+ border-inline-end: none !important;
216
+ /* NO BACKGROUND - completely transparent */
217
+ background: transparent !important;
218
+ background-color: transparent !important;
219
+ backdrop-filter: none !important;
220
+ /* NO BOX SHADOW - completely invisible */
221
+ box-shadow: none !important;
222
+ /* NO BORDER RADIUS - no visual styling */
223
+ border-radius: 0 !important;
224
+ /* NO OUTLINE - no visual styling */
225
+ outline: none !important;
226
+ outline-offset: 0 !important;
227
+ outline-width: 0 !important;
228
+ outline-style: none !important;
229
+ outline-color: transparent !important;
230
+ }
231
+
232
+ .ai-card-header::before {
233
+ display: none !important;
234
+ border: none !important;
235
+ border-top: none !important;
236
+ border-bottom: none !important;
237
+ border-left: none !important;
238
+ border-right: none !important;
239
+ border-width: 0 !important;
240
+ border-style: none !important;
241
+ border-color: transparent !important;
242
+ border-image: none !important;
243
+ border-block: none !important;
244
+ border-inline: none !important;
245
+ padding: 0 !important;
246
+ padding-block: 0 !important;
247
+ padding-inline: 0 !important;
248
+ outline: none !important;
249
+ outline-width: 0 !important;
250
+ outline-style: none !important;
251
+ outline-color: transparent !important;
252
+ box-shadow: none !important;
253
+ }
254
+
255
+ .ai-card-header::after {
256
+ display: none !important;
257
+ border: none !important;
258
+ border-top: none !important;
259
+ border-bottom: none !important;
260
+ border-left: none !important;
261
+ border-right: none !important;
262
+ border-width: 0 !important;
263
+ border-style: none !important;
264
+ border-color: transparent !important;
265
+ border-image: none !important;
266
+ border-block: none !important;
267
+ border-inline: none !important;
268
+ padding: 0 !important;
269
+ padding-block: 0 !important;
270
+ padding-inline: 0 !important;
271
+ outline: none !important;
272
+ outline-width: 0 !important;
273
+ outline-style: none !important;
274
+ outline-color: transparent !important;
275
+ box-shadow: none !important;
276
+ }
277
+
278
+ .ai-card-title-stack {
279
+ display: flex;
280
+ flex-direction: column;
281
+ gap: var(--card-element-gap-xs);
282
+ }
283
+
284
+ .ai-card-eyebrow {
285
+ font-size: var(--font-card-eyebrow);
286
+ letter-spacing: 0.08em;
287
+ text-transform: none;
288
+ color: var(--osi-card-eyebrow-color);
289
+ font-weight: 600;
290
+ opacity: 0.9;
291
+ }
292
+
293
+ /* Removed .ai-card-title-group - content moved up one level */
294
+
295
+ .ai-card-title {
296
+ font-size: var(--text-lg);
297
+ font-weight: 700;
298
+ color: var(--foreground);
299
+ letter-spacing: -0.01em;
300
+ line-height: 1.2;
301
+ text-transform: none;
302
+
303
+ /* ABSOLUTE NO BORDERS - MAXIMUM SPECIFICITY */
304
+ border: 0 !important;
305
+ border-width: 0 !important;
306
+ border-style: none !important;
307
+ border-color: transparent !important;
308
+ border-top: 0 !important;
309
+ border-right: 0 !important;
310
+ border-bottom: 0 !important;
311
+ border-left: 0 !important;
312
+ border-top: none !important;
313
+ border-right: none !important;
314
+ border-bottom: none !important;
315
+ border-left: none !important;
316
+ border-block: none !important;
317
+ border-inline: none !important;
318
+ border-image: none !important;
319
+ border-radius: 0 !important;
320
+
321
+ /* NO OUTLINES */
322
+ outline: none !important;
323
+ outline-width: 0 !important;
324
+ outline-style: none !important;
325
+ outline-color: transparent !important;
326
+ outline-offset: 0 !important;
327
+
328
+ /* NO PADDING */
329
+ padding: 0 !important;
330
+ padding-top: 0 !important;
331
+ padding-right: 0 !important;
332
+ padding-bottom: 0 !important;
333
+ padding-left: 0 !important;
334
+ padding-block: 0 !important;
335
+ padding-inline: 0 !important;
336
+
337
+ /* NO MARGIN */
338
+ margin: 0 !important;
339
+ margin-top: 0 !important;
340
+ margin-right: 0 !important;
341
+ margin-bottom: 0 !important;
342
+ margin-left: 0 !important;
343
+ margin-block: 0 !important;
344
+ margin-inline: 0 !important;
345
+
346
+ /* NO SHADOWS OR DECORATIONS */
347
+ box-shadow: none !important;
348
+ text-decoration: none !important;
349
+ text-decoration-line: none !important;
350
+ text-decoration-style: none !important;
351
+ text-decoration-color: transparent !important;
352
+ text-underline-offset: 0 !important;
353
+ text-decoration-thickness: 0 !important;
354
+
355
+ /* NO PSEUDO-ELEMENT BORDERS */
356
+ &::before,
357
+ &::after {
358
+ display: none !important;
359
+ border: none !important;
360
+ border-width: 0 !important;
361
+ border-style: none !important;
362
+ border-color: transparent !important;
363
+ border-top: none !important;
364
+ border-right: none !important;
365
+ border-bottom: none !important;
366
+ border-left: none !important;
367
+ border-block: none !important;
368
+ border-inline: none !important;
369
+ border-image: none !important;
370
+ outline: none !important;
371
+ outline-width: 0 !important;
372
+ outline-style: none !important;
373
+ outline-color: transparent !important;
374
+ box-shadow: none !important;
375
+ padding: 0 !important;
376
+ padding-top: 0 !important;
377
+ padding-right: 0 !important;
378
+ padding-bottom: 0 !important;
379
+ padding-left: 0 !important;
380
+ padding-block: 0 !important;
381
+ padding-inline: 0 !important;
382
+ margin: 0 !important;
383
+ content: none !important;
384
+ }
385
+ }
386
+
387
+ .ai-card-type-pill {
388
+ display: inline-flex;
389
+ align-items: center;
390
+ gap: var(--card-element-gap-sm);
391
+ padding: var(--tag-padding-sm);
392
+ border-radius: var(--radius-full);
393
+ border: var(--border-width-default) solid var(--osi-card-type-pill-border);
394
+ background: var(--osi-card-type-pill-bg);
395
+ text-transform: none;
396
+ letter-spacing: 0.05em;
397
+ font-size: var(--font-card-meta);
398
+ font-weight: 600;
399
+ color: var(--osi-card-type-pill-color);
400
+ }
401
+
402
+ .ai-card-meta {
403
+ display: flex;
404
+ flex-wrap: wrap;
405
+ align-items: center;
406
+ gap: var(--card-element-gap-md);
407
+ text-transform: none;
408
+ font-size: var(--font-card-meta);
409
+ letter-spacing: 0.05em;
410
+ color: var(--osi-card-meta-color);
411
+ }
412
+
413
+ .ai-card-meta__chip {
414
+ display: inline-flex;
415
+ align-items: stretch;
416
+ gap: var(--card-element-gap-md);
417
+ padding: var(--tag-padding-sm);
418
+ border-radius: var(--radius-full);
419
+ border: var(--border-width-default) solid var(--osi-card-meta-chip-border);
420
+ background: var(--osi-card-meta-chip-bg);
421
+ }
422
+
423
+ .ai-card-meta__chip-dot {
424
+ width: var(--icon-xs);
425
+ height: var(--icon-xs);
426
+ border-radius: var(--radius-full);
427
+ background: var(--osi-card-meta-chip-dot-primary);
428
+ box-shadow: var(--osi-card-meta-chip-dot-shadow);
429
+ }
430
+
431
+ .ai-card-meta__chip-dot--primary {
432
+ background: var(--osi-card-meta-chip-dot-primary);
433
+ }
434
+
435
+ .ai-card-meta__chip-dot--secondary {
436
+ background: var(--osi-card-meta-chip-dot-secondary);
437
+ }
438
+
439
+ .ai-card-meta__chip-dot--tertiary {
440
+ background: var(--osi-card-meta-chip-dot-tertiary);
441
+ }
442
+
443
+ .ai-card-meta__chip-content {
444
+ display: flex;
445
+ flex-direction: column;
446
+ gap: 0;
447
+ line-height: 1;
448
+ }
449
+
450
+ .ai-card-meta__chip-label {
451
+ font-size: 0.48rem;
452
+ letter-spacing: 0.05em;
453
+ text-transform: none;
454
+ color: var(--osi-card-meta-color);
455
+ font-weight: 600;
456
+ }
457
+
458
+ .ai-card-meta__chip-value {
459
+ font-size: var(--font-card-meta-value);
460
+ font-weight: 600;
461
+ color: var(--foreground);
462
+ letter-spacing: 0.01em;
463
+ }
464
+
465
+ .ai-card-body {
466
+ position: relative;
467
+ z-index: 10;
468
+ flex: 1;
469
+ /* INVISIBLE CONTAINER - No visual styling */
470
+ /* NO PADDING - completely removed */
471
+ padding: 0 !important;
472
+ padding-top: 0 !important;
473
+ padding-bottom: 0 !important;
474
+ padding-left: 0 !important;
475
+ padding-right: 0 !important;
476
+ padding-block: 0 !important;
477
+ padding-block-start: 0 !important;
478
+ padding-block-end: 0 !important;
479
+ padding-inline: 0 !important;
480
+ padding-inline-start: 0 !important;
481
+ padding-inline-end: 0 !important;
482
+ margin: 0 !important;
483
+ margin-bottom: 0 !important;
484
+ display: flex;
485
+ flex-direction: column;
486
+ gap: var(--osi-card-body-gap); /* Constant gap between sections */
487
+ min-height: 0;
488
+ /* Allow content to flow properly - no overflow clipping */
489
+ overflow: visible;
490
+ /* NO BORDER - completely invisible */
491
+ border: none !important;
492
+ border-top: none !important;
493
+ border-bottom: none !important;
494
+ border-left: none !important;
495
+ border-right: none !important;
496
+ border-width: 0 !important;
497
+ border-style: none !important;
498
+ border-color: transparent !important;
499
+ border-image: none !important;
500
+ border-block: none !important;
501
+ border-block-start: none !important;
502
+ border-block-end: none !important;
503
+ border-inline: none !important;
504
+ border-inline-start: none !important;
505
+ border-inline-end: none !important;
506
+ /* NO BACKGROUND - completely transparent */
507
+ background: transparent !important;
508
+ background-color: transparent !important;
509
+ backdrop-filter: none !important;
510
+ /* NO BOX SHADOW - completely invisible */
511
+ box-shadow: none !important;
512
+ /* NO BORDER RADIUS - no visual styling */
513
+ border-radius: 0 !important;
514
+ /* NO OUTLINE - no visual styling */
515
+ outline: none !important;
516
+ outline-offset: 0 !important;
517
+ outline-width: 0 !important;
518
+ outline-style: none !important;
519
+ outline-color: transparent !important;
520
+ }
521
+
522
+ .ai-card-body::before {
523
+ display: none !important;
524
+ border: none !important;
525
+ border-top: none !important;
526
+ border-bottom: none !important;
527
+ border-left: none !important;
528
+ border-right: none !important;
529
+ border-width: 0 !important;
530
+ border-style: none !important;
531
+ border-color: transparent !important;
532
+ border-image: none !important;
533
+ border-block: none !important;
534
+ border-inline: none !important;
535
+ padding: 0 !important;
536
+ padding-block: 0 !important;
537
+ padding-inline: 0 !important;
538
+ outline: none !important;
539
+ outline-width: 0 !important;
540
+ outline-style: none !important;
541
+ outline-color: transparent !important;
542
+ box-shadow: none !important;
543
+ }
544
+
545
+ .ai-card-body::after {
546
+ display: none !important;
547
+ border: none !important;
548
+ border-top: none !important;
549
+ border-bottom: none !important;
550
+ border-left: none !important;
551
+ border-right: none !important;
552
+ border-width: 0 !important;
553
+ border-style: none !important;
554
+ border-color: transparent !important;
555
+ border-image: none !important;
556
+ border-block: none !important;
557
+ border-inline: none !important;
558
+ padding: 0 !important;
559
+ padding-block: 0 !important;
560
+ padding-inline: 0 !important;
561
+ outline: none !important;
562
+ outline-width: 0 !important;
563
+ outline-style: none !important;
564
+ outline-color: transparent !important;
565
+ box-shadow: none !important;
566
+ }
567
+
568
+ /* Actions are now direct children of .ai-card-body - no wrapper container */
569
+ /* Removed .ai-card-actions container - actions are now direct children */
570
+
571
+ .ai-card-action {
572
+ position: relative;
573
+ overflow: hidden;
574
+ display: inline-flex;
575
+ align-items: center;
576
+ justify-content: center;
577
+ gap: var(--card-element-gap-xl);
578
+ padding: var(--space-2) var(--space-5);
579
+ border-radius: var(--radius-md);
580
+ font-weight: 600;
581
+ font-size: var(--font-card-action, 0.875rem);
582
+ letter-spacing: 0.01em;
583
+ border: var(--border-width-default) solid transparent;
584
+ text-transform: none;
585
+ cursor: pointer;
586
+ transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
587
+ }
588
+
589
+ .ai-card-action--primary {
590
+ background: var(--osi-card-action-primary-bg);
591
+ color: var(--osi-card-action-primary-color);
592
+ border-color: var(--osi-card-action-primary-border);
593
+ box-shadow: var(--osi-card-action-primary-shadow);
594
+ }
595
+
596
+ .ai-card-action--primary:hover {
597
+ transform: translateY(calc(var(--motion-distance-xs) * -0.5));
598
+ box-shadow: var(--osi-card-action-primary-shadow-hover);
599
+ background: var(--osi-card-action-primary-bg-hover);
600
+ border-color: var(--osi-card-action-primary-bg);
601
+ }
602
+
603
+ .ai-card-action--secondary {
604
+ background: var(--osi-card-action-secondary-bg);
605
+ color: var(--osi-card-action-secondary-color);
606
+ border-color: var(--osi-card-action-secondary-border);
607
+ box-shadow: var(--osi-card-action-secondary-shadow);
608
+ }
609
+
610
+ .ai-card-action--secondary:hover {
611
+ transform: translateY(calc(var(--motion-distance-xs) * -0.5));
612
+ border-color: var(--osi-card-action-secondary-border-hover);
613
+ box-shadow: var(--osi-card-action-secondary-shadow-hover);
614
+ background: var(--osi-card-action-secondary-bg-hover);
615
+ }
616
+
617
+ .ai-card-action__shine {
618
+ position: absolute;
619
+ inset: 0;
620
+ background: var(--osi-card-shine-gradient-primary);
621
+ opacity: 0;
622
+ transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
623
+ pointer-events: none;
624
+ border-radius: inherit;
625
+ }
626
+
627
+ .ai-card-action:hover .ai-card-action__shine {
628
+ opacity: 1;
629
+ }
630
+
631
+ .ai-card-action--primary .ai-card-action__shine {
632
+ background: var(--osi-card-shine-gradient-primary);
633
+ }
634
+
635
+ .ai-card-action--secondary .ai-card-action__shine {
636
+ background: var(--osi-card-shine-gradient-secondary);
637
+ }
638
+
639
+ .ai-card-action__content {
640
+ position: relative;
641
+ z-index: 10;
642
+ display: inline-flex;
643
+ align-items: center;
644
+ gap: var(--card-element-gap-lg);
645
+ }
646
+
647
+ .ai-card-action__icon {
648
+ color: currentColor;
649
+ opacity: 0.9;
650
+ transition:
651
+ transform 300ms cubic-bezier(0.4, 0, 0.2, 1),
652
+ opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
653
+ }
654
+
655
+ .ai-card-action__label {
656
+ font-weight: 600;
657
+ letter-spacing: 0.01em;
658
+ transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
659
+ }
660
+
661
+ .ai-card-action:hover .ai-card-action__icon {
662
+ transform: translateX(var(--motion-distance-xs));
663
+ opacity: 1;
664
+ }
665
+
666
+ .ai-card-action:hover .ai-card-action__label {
667
+ transform: translateX(calc(var(--motion-distance-xs) * 0.5));
668
+ }
669
+
670
+ .ai-card-footnote {
671
+ margin-top: auto;
672
+ /* Add bottom margin for proper spacing */
673
+ margin-bottom: 0 !important;
674
+ /* NO PADDING - compact design */
675
+ padding: 0 !important;
676
+ padding-bottom: 0 !important;
677
+ /* NO BORDER - removed border */
678
+ border: none !important;
679
+ border-top: none !important;
680
+ text-align: center;
681
+ /* MUCH SMALLER FONT - reduced font size */
682
+ font-size: var(--text-xs) !important; /* Reduced from default */
683
+ letter-spacing: 0.08em;
684
+ text-transform: none;
685
+ color: var(--osi-card-footnote-color);
686
+ line-height: 1.2;
687
+ }
688
+
689
+ /* All sizing is now continuous via clamp() - no discrete breakpoints */
690
+
691
+ @media (prefers-reduced-motion: reduce) {
692
+ .ai-card-surface {
693
+ transition: none !important;
694
+ transform: none !important;
695
+ box-shadow: var(--card-box-shadow) !important;
696
+ }
697
+
698
+ .ai-card-surface::before {
699
+ opacity: 0 !important;
700
+ }
701
+
702
+ .ai-card-surface:hover {
703
+ transform: none !important;
704
+ }
705
+ }
706
+
707
+ /* Light theme - handled automatically by theme system */
708
+ /* No overrides needed - theme variables handle light/dark/day/night */
709
+ /* Variables used:
710
+ * - var(--ai-card-background) adapts to theme
711
+ * - var(--theme-ai-card-border) adapts to theme
712
+ * - var(--theme-ai-card-box-shadow) adapts to theme
713
+ *
714
+ * Theme definitions in tokens/_master.scss:
715
+ * - Light theme: --theme-ai-card-background: #ffffff
716
+ * - Dark theme: --theme-ai-card-background: #141414
717
+ * - Base theme: --theme-ai-card-background: var(--background)
718
+ */