dolphincss 1.0.6 → 1.1.8

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.
@@ -1,146 +0,0 @@
1
- /* ===== Chart Card System ===== */
2
- .chart-card {
3
- @apply relative bg-(--color-surface) rounded-lg shadow-sm border border-(--color-border) transition-all duration-300 hover:shadow-md;
4
- }
5
-
6
- .chart-card-header {
7
- @apply flex items-center justify-between p-4 pb-2;
8
- }
9
-
10
- .chart-card-title {
11
- @apply text-lg font-semibold text-(--color-text);
12
- }
13
-
14
- .chart-card-subtitle {
15
- @apply text-sm text-(--color-text-muted) mt-1;
16
- }
17
-
18
- .chart-card-actions {
19
- @apply flex items-center gap-1;
20
- }
21
-
22
- .chart-card-content {
23
- @apply p-4 pt-2;
24
- }
25
-
26
- .chart-card-footer {
27
- @apply flex items-center justify-between p-4 pt-2 border-t border-(--color-border);
28
- }
29
-
30
- .chart-card-stats {
31
- @apply flex items-center gap-4;
32
- }
33
-
34
- .chart-card-stat {
35
- @apply flex flex-col;
36
- }
37
-
38
- .chart-card-stat-value {
39
- @apply text-lg font-semibold text-(--color-text);
40
- }
41
-
42
- .chart-card-stat-label {
43
- @apply text-xs text-(--color-text-muted);
44
- }
45
-
46
- .chart-card-trend {
47
- @apply flex items-center gap-1 text-sm;
48
- }
49
-
50
- .chart-card-trend.positive {
51
- @apply text-(--color-success);
52
- }
53
-
54
- .chart-card-trend.negative {
55
- @apply text-(--color-danger);
56
- }
57
-
58
- /* Chart Card Variants */
59
- .chart-card.primary {
60
- @apply border-(--color-primary)/20;
61
- }
62
-
63
- .chart-card.secondary {
64
- @apply border-(--color-secondary)/20;
65
- }
66
-
67
- .chart-card.success {
68
- @apply border-(--color-success)/20;
69
- }
70
-
71
- .chart-card.warning {
72
- @apply border-(--color-warning)/20;
73
- }
74
-
75
- .chart-card.danger {
76
- @apply border-(--color-danger)/20;
77
- }
78
-
79
- .chart-card.info {
80
- @apply border-(--color-info)/20;
81
- }
82
-
83
- /* Gradient Variants */
84
- .chart-card.gradient.primary {
85
- background-image: var(--gradient-primary);
86
- @apply border-none text-(--color-text);
87
- }
88
-
89
- .chart-card.gradient.secondary {
90
- background-image: var(--gradient-secondary);
91
- @apply border-none text-(--color-text);
92
- }
93
-
94
- /* Chart Card Sizes */
95
- .chart-card.small {
96
- @apply max-w-sm;
97
- }
98
-
99
- .chart-card.medium {
100
- @apply max-w-md;
101
- }
102
-
103
- .chart-card.large {
104
- @apply max-w-lg;
105
- }
106
-
107
- .chart-card.full {
108
- @apply w-full;
109
- }
110
-
111
- /* Chart Container */
112
- .chart-container {
113
- @apply w-full h-48 flex items-center justify-center;
114
- }
115
-
116
- /* Loading State */
117
- .chart-card.loading .chart-container {
118
- @apply animate-pulse bg-(--color-border) rounded;
119
- }
120
-
121
- /* No Data State */
122
- .chart-card .no-data {
123
- @apply flex flex-col items-center justify-center h-48 text-(--color-text-muted);
124
- }
125
-
126
- /* Legend */
127
- .chart-legend {
128
- @apply flex flex-wrap gap-3 mt-3;
129
- }
130
-
131
- .chart-legend-item {
132
- @apply flex items-center gap-2 text-sm;
133
- }
134
-
135
- .chart-legend-color {
136
- @apply w-3 h-3 rounded-full;
137
- }
138
-
139
- /* Tooltip (for chart interactions) */
140
- .chart-tooltip {
141
- @apply absolute bg-(--color-surface) border border-(--color-border) rounded-lg shadow-lg p-3 text-sm pointer-events-none opacity-0 transition-opacity duration-200;
142
- }
143
-
144
- .chart-card:hover .chart-tooltip {
145
- @apply opacity-100;
146
- }
@@ -1,9 +0,0 @@
1
- @layer components {
2
- /* डार्क मोडमा कार्डको variants को लागि स्पष्ट रंगहरू */
3
- [data-theme="dark"] .card.primary { background-color: var(--color-primary); color: var(--color-text); }
4
- [data-theme="dark"] .card.secondary { background-color: var(--color-secondary); color: var(--color-text); }
5
- [data-theme="dark"] .card.success { background-color: var(--color-success); color: var(--color-text); }
6
- [data-theme="dark"] .card.warning { background-color: var(--color-warning); color: var(--color-text); }
7
- [data-theme="dark"] .card.danger { background-color: var(--color-danger); color: var(--color-text); }
8
- [data-theme="dark"] .card.info { background-color: var(--color-info); color: var(--color-text); }
9
- }
package/MainCss/form.css DELETED
@@ -1,202 +0,0 @@
1
- /* ===== Radio System ===== */
2
- @layer components {
3
- .radio-group { @apply flex flex-col gap-2; }
4
- .radio-item { @apply flex items-center gap-2 cursor-pointer select-none relative; }
5
- .radio-item input[type="radio"] {
6
- @apply appearance-none w-5 h-5 rounded-full border border-(--color-border) checked:bg-(--color-primary) checked:border-(--color-primary) focus:ring-2 focus:ring-(--color-primary) transition-colors duration-200;
7
- }
8
- .radio-label { @apply text-(--color-text) select-none; }
9
- .radio-item input[type="radio"]:disabled + .radio-label {
10
- @apply opacity-50 cursor-not-allowed;
11
- }
12
- .radio-group.horizontal { @apply flex-row gap-4; }
13
-
14
- /* ===== Checkbox System ===== */
15
- input[type="checkbox"] {
16
- @apply w-5 h-5 m-0 align-middle border-2 rounded border-(--color-border) bg-(--color-surface) cursor-pointer relative transition-all duration-200 appearance-none;
17
- }
18
- input[type="checkbox"]::after {
19
- content: '';
20
- @apply absolute hidden top-[3px] left-[6px] w-1 h-2 border-r-2 border-b-2 border-(--color-surface) rotate-45;
21
- }
22
- input[type="checkbox"]:checked::after { @apply block; }
23
- input[type="checkbox"].primary:checked { background-color: var(--color-primary); border-color: var(--color-primary); }
24
- input[type="checkbox"].secondary:checked { background-color: var(--color-secondary); border-color: var(--color-secondary); }
25
- input[type="checkbox"].success:checked { background-color: var(--color-success); border-color: var(--color-success); }
26
- input[type="checkbox"].warning:checked { background-color: var(--color-warning); border-color: var(--color-warning); }
27
- input[type="checkbox"].danger:checked { background-color: var(--color-danger); border-color: var(--color-danger); }
28
- input[type="checkbox"].info:checked { background-color: var(--color-info); border-color: var(--color-info); }
29
- input[type="checkbox"]:disabled { @apply opacity-50 cursor-not-allowed; }
30
-
31
- /* ===== Select System ===== */
32
- .select-wrapper { @apply relative inline-block w-full; }
33
- .select {
34
- @apply w-full p-2 text-base rounded-md border-2 border-(--color-border) bg-(--color-surface) text-(--color-text) cursor-pointer appearance-none transition-all duration-200;
35
- }
36
- .select:focus {
37
- @apply outline-none border-(--color-primary) ring-2 ring-(--color-primary)/10;
38
- }
39
- .select:disabled {
40
- @apply opacity-50 cursor-not-allowed bg-(--color-surface) text-(--color-border);
41
- }
42
- .select.primary { background-color: var(--color-primary); color: var(--color-text); border-color: var(--color-primary); }
43
- .select.secondary { background-color: var(--color-secondary); color: var(--color-text); border-color: var(--color-secondary); }
44
- .select.success { background-color: var(--color-success); color: var(--color-text); border-color: var(--color-success); }
45
- .select.warning { background-color: var(--color-warning); color: var(--color-text); border-color: var(--color-warning); }
46
- .select.danger { background-color: var(--color-danger); color: var(--color-text); border-color: var(--color-danger); }
47
- .select.info { background-color: var(--color-info); color: var(--color-text); border-color: var(--color-info); }
48
- .select.gradient.primary { background-image: var(--gradient-primary); color: var(--color-text); border: none; }
49
- .select-wrapper::after {
50
- content: '';
51
- @apply absolute top-1/2 right-4 w-2 h-2 border-r-2 border-b-2 border-(--color-text) -translate-y-1/2 rotate-45 pointer-events-none;
52
- }
53
- /* ===== Floating Label Text Field (Fixed v2) ===== */
54
- .floatinglabel {
55
- @apply relative w-full;
56
- }
57
-
58
- /* Input field */
59
- .floatinglabel-input {
60
- @apply w-full px-3 py-2 text-base rounded-md border-2 border-(--color-border)
61
- bg-(--color-surface) text-(--color-text)
62
- transition-all duration-200;
63
- }
64
-
65
- /* Focus & disabled */
66
- .floatinglabel-input:focus {
67
- @apply outline-none border-(--color-primary);
68
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 20%, transparent);
69
- }
70
- .floatinglabel-input:disabled {
71
- @apply opacity-50 cursor-not-allowed bg-(--color-surface) text-(--color-border);
72
- }
73
-
74
- /* Label */
75
- .floatinglabel-label {
76
- @apply absolute left-3 top-1/2 -translate-y-1/2
77
- text-(--color-text-muted) text-base transition-all duration-200
78
- pointer-events-none bg-transparent;
79
- }
80
-
81
- /* Floating effect */
82
- .floatinglabel-input:focus + .floatinglabel-label,
83
- .floatinglabel-input:not(:placeholder-shown) + .floatinglabel-label {
84
- @apply -top-2 text-sm translate-y-0;
85
- }
86
-
87
- /* Color Variants */
88
- .floatinglabel.primary .floatinglabel-input:focus {
89
- border-color: var(--color-primary);
90
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 20%, transparent);
91
- }
92
- .floatinglabel.primary .floatinglabel-input:focus + .floatinglabel-label {
93
- color: var(--color-primary);
94
- }
95
-
96
- /* ... (secondary, success, warning, danger, info same as before) ... */
97
-
98
- /* Gradient variant */
99
- .floatinglabel.gradient.primary .floatinglabel-input:focus {
100
- background-image: var(--gradient-primary);
101
- @apply border-none text-(--color-text);
102
- box-shadow: none;
103
- }
104
-
105
- /* ===== Icon Support Fix ===== */
106
-
107
- /* Left icon */
108
- .floatinglabel.input-icon-left {
109
- @apply relative;
110
- }
111
- .floatinglabel.input-icon-left > svg {
112
- @apply absolute left-3 top-1/2 -translate-y-1/2
113
- w-5 h-5 text-(--color-text-muted) pointer-events-none;
114
- }
115
- .floatinglabel.input-icon-left .floatinglabel-input {
116
- @apply pl-10;
117
- }
118
- /* label offset for left icon */
119
- .floatinglabel.input-icon-left .floatinglabel-label {
120
- left: 2.75rem; /* label right side of icon */
121
- }
122
- .floatinglabel.input-icon-left .floatinglabel-input:focus + .floatinglabel-label,
123
- .floatinglabel.input-icon-left .floatinglabel-input:not(:placeholder-shown) + .floatinglabel-label {
124
- left: 2.5rem; /* float state offset fine-tuned */
125
- }
126
-
127
- /* Right icon */
128
- .floatinglabel.input-icon-right {
129
- @apply relative;
130
- }
131
- .floatinglabel.input-icon-right > svg {
132
- @apply absolute right-3 top-1/2 -translate-y-1/2
133
- w-5 h-5 text-(--color-text-muted) pointer-events-none;
134
- }
135
- .floatinglabel.input-icon-right .floatinglabel-input {
136
- @apply pr-10;
137
- }
138
- /* ===== Standard Variant Text Field (Icon Fixed) ===== */
139
- .standardlabel {
140
- @apply relative w-full pt-5; /* padding top for label */
141
- }
142
-
143
- /* Input field */
144
- .standardlabel-input {
145
- @apply w-full px-0 py-1 text-base bg-transparent text-(--color-text)
146
- border-0 border-b-2 border-(--color-border) transition-all duration-200;
147
- }
148
-
149
- /* Focus & disabled */
150
- .standardlabel-input:focus {
151
- @apply outline-none;
152
- border-bottom-color: var(--color-primary);
153
- }
154
- .standardlabel-input:disabled {
155
- @apply opacity-50 cursor-not-allowed text-(--color-border);
156
- border-bottom-color: var(--color-border);
157
- }
158
-
159
- /* Label */
160
- .standardlabel-label {
161
- @apply absolute text-(--color-text-muted) text-base transition-all duration-200 pointer-events-none;
162
- top: 1.25rem; /* vertical center */
163
- left: 0.5rem; /* default */
164
- }
165
-
166
- /* Floating effect */
167
- .standardlabel-input:focus + .standardlabel-label,
168
- .standardlabel-input:not(:placeholder-shown) + .standardlabel-label {
169
- @apply -top-1 text-sm;
170
- color: var(--color-primary);
171
- }
172
-
173
- /* Left icon support */
174
- .standardlabel.input-icon-left {
175
- @apply relative;
176
- }
177
- .standardlabel.input-icon-left > svg {
178
- @apply absolute left-0 top-1/2 -translate-y-1/2 w-5 h-5 text-(--color-text-muted) pointer-events-none;
179
- }
180
- .standardlabel.input-icon-left .standardlabel-input {
181
- @apply pl-10; /* input padding */
182
- }
183
- .standardlabel.input-icon-left .standardlabel-label {
184
- left: 2.75rem; /* label offset */
185
- }
186
- .standardlabel.input-icon-left .standardlabel-input:focus + .standardlabel-label,
187
- .standardlabel.input-icon-left .standardlabel-input:not(:placeholder-shown) + .standardlabel-label {
188
- left: 2.5rem; /* floating label fine-tune */
189
- }
190
-
191
- /* Right icon support */
192
- .standardlabel.input-icon-right {
193
- @apply relative;
194
- }
195
- .standardlabel.input-icon-right > svg {
196
- @apply absolute right-0 top-1/2 -translate-y-1/2 w-5 h-5 text-(--color-text-muted) pointer-events-none;
197
- }
198
- .standardlabel.input-icon-right .standardlabel-input {
199
- @apply pr-10; /* input padding */
200
- }
201
-
202
- }
package/MainCss/glass.css DELETED
@@ -1,80 +0,0 @@
1
- /* ===== Glass Component - Tailwind v4 Compatible (Variable-Based) ===== */
2
-
3
- .glass {
4
- @apply rounded-xl border transition-all duration-300 ease-out;
5
- background-color: var(--glass-bg);
6
- border-color: var(--glass-border);
7
- backdrop-filter: var(--glass-blur);
8
- box-shadow: var(--glass-shadow);
9
- }
10
-
11
- .glass:hover {
12
- background-color: var(--glass-bg-alt);
13
- border-color: var(--glass-border-alt);
14
- backdrop-filter: var(--glass-blur-lg);
15
- box-shadow: var(--glass-shadow-lg);
16
- }
17
-
18
- .glass:active {
19
- @apply scale-95;
20
- }
21
-
22
- /* Size variants */
23
- .glass-sm {
24
- @apply rounded-lg p-2;
25
- backdrop-filter: var(--glass-blur-sm);
26
- border-color: var(--glass-border-alt);
27
- }
28
-
29
- .glass-md {
30
- @apply rounded-xl p-4;
31
- backdrop-filter: var(--glass-blur);
32
- border-color: var(--glass-border);
33
- }
34
-
35
- .glass-lg {
36
- @apply rounded-2xl p-6;
37
- backdrop-filter: var(--glass-blur-lg);
38
- border-color: var(--glass-border-alt);
39
- }
40
-
41
- /* Color Tints */
42
- .glass-primary { background-color: var(--color-primary-bg, var(--glass-bg)); border-color: var(--color-primary-border, var(--glass-border)); }
43
- .glass-success { background-color: var(--color-success-bg, var(--glass-bg)); border-color: var(--color-success-border, var(--glass-border)); }
44
- .glass-warning { background-color: var(--color-warning-bg, var(--glass-bg)); border-color: var(--color-warning-border, var(--glass-border)); }
45
- .glass-danger { background-color: var(--color-danger-bg, var(--glass-bg)); border-color: var(--color-danger-border, var(--glass-border)); }
46
- .glass-info { background-color: var(--color-info-bg, var(--glass-bg)); border-color: var(--color-info-border, var(--glass-border)); }
47
-
48
- /* Button + Glass combination */
49
- .filled.glass {
50
- @apply text-white font-medium;
51
- backdrop-filter: var(--glass-blur);
52
- background-color: var(--glass-bg);
53
- }
54
-
55
- .filled.glass:hover {
56
- background-color: var(--glass-bg-alt);
57
- backdrop-filter: var(--glass-blur-lg);
58
- }
59
-
60
- .outlined.glass {
61
- @apply text-white border-2;
62
- border-color: var(--glass-border);
63
- backdrop-filter: var(--glass-blur);
64
- background-color: transparent;
65
- }
66
-
67
- .outlined.glass:hover {
68
- background-color: var(--glass-bg);
69
- border-color: var(--glass-border-alt);
70
- }
71
-
72
- .plain.glass {
73
- @apply text-white;
74
- background-color: transparent;
75
- backdrop-filter: var(--glass-blur-sm);
76
- }
77
-
78
- .plain.glass:hover {
79
- background-color: var(--glass-bg-alt);
80
- }
@@ -1,249 +0,0 @@
1
- /* ===== Button Variants ===== */
2
- @layer components {
3
- .filled {
4
- @apply font-medium rounded-md inline-flex items-center justify-center select-none transition-all duration-200;
5
- }
6
- .outlined {
7
- @apply border rounded-md bg-transparent inline-flex items-center justify-center select-none transition-all duration-200;
8
- }
9
- .plain {
10
- @apply bg-transparent inline-flex items-center justify-center select-none transition-all duration-200;
11
- }
12
-
13
- /* ===== Button Colors ===== */
14
- .primary.filled { background-color: var(--color-primary); color: var(--color-text) !important; }
15
- .primary.outlined { border: 2px solid var(--color-primary); color: var(--color-text) !important; }
16
- .primary.plain { color: var(--color-text) !important; }
17
-
18
- .secondary.filled { background-color: var(--color-secondary); color: var(--color-text) !important; }
19
- .secondary.outlined { border: 2px solid var(--color-secondary); color: var(--color-text) !important; }
20
- .secondary.plain { color: var(--color-text) !important; }
21
-
22
- .success.filled { background-color: var(--color-success); color: var(--color-text) !important; }
23
- .success.outlined { border: 2px solid var(--color-success); color: var(--color-text) !important; }
24
- .success.plain { color: var(--color-text) !important; }
25
-
26
- .warning.filled { background-color: var(--color-warning); color: var(--color-text) !important; }
27
- .warning.outlined { border: 2px solid var(--color-warning); color: var(--color-text) !important; }
28
- .warning.plain { color: var(--color-text) !important; }
29
-
30
- .danger.filled { background-color: var(--color-danger); color: var(--color-text) !important; }
31
- .danger.outlined { border: 2px solid var(--color-danger); color: var(--color-text) !important; }
32
- .danger.plain { color: var(--color-text) !important; }
33
-
34
- .info.filled { background-color: var(--color-info); color: var(--color-text) !important; }
35
- .info.outlined { border: 2px solid var(--color-info); color: var(--color-text) !important; }
36
- .info.plain { color: var(--color-text) !important; }
37
-
38
- /* Button Hover/Focus/Disabled */
39
- .filled:hover, .outlined:hover, .plain:hover { opacity: 0.9; }
40
-
41
- /* Remove Tailwind ring to prevent double ring */
42
- .filled:focus-visible,
43
- .outlined:focus-visible,
44
- .plain:focus-visible {
45
- outline: 2px solid var(--color-border);
46
- outline-offset: 2px;
47
- box-shadow: none; /* no glow */
48
- }
49
-
50
- .filled:disabled,
51
- .outlined:disabled,
52
- .plain:disabled {
53
- @apply opacity-50 cursor-not-allowed pointer-events-none;
54
- }
55
-
56
- /* ===== Circle Buttons ===== */
57
- .circle {
58
- @apply rounded-full shadow-md hover:shadow-lg inline-flex items-center justify-center select-none transition-shadow duration-200 cursor-pointer;
59
- background-color: transparent;
60
- color: var(--color-text);
61
- }
62
-
63
- .circle.sm { @apply w-8 h-8 text-sm; }
64
- .circle.md { @apply w-12 h-12 text-base; }
65
- .circle.lg { @apply w-16 h-16 text-lg; }
66
-
67
- .circle.primary.filled { background-color: var(--color-primary); color: var(--color-text) !important; }
68
- .circle.secondary.filled { background-color: var(--color-secondary); color: var(--color-text) !important; }
69
- .circle.success.filled { background-color: var(--color-success); color: var(--color-text) !important; }
70
- .circle.warning.filled { background-color: var(--color-warning); color: var(--color-text) !important; }
71
- .circle.danger.filled { background-color: var(--color-danger); color: var(--color-text) !important; }
72
- .circle.info.filled { background-color: var(--color-info); color: var(--color-text) !important; }
73
-
74
- .circle.primary.outlined { border: 2px solid var(--color-primary); color: var(--color-text) !important; }
75
- .circle.secondary.outlined { border: 2px solid var(--color-secondary); color: var(--color-text) !important; }
76
- .circle.success.outlined { border: 2px solid var(--color-success); color: var(--color-text) !important; }
77
- .circle.warning.outlined { border: 2px solid var(--color-warning); color: var(--color-text) !important; }
78
- .circle.danger.outlined { border: 2px solid var(--color-danger); color: var(--color-text) !important; }
79
- .circle.info.outlined { border: 2px solid var(--color-info); color: var(--color-text) !important; }
80
-
81
- .circle.primary.plain,
82
- .circle.secondary.plain,
83
- .circle.success.plain,
84
- .circle.warning.plain,
85
- .circle.danger.plain,
86
- .circle.info.plain {
87
- background-color: transparent;
88
- color: var(--color-text) !important;
89
- }
90
-
91
- .circle:hover { opacity: 0.9; }
92
- .circle:disabled { @apply opacity-50 cursor-not-allowed pointer-events-none; }
93
- }
94
- /* ===== Global Glowing Effects (Fixed) ===== */
95
- .glow {
96
- @apply transition-all duration-300;
97
- }
98
-
99
- /* Base glow effects for all glow elements */
100
- .glow:hover {
101
- box-shadow: var(--glow-primary);
102
- }
103
-
104
- /* Specific elements with enhanced glow */
105
- .glow.btn:hover,
106
- .glow[class*="btn"]:hover {
107
- box-shadow: 0 0 20px 5px var(--glow-color, var(--color-primary))/25;
108
- }
109
-
110
- .glow.card:hover,
111
- .glow[class*="card"]:hover,
112
- .glow[class*="chart"]:hover {
113
- box-shadow: 0 0 25px 8px var(--glow-color, var(--color-primary))/15;
114
- }
115
-
116
- /* Input focus glow */
117
- .glow.input:focus,
118
- .glow[type="text"]:focus,
119
- .glow[type="email"]:focus,
120
- .glow[type="password"]:focus,
121
- .glow.floatinglabel-input:focus,
122
- .glow.standardlabel-input:focus {
123
- box-shadow: var(--glow-input) !important;
124
- }
125
-
126
- /* Color-specific glow variables */
127
- .glow.primary {
128
- --glow-color: var(--color-primary);
129
- }
130
-
131
- .glow.secondary {
132
- --glow-color: var(--color-secondary);
133
- }
134
-
135
- .glow.success {
136
- --glow-color: var(--color-success);
137
- }
138
-
139
- .glow.warning {
140
- --glow-color: var(--color-warning);
141
- }
142
-
143
- .glow.danger {
144
- --glow-color: var(--color-danger);
145
- }
146
-
147
- .glow.info {
148
- --glow-color: var(--color-info);
149
- }
150
-
151
- /* Dolphin-specific glow effects */
152
- .dolphin-glow {
153
- box-shadow: var(--glow-primary);
154
- }
155
-
156
- .dolphin-glow-success {
157
- box-shadow: var(--glow-success);
158
- }
159
-
160
- .dolphin-glow-warning {
161
- box-shadow: var(--glow-warning);
162
- }
163
-
164
- .dolphin-glow-danger {
165
- box-shadow: var(--glow-danger);
166
- }
167
-
168
- .dolphin-glow-info {
169
- box-shadow: var(--glow-info);
170
- }
171
-
172
- .dolphin-glow-secondary {
173
- box-shadow: var(--glow-secondary);
174
- }
175
-
176
- /* Intensity variants */
177
- .glow.strong {
178
- --glow-intensity: 0.4;
179
- --glow-spread: 25px;
180
- }
181
-
182
- .glow.strong:hover {
183
- box-shadow: 0 0 35px 12px var(--glow-color, var(--color-primary))/25;
184
- }
185
-
186
- .glow.subtle {
187
- --glow-intensity: 0.15;
188
- --glow-spread: 10px;
189
- }
190
-
191
- .glow.subtle:hover {
192
- box-shadow: 0 0 15px 3px var(--glow-color, var(--color-primary))/15;
193
- }
194
-
195
- /* Pulsing glow - FIXED */
196
- .glow.pulse {
197
- animation: dolphin-glow-pulse 3s ease-in-out infinite;
198
- }
199
-
200
- @keyframes dolphin-glow-pulse {
201
- 0%, 100% {
202
- box-shadow: 0 0 5px 2px color-mix(in oklch, var(--glow-color, var(--color-primary)) 15%, transparent);
203
- }
204
- 50% {
205
- box-shadow: 0 0 20px 8px color-mix(in oklch, var(--glow-color, var(--color-primary)) 25%, transparent);
206
- }
207
- }
208
-
209
- /* Wave glow - FIXED */
210
- .glow.wave {
211
- animation: ocean-wave 4s ease-in-out infinite;
212
- }
213
-
214
- @keyframes ocean-wave {
215
- 0%, 100% {
216
- box-shadow:
217
- 0 0 10px 3px color-mix(in oklch, var(--color-primary) 20%, transparent),
218
- 0 0 20px 6px color-mix(in oklch, var(--color-info) 15%, transparent);
219
- }
220
- 50% {
221
- box-shadow:
222
- 0 0 15px 5px color-mix(in oklch, var(--color-primary) 25%, transparent),
223
- 0 0 25px 8px color-mix(in oklch, var(--color-info) 20%, transparent);
224
- }
225
- }
226
-
227
- /* Ensure glow works on focus for inputs */
228
- .floatinglabel-input.glow:focus,
229
- .standardlabel-input.glow:focus {
230
- box-shadow: var(--glow-input) !important;
231
- }
232
-
233
- /* Remove any conflicting shadows from base components */
234
- .chart-card,
235
- .card {
236
- box-shadow: none !important;
237
- }
238
-
239
- /* Force glow to show on hover */
240
- .glow:hover {
241
- transform: translateZ(0); /* Force hardware acceleration */
242
- }
243
-
244
- /* Responsive fixes */
245
- @media (max-width: 768px) {
246
- .glow:hover {
247
- box-shadow: 0 0 15px 4px var(--glow-color, var(--color-primary))/15;
248
- }
249
- }