ga-toasts 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/toasts.css ADDED
@@ -0,0 +1,1644 @@
1
+ /**
2
+ * Modernized Toast notification styles for Genie AI Plugin
3
+ * Enhanced with modern CSS features, better animations, and improved UX
4
+ */
5
+
6
+ /* Toast CSS Variables - Enhanced */
7
+ :root {
8
+ /* Toast Progress Background Colors */
9
+ --ga-primary-rgb: 0, 115, 170;
10
+ --ga-success-rgb: 0, 163, 42;
11
+ --ga-error-rgb: 214, 54, 56;
12
+ --ga-warning-rgb: 219, 166, 23;
13
+ --ga-info-rgb: 114, 174, 230;
14
+ --ga-secondary-rgb: 108, 117, 125;
15
+
16
+ /* Toast Animation Durations */
17
+ --ga-toast-duration-fast: 150ms;
18
+ --ga-toast-duration-normal: 300ms;
19
+ --ga-toast-duration-slow: 500ms;
20
+
21
+ /* Toast Blur Effects */
22
+ --ga-toast-blur-light: blur(10px);
23
+ --ga-toast-blur-medium: blur(20px);
24
+ --ga-toast-blur-heavy: blur(30px);
25
+
26
+ /* Toast Opacity Levels */
27
+ --ga-toast-opacity-light: 0.1;
28
+ --ga-toast-opacity-medium: 0.2;
29
+ --ga-toast-opacity-heavy: 0.3;
30
+ }
31
+
32
+ /* Toast Container */
33
+ .ga-toast-container {
34
+ position: fixed;
35
+ z-index: var(--ga-z-toast);
36
+ pointer-events: none;
37
+ max-width: 100vw;
38
+ max-height: 100vh;
39
+ overflow: hidden;
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: var(--ga-space-2);
43
+ }
44
+
45
+ /* Toast Container Positions */
46
+ .ga-toast-container-top-start {
47
+ top: var(--ga-space-lg);
48
+ left: var(--ga-space-lg);
49
+ }
50
+
51
+ .ga-toast-container-top-center {
52
+ top: var(--ga-space-lg);
53
+ left: 50%;
54
+ transform: translateX(-50%);
55
+ }
56
+
57
+ .ga-toast-container-top-end {
58
+ top: var(--ga-space-10);
59
+ right: var(--ga-space-lg);
60
+ }
61
+
62
+ .ga-toast-container-middle-start {
63
+ top: 50%;
64
+ left: var(--ga-space-lg);
65
+ transform: translateY(-50%);
66
+ }
67
+
68
+ .ga-toast-container-middle-center {
69
+ top: 50%;
70
+ left: 50%;
71
+ transform: translate(-50%, -50%);
72
+ }
73
+
74
+ .ga-toast-container-middle-end {
75
+ top: 50%;
76
+ right: var(--ga-space-lg);
77
+ transform: translateY(-50%);
78
+ }
79
+
80
+ .ga-toast-container-bottom-start {
81
+ bottom: var(--ga-space-lg);
82
+ left: var(--ga-space-lg);
83
+ }
84
+
85
+ .ga-toast-container-bottom-center {
86
+ bottom: var(--ga-space-lg);
87
+ left: 50%;
88
+ transform: translateX(-50%);
89
+ }
90
+
91
+ .ga-toast-container-bottom-end {
92
+ bottom: var(--ga-space-lg);
93
+ right: var(--ga-space-lg);
94
+ }
95
+
96
+ /* Toast Base Styles - Modernized */
97
+ .ga-toast {
98
+ position: relative;
99
+ display: flex;
100
+ flex-direction: column;
101
+ align-items: flex-start;
102
+ width: 380px;
103
+ max-width: 100%;
104
+ padding: var(--ga-space-3) var(--ga-space-4);
105
+ margin-bottom: var(--ga-space-md);
106
+ color: var(--ga-text-primary);
107
+ background: linear-gradient(135deg, var(--ga-bg-primary), var(--ga-bg-secondary));
108
+ background-clip: padding-box;
109
+ border: var(--ga-border-1) solid var(--ga-border-light);
110
+ border-radius: var(--ga-radius-xl);
111
+ box-shadow: none;
112
+ opacity: 0;
113
+ transform: translateX(100%) scale(0.95);
114
+ transition:
115
+ opacity var(--ga-duration-300) var(--ga-ease-out),
116
+ transform var(--ga-duration-300) var(--ga-ease-bounce),
117
+ box-shadow var(--ga-duration-150) var(--ga-ease-out);
118
+ pointer-events: auto;
119
+ font-family: var(--ga-font-sans);
120
+ font-size: var(--ga-text-sm);
121
+ line-height: var(--ga-leading-relaxed);
122
+ word-wrap: break-word;
123
+ overflow-wrap: break-word;
124
+ backdrop-filter: var(--ga-bg-blur);
125
+ isolation: isolate;
126
+ /* Ensure inner elements like progress bar stay visually inside rounded corners */
127
+ overflow: hidden;
128
+ /* Enable smoother font rendering for crisper text */
129
+ -webkit-font-smoothing: antialiased;
130
+ -moz-osx-font-smoothing: grayscale;
131
+ text-rendering: optimizeLegibility;
132
+ /* Allow horizontal swipe while keeping vertical scroll natural */
133
+ touch-action: pan-y;
134
+ }
135
+
136
+ .ga-toast::before {
137
+ content: '';
138
+ position: absolute;
139
+ inset: 0;
140
+ background: inherit;
141
+ border-radius: inherit;
142
+ filter: blur(20px);
143
+ opacity: 0.6;
144
+ z-index: -1;
145
+ transform: scale(1.1);
146
+ }
147
+
148
+ .ga-toast:hover {
149
+ box-shadow: none;
150
+ transform: translateY(-2px);
151
+ }
152
+
153
+ /* Toast Show/Hide States */
154
+ .ga-toast.show,
155
+ .ga-toast.ga-show {
156
+ opacity: 1;
157
+ transform: translateX(0) scale(1);
158
+ }
159
+
160
+ .ga-toast.hide,
161
+ .ga-toast.ga-hide {
162
+ opacity: 0;
163
+ transform: translateX(100%) scale(0.9);
164
+ transition:
165
+ opacity var(--ga-duration-200) var(--ga-ease-in),
166
+ transform var(--ga-duration-200) var(--ga-ease-in);
167
+ }
168
+
169
+ .ga-toast:last-child {
170
+ margin-bottom: 0;
171
+ }
172
+
173
+ /* Toast Header */
174
+ .ga-toast-header {
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: space-between;
178
+ width: 100%;
179
+ margin-bottom: var(--ga-space-2);
180
+ padding-right: var(--ga-space-8);
181
+ }
182
+
183
+ .ga-toast-header-left {
184
+ display: flex;
185
+ align-items: center;
186
+ flex-grow: 1;
187
+ gap: var(--ga-space-3);
188
+ }
189
+
190
+ .ga-toast-title {
191
+ margin: 0;
192
+ font-size: var(--ga-text-base);
193
+ font-weight: var(--ga-font-semibold);
194
+ color: var(--ga-text-primary);
195
+ flex: 1;
196
+ min-width: 0;
197
+ background: linear-gradient(135deg, var(--ga-text-primary), var(--ga-text-secondary));
198
+ background-clip: text;
199
+ -webkit-background-clip: text;
200
+ letter-spacing: var(--ga-tracking-tight);
201
+ }
202
+
203
+ .ga-toast-title-truncate {
204
+ white-space: nowrap;
205
+ overflow: hidden;
206
+ text-overflow: ellipsis;
207
+ }
208
+
209
+ .ga-toast-status {
210
+ margin-left: var(--ga-space-3);
211
+ padding: var(--ga-space-1) var(--ga-space-2);
212
+ border-radius: var(--ga-radius-full);
213
+ font-size: var(--ga-text-2xs);
214
+ text-transform: uppercase;
215
+ letter-spacing: var(--ga-tracking-wide);
216
+ background: var(--ga-bg-tertiary);
217
+ color: var(--ga-text-secondary);
218
+ flex-shrink: 0;
219
+ }
220
+
221
+ .ga-toast-time {
222
+ font-size: var(--ga-text-xs);
223
+ color: var(--ga-text-muted);
224
+ flex-shrink: 0;
225
+ font-weight: var(--ga-font-medium);
226
+ padding: var(--ga-space-1) var(--ga-space-2);
227
+ background: var(--ga-bg-tertiary);
228
+ border-radius: var(--ga-radius-md);
229
+ font-variant-numeric: tabular-nums;
230
+ }
231
+
232
+ /* Toast Body */
233
+ .ga-toast-body {
234
+ flex: 1;
235
+ padding: 0;
236
+ /* Slightly softer body text for better hierarchy under the title */
237
+ color: var(--ga-text-secondary);
238
+ min-width: 0;
239
+ padding-right: var(--ga-space-8);
240
+ line-height: var(--ga-leading-relaxed);
241
+ }
242
+
243
+ .ga-toast-message {
244
+ margin: 0;
245
+ }
246
+
247
+ .ga-toast-meta {
248
+ font-size: var(--ga-text-xs);
249
+ color: var(--ga-text-muted);
250
+ margin-bottom: var(--ga-space-1);
251
+ }
252
+
253
+ .ga-toast-body:last-child {
254
+ margin-bottom: 0;
255
+ }
256
+
257
+ .ga-toast-body p {
258
+ margin: 0 0 var(--ga-space-1-5) 0;
259
+ }
260
+
261
+ .ga-toast-body p:last-child {
262
+ margin-bottom: 0;
263
+ }
264
+
265
+ .ga-toast-body a {
266
+ color: var(--ga-primary);
267
+ text-decoration: underline;
268
+ font-weight: var(--ga-font-medium);
269
+ }
270
+
271
+ .ga-toast-body a:hover {
272
+ text-decoration: none;
273
+ }
274
+
275
+ .ga-toast-body p:last-child {
276
+ margin-bottom: 0;
277
+ }
278
+
279
+ /* Toast Close Button - Modernized */
280
+ .ga-toast-close {
281
+ position: absolute;
282
+ top: var(--ga-space-3);
283
+ right: var(--ga-space-3);
284
+ z-index: 1;
285
+ display: flex;
286
+ align-items: center;
287
+ justify-content: center;
288
+ width: 32px;
289
+ height: 32px;
290
+ padding: 0;
291
+ margin: 0;
292
+ color: var(--ga-text-muted);
293
+ background: rgba(255, 255, 255, 0.1);
294
+ border: none;
295
+ font-size: var(--ga-text-lg);
296
+ font-weight: var(--ga-font-bold);
297
+ line-height: 1;
298
+ text-decoration: none;
299
+ cursor: pointer;
300
+ border-radius: var(--ga-radius-full);
301
+ transition: all var(--ga-duration-200) var(--ga-ease-out);
302
+ flex-shrink: 0;
303
+ backdrop-filter: blur(10px);
304
+ }
305
+
306
+ .ga-toast-close:hover {
307
+ color: var(--ga-text-primary);
308
+ background: rgba(255, 255, 255, 0.2);
309
+ transform: scale(1.1);
310
+ }
311
+
312
+ .ga-toast-close:focus {
313
+ outline: 2px solid var(--ga-border-focus);
314
+ outline-offset: 2px;
315
+ }
316
+
317
+ .ga-toast-close:active {
318
+ transform: scale(0.95);
319
+ }
320
+
321
+ .ga-toast-close::before {
322
+ /* Use a more natural close glyph and rely on flex centering from the button */
323
+ content: "×";
324
+ display: block;
325
+ width: 100%;
326
+ height: 100%;
327
+ text-align: center;
328
+ line-height: 32px;
329
+ font-size: 16px;
330
+ margin: 0;
331
+ }
332
+
333
+ /* Toast Icon - Enhanced */
334
+ .ga-toast-icon {
335
+ flex-shrink: 0;
336
+ margin-right: var(--ga-space-3);
337
+ margin-top: 2px;
338
+ padding: var(--ga-space-2);
339
+ border-radius: var(--ga-radius-md);
340
+ display: flex;
341
+ align-items: center;
342
+ justify-content: center;
343
+ background: rgba(255, 255, 255, 0.1);
344
+ backdrop-filter: blur(10px);
345
+ }
346
+
347
+ .ga-toast-icon svg {
348
+ width: 100%;
349
+ height: 100%;
350
+ display: flex;
351
+ align-items: center;
352
+ }
353
+
354
+ /* Toast Content Wrapper */
355
+ .ga-toast-content {
356
+ flex: 1;
357
+ min-width: 0;
358
+ }
359
+
360
+ /* Toast Variants - Enhanced with Modern Gradients */
361
+ .ga-toast-primary {
362
+ border-left: 4px solid var(--ga-primary);
363
+ background: linear-gradient(135deg,
364
+ var(--ga-primary-light),
365
+ rgba(255, 255, 255, 0.9)
366
+ );
367
+ }
368
+
369
+ .ga-toast-primary .ga-toast-icon {
370
+ color: var(--ga-primary);
371
+ background: linear-gradient(135deg, var(--ga-primary), var(--ga-primary-hover));
372
+ color: white;
373
+ }
374
+
375
+ .ga-toast-success {
376
+ border-left: 4px solid var(--ga-success);
377
+ background: linear-gradient(135deg,
378
+ var(--ga-success-light),
379
+ rgba(255, 255, 255, 0.9)
380
+ );
381
+ }
382
+
383
+ .ga-toast-success .ga-toast-icon {
384
+ color: var(--ga-success);
385
+ background: linear-gradient(135deg, var(--ga-success), var(--ga-success-hover));
386
+ color: white;
387
+ }
388
+
389
+ .ga-toast-error {
390
+ border-left: 4px solid var(--ga-error);
391
+ background: linear-gradient(135deg,
392
+ var(--ga-error-light),
393
+ rgba(255, 255, 255, 0.9)
394
+ );
395
+ }
396
+
397
+ .ga-toast-error .ga-toast-icon {
398
+ color: var(--ga-error);
399
+ background: linear-gradient(135deg, var(--ga-error), var(--ga-error-hover));
400
+ color: white;
401
+ }
402
+
403
+ .ga-toast-warning {
404
+ border-left: 4px solid var(--ga-warning);
405
+ background: linear-gradient(135deg,
406
+ var(--ga-warning-light),
407
+ rgba(255, 255, 255, 0.9)
408
+ );
409
+ }
410
+
411
+ .ga-toast-warning .ga-toast-icon {
412
+ color: var(--ga-warning);
413
+ background: linear-gradient(135deg, var(--ga-warning), var(--ga-warning-hover));
414
+ color: white;
415
+ }
416
+
417
+ .ga-toast-info {
418
+ border-left: 4px solid var(--ga-info);
419
+ background: linear-gradient(135deg,
420
+ var(--ga-info-light),
421
+ rgba(255, 255, 255, 0.9)
422
+ );
423
+ }
424
+
425
+ .ga-toast-info .ga-toast-icon {
426
+ color: var(--ga-info);
427
+ background: linear-gradient(135deg, var(--ga-info), var(--ga-info-hover));
428
+ color: white;
429
+ }
430
+
431
+ .ga-toast-secondary {
432
+ border-left: 4px solid var(--ga-secondary);
433
+ background: linear-gradient(135deg,
434
+ var(--ga-secondary-light),
435
+ rgba(255, 255, 255, 0.9)
436
+ );
437
+ }
438
+
439
+ .ga-toast-secondary .ga-toast-icon {
440
+ color: var(--ga-secondary);
441
+ background: linear-gradient(135deg, var(--ga-secondary), var(--ga-secondary-hover));
442
+ color: white;
443
+ }
444
+
445
+ /* Filled Variants - Enhanced */
446
+ .ga-toast-primary-filled {
447
+ background: linear-gradient(135deg, var(--ga-primary), var(--ga-primary-hover));
448
+ border-color: var(--ga-primary);
449
+ color: var(--ga-text-inverse);
450
+ }
451
+
452
+ .ga-toast-primary-filled .ga-toast-title,
453
+ .ga-toast-primary-filled .ga-toast-body,
454
+ .ga-toast-primary-filled .ga-toast-close {
455
+ color: var(--ga-text-inverse);
456
+ }
457
+
458
+ .ga-toast-primary-filled .ga-toast-close:hover {
459
+ background-color: rgba(255, 255, 255, 0.2);
460
+ }
461
+
462
+ .ga-toast-success-filled {
463
+ background: linear-gradient(135deg, var(--ga-success), var(--ga-success-hover));
464
+ border-color: var(--ga-success);
465
+ color: var(--ga-text-inverse);
466
+ }
467
+
468
+ .ga-toast-success-filled .ga-toast-title,
469
+ .ga-toast-success-filled .ga-toast-body,
470
+ .ga-toast-success-filled .ga-toast-close {
471
+ color: var(--ga-text-inverse);
472
+ }
473
+
474
+ .ga-toast-success-filled .ga-toast-close:hover {
475
+ background-color: rgba(255, 255, 255, 0.2);
476
+ }
477
+
478
+ .ga-toast-error-filled {
479
+ background: linear-gradient(135deg, var(--ga-error), var(--ga-error-hover));
480
+ border-color: var(--ga-error);
481
+ color: var(--ga-text-inverse);
482
+ }
483
+
484
+ .ga-toast-error-filled .ga-toast-title,
485
+ .ga-toast-error-filled .ga-toast-body,
486
+ .ga-toast-error-filled .ga-toast-close {
487
+ color: var(--ga-text-inverse);
488
+ }
489
+
490
+ .ga-toast-error-filled .ga-toast-close:hover {
491
+ background-color: rgba(255, 255, 255, 0.2);
492
+ }
493
+
494
+ .ga-toast-warning-filled {
495
+ background: linear-gradient(135deg, var(--ga-warning), var(--ga-warning-hover));
496
+ border-color: var(--ga-warning);
497
+ color: var(--ga-text-inverse);
498
+ }
499
+
500
+ .ga-toast-warning-filled .ga-toast-title,
501
+ .ga-toast-warning-filled .ga-toast-body,
502
+ .ga-toast-warning-filled .ga-toast-close {
503
+ color: var(--ga-text-inverse);
504
+ }
505
+
506
+ .ga-toast-warning-filled .ga-toast-close:hover {
507
+ background-color: rgba(255, 255, 255, 0.2);
508
+ }
509
+
510
+ .ga-toast-info-filled {
511
+ background: linear-gradient(135deg, var(--ga-info), var(--ga-info-hover));
512
+ border-color: var(--ga-info);
513
+ color: var(--ga-text-inverse);
514
+ }
515
+
516
+ .ga-toast-info-filled .ga-toast-title,
517
+ .ga-toast-info-filled .ga-toast-body,
518
+ .ga-toast-info-filled .ga-toast-close {
519
+ color: var(--ga-text-inverse);
520
+ }
521
+
522
+ .ga-toast-info-filled .ga-toast-close:hover {
523
+ background-color: rgba(255, 255, 255, 0.2);
524
+ }
525
+
526
+ /* Light Variants - Enhanced */
527
+ .ga-toast-primary-light {
528
+ background: linear-gradient(135deg,
529
+ var(--ga-primary-light),
530
+ rgba(240, 246, 252, 0.8)
531
+ );
532
+ border-color: var(--ga-primary-border);
533
+ backdrop-filter: blur(20px);
534
+ }
535
+
536
+ .ga-toast-success-light {
537
+ background: linear-gradient(135deg,
538
+ var(--ga-success-light),
539
+ rgba(240, 248, 241, 0.8)
540
+ );
541
+ border-color: var(--ga-success-border);
542
+ backdrop-filter: blur(20px);
543
+ }
544
+
545
+ .ga-toast-error-light {
546
+ background: linear-gradient(135deg,
547
+ var(--ga-error-light),
548
+ rgba(252, 240, 241, 0.8)
549
+ );
550
+ border-color: var(--ga-error-border);
551
+ backdrop-filter: blur(20px);
552
+ }
553
+
554
+ .ga-toast-warning-light {
555
+ background: linear-gradient(135deg,
556
+ var(--ga-warning-light),
557
+ rgba(252, 249, 232, 0.8)
558
+ );
559
+ border-color: var(--ga-warning-border);
560
+ backdrop-filter: blur(20px);
561
+ }
562
+
563
+ .ga-toast-info-light {
564
+ background: linear-gradient(135deg,
565
+ var(--ga-info-light),
566
+ rgba(240, 246, 252, 0.8)
567
+ );
568
+ border-color: var(--ga-info-border);
569
+ backdrop-filter: blur(20px);
570
+ }
571
+
572
+ /* Toast Sizes */
573
+ .ga-toast-xs {
574
+ width: 280px;
575
+ padding: var(--ga-space-3);
576
+ font-size: var(--ga-text-xs);
577
+ }
578
+
579
+ .ga-toast-xs .ga-toast-title {
580
+ font-size: var(--ga-text-sm);
581
+ }
582
+
583
+ .ga-toast-xs .ga-toast-body {
584
+ font-size: var(--ga-text-xs);
585
+ }
586
+
587
+ .ga-toast-xs .ga-toast-icon {
588
+ width: var(--ga-icon-sm);
589
+ height: var(--ga-icon-sm);
590
+ margin-right: var(--ga-space-2);
591
+ }
592
+
593
+ .ga-toast-sm {
594
+ width: 320px;
595
+ padding: var(--ga-space-4);
596
+ }
597
+
598
+ .ga-toast-sm .ga-toast-title {
599
+ font-size: var(--ga-text-sm);
600
+ }
601
+
602
+ .ga-toast-sm .ga-toast-body {
603
+ font-size: var(--ga-text-sm);
604
+ }
605
+
606
+ .ga-toast-sm .ga-toast-icon {
607
+ width: var(--ga-icon-md);
608
+ height: var(--ga-icon-md);
609
+ }
610
+
611
+ .ga-toast-lg {
612
+ width: 480px;
613
+ padding: var(--ga-space-6);
614
+ }
615
+
616
+ .ga-toast-lg .ga-toast-title {
617
+ font-size: var(--ga-text-lg);
618
+ }
619
+
620
+ .ga-toast-lg .ga-toast-body {
621
+ font-size: var(--ga-text-base);
622
+ }
623
+
624
+ .ga-toast-lg .ga-toast-icon {
625
+ width: var(--ga-icon-xl);
626
+ height: var(--ga-icon-xl);
627
+ }
628
+
629
+ .ga-toast-xl {
630
+ width: 580px;
631
+ padding: var(--ga-space-8);
632
+ }
633
+
634
+ .ga-toast-xl .ga-toast-title {
635
+ font-size: var(--ga-text-xl);
636
+ }
637
+
638
+ .ga-toast-xl .ga-toast-body {
639
+ font-size: var(--ga-text-lg);
640
+ }
641
+
642
+ .ga-toast-xl .ga-toast-icon {
643
+ width: var(--ga-icon-2xl);
644
+ height: var(--ga-icon-2xl);
645
+ }
646
+
647
+ /* Toast Progress Bar - Enhanced */
648
+ .ga-toast-progress {
649
+ position: absolute;
650
+ bottom: 0;
651
+ /* Inset slightly from the toast edges so corners stay visually rounded */
652
+ right: 2px;
653
+ height: 3px;
654
+ width: calc(100% - 4px);
655
+ background: linear-gradient(90deg,
656
+ var(--ga-primary),
657
+ var(--ga-primary-hover),
658
+ var(--ga-primary-light)
659
+ );
660
+ /* Fully rounded bar to avoid any squarish edge */
661
+ border-radius: 999px;
662
+ transform: scaleX(1);
663
+ /* Anchor the progress to the right edge so it peeks from the right when stacked */
664
+ transform-origin: right center;
665
+ transition: transform linear;
666
+ z-index: 1;
667
+ box-shadow:
668
+ 0 0 8px rgba(0, 115, 170, 0.4),
669
+ 0 0 4px rgba(0, 115, 170, 0.2);
670
+ overflow: hidden;
671
+ }
672
+
673
+ .ga-toast-progress-top {
674
+ top: 0;
675
+ bottom: auto;
676
+ }
677
+
678
+ .ga-toast-progress::before {
679
+ content: '';
680
+ position: absolute;
681
+ top: 0;
682
+ left: 0;
683
+ right: 0;
684
+ bottom: 0;
685
+ background: linear-gradient(90deg,
686
+ transparent 0%,
687
+ rgba(255, 255, 255, 0.3) 50%,
688
+ transparent 100%
689
+ );
690
+ animation: ga-progress-shimmer 2s infinite;
691
+ border-radius: inherit;
692
+ }
693
+
694
+ .ga-toast-progress::after {
695
+ content: '';
696
+ position: absolute;
697
+ top: 0;
698
+ left: 0;
699
+ right: 0;
700
+ bottom: 0;
701
+ background: linear-gradient(90deg,
702
+ rgba(255, 255, 255, 0.1) 0%,
703
+ rgba(255, 255, 255, 0.4) 50%,
704
+ rgba(255, 255, 255, 0.1) 100%
705
+ );
706
+ border-radius: inherit;
707
+ }
708
+
709
+ /* Toast Background Fill - New Feature */
710
+ .ga-toast-background-fill {
711
+ position: absolute;
712
+ top: 0;
713
+ left: 0;
714
+ right: 0;
715
+ bottom: 0;
716
+ border-radius: inherit;
717
+ z-index: -1;
718
+ opacity: 1;
719
+ transition: opacity linear;
720
+ pointer-events: none;
721
+ }
722
+
723
+ .ga-toast-bg-primary {
724
+ background: rgba(var(--ga-primary-rgb, 0, 115, 170), 0.1);
725
+ }
726
+
727
+ .ga-toast-bg-success {
728
+ background: rgba(var(--ga-success-rgb, 0, 163, 42), 0.1);
729
+ }
730
+
731
+ .ga-toast-bg-error {
732
+ background: rgba(var(--ga-error-rgb, 214, 54, 56), 0.1);
733
+ }
734
+
735
+ .ga-toast-bg-warning {
736
+ background: rgba(var(--ga-warning-rgb, 219, 166, 23), 0.1);
737
+ }
738
+
739
+ .ga-toast-bg-info {
740
+ background: rgba(var(--ga-info-rgb, 114, 174, 230), 0.1);
741
+ }
742
+
743
+ .ga-toast-bg-secondary {
744
+ background: rgba(var(--ga-secondary-rgb, 108, 117, 125), 0.1);
745
+ }
746
+
747
+ /* Pause on Hover State */
748
+ .ga-toast-paused .ga-toast-background-fill,
749
+ .ga-toast-paused .ga-toast-progress {
750
+ animation-play-state: paused;
751
+ transition: none;
752
+ transform: scaleX(var(--current-progress, 1)) !important;
753
+ }
754
+
755
+ .ga-toast-paused {
756
+ transform: translateY(-1px) scale(1.01);
757
+ box-shadow:
758
+ var(--ga-shadow-lg),
759
+ 0 0 0 1px rgba(255, 255, 255, 0.15) inset,
760
+ 0 1px 0 rgba(255, 255, 255, 0.2) inset;
761
+ }
762
+
763
+ .ga-toast-paused .ga-toast-progress::before {
764
+ animation-play-state: paused;
765
+ }
766
+
767
+ /* Modern Toast Enhancements */
768
+ .ga-toast-modern {
769
+ backdrop-filter: blur(20px);
770
+ border: 1px solid rgba(255, 255, 255, 0.2);
771
+ }
772
+
773
+ .ga-toast-glass {
774
+ background: rgba(255, 255, 255, 0.1);
775
+ backdrop-filter: blur(20px);
776
+ border: 1px solid rgba(255, 255, 255, 0.2);
777
+ }
778
+
779
+ .ga-toast-progress.ga-toast-progress-primary {
780
+ background: linear-gradient(90deg, var(--ga-primary), var(--ga-primary-hover), var(--ga-primary-light));
781
+ box-shadow:
782
+ 0 0 8px rgba(0, 115, 170, 0.4),
783
+ 0 0 4px rgba(0, 115, 170, 0.2);
784
+ }
785
+
786
+ .ga-toast-progress.ga-toast-progress-success {
787
+ background: linear-gradient(90deg, var(--ga-success), var(--ga-success-hover), var(--ga-success-light));
788
+ box-shadow:
789
+ 0 0 8px rgba(0, 163, 42, 0.4),
790
+ 0 0 4px rgba(0, 163, 42, 0.2);
791
+ }
792
+
793
+ .ga-toast-progress.ga-toast-progress-error {
794
+ background: linear-gradient(90deg, var(--ga-error), var(--ga-error-hover), var(--ga-error-light));
795
+ box-shadow:
796
+ 0 0 8px rgba(214, 54, 56, 0.4),
797
+ 0 0 4px rgba(214, 54, 56, 0.2);
798
+ }
799
+
800
+ .ga-toast-progress.ga-toast-progress-warning {
801
+ background: linear-gradient(90deg, var(--ga-warning), var(--ga-warning-hover), var(--ga-warning-light));
802
+ box-shadow:
803
+ 0 0 8px rgba(219, 166, 23, 0.4),
804
+ 0 0 4px rgba(219, 166, 23, 0.2);
805
+ }
806
+
807
+ .ga-toast-progress.ga-toast-progress-info {
808
+ background: linear-gradient(90deg, var(--ga-info), var(--ga-info-hover), var(--ga-info-light));
809
+ box-shadow:
810
+ 0 0 8px rgba(114, 174, 230, 0.4),
811
+ 0 0 4px rgba(114, 174, 230, 0.2);
812
+ }
813
+
814
+ .ga-toast-progress.ga-toast-progress-secondary {
815
+ background: linear-gradient(90deg, var(--ga-secondary), var(--ga-secondary-hover), var(--ga-secondary-light));
816
+ box-shadow:
817
+ 0 0 8px rgba(108, 117, 125, 0.4),
818
+ 0 0 4px rgba(108, 117, 125, 0.2);
819
+ }
820
+
821
+ /* Toast Actions - Enhanced */
822
+ .ga-toast-actions {
823
+ display: flex;
824
+ gap: var(--ga-space-3);
825
+ margin-top: var(--ga-space-4);
826
+ padding-top: var(--ga-space-4);
827
+ border-top: var(--ga-border-1) solid var(--ga-border-light);
828
+ }
829
+
830
+ .ga-toast-actions .ga-btn {
831
+ flex: 1;
832
+ padding: var(--ga-space-2) var(--ga-space-4);
833
+ font-size: var(--ga-text-sm);
834
+ font-weight: var(--ga-font-medium);
835
+ min-width: 0;
836
+ border-radius: var(--ga-radius-lg);
837
+ transition: all var(--ga-duration-200) var(--ga-ease-out);
838
+ backdrop-filter: blur(10px);
839
+ }
840
+
841
+ .ga-toast-actions .ga-btn:hover {
842
+ transform: translateY(-1px);
843
+ box-shadow: var(--ga-shadow-md);
844
+ }
845
+
846
+ .ga-toast-actions .ga-btn:only-child {
847
+ flex: none;
848
+ width: auto;
849
+ min-width: 100px;
850
+ }
851
+
852
+ /* Toast Loading - Enhanced */
853
+ .ga-toast-loading {
854
+ position: relative;
855
+ pointer-events: none;
856
+ }
857
+
858
+ .ga-toast-loading::before {
859
+ content: '';
860
+ position: absolute;
861
+ top: 0;
862
+ left: 0;
863
+ right: 0;
864
+ bottom: 0;
865
+ background: linear-gradient(135deg,
866
+ rgba(255, 255, 255, 0.9),
867
+ rgba(255, 255, 255, 0.7)
868
+ );
869
+ border-radius: var(--ga-radius-xl);
870
+ backdrop-filter: blur(10px);
871
+ z-index: 1;
872
+ }
873
+
874
+ .ga-toast-loading::after {
875
+ content: '';
876
+ position: absolute;
877
+ top: 50%;
878
+ left: 50%;
879
+ width: var(--ga-spinner-lg);
880
+ height: var(--ga-spinner-lg);
881
+ margin: calc(var(--ga-spinner-lg) / -2) 0 0 calc(var(--ga-spinner-lg) / -2);
882
+ border: 3px solid transparent;
883
+ border-top: 3px solid var(--ga-primary);
884
+ border-right: 3px solid var(--ga-primary-hover);
885
+ border-radius: var(--ga-radius-full);
886
+ animation: ga-spin-modern 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
887
+ z-index: 2;
888
+ }
889
+
890
+ /* Enhanced Animation Classes */
891
+ .ga-toast.fade {
892
+ transition: opacity var(--ga-duration-300) var(--ga-ease-out);
893
+ transform: none;
894
+ }
895
+
896
+ .ga-toast.fade.show {
897
+ opacity: 1;
898
+ }
899
+
900
+ .ga-toast.fade.hide {
901
+ opacity: 0;
902
+ }
903
+
904
+ .ga-toast.slide {
905
+ transition:
906
+ transform var(--ga-duration-300) var(--ga-ease-bounce),
907
+ opacity var(--ga-duration-300) var(--ga-ease-out);
908
+ }
909
+
910
+ .ga-toast.slide.show {
911
+ transform: translateX(0);
912
+ opacity: 1;
913
+ }
914
+
915
+ .ga-toast.slide.hide {
916
+ transform: translateX(100%);
917
+ opacity: 0;
918
+ }
919
+
920
+ /* Slide variants for different positions */
921
+ .ga-toast-container-top-start .ga-toast.slide.hide,
922
+ .ga-toast-container-middle-start .ga-toast.slide.hide,
923
+ .ga-toast-container-bottom-start .ga-toast.slide.hide {
924
+ transform: translateX(-100%);
925
+ }
926
+
927
+ .ga-toast-container-top-center .ga-toast.slide.hide,
928
+ .ga-toast-container-middle-center .ga-toast.slide.hide,
929
+ .ga-toast-container-bottom-center .ga-toast.slide.hide {
930
+ transform: translateY(-100%);
931
+ }
932
+
933
+ .ga-toast.bounce {
934
+ transition:
935
+ transform var(--ga-duration-500) var(--ga-ease-bounce),
936
+ opacity var(--ga-duration-300) var(--ga-ease-out);
937
+ }
938
+
939
+ .ga-toast.bounce.show {
940
+ transform: translateX(0) scale(1);
941
+ opacity: 1;
942
+ }
943
+
944
+ .ga-toast.bounce.hide {
945
+ transform: translateX(100%) scale(0.8);
946
+ opacity: 0;
947
+ }
948
+
949
+ .ga-toast.scale {
950
+ transition:
951
+ transform var(--ga-duration-300) var(--ga-ease-bounce),
952
+ opacity var(--ga-duration-300) var(--ga-ease-out);
953
+ transform: scale(0.8);
954
+ }
955
+
956
+ .ga-toast.scale.show {
957
+ transform: scale(1);
958
+ opacity: 1;
959
+ }
960
+
961
+ .ga-toast.scale.hide {
962
+ transform: scale(0.8);
963
+ opacity: 0;
964
+ }
965
+
966
+ /* Toast Stack */
967
+ .ga-toast-stack {
968
+ display: flex;
969
+ flex-direction: column;
970
+ gap: var(--ga-space-3);
971
+ }
972
+
973
+ .ga-toast-stack .ga-toast {
974
+ margin-bottom: 0;
975
+ }
976
+
977
+ .ga-toast-stack .ga-toast:not(:last-child) {
978
+ transform: scale(0.95) translateY(calc(var(--ga-space-2) * -1));
979
+ opacity: 0.8;
980
+ }
981
+
982
+ /* Toast with Image - Enhanced */
983
+ .ga-toast-image {
984
+ display: block;
985
+ width: 100%;
986
+ max-width: 100%;
987
+ height: auto;
988
+ margin-bottom: var(--ga-space-3);
989
+ border-radius: var(--ga-radius-lg);
990
+ box-shadow: var(--ga-shadow-sm);
991
+ aspect-ratio: 16/9;
992
+ object-fit: cover;
993
+ }
994
+
995
+ /* Toast Compact Layout */
996
+ .ga-toast-compact {
997
+ padding: var(--ga-space-2) var(--ga-space-3);
998
+ align-items: center;
999
+ min-height: auto;
1000
+ }
1001
+
1002
+ .ga-toast-compact .ga-toast-icon {
1003
+ display: none;
1004
+ }
1005
+
1006
+ .ga-toast-compact .ga-toast-title,
1007
+ .ga-toast-compact .ga-toast-body {
1008
+ color: var(--ga-text-primary);
1009
+ }
1010
+
1011
+ .ga-toast-compact .ga-toast-close {
1012
+ width: 24px;
1013
+ height: 24px;
1014
+ /* Center close button vertically for tighter compact layout */
1015
+ top: 50%;
1016
+ right: var(--ga-space-3);
1017
+ transform: translateY(-50%);
1018
+ }
1019
+
1020
+ .ga-toast-compact .ga-toast-close:hover {
1021
+ /* Preserve hover scale while keeping vertical centering */
1022
+ transform: translateY(-50%) scale(1.1);
1023
+ }
1024
+
1025
+ .ga-toast-compact .ga-toast-close:active {
1026
+ transform: translateY(-50%) scale(0.95);
1027
+ }
1028
+
1029
+ .ga-toast-compact .ga-toast-close::before {
1030
+ /* Adjust glyph alignment to the smaller button size */
1031
+ line-height: 24px;
1032
+ font-size: 14px;
1033
+ }
1034
+
1035
+ /* Segmented steps indicator */
1036
+ .ga-toast-steps {
1037
+ display: flex;
1038
+ gap: 4px;
1039
+ margin-top: var(--ga-space-2);
1040
+ }
1041
+
1042
+ .ga-toast-step {
1043
+ flex: 1;
1044
+ height: 3px;
1045
+ border-radius: var(--ga-radius-full);
1046
+ background: var(--ga-bg-tertiary);
1047
+ }
1048
+
1049
+ .ga-toast-step-active {
1050
+ background: var(--ga-primary);
1051
+ }
1052
+
1053
+ .ga-toast-compact .ga-toast-header {
1054
+ margin-bottom: 0;
1055
+ }
1056
+
1057
+ .ga-toast-compact .ga-toast-body {
1058
+ padding-right: var(--ga-space-8);
1059
+ /* Ensure message text starts from the left and stays single-line friendly */
1060
+ text-align: left;
1061
+ }
1062
+
1063
+ .ga-toast-unread-dot {
1064
+ width: 8px;
1065
+ height: 8px;
1066
+ border-radius: var(--ga-radius-full);
1067
+ background: var(--ga-primary);
1068
+ flex-shrink: 0;
1069
+ margin-left: var(--ga-space-1);
1070
+ }
1071
+
1072
+ .ga-toast-success .ga-toast-status {
1073
+ background: rgba(var(--ga-success-rgb, 0, 163, 42), 0.14);
1074
+ color: var(--ga-success);
1075
+ }
1076
+
1077
+ .ga-toast-error .ga-toast-status {
1078
+ background: rgba(var(--ga-error-rgb, 214, 54, 56), 0.14);
1079
+ color: var(--ga-error);
1080
+ }
1081
+
1082
+ .ga-toast-warning .ga-toast-status {
1083
+ background: rgba(var(--ga-warning-rgb, 219, 166, 23), 0.18);
1084
+ color: var(--ga-warning);
1085
+ }
1086
+
1087
+ .ga-toast-info .ga-toast-status {
1088
+ background: rgba(var(--ga-info-rgb, 114, 174, 230), 0.18);
1089
+ color: var(--ga-info);
1090
+ }
1091
+
1092
+ .ga-toast-secondary .ga-toast-status {
1093
+ background: rgba(var(--ga-secondary-rgb, 108, 117, 125), 0.18);
1094
+ color: var(--ga-secondary);
1095
+ }
1096
+
1097
+ .ga-toast-compact .ga-toast-icon {
1098
+ margin-top: 0;
1099
+ margin-right: var(--ga-space-3);
1100
+ }
1101
+
1102
+ /* Toast with Avatar - Enhanced */
1103
+ .ga-toast-avatar {
1104
+ width: var(--ga-avatar-sm);
1105
+ height: var(--ga-avatar-sm);
1106
+ border-radius: var(--ga-radius-full);
1107
+ margin-right: var(--ga-space-3);
1108
+ margin-top: 2px;
1109
+ flex-shrink: 0;
1110
+ border: 2px solid rgba(255, 255, 255, 0.2);
1111
+ box-shadow: var(--ga-shadow-sm);
1112
+ }
1113
+
1114
+ /* Dark mode adjustments */
1115
+ [data-ga-theme="dark"] .ga-toast,
1116
+ [data-hp-theme-mode="dark"] .ga-toast {
1117
+ background: linear-gradient(135deg,
1118
+ var(--ga-bg-primary),
1119
+ var(--ga-bg-secondary)
1120
+ );
1121
+ }
1122
+
1123
+ [data-ga-theme="dark"] .ga-toast-loading::before,
1124
+ [data-hp-theme-mode="dark"] .ga-toast-loading::before {
1125
+ background: linear-gradient(135deg,
1126
+ rgba(0, 0, 0, 0.9),
1127
+ rgba(0, 0, 0, 0.7)
1128
+ );
1129
+ }
1130
+
1131
+ [data-ga-theme="dark"] .ga-toast-close:hover,
1132
+ [data-hp-theme-mode="dark"] .ga-toast-close:hover {
1133
+ background-color: var(--ga-gray-700);
1134
+ }
1135
+
1136
+ /* Keyframe Animations - Enhanced */
1137
+ @keyframes ga-spin {
1138
+ 0% {
1139
+ transform: rotate(0deg);
1140
+ }
1141
+ 100% {
1142
+ transform: rotate(360deg);
1143
+ }
1144
+ }
1145
+
1146
+ @keyframes ga-spin-modern {
1147
+ 0% {
1148
+ transform: rotate(0deg) scale(1);
1149
+ }
1150
+ 50% {
1151
+ transform: rotate(180deg) scale(1.1);
1152
+ }
1153
+ 100% {
1154
+ transform: rotate(360deg) scale(1);
1155
+ }
1156
+ }
1157
+
1158
+ @keyframes ga-toast-slide-in-right {
1159
+ from {
1160
+ transform: translateX(100%) scale(0.9);
1161
+ opacity: 0;
1162
+ }
1163
+ to {
1164
+ transform: translateX(0) scale(1);
1165
+ opacity: 1;
1166
+ }
1167
+ }
1168
+
1169
+ @keyframes ga-toast-slide-in-left {
1170
+ from {
1171
+ transform: translateX(-100%) scale(0.9);
1172
+ opacity: 0;
1173
+ }
1174
+ to {
1175
+ transform: translateX(0) scale(1);
1176
+ opacity: 1;
1177
+ }
1178
+ }
1179
+
1180
+ @keyframes ga-toast-slide-in-top {
1181
+ from {
1182
+ transform: translateY(-100%) scale(0.9);
1183
+ opacity: 0;
1184
+ }
1185
+ to {
1186
+ transform: translateY(0) scale(1);
1187
+ opacity: 1;
1188
+ }
1189
+ }
1190
+
1191
+ @keyframes ga-toast-slide-in-bottom {
1192
+ from {
1193
+ transform: translateY(100%) scale(0.9);
1194
+ opacity: 0;
1195
+ }
1196
+ to {
1197
+ transform: translateY(0) scale(1);
1198
+ opacity: 1;
1199
+ }
1200
+ }
1201
+
1202
+ @keyframes ga-toast-bounce-in {
1203
+ 0% {
1204
+ transform: scale(0.3) translateY(20px);
1205
+ opacity: 0;
1206
+ }
1207
+ 50% {
1208
+ transform: scale(1.05) translateY(-5px);
1209
+ opacity: 0.8;
1210
+ }
1211
+ 70% {
1212
+ transform: scale(0.95) translateY(2px);
1213
+ opacity: 0.9;
1214
+ }
1215
+ 100% {
1216
+ transform: scale(1) translateY(0);
1217
+ opacity: 1;
1218
+ }
1219
+ }
1220
+
1221
+ @keyframes ga-toast-fade-in {
1222
+ from {
1223
+ opacity: 0;
1224
+ transform: translateY(10px);
1225
+ }
1226
+ to {
1227
+ opacity: 1;
1228
+ transform: translateY(0);
1229
+ }
1230
+ }
1231
+
1232
+ @keyframes ga-toast-pulse {
1233
+ 0%, 100% {
1234
+ transform: scale(1);
1235
+ opacity: 1;
1236
+ }
1237
+ 50% {
1238
+ transform: scale(1.02);
1239
+ opacity: 0.9;
1240
+ }
1241
+ }
1242
+
1243
+ @keyframes ga-toast-glow {
1244
+ 0%, 100% {
1245
+ box-shadow:
1246
+ var(--ga-shadow-toast),
1247
+ 0 0 20px rgba(0, 115, 170, 0.2);
1248
+ }
1249
+ 50% {
1250
+ box-shadow:
1251
+ var(--ga-shadow-lg),
1252
+ 0 0 30px rgba(0, 115, 170, 0.4);
1253
+ }
1254
+ }
1255
+
1256
+ /* Interactive Toast Variants */
1257
+ .ga-toast-interactive {
1258
+ cursor: pointer;
1259
+ transition: all var(--ga-duration-200) var(--ga-ease-out);
1260
+ }
1261
+
1262
+ .ga-toast-interactive:hover {
1263
+ transform: translateY(-2px) scale(1.02);
1264
+ box-shadow:
1265
+ var(--ga-shadow-xl),
1266
+ 0 0 0 1px rgba(255, 255, 255, 0.15) inset;
1267
+ }
1268
+
1269
+ .ga-toast-interactive:active {
1270
+ transform: translateY(0) scale(0.98);
1271
+ }
1272
+
1273
+ /* Notification Badge */
1274
+ .ga-toast-badge {
1275
+ position: absolute;
1276
+ top: -8px;
1277
+ right: -8px;
1278
+ width: 24px;
1279
+ height: 24px;
1280
+ background: linear-gradient(135deg, var(--ga-error), var(--ga-error-hover));
1281
+ color: white;
1282
+ border-radius: var(--ga-radius-full);
1283
+ display: flex;
1284
+ align-items: center;
1285
+ justify-content: center;
1286
+ font-size: var(--ga-text-xs);
1287
+ font-weight: var(--ga-font-bold);
1288
+ border: 2px solid var(--ga-bg-primary);
1289
+ box-shadow: var(--ga-shadow-md);
1290
+ animation: ga-toast-pulse 2s infinite;
1291
+ }
1292
+
1293
+ /* Toast with Custom Patterns */
1294
+ .ga-toast-pattern::before {
1295
+ background-image:
1296
+ radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.1) 0%, transparent 50%),
1297
+ radial-gradient(circle at 80% 20%, rgba(255, 119, 198, 0.1) 0%, transparent 50%),
1298
+ radial-gradient(circle at 40% 40%, rgba(120, 200, 255, 0.1) 0%, transparent 50%);
1299
+ }
1300
+
1301
+ /* Toast Group Animations */
1302
+ .ga-toast-group {
1303
+ display: flex;
1304
+ flex-direction: column;
1305
+ gap: var(--ga-space-2);
1306
+ }
1307
+
1308
+ .ga-toast-group .ga-toast {
1309
+ animation: ga-toast-fade-in var(--ga-duration-300) var(--ga-ease-out) forwards;
1310
+ }
1311
+
1312
+ .ga-toast-group .ga-toast:nth-child(1) { animation-delay: 0ms; }
1313
+ .ga-toast-group .ga-toast:nth-child(2) { animation-delay: 100ms; }
1314
+ .ga-toast-group .ga-toast:nth-child(3) { animation-delay: 200ms; }
1315
+ .ga-toast-group .ga-toast:nth-child(4) { animation-delay: 300ms; }
1316
+ .ga-toast-group .ga-toast:nth-child(5) { animation-delay: 400ms; }
1317
+
1318
+ /* Responsive Toasts - Enhanced */
1319
+ @media (max-width: 767px) {
1320
+ .ga-toast {
1321
+ width: calc(100vw - var(--ga-space-6));
1322
+ max-width: none;
1323
+ margin-left: auto;
1324
+ margin-right: auto;
1325
+ border-radius: var(--ga-radius-lg);
1326
+ }
1327
+
1328
+ .ga-toast-container-top-start,
1329
+ .ga-toast-container-top-center,
1330
+ .ga-toast-container-top-end {
1331
+ top: var(--ga-space-4);
1332
+ left: var(--ga-space-3);
1333
+ right: var(--ga-space-3);
1334
+ transform: none;
1335
+ }
1336
+
1337
+ .ga-toast-container-bottom-start,
1338
+ .ga-toast-container-bottom-center,
1339
+ .ga-toast-container-bottom-end {
1340
+ bottom: var(--ga-space-4);
1341
+ left: var(--ga-space-3);
1342
+ right: var(--ga-space-3);
1343
+ transform: none;
1344
+ }
1345
+
1346
+ .ga-toast-container-middle-start,
1347
+ .ga-toast-container-middle-center,
1348
+ .ga-toast-container-middle-end {
1349
+ top: 50%;
1350
+ left: var(--ga-space-3);
1351
+ right: var(--ga-space-3);
1352
+ transform: translateY(-50%);
1353
+ }
1354
+
1355
+ .ga-toast-actions {
1356
+ flex-direction: column;
1357
+ }
1358
+
1359
+ .ga-toast-actions .ga-btn {
1360
+ width: 100%;
1361
+ }
1362
+
1363
+ .ga-toast-xs,
1364
+ .ga-toast-sm,
1365
+ .ga-toast-lg,
1366
+ .ga-toast-xl {
1367
+ width: calc(100vw - var(--ga-space-6));
1368
+ }
1369
+
1370
+ .ga-toast-icon {
1371
+ width: var(--ga-icon-md);
1372
+ height: var(--ga-icon-md);
1373
+ }
1374
+
1375
+ .ga-toast-title {
1376
+ font-size: var(--ga-text-sm);
1377
+ }
1378
+
1379
+ .ga-toast-body {
1380
+ font-size: var(--ga-text-sm);
1381
+ }
1382
+ }
1383
+
1384
+ @media (max-width: 479px) {
1385
+ .ga-toast {
1386
+ width: calc(100vw - var(--ga-space-4));
1387
+ padding: var(--ga-space-4);
1388
+ border-radius: var(--ga-radius-md);
1389
+ }
1390
+
1391
+ .ga-toast-container-top-start,
1392
+ .ga-toast-container-top-center,
1393
+ .ga-toast-container-top-end,
1394
+ .ga-toast-container-bottom-start,
1395
+ .ga-toast-container-bottom-center,
1396
+ .ga-toast-container-bottom-end,
1397
+ .ga-toast-container-middle-start,
1398
+ .ga-toast-container-middle-center,
1399
+ .ga-toast-container-middle-end {
1400
+ left: var(--ga-space-2);
1401
+ right: var(--ga-space-2);
1402
+ }
1403
+
1404
+ .ga-toast-title {
1405
+ font-size: var(--ga-text-xs);
1406
+ }
1407
+
1408
+ .ga-toast-body {
1409
+ font-size: var(--ga-text-xs);
1410
+ }
1411
+
1412
+ .ga-toast-close {
1413
+ width: 28px;
1414
+ height: 28px;
1415
+ top: var(--ga-space-2);
1416
+ right: var(--ga-space-2);
1417
+ }
1418
+
1419
+ .ga-toast-icon {
1420
+ width: var(--ga-icon-sm);
1421
+ height: var(--ga-icon-sm);
1422
+ margin-right: var(--ga-space-2);
1423
+ }
1424
+ }
1425
+
1426
+ /* WordPress Admin Compatibility - Enhanced */
1427
+ .wp-admin .ga-toast {
1428
+ border-radius: var(--ga-radius-lg);
1429
+ font-family: var(--ga-font-sans);
1430
+ box-shadow:
1431
+ 0 5px 15px rgba(0, 0, 0, 0.1),
1432
+ 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
1433
+ }
1434
+
1435
+ .wp-admin .ga-toast .ga-toast-title {
1436
+ font-size: var(--ga-text-sm);
1437
+ font-weight: var(--ga-font-semibold);
1438
+ }
1439
+
1440
+ .wp-admin .ga-toast .ga-toast-body {
1441
+ font-size: var(--ga-text-sm);
1442
+ }
1443
+
1444
+ .wp-admin .ga-toast .ga-toast-close {
1445
+ font-size: var(--ga-text-base);
1446
+ background: rgba(255, 255, 255, 0.1);
1447
+ backdrop-filter: blur(10px);
1448
+ }
1449
+
1450
+ .wp-admin .ga-toast .ga-toast-close:hover {
1451
+ background: rgba(255, 255, 255, 0.2);
1452
+ }
1453
+
1454
+ /* Accessibility improvements - Enhanced */
1455
+ @media (prefers-reduced-motion: reduce) {
1456
+ .ga-toast {
1457
+ transition: opacity var(--ga-duration-150) ease;
1458
+ animation: none;
1459
+ }
1460
+
1461
+ .ga-toast::before {
1462
+ animation: none;
1463
+ }
1464
+
1465
+ .ga-toast.show {
1466
+ opacity: 1;
1467
+ transform: none;
1468
+ }
1469
+
1470
+ .ga-toast.hide {
1471
+ opacity: 0;
1472
+ transform: none;
1473
+ }
1474
+
1475
+ .ga-toast-loading::after {
1476
+ animation: none;
1477
+ border: 3px solid var(--ga-gray-300);
1478
+ border-top: 3px solid var(--ga-primary);
1479
+ }
1480
+
1481
+ .ga-toast-progress {
1482
+ transition: width 0.1s linear;
1483
+ }
1484
+
1485
+ .ga-toast-interactive:hover {
1486
+ transform: none;
1487
+ }
1488
+
1489
+ .ga-toast-badge {
1490
+ animation: none;
1491
+ }
1492
+
1493
+ .ga-toast-group .ga-toast {
1494
+ animation: none;
1495
+ animation-delay: 0ms;
1496
+ }
1497
+ }
1498
+
1499
+ /* High contrast mode - Enhanced */
1500
+ @media (prefers-contrast: high) {
1501
+ .ga-toast {
1502
+ border-width: 2px;
1503
+ background: var(--ga-bg-primary);
1504
+ box-shadow: none;
1505
+ }
1506
+
1507
+ .ga-toast::before {
1508
+ display: none;
1509
+ }
1510
+
1511
+ .ga-toast-close {
1512
+ border: 2px solid transparent;
1513
+ background: var(--ga-bg-secondary);
1514
+ }
1515
+
1516
+ .ga-toast-close:focus {
1517
+ border-color: currentColor;
1518
+ outline: 2px solid currentColor;
1519
+ outline-offset: 2px;
1520
+ }
1521
+
1522
+ .ga-toast-icon {
1523
+ background: var(--ga-bg-secondary);
1524
+ border: 1px solid var(--ga-border-dark);
1525
+ }
1526
+
1527
+ .ga-toast-progress {
1528
+ box-shadow: none;
1529
+ }
1530
+ }
1531
+
1532
+ /* Focus management for screen readers */
1533
+ .ga-toast[role="alert"] {
1534
+ outline: none;
1535
+ }
1536
+
1537
+ .ga-toast[tabindex] {
1538
+ outline: 2px solid transparent;
1539
+ }
1540
+
1541
+ .ga-toast[tabindex]:focus {
1542
+ outline-color: var(--ga-border-focus);
1543
+ outline-offset: 2px;
1544
+ }
1545
+
1546
+ /* Print styles */
1547
+ @media print {
1548
+ .ga-toast-container {
1549
+ display: none;
1550
+ }
1551
+ }
1552
+
1553
+ /* Toast with Media Queries for System Themes */
1554
+ @media (prefers-color-scheme: dark) {
1555
+ [data-ga-theme="system"] .ga-toast,
1556
+ [data-hp-theme-mode="system"] .ga-toast {
1557
+ background: linear-gradient(135deg,
1558
+ var(--ga-bg-primary),
1559
+ var(--ga-bg-secondary)
1560
+ );
1561
+ box-shadow:
1562
+ var(--ga-shadow-toast),
1563
+ 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
1564
+ }
1565
+ }
1566
+
1567
+ /* Custom Toast Utilities */
1568
+ .ga-toast-shake {
1569
+ animation: ga-toast-shake 0.5s ease-in-out;
1570
+ }
1571
+
1572
+ @keyframes ga-toast-shake {
1573
+ 0%, 100% { transform: translateX(0); }
1574
+ 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }
1575
+ 20%, 40%, 60%, 80% { transform: translateX(2px); }
1576
+ }
1577
+
1578
+ .ga-toast-heartbeat {
1579
+ animation: ga-toast-heartbeat 1.5s ease-in-out infinite;
1580
+ }
1581
+
1582
+ @keyframes ga-toast-heartbeat {
1583
+ 0% { transform: scale(1); }
1584
+ 14% { transform: scale(1.05); }
1585
+ 28% { transform: scale(1); }
1586
+ 42% { transform: scale(1.05); }
1587
+ 70% { transform: scale(1); }
1588
+ }
1589
+
1590
+ .ga-toast-flash {
1591
+ animation: ga-toast-flash 1s ease-in-out;
1592
+ }
1593
+
1594
+ @keyframes ga-toast-flash {
1595
+ 0%, 50%, 100% { opacity: 1; }
1596
+ 25%, 75% { opacity: 0.5; }
1597
+ }
1598
+
1599
+ /* Toast Themes */
1600
+ .ga-toast-glassmorphism {
1601
+ background: rgba(255, 255, 255, 0.1);
1602
+ backdrop-filter: blur(20px);
1603
+ border: 1px solid rgba(255, 255, 255, 0.2);
1604
+ }
1605
+
1606
+ .ga-toast-neumorphism {
1607
+ background: var(--ga-bg-secondary);
1608
+ border: none;
1609
+ }
1610
+
1611
+ .ga-toast-gradient-border {
1612
+ position: relative;
1613
+ background: var(--ga-bg-primary);
1614
+ border: none;
1615
+ }
1616
+
1617
+ .ga-toast-gradient-border::before {
1618
+ content: '';
1619
+ position: absolute;
1620
+ inset: -2px;
1621
+ background: linear-gradient(45deg,
1622
+ var(--ga-primary),
1623
+ var(--ga-success),
1624
+ var(--ga-info),
1625
+ var(--ga-warning)
1626
+ );
1627
+ border-radius: inherit;
1628
+ z-index: -1;
1629
+ animation: ga-gradient-rotate 3s linear infinite;
1630
+ }
1631
+
1632
+ @keyframes ga-gradient-rotate {
1633
+ 0% { transform: rotate(0deg); }
1634
+ 100% { transform: rotate(360deg); }
1635
+ }
1636
+
1637
+ @keyframes ga-progress-shimmer {
1638
+ 0% {
1639
+ transform: translateX(-100%);
1640
+ }
1641
+ 100% {
1642
+ transform: translateX(100%);
1643
+ }
1644
+ }