@jjlmoya/utils-alcohol 1.11.0 → 1.13.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.
@@ -1,483 +0,0 @@
1
- .carb-app {
2
- display: block;
3
- width: 100%;
4
- max-width: 72rem;
5
- margin: 0 auto;
6
- padding: 0.5rem;
7
- }
8
-
9
- .carb-card {
10
- background: #fff;
11
- border: 1px solid #e4e4e7;
12
- border-radius: 1.25rem;
13
- overflow: clip;
14
- box-shadow: 0 4px 20px rgba(0,0,0,0.06);
15
- color: #18181b;
16
- }
17
-
18
- .theme-dark .carb-card {
19
- background: #18181b;
20
- border-color: #27272a;
21
- color: #f4f4f5;
22
- }
23
-
24
- .carb-layout {
25
- display: flex;
26
- flex-direction: column;
27
- }
28
-
29
- @media (min-width: 1024px) {
30
- .carb-layout {
31
- flex-direction: row;
32
- align-items: stretch;
33
- }
34
- }
35
-
36
- .carb-left {
37
- display: flex;
38
- flex-direction: column;
39
- }
40
-
41
- @media (min-width: 1024px) {
42
- .carb-left {
43
- width: 50%;
44
- border-right: 1px solid #e4e4e7;
45
- }
46
- }
47
-
48
- .theme-dark .carb-left { border-color: #27272a; }
49
-
50
- .carb-sec {
51
- padding: 1.5rem;
52
- border-bottom: 1px solid #e4e4e7;
53
- position: relative;
54
- overflow: hidden;
55
- }
56
-
57
- .theme-dark .carb-sec { border-color: #27272a; }
58
- .carb-sec:last-child { border-bottom: none; }
59
-
60
- .carb-params-deco {
61
- position: absolute;
62
- top: 0;
63
- right: 0;
64
- padding: 1rem;
65
- opacity: 0.07;
66
- pointer-events: none;
67
- }
68
-
69
- .carb-deco-icon {
70
- width: 5rem;
71
- height: 5rem;
72
- color: #f59e0b;
73
- transform: rotate(12deg);
74
- }
75
-
76
- .carb-params-title {
77
- font-size: 1.5rem;
78
- font-weight: 900;
79
- margin: 0 0 1.25rem;
80
- display: flex;
81
- align-items: center;
82
- gap: 0.75rem;
83
- }
84
-
85
- .carb-params-title-icon {
86
- background: #f59e0b;
87
- border-radius: 0.75rem;
88
- padding: 0.5rem;
89
- color: #fff;
90
- box-shadow: 0 4px 12px rgba(245,158,11,0.3);
91
- display: flex;
92
- }
93
-
94
- .carb-title-svg {
95
- width: 1.25rem;
96
- height: 1.25rem;
97
- }
98
-
99
- .units-toggle {
100
- display: flex;
101
- background: #f4f4f5;
102
- padding: 0.25rem;
103
- border-radius: 0.75rem;
104
- width: fit-content;
105
- margin-bottom: 1.25rem;
106
- }
107
-
108
- .theme-dark .units-toggle { background: #27272a; }
109
-
110
- .unit-btn {
111
- padding: 0.4rem 1.25rem;
112
- border-radius: 0.5rem;
113
- font-size: 0.875rem;
114
- font-weight: 700;
115
- border: none;
116
- cursor: pointer;
117
- transition: all 0.2s;
118
- color: #71717a;
119
- background: transparent;
120
- }
121
-
122
- .theme-dark .unit-btn { color: #a1a1aa; }
123
- .unit-btn:hover { color: #18181b; }
124
- .theme-dark .unit-btn:hover { color: #e4e4e7; }
125
-
126
- .unit-btn-active {
127
- background: #fff;
128
- color: #18181b;
129
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
130
- }
131
-
132
- .theme-dark .unit-btn-active {
133
- background: #3f3f46;
134
- color: #fff;
135
- }
136
-
137
- .carb-inputs {
138
- display: flex;
139
- flex-direction: column;
140
- gap: 1.25rem;
141
- position: relative;
142
- z-index: 1;
143
- }
144
-
145
- .input-group {
146
- display: flex;
147
- flex-direction: column;
148
- gap: 0.5rem;
149
- }
150
-
151
- .input-label {
152
- display: flex;
153
- justify-content: space-between;
154
- align-items: center;
155
- font-size: 0.875rem;
156
- font-weight: 700;
157
- color: #71717a;
158
- text-transform: uppercase;
159
- letter-spacing: 0.05em;
160
- }
161
-
162
- .theme-dark .input-label { color: #a1a1aa; }
163
-
164
- .input-badge {
165
- padding: 0.125rem 0.5rem;
166
- border-radius: 0.25rem;
167
- font-size: 0.75rem;
168
- }
169
-
170
- .input-badge-amber {
171
- background: #fef3c7;
172
- color: #b45309;
173
- }
174
-
175
- .theme-dark .input-badge-amber {
176
- background: rgba(245,158,11,0.2);
177
- color: #fbbf24;
178
- }
179
-
180
- .input-badge-blue {
181
- background: #dbeafe;
182
- color: #1d4ed8;
183
- }
184
-
185
- .theme-dark .input-badge-blue {
186
- background: rgba(59,130,246,0.2);
187
- color: #60a5fa;
188
- }
189
-
190
- .carb-input {
191
- width: 100%;
192
- background: #fafafa;
193
- border: 2px solid #e4e4e7;
194
- border-radius: 0.75rem;
195
- padding: 0.875rem 1rem;
196
- font-size: 1.125rem;
197
- font-weight: 700;
198
- outline: none;
199
- transition: border-color 0.2s;
200
- box-sizing: border-box;
201
- }
202
-
203
- .theme-dark .carb-input {
204
- background: rgba(0,0,0,0.2);
205
- border-color: #3f3f46;
206
- color: #f4f4f5;
207
- }
208
-
209
- .carb-input:focus { border-color: #f59e0b; }
210
-
211
- .co2-section {
212
- padding-top: 1.25rem;
213
- border-top: 1px dashed #e4e4e7;
214
- }
215
-
216
- .theme-dark .co2-section { border-color: #3f3f46; }
217
-
218
- .co2-header {
219
- display: flex;
220
- justify-content: space-between;
221
- align-items: flex-end;
222
- margin-bottom: 1rem;
223
- }
224
-
225
- .co2-label {
226
- font-weight: 700;
227
- font-size: 0.875rem;
228
- color: #71717a;
229
- text-transform: uppercase;
230
- letter-spacing: 0.05em;
231
- }
232
-
233
- .theme-dark .co2-label { color: #a1a1aa; }
234
- .co2-value-wrap { text-align: right; }
235
-
236
- .co2-value {
237
- font-size: 2rem;
238
- font-weight: 900;
239
- color: #f59e0b;
240
- line-height: 1;
241
- }
242
-
243
- .co2-unit {
244
- font-size: 0.75rem;
245
- font-weight: 700;
246
- color: #a1a1aa;
247
- text-transform: uppercase;
248
- margin-left: 0.25rem;
249
- }
250
-
251
- .co2-slider {
252
- width: 100%;
253
- height: 1rem;
254
- background: #e4e4e7;
255
- border-radius: 9999px;
256
- appearance: none;
257
- cursor: pointer;
258
- accent-color: #f59e0b;
259
- }
260
-
261
- .theme-dark .co2-slider { background: #3f3f46; }
262
-
263
- .preset-row {
264
- display: flex;
265
- justify-content: space-between;
266
- margin-top: 0.75rem;
267
- padding: 0 0.25rem;
268
- }
269
-
270
- .preset-btn {
271
- display: flex;
272
- flex-direction: column;
273
- align-items: center;
274
- background: none;
275
- border: none;
276
- cursor: pointer;
277
- opacity: 0.5;
278
- transition: opacity 0.2s;
279
- padding: 0;
280
- }
281
-
282
- .preset-btn:hover { opacity: 1; }
283
-
284
- .preset-tick {
285
- width: 4px;
286
- height: 10px;
287
- background: #d4d4d8;
288
- margin-bottom: 0.25rem;
289
- }
290
-
291
- .preset-label {
292
- font-size: 0.75rem;
293
- font-weight: 700;
294
- color: #71717a;
295
- }
296
-
297
- .results-title {
298
- font-size: 1.125rem;
299
- font-weight: 700;
300
- margin: 0 0 1.25rem;
301
- display: flex;
302
- align-items: center;
303
- gap: 0.75rem;
304
- }
305
-
306
- .results-title-icon {
307
- width: 1.25rem;
308
- height: 1.25rem;
309
- color: #a1a1aa;
310
- }
311
-
312
- .results-list {
313
- display: flex;
314
- flex-direction: column;
315
- gap: 0.75rem;
316
- }
317
-
318
- .result-row {
319
- display: flex;
320
- align-items: center;
321
- justify-content: space-between;
322
- padding: 0.875rem;
323
- border-radius: 0.75rem;
324
- border: 1px solid #f4f4f5;
325
- }
326
-
327
- .theme-dark .result-row { border-color: #27272a; }
328
-
329
- .result-row-primary {
330
- background: #fafafa;
331
- border-color: #e4e4e7;
332
- }
333
-
334
- .theme-dark .result-row-primary {
335
- background: rgba(0,0,0,0.2);
336
- border-color: #3f3f46;
337
- }
338
-
339
- .result-name { font-weight: 700; }
340
-
341
- .result-name-muted {
342
- font-weight: 500;
343
- color: #71717a;
344
- }
345
-
346
- .theme-dark .result-name-muted { color: #a1a1aa; }
347
- .result-value {
348
- font-size: 1.125rem;
349
- font-weight: 700;
350
- }
351
-
352
- .result-value-primary {
353
- font-size: 1.375rem;
354
- font-weight: 900;
355
- color: #4f46e5;
356
- }
357
-
358
- .theme-dark .result-value-primary { color: #818cf8; }
359
-
360
- .carb-right {
361
- display: flex;
362
- flex-direction: column;
363
- align-items: center;
364
- justify-content: center;
365
- padding: 1.5rem;
366
- background: #fafafa;
367
- }
368
-
369
- @media (min-width: 1024px) {
370
- .carb-right { width: 50%; }
371
- }
372
-
373
- .theme-dark .carb-right { background: rgba(0,0,0,0.15); }
374
-
375
- .safety-box {
376
- width: 100%;
377
- margin-bottom: 1.25rem;
378
- background: #ef4444;
379
- color: #fff;
380
- padding: 0.75rem 1.25rem;
381
- border-radius: 0.75rem;
382
- box-shadow: 0 4px 12px rgba(239,68,68,0.3);
383
- display: flex;
384
- align-items: center;
385
- justify-content: center;
386
- gap: 0.75rem;
387
- font-weight: 700;
388
- text-transform: uppercase;
389
- animation: bounce 1s infinite;
390
- }
391
-
392
- .safety-icon {
393
- width: 1.25rem;
394
- height: 1.25rem;
395
- }
396
-
397
- @keyframes bounce {
398
- 0%, 100% { transform: translateY(0); }
399
- 50% { transform: translateY(-4px); }
400
- }
401
-
402
- @keyframes calc-rise {
403
- 0% {
404
- transform: translateY(100%) scale(0.5);
405
- opacity: 0;
406
- }
407
-
408
- 20% { opacity: 0.8; }
409
-
410
- 100% {
411
- transform: translateY(-120%) scale(var(--s, 1));
412
- opacity: 0;
413
- }
414
- }
415
-
416
- .calc-b {
417
- position: absolute;
418
- background: radial-gradient(circle at 30% 30%, #fff, rgba(255,255,255,0.2));
419
- border-radius: 50%;
420
- animation: calc-rise linear infinite;
421
- bottom: -20px;
422
- }
423
-
424
- .beer-visual-wrap {
425
- position: relative;
426
- width: 240px;
427
- height: 400px;
428
- }
429
-
430
- .beer-glass {
431
- position: absolute;
432
- inset: 0;
433
- background: linear-gradient(to bottom, #fbbf24, #d97706, #78350f);
434
- border-radius: 0 0 2rem 2rem;
435
- z-index: 1;
436
- clip-path: polygon(5% 0, 95% 0, 85% 100%, 15% 100%);
437
- }
438
-
439
- .glass-bubbles {
440
- position: absolute;
441
- inset: 0;
442
- opacity: 0.5;
443
- overflow: hidden;
444
- }
445
-
446
- .glass-foam {
447
- position: absolute;
448
- top: 0;
449
- width: 100%;
450
- background: #fcf5e5;
451
- transition: height 0.5s;
452
- height: 20px;
453
- }
454
-
455
- .glass-shine {
456
- position: absolute;
457
- inset: 0;
458
- border: 4px solid rgba(255,255,255,0.2);
459
- border-bottom-width: 4px;
460
- border-radius: 0 0 2rem 2rem;
461
- z-index: 2;
462
- clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
463
- }
464
-
465
- .foam-info {
466
- margin-top: 1.5rem;
467
- text-align: center;
468
- }
469
-
470
- .foam-text {
471
- font-size: 1.25rem;
472
- font-weight: 900;
473
- text-transform: uppercase;
474
- letter-spacing: 0.1em;
475
- opacity: 0.8;
476
- margin: 0 0 0.5rem;
477
- }
478
-
479
- .foam-hint {
480
- color: #a1a1aa;
481
- font-size: 0.875rem;
482
- margin: 0;
483
- }