@jjlmoya/utils-cooking 1.21.0 → 1.23.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-cooking",
3
- "version": "1.21.0",
3
+ "version": "1.23.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -163,455 +163,3 @@ const { ui } = Astro.props;
163
163
  </script>
164
164
 
165
165
 
166
- <style>
167
- .cw-container {
168
- width: 100%;
169
- max-width: 100%;
170
- padding: 1rem;
171
- }
172
-
173
- .cw-card {
174
- background: var(--cw-bg-card);
175
- border: 1px solid var(--cw-border);
176
- border-radius: var(--cw-radius);
177
- box-shadow: var(--cw-shadow-xl);
178
- overflow: hidden;
179
- transition: all 0.3s ease;
180
- }
181
-
182
- .cw-progress-bar {
183
- height: 0.375rem;
184
- width: 0%;
185
- background: linear-gradient(to right, var(--cw-primary), hsl(270deg, 94%, 60%));
186
- transition: width 0.5s ease;
187
- }
188
-
189
- .cw-content {
190
- padding: 2rem;
191
- }
192
-
193
- @media (max-width: 1024px) {
194
- .cw-content {
195
- padding: 1.5rem;
196
- }
197
- }
198
-
199
- @media (max-width: 640px) {
200
- .cw-content {
201
- padding: 1rem;
202
- }
203
- }
204
-
205
- .cw-grid {
206
- display: grid;
207
- grid-template-columns: 1fr;
208
- gap: 2rem;
209
- }
210
-
211
- @media (min-width: 1024px) {
212
- .cw-grid {
213
- grid-template-columns: 1.4fr 1fr;
214
- gap: 2rem;
215
- }
216
- }
217
-
218
- .cw-left {
219
- display: flex;
220
- flex-direction: column;
221
- gap: 2rem;
222
- }
223
-
224
- .cw-right {
225
- display: flex;
226
- flex-direction: column;
227
- gap: 1.5rem;
228
- }
229
-
230
- .cw-section {
231
- display: flex;
232
- flex-direction: column;
233
- gap: 1rem;
234
- }
235
-
236
- .cw-step-label {
237
- display: flex;
238
- align-items: center;
239
- gap: 0.75rem;
240
- font-size: 0.625rem;
241
- font-weight: 900;
242
- color: var(--cw-text-muted);
243
- text-transform: uppercase;
244
- letter-spacing: 0.2em;
245
- }
246
-
247
- .cw-step-number {
248
- display: flex;
249
- align-items: center;
250
- justify-content: center;
251
- width: 1.25rem;
252
- height: 1.25rem;
253
- border-radius: 50%;
254
- background: var(--cw-primary-light);
255
- color: var(--cw-primary);
256
- font-weight: 900;
257
- font-size: 0.625rem;
258
- flex-shrink: 0;
259
- }
260
-
261
- :global(.theme-dark) .cw-step-number {
262
- background: hsl(240deg, 100%, 20%);
263
- }
264
-
265
- .cw-style-grid {
266
- display: grid;
267
- grid-template-columns: repeat(2, 1fr);
268
- gap: 0.75rem;
269
- }
270
-
271
- .cw-style-btn {
272
- display: flex;
273
- flex-direction: column;
274
- align-items: flex-start;
275
- gap: 0.5rem;
276
- padding: 1rem;
277
- border: 2px solid var(--cw-border);
278
- border-radius: 0.75rem;
279
- background: var(--cw-bg-card);
280
- color: var(--cw-text-muted);
281
- cursor: pointer;
282
- transition: all 0.3s ease;
283
- text-align: left;
284
- font-size: inherit;
285
- }
286
-
287
- .cw-style-btn:hover {
288
- border-color: var(--cw-primary-light);
289
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
290
- }
291
-
292
- .cw-style-btn.active {
293
- background: var(--cw-primary-light);
294
- border-color: var(--cw-primary);
295
- color: var(--cw-primary);
296
- }
297
-
298
- :global(.theme-dark) .cw-style-btn.active {
299
- background: hsl(240deg, 100%, 35%);
300
- color: hsl(0deg, 0%, 100%);
301
- }
302
-
303
- :global(.theme-dark) .cw-style-btn.active .cw-style-name {
304
- color: hsl(0deg, 0%, 100%);
305
- }
306
-
307
- :global(.theme-dark) .cw-style-btn.active .cw-style-desc {
308
- color: hsl(0deg, 0%, 100%);
309
- }
310
-
311
- .cw-icon {
312
- width: 1.5rem;
313
- height: 1.5rem;
314
- }
315
-
316
- .cw-icon-large {
317
- width: 6rem;
318
- height: 6rem;
319
- color: var(--cw-text-light);
320
- }
321
-
322
- .cw-icon-orange {
323
- color: hsl(33deg, 100%, 50%);
324
- }
325
-
326
- .cw-icon-yellow {
327
- color: hsl(45deg, 100%, 50%);
328
- }
329
-
330
- .cw-icon-red {
331
- color: hsl(0deg, 100%, 50%);
332
- }
333
-
334
- .cw-icon-blue {
335
- color: hsl(217deg, 100%, 50%);
336
- }
337
-
338
- .cw-style-name {
339
- font-size: 0.75rem;
340
- font-weight: 900;
341
- display: block;
342
- color: var(--cw-text-main);
343
- }
344
-
345
- .cw-style-btn.active .cw-style-name {
346
- color: var(--cw-primary);
347
- }
348
-
349
- .cw-style-desc {
350
- font-weight: 600;
351
- opacity: 0.7;
352
- display: block;
353
- text-transform: uppercase;
354
- }
355
-
356
- .cw-maint-grid {
357
- display: grid;
358
- grid-template-columns: 1fr;
359
- gap: 0.75rem;
360
- }
361
-
362
- @media (min-width: 640px) {
363
- .cw-maint-grid {
364
- grid-template-columns: repeat(3, 1fr);
365
- }
366
- }
367
-
368
- .cw-maint-btn {
369
- display: flex;
370
- flex-direction: column;
371
- align-items: center;
372
- text-align: center;
373
- gap: 0.75rem;
374
- padding: 1.25rem;
375
- border: 2px solid var(--cw-border);
376
- border-radius: 0.75rem;
377
- background: var(--cw-bg-card);
378
- color: var(--cw-text-muted);
379
- cursor: pointer;
380
- transition: all 0.3s ease;
381
- font-size: inherit;
382
- }
383
-
384
- .cw-maint-btn:hover {
385
- border-color: var(--cw-primary-light);
386
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
387
- }
388
-
389
- .cw-maint-btn.active {
390
- background: var(--cw-primary-light);
391
- border-color: var(--cw-primary);
392
- }
393
-
394
- :global(.theme-dark) .cw-maint-btn.active {
395
- background: hsl(240deg, 100%, 20%);
396
- }
397
-
398
- .cw-maint-icon {
399
- width: 3rem;
400
- height: 3rem;
401
- border-radius: 0.75rem;
402
- background: var(--cw-bg-app);
403
- display: flex;
404
- align-items: center;
405
- justify-content: center;
406
- color: var(--cw-text-muted);
407
- transition: all 0.3s ease;
408
- }
409
-
410
- .cw-maint-btn.active .cw-maint-icon {
411
- color: var(--cw-primary);
412
- }
413
-
414
- .cw-maint-btn:hover .cw-maint-icon {
415
- color: var(--cw-primary);
416
- }
417
-
418
- .cw-maint-name {
419
- font-size: 0.75rem;
420
- font-weight: 900;
421
- display: block;
422
- color: var(--cw-text-main);
423
- }
424
-
425
- .cw-maint-btn.active .cw-maint-name {
426
- color: var(--cw-primary);
427
- }
428
-
429
- .cw-maint-desc {
430
- font-size: 0.625rem;
431
- font-weight: 500;
432
- opacity: 0.7;
433
- display: block;
434
- line-height: 1.3;
435
- }
436
-
437
- .cw-result-card {
438
- background: hsl(217deg, 33%, 17%);
439
- border-radius: var(--cw-radius);
440
- padding: 2rem;
441
- color: hsl(0deg, 0%, 100%);
442
- box-shadow: var(--cw-shadow-xl);
443
- position: relative;
444
- overflow: hidden;
445
- min-height: 320px;
446
- display: flex;
447
- flex-direction: column;
448
- justify-content: center;
449
- transition: all 0.3s ease;
450
- }
451
-
452
- .cw-card-bg {
453
- position: absolute;
454
- inset: 0;
455
- background: linear-gradient(135deg, hsl(217deg, 33%, 17%), hsl(217deg, 33%, 7%));
456
- transition: background 1s ease;
457
- }
458
-
459
- .cw-card-glow {
460
- position: absolute;
461
- right: -3rem;
462
- top: -3rem;
463
- width: 12rem;
464
- height: 12rem;
465
- background: rgba(255, 255, 255, 0.1);
466
- border-radius: 50%;
467
- filter: blur(3rem);
468
- transition: transform 0.7s ease;
469
- }
470
-
471
- .cw-result-card:hover .cw-card-glow {
472
- transform: scale(1.25);
473
- }
474
-
475
- .cw-card-content {
476
- position: relative;
477
- z-index: 10;
478
- display: flex;
479
- flex-direction: column;
480
- gap: 1.5rem;
481
- text-align: center;
482
- }
483
-
484
- .cw-icon-container {
485
- display: flex;
486
- justify-content: center;
487
- align-items: center;
488
- height: 6rem;
489
- }
490
-
491
- .cw-result-icon {
492
- display: none;
493
- }
494
-
495
- .cw-result-icon:not(.cw-hidden) {
496
- display: block;
497
- }
498
-
499
- .cw-result-label {
500
- font-size: 0.625rem;
501
- font-weight: 900;
502
- text-transform: uppercase;
503
- letter-spacing: 0.3em;
504
- color: rgba(255, 255, 255, 0.4);
505
- margin-bottom: 0.5rem;
506
- }
507
-
508
- .cw-result-name {
509
- font-size: 1.875rem;
510
- font-weight: 900;
511
- letter-spacing: -0.02em;
512
- margin: 0;
513
- }
514
-
515
- .cw-result-tag {
516
- font-size: 0.75rem;
517
- font-weight: 500;
518
- color: rgba(255, 255, 255, 0.6);
519
- margin: 0;
520
- }
521
-
522
- .cw-result-details {
523
- display: none;
524
- grid-template-columns: 1fr 1fr;
525
- gap: 0.75rem;
526
- padding-top: 1rem;
527
- border-top: 1px solid rgba(255, 255, 255, 0.1);
528
- }
529
-
530
- .cw-result-details:not(.cw-hidden) {
531
- display: grid;
532
- }
533
-
534
- .cw-detail-box {
535
- background: rgba(255, 255, 255, 0.05);
536
- border: 1px solid rgba(255, 255, 255, 0.05);
537
- border-radius: 0.75rem;
538
- padding: 0.75rem;
539
- }
540
-
541
- .cw-detail-label {
542
- font-size: 0.5rem;
543
- font-weight: 900;
544
- text-transform: uppercase;
545
- letter-spacing: 0.1em;
546
- display: block;
547
- margin-bottom: 0.25rem;
548
- }
549
-
550
- .cw-detail-text {
551
- font-size: 0.625rem;
552
- line-height: 1.4;
553
- color: rgba(255, 255, 255, 0.9);
554
- margin: 0;
555
- }
556
-
557
- .cw-tip-card {
558
- background: var(--cw-bg-app);
559
- border: 1px solid var(--cw-border);
560
- border-radius: var(--cw-radius);
561
- padding: 1.5rem;
562
- display: flex;
563
- flex-direction: column;
564
- gap: 1rem;
565
- }
566
-
567
- .cw-tip-header {
568
- display: flex;
569
- align-items: center;
570
- gap: 0.75rem;
571
- }
572
-
573
- .cw-tip-icon {
574
- padding: 0.5rem;
575
- background: var(--cw-primary-light);
576
- border-radius: 0.75rem;
577
- display: flex;
578
- align-items: center;
579
- justify-content: center;
580
- color: var(--cw-primary);
581
- flex-shrink: 0;
582
- }
583
-
584
- :global(.theme-dark) .cw-tip-icon {
585
- background: hsl(240deg, 100%, 20%);
586
- }
587
-
588
- .cw-tip-title {
589
- font-size: 0.875rem;
590
- font-weight: 900;
591
- color: var(--cw-text-main);
592
- text-transform: uppercase;
593
- letter-spacing: 0.05em;
594
- }
595
-
596
- .cw-tip-text {
597
- font-size: 0.6875rem;
598
- line-height: 1.6;
599
- color: var(--cw-text-muted);
600
- font-weight: 400;
601
- font-style: italic;
602
- background: rgba(var(--cw-primary-rgb, 99, 102, 241), 0.03);
603
- padding: 1.25rem;
604
- border-radius: 0.75rem;
605
- border: 1px solid var(--cw-border);
606
- margin: 0;
607
- }
608
-
609
- :global(.theme-dark) .cw-tip-text {
610
- color: var(--cw-text-main);
611
- background: rgba(255, 255, 255, 0.03);
612
- }
613
-
614
- .cw-hidden {
615
- display: none;
616
- }
617
- </style>
@@ -106,277 +106,3 @@ ${ui.exampleLine4}`;
106
106
  </script>
107
107
 
108
108
 
109
- <style>
110
- .ingredient-rescaler-container {
111
- max-width: 100%;
112
- padding: 1.5rem;
113
- background: var(--ir-bg-card);
114
- border: 1px solid var(--ir-border);
115
- border-radius: var(--ir-radius);
116
- box-shadow: var(--ir-shadow-lg);
117
- }
118
-
119
- .ir-grid {
120
- display: grid;
121
- grid-template-columns: 1fr;
122
- gap: 2rem;
123
- margin-bottom: 2rem;
124
- }
125
-
126
- @media (min-width: 768px) {
127
- .ir-grid {
128
- grid-template-columns: 1fr 1fr;
129
- }
130
- }
131
-
132
- .ir-section {
133
- background: var(--ir-bg-app);
134
- padding: 1.5rem;
135
- border-radius: 1.25rem;
136
- border: 1px solid var(--ir-border);
137
- }
138
-
139
- .ir-section-primary {
140
- background: var(--ir-bg-card);
141
- border: 2px solid var(--ir-primary);
142
- }
143
-
144
- .ir-section-title {
145
- font-size: 1.125rem;
146
- font-weight: 700;
147
- color: var(--ir-text-main);
148
- margin-bottom: 1rem;
149
- display: flex;
150
- align-items: center;
151
- gap: 0.5rem;
152
- }
153
-
154
- .ir-section-primary .ir-section-title {
155
- color: var(--ir-primary);
156
- }
157
-
158
- .ir-fields {
159
- display: grid;
160
- grid-template-columns: 1fr 1fr;
161
- gap: 1rem;
162
- margin-bottom: 1.5rem;
163
- }
164
-
165
- .ir-field {
166
- display: flex;
167
- flex-direction: column;
168
- gap: 0.5rem;
169
- }
170
-
171
- .ir-label {
172
- font-size: 0.75rem;
173
- font-weight: 700;
174
- color: var(--ir-text-muted);
175
- text-transform: uppercase;
176
- letter-spacing: 0.05em;
177
- }
178
-
179
- .ir-input {
180
- width: 100%;
181
- padding: 0.75rem 1rem;
182
- border-radius: 0.75rem;
183
- border: 1px solid var(--ir-border);
184
- background: var(--ir-bg-card);
185
- color: var(--ir-text-main);
186
- font-weight: 600;
187
- font-size: 1.125rem;
188
- text-align: center;
189
- transition: all 0.3s ease;
190
- }
191
-
192
- .ir-input:focus {
193
- outline: none;
194
- border-color: var(--ir-primary);
195
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
196
- }
197
-
198
- .ir-factor-display {
199
- margin-top: 1rem;
200
- padding: 1rem;
201
- background: var(--ir-primary-light);
202
- border-radius: 0.75rem;
203
- border: 1px solid var(--ir-primary);
204
- display: flex;
205
- justify-content: space-between;
206
- align-items: center;
207
- }
208
-
209
- .ir-factor-label {
210
- font-size: 0.875rem;
211
- font-weight: 600;
212
- color: var(--ir-text-muted);
213
- }
214
-
215
- .ir-factor-value {
216
- font-size: 2rem;
217
- font-weight: 800;
218
- color: var(--ir-primary);
219
- }
220
-
221
- .ir-textarea-container {
222
- display: flex;
223
- flex-direction: column;
224
- height: 100%;
225
- gap: 0.5rem;
226
- }
227
-
228
- .ir-textarea {
229
- width: 100%;
230
- flex: 1;
231
- min-height: 200px;
232
- padding: 1rem;
233
- border-radius: 0.75rem;
234
- border: 1px solid var(--ir-border);
235
- background: var(--ir-bg-card);
236
- color: var(--ir-text-main);
237
- font-size: 0.875rem;
238
- resize: none;
239
- line-height: 1.6;
240
- transition: all 0.3s ease;
241
- }
242
-
243
- .ir-textarea:focus {
244
- outline: none;
245
- border-color: var(--ir-primary);
246
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
247
- }
248
-
249
- .ir-textarea::placeholder {
250
- color: hsl(210deg, 15%, 75%);
251
- }
252
-
253
- .ir-results-card {
254
- background: var(--ir-text-main);
255
- border-radius: 1.25rem;
256
- border: 1px solid var(--ir-border);
257
- overflow: hidden;
258
- box-shadow: var(--ir-shadow-lg);
259
- }
260
-
261
- .ir-results-header {
262
- padding: 1rem 1.5rem;
263
- background: hsl(210deg, 30%, 15%);
264
- border-bottom: 1px solid hsl(210deg, 30%, 25%);
265
- display: flex;
266
- justify-content: space-between;
267
- align-items: center;
268
- }
269
-
270
- :global(.theme-dark) .ir-results-header {
271
- background: hsl(220deg, 25%, 8%);
272
- border-bottom-color: hsl(220deg, 25%, 20%);
273
- }
274
-
275
- .ir-results-title {
276
- color: var(--ir-bg-card);
277
- font-weight: 700;
278
- display: flex;
279
- align-items: center;
280
- gap: 0.5rem;
281
- }
282
-
283
- :global(.theme-dark) .ir-results-title {
284
- color: var(--ir-text-main);
285
- }
286
-
287
- .ir-copy-btn {
288
- font-size: 0.75rem;
289
- background: hsl(210deg, 30%, 35%);
290
- color: var(--ir-bg-card);
291
- padding: 0.5rem 1rem;
292
- border-radius: 0.5rem;
293
- border: none;
294
- cursor: pointer;
295
- transition: all 0.3s ease;
296
- font-weight: 600;
297
- display: flex;
298
- align-items: center;
299
- gap: 0.5rem;
300
- }
301
-
302
- :global(.theme-dark) .ir-copy-btn {
303
- background: hsl(220deg, 25%, 30%);
304
- color: var(--ir-text-main);
305
- }
306
-
307
- .ir-copy-btn:hover {
308
- background: hsl(210deg, 30%, 45%);
309
- }
310
-
311
- :global(.theme-dark) .ir-copy-btn:hover {
312
- background: hsl(220deg, 25%, 40%);
313
- }
314
-
315
- .ir-copy-btn.ir-copied {
316
- background: hsl(142deg, 72%, 45%);
317
- }
318
-
319
- .ir-results-container {
320
- padding: 2rem;
321
- font-size: 1rem;
322
- display: flex;
323
- flex-direction: column;
324
- gap: 0.75rem;
325
- min-height: 200px;
326
- background: var(--ir-bg-card);
327
- color: var(--ir-text-main);
328
- }
329
-
330
- .ir-empty-state {
331
- height: 100%;
332
- display: flex;
333
- flex-direction: column;
334
- align-items: center;
335
- justify-content: center;
336
- gap: 1rem;
337
- opacity: 0.5;
338
- color: var(--ir-text-muted);
339
- }
340
-
341
- .ir-empty-icon {
342
- width: 3rem;
343
- height: 3rem;
344
- }
345
-
346
- :global(.ir-result-row) {
347
- display: flex;
348
- justify-content: space-between;
349
- align-items: center;
350
- background: var(--ir-bg-app);
351
- padding: 0.75rem;
352
- border-radius: 0.5rem;
353
- border-left: 4px solid transparent;
354
- transition: all 0.3s ease;
355
- }
356
-
357
- :global(.ir-result-row):hover {
358
- background: var(--ir-primary-light);
359
- border-left-color: var(--ir-primary);
360
- }
361
-
362
- .ir-original-amount {
363
- color: hsl(210deg, 15%, 75%);
364
- font-size: 0.75rem;
365
- text-decoration: line-through;
366
- opacity: 0.75;
367
- }
368
-
369
- .ir-new-value {
370
- color: var(--ir-primary);
371
- font-weight: 800;
372
- font-size: 1.125rem;
373
- }
374
-
375
- :global(.ir-no-amount-row) {
376
- color: var(--ir-text-muted);
377
- font-style: italic;
378
- font-size: 0.875rem;
379
- padding: 0.5rem;
380
- background: transparent;
381
- }
382
- </style>
@@ -185,466 +185,3 @@ const { ui } = Astro.props;
185
185
  </script>
186
186
 
187
187
 
188
- <style>
189
- input[type='number']::-webkit-outer-spin-button,
190
- input[type='number']::-webkit-inner-spin-button {
191
- -webkit-appearance: none;
192
- margin: 0;
193
- }
194
-
195
- .rg-container {
196
- width: 100%;
197
- max-width: 100%;
198
- padding: 1rem;
199
- }
200
-
201
- .rg-card {
202
- background: var(--rg-bg-card);
203
- border: 1px solid var(--rg-border);
204
- border-radius: var(--rg-radius);
205
- box-shadow: var(--rg-shadow-lg);
206
- overflow: hidden;
207
- }
208
-
209
- .rg-progress-wrapper {
210
- height: 0.375rem;
211
- width: 100%;
212
- background: var(--rg-bg-app);
213
- position: relative;
214
- }
215
-
216
- .rg-progress-bar {
217
- height: 100%;
218
- background: linear-gradient(to right, var(--rg-primary), var(--rg-secondary));
219
- transition: width 0.3s ease;
220
- width: 50%;
221
- }
222
-
223
- .rg-content {
224
- padding: 2rem;
225
- }
226
-
227
- @media (max-width: 1024px) {
228
- .rg-content {
229
- padding: 1.5rem;
230
- }
231
- }
232
-
233
- @media (max-width: 640px) {
234
- .rg-content {
235
- padding: 1rem;
236
- }
237
- }
238
-
239
- .rg-grid {
240
- display: grid;
241
- grid-template-columns: 1fr;
242
- gap: 3rem;
243
- }
244
-
245
- @media (min-width: 1024px) {
246
- .rg-grid {
247
- grid-template-columns: 1fr 1fr;
248
- }
249
- }
250
-
251
- .rg-controls {
252
- display: flex;
253
- flex-direction: column;
254
- gap: 2.5rem;
255
- }
256
-
257
- .rg-control-group {
258
- display: flex;
259
- flex-direction: column;
260
- gap: 1rem;
261
- }
262
-
263
- .rg-label {
264
- font-size: 0.75rem;
265
- font-weight: 700;
266
- color: var(--rg-text-muted);
267
- text-transform: uppercase;
268
- letter-spacing: 0.05em;
269
- display: flex;
270
- align-items: center;
271
- gap: 0.75rem;
272
- }
273
-
274
- .rg-step {
275
- width: 1.5rem;
276
- height: 1.5rem;
277
- border-radius: 50%;
278
- background: hsl(38deg, 92%, 90%);
279
- color: var(--rg-primary);
280
- display: flex;
281
- align-items: center;
282
- justify-content: center;
283
- font-weight: 700;
284
- font-size: 0.75rem;
285
- }
286
-
287
- :global(.theme-dark) .rg-step {
288
- background: hsl(38deg, 92%, 12%);
289
- }
290
-
291
- .rg-volume-wrapper {
292
- display: flex;
293
- flex-direction: column;
294
- gap: 1rem;
295
- }
296
-
297
- @media (min-width: 640px) {
298
- .rg-volume-wrapper {
299
- flex-direction: row;
300
- gap: 1rem;
301
- }
302
- }
303
-
304
- .rg-input-group {
305
- position: relative;
306
- flex: 1;
307
- }
308
-
309
- .rg-input {
310
- width: 100%;
311
- padding: 1rem 2rem 1rem 1rem;
312
- border: 2px solid var(--rg-border);
313
- border-radius: 0.75rem;
314
- background: var(--rg-bg-app);
315
- color: var(--rg-text-main);
316
- font-weight: 600;
317
- font-size: 1.875rem;
318
- text-align: center;
319
- transition: all 0.3s ease;
320
- }
321
-
322
- .rg-input:focus {
323
- outline: none;
324
- border-color: var(--rg-primary);
325
- box-shadow: 0 0 0 3px hsl(38deg, 92%, 50%, 0.1);
326
- }
327
-
328
- .rg-unit {
329
- position: absolute;
330
- right: 1rem;
331
- top: 50%;
332
- transform: translateY(-50%);
333
- color: var(--rg-text-muted);
334
- font-weight: 600;
335
- font-size: 0.875rem;
336
- text-transform: uppercase;
337
- letter-spacing: 0.05em;
338
- pointer-events: none;
339
- }
340
-
341
- .rg-liquid-buttons {
342
- display: grid;
343
- grid-template-columns: repeat(4, 1fr);
344
- gap: 0.5rem;
345
- }
346
-
347
- @media (max-width: 640px) {
348
- .rg-liquid-buttons {
349
- grid-template-columns: repeat(2, 1fr);
350
- }
351
- }
352
-
353
- .rg-liquid-btn {
354
- display: flex;
355
- align-items: center;
356
- justify-content: center;
357
- padding: 0.75rem;
358
- border: 2px solid var(--rg-border);
359
- border-radius: 0.75rem;
360
- background: var(--rg-bg-card);
361
- color: var(--rg-text-muted);
362
- cursor: pointer;
363
- transition: all 0.3s ease;
364
- }
365
-
366
- .rg-liquid-btn:hover {
367
- border-color: var(--rg-primary);
368
- color: var(--rg-primary);
369
- }
370
-
371
- .rg-liquid-btn.active {
372
- background: var(--rg-bg-app);
373
- border-color: var(--rg-primary);
374
- color: var(--rg-primary);
375
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
376
- }
377
-
378
- .rg-btn-icon {
379
- width: 1.5rem;
380
- height: 1.5rem;
381
- }
382
-
383
- .rg-texture-grid {
384
- display: grid;
385
- grid-template-columns: repeat(2, 1fr);
386
- gap: 0.75rem;
387
- }
388
-
389
- @media (min-width: 640px) {
390
- .rg-texture-grid {
391
- grid-template-columns: repeat(4, 1fr);
392
- }
393
- }
394
-
395
- .rg-texture-btn {
396
- display: flex;
397
- flex-direction: column;
398
- align-items: center;
399
- gap: 0.75rem;
400
- padding: 1rem 0.75rem;
401
- border: 2px solid var(--rg-border);
402
- border-radius: 0.75rem;
403
- background: var(--rg-bg-card);
404
- color: var(--rg-text-muted);
405
- cursor: pointer;
406
- transition: all 0.3s ease;
407
- text-align: center;
408
- }
409
-
410
- .rg-texture-btn:hover {
411
- border-color: var(--rg-primary);
412
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
413
- }
414
-
415
- .rg-texture-btn.active {
416
- background: var(--rg-primary-light);
417
- border-color: var(--rg-primary);
418
- color: var(--rg-primary);
419
- }
420
-
421
- .rg-texture-visual {
422
- width: 1.5rem;
423
- height: 1.5rem;
424
- border: 1px solid currentcolor;
425
- border-radius: 0.25rem;
426
- overflow: hidden;
427
- display: flex;
428
- align-items: flex-end;
429
- }
430
-
431
- .rg-texture-bar {
432
- width: 100%;
433
- background: currentcolor;
434
- transition: height 0.3s ease;
435
- }
436
-
437
- .rg-texture-btn[data-level="1"] .rg-texture-bar {
438
- height: 25%;
439
- }
440
-
441
- .rg-texture-btn[data-level="2"] .rg-texture-bar {
442
- height: 50%;
443
- }
444
-
445
- .rg-texture-btn[data-level="3"] .rg-texture-bar {
446
- height: 75%;
447
- }
448
-
449
- .rg-texture-btn[data-level="4"] .rg-texture-bar {
450
- height: 100%;
451
- }
452
-
453
- .rg-texture-label {
454
- font-size: 0.75rem;
455
- font-weight: 600;
456
- line-height: 1.2;
457
- }
458
-
459
- .rg-results {
460
- display: flex;
461
- flex-direction: column;
462
- gap: 1.5rem;
463
- }
464
-
465
- .rg-result-hero {
466
- background: linear-gradient(135deg, var(--rg-primary), var(--rg-secondary));
467
- border-radius: var(--rg-radius);
468
- padding: 2rem;
469
- color: var(--rg-bg-card);
470
- box-shadow: var(--rg-shadow-lg);
471
- position: relative;
472
- overflow: hidden;
473
- }
474
-
475
- .rg-result-hero::before {
476
- content: '';
477
- position: absolute;
478
- top: -50%;
479
- left: -50%;
480
- width: 200%;
481
- height: 200%;
482
- background: radial-gradient(circle, hsla(0deg, 0%, 100%, 0.1), transparent 60%);
483
- pointer-events: none;
484
- }
485
-
486
- .rg-result-header {
487
- display: flex;
488
- justify-content: space-between;
489
- align-items: center;
490
- margin-bottom: 1.5rem;
491
- position: relative;
492
- z-index: 1;
493
- }
494
-
495
- .rg-result-label {
496
- font-size: 0.75rem;
497
- font-weight: 700;
498
- text-transform: uppercase;
499
- letter-spacing: 0.1em;
500
- opacity: 0.8;
501
- }
502
-
503
- .rg-roux-type {
504
- font-size: 0.75rem;
505
- font-weight: 600;
506
- background: hsla(0deg, 0%, 0%, 0.2);
507
- padding: 0.5rem 1rem;
508
- border-radius: 0.5rem;
509
- text-transform: capitalize;
510
- }
511
-
512
- .rg-result-amounts {
513
- display: flex;
514
- align-items: center;
515
- justify-content: space-around;
516
- margin-bottom: 1.5rem;
517
- position: relative;
518
- z-index: 1;
519
- text-align: center;
520
- }
521
-
522
- .rg-amount {
523
- flex: 1;
524
- }
525
-
526
- .rg-amount-value {
527
- font-size: 2.5rem;
528
- font-weight: 800;
529
- margin-bottom: 0.5rem;
530
- line-height: 1;
531
- }
532
-
533
- .rg-amount-unit {
534
- font-size: 0.75rem;
535
- font-weight: 600;
536
- text-transform: uppercase;
537
- opacity: 0.8;
538
- }
539
-
540
- .rg-amount-plus {
541
- font-size: 1.5rem;
542
- opacity: 0.3;
543
- margin: 0 1rem;
544
- }
545
-
546
- .rg-instructions-box {
547
- background: hsla(0deg, 0%, 0%, 0.2);
548
- border-radius: 0.75rem;
549
- border: 1px solid hsla(0deg, 0%, 100%, 0.1);
550
- padding: 1rem;
551
- position: relative;
552
- z-index: 1;
553
- backdrop-filter: blur(4px);
554
- }
555
-
556
- .rg-instructions-header {
557
- display: flex;
558
- align-items: center;
559
- gap: 0.5rem;
560
- margin-bottom: 0.75rem;
561
- color: hsl(38deg, 92%, 90%);
562
- }
563
-
564
- .rg-instructions-icon {
565
- width: 1rem;
566
- height: 1rem;
567
- }
568
-
569
- .rg-instructions-title {
570
- font-size: 0.75rem;
571
- font-weight: 700;
572
- text-transform: uppercase;
573
- letter-spacing: 0.1em;
574
- }
575
-
576
- .rg-instructions-text {
577
- font-size: 0.875rem;
578
- font-weight: 500;
579
- line-height: 1.5;
580
- color: hsl(38deg, 92%, 95%);
581
- margin: 0;
582
- }
583
-
584
- .rg-sauce-info {
585
- background: var(--rg-bg-app);
586
- border: 1px solid var(--rg-border);
587
- border-radius: var(--rg-radius);
588
- padding: 1.5rem;
589
- display: flex;
590
- flex-direction: column;
591
- gap: 1rem;
592
- }
593
-
594
- .rg-sauce-header {
595
- display: flex;
596
- align-items: center;
597
- gap: 1rem;
598
- margin-bottom: 0.5rem;
599
- }
600
-
601
- .rg-sauce-icon {
602
- width: 2.5rem;
603
- height: 2.5rem;
604
- border-radius: 0.5rem;
605
- background: hsl(38deg, 92%, 90%);
606
- color: var(--rg-primary);
607
- display: flex;
608
- align-items: center;
609
- justify-content: center;
610
- flex-shrink: 0;
611
- }
612
-
613
- :global(.theme-dark) .rg-sauce-icon {
614
- background: hsl(38deg, 92%, 12%);
615
- }
616
-
617
- .rg-icon-lg {
618
- width: 1.25rem;
619
- height: 1.25rem;
620
- }
621
-
622
- .rg-sauce-name {
623
- font-size: 1rem;
624
- font-weight: 700;
625
- color: var(--rg-text-main);
626
- flex: 1;
627
- }
628
-
629
- .rg-sauce-ratio {
630
- font-size: 0.75rem;
631
- font-weight: 700;
632
- color: var(--rg-text-muted);
633
- text-transform: uppercase;
634
- letter-spacing: 0.05em;
635
- white-space: nowrap;
636
- }
637
-
638
- .rg-sauce-tip {
639
- font-size: 0.875rem;
640
- font-weight: 500;
641
- line-height: 1.6;
642
- color: var(--rg-text-muted);
643
- font-style: italic;
644
- background: var(--rg-bg-card);
645
- padding: 1rem;
646
- border-radius: 0.75rem;
647
- border: 1px solid var(--rg-border);
648
- margin: 0;
649
- }
650
- </style>