@jjlmoya/utils-cooking 1.33.0 → 1.34.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.
Files changed (61) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +4 -0
  3. package/src/entries.ts +5 -1
  4. package/src/index.ts +2 -0
  5. package/src/tests/i18n-titles.test.ts +1 -1
  6. package/src/tests/i18n_coverage.test.ts +1 -0
  7. package/src/tests/locale_completeness.test.ts +2 -2
  8. package/src/tests/tool_validation.test.ts +2 -2
  9. package/src/tool/carry-over-cooking-predictor/bibliography.astro +6 -0
  10. package/src/tool/carry-over-cooking-predictor/bibliography.ts +10 -0
  11. package/src/tool/carry-over-cooking-predictor/carry-over-cooking-predictor.css +513 -0
  12. package/src/tool/carry-over-cooking-predictor/component.astro +362 -0
  13. package/src/tool/carry-over-cooking-predictor/entry.ts +26 -0
  14. package/src/tool/carry-over-cooking-predictor/i18n/de.ts +286 -0
  15. package/src/tool/carry-over-cooking-predictor/i18n/en.ts +286 -0
  16. package/src/tool/carry-over-cooking-predictor/i18n/es.ts +286 -0
  17. package/src/tool/carry-over-cooking-predictor/i18n/fr.ts +286 -0
  18. package/src/tool/carry-over-cooking-predictor/i18n/id.ts +286 -0
  19. package/src/tool/carry-over-cooking-predictor/i18n/it.ts +286 -0
  20. package/src/tool/carry-over-cooking-predictor/i18n/ja.ts +286 -0
  21. package/src/tool/carry-over-cooking-predictor/i18n/ko.ts +286 -0
  22. package/src/tool/carry-over-cooking-predictor/i18n/nl.ts +286 -0
  23. package/src/tool/carry-over-cooking-predictor/i18n/pl.ts +286 -0
  24. package/src/tool/carry-over-cooking-predictor/i18n/pt.ts +286 -0
  25. package/src/tool/carry-over-cooking-predictor/i18n/ru.ts +286 -0
  26. package/src/tool/carry-over-cooking-predictor/i18n/sv.ts +286 -0
  27. package/src/tool/carry-over-cooking-predictor/i18n/tr.ts +286 -0
  28. package/src/tool/carry-over-cooking-predictor/i18n/zh.ts +286 -0
  29. package/src/tool/carry-over-cooking-predictor/index.ts +11 -0
  30. package/src/tool/carry-over-cooking-predictor/logic.ts +63 -0
  31. package/src/tool/carry-over-cooking-predictor/seo.astro +15 -0
  32. package/src/tool/egg-timer/component.astro +19 -17
  33. package/src/tool/egg-timer/perfect-boiled-egg-timer-altitude-calculator.css +336 -502
  34. package/src/tool/maillard-reaction-optimizer/bibliography.astro +6 -0
  35. package/src/tool/maillard-reaction-optimizer/bibliography.ts +14 -0
  36. package/src/tool/maillard-reaction-optimizer/component.astro +391 -0
  37. package/src/tool/maillard-reaction-optimizer/entry.ts +12 -0
  38. package/src/tool/maillard-reaction-optimizer/i18n/de.ts +307 -0
  39. package/src/tool/maillard-reaction-optimizer/i18n/en.ts +307 -0
  40. package/src/tool/maillard-reaction-optimizer/i18n/es.ts +307 -0
  41. package/src/tool/maillard-reaction-optimizer/i18n/fr.ts +307 -0
  42. package/src/tool/maillard-reaction-optimizer/i18n/id.ts +307 -0
  43. package/src/tool/maillard-reaction-optimizer/i18n/it.ts +307 -0
  44. package/src/tool/maillard-reaction-optimizer/i18n/ja.ts +307 -0
  45. package/src/tool/maillard-reaction-optimizer/i18n/ko.ts +307 -0
  46. package/src/tool/maillard-reaction-optimizer/i18n/nl.ts +308 -0
  47. package/src/tool/maillard-reaction-optimizer/i18n/pl.ts +307 -0
  48. package/src/tool/maillard-reaction-optimizer/i18n/pt.ts +307 -0
  49. package/src/tool/maillard-reaction-optimizer/i18n/ru.ts +307 -0
  50. package/src/tool/maillard-reaction-optimizer/i18n/sv.ts +307 -0
  51. package/src/tool/maillard-reaction-optimizer/i18n/tr.ts +307 -0
  52. package/src/tool/maillard-reaction-optimizer/i18n/zh.ts +307 -0
  53. package/src/tool/maillard-reaction-optimizer/index.ts +11 -0
  54. package/src/tool/maillard-reaction-optimizer/logic.ts +57 -0
  55. package/src/tool/maillard-reaction-optimizer/maillard-reaction-optimizer.css +694 -0
  56. package/src/tool/maillard-reaction-optimizer/seo.astro +15 -0
  57. package/src/tool/meat-binder-transglutaminase-calculator/bibliography.ts +10 -6
  58. package/src/tool/meat-binder-transglutaminase-calculator/component.astro +5 -1
  59. package/src/tool/meat-binder-transglutaminase-calculator/components/LabReport.astro +3 -3
  60. package/src/tools.ts +4 -0
  61. package/src/types.ts +1 -1
@@ -1,503 +1,337 @@
1
1
  .egg-timer-wrapper {
2
- --color-primary: #eab308;
3
- --color-secondary: #f59e0b;
4
- --color-tertiary: #ea580c;
5
- --color-bg: #fff;
6
- --color-bg-secondary: #f9fafb;
7
- --color-border: #e5e7eb;
8
- --color-text-primary: #111827;
9
- --color-text-secondary: #4b5563;
10
- --color-text-tertiary: #6b7280;
11
- --color-soft: #fef08a;
12
- --color-soft-bg: #fef08a;
13
- --color-soft-text: #713f12;
14
- --color-mollet: #fbbf24;
15
- --color-mollet-bg: #fbbf24;
16
- --color-mollet-text: #92400e;
17
- --color-hard: #b45309;
18
- --color-hard-text: #78350f;
19
- --color-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
20
- --color-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
21
- --color-ring: rgba(234, 179, 8, 0.5);
22
- }
23
-
24
- .theme-dark .egg-timer-wrapper {
25
- --color-bg: #1f2937;
26
- --color-bg-secondary: #111827;
27
- --color-border: #374151;
28
- --color-text-primary: #f3f4f6;
29
- --color-text-secondary: #d1d5db;
30
- --color-text-tertiary: #9ca3af;
31
- --color-soft-bg: #78350f;
32
- --color-soft-text: #fef08a;
33
- --color-mollet-bg: #92400e;
34
- --color-mollet-text: #fbbf24;
35
- --color-hard-text: #fbbf24;
36
- --color-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
37
- --color-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
38
- --color-ring: rgba(234, 179, 8, 0.3);
39
- }
40
-
41
- .egg-timer-container {
42
- width: 100%;
43
- max-width: 1200px;
44
- margin: 0 auto;
45
- padding: 2rem 1rem;
46
- }
47
-
48
- .egg-timer-grid {
49
- display: grid;
50
- grid-template-columns: 1fr 2fr;
51
- gap: 2rem;
52
- margin-bottom: 2rem;
53
- }
54
-
55
- @media (max-width: 1024px) {
56
- .egg-timer-grid {
57
- grid-template-columns: 1fr;
58
- }
59
- }
60
-
61
- .egg-timer-card {
62
- background-color: var(--color-bg);
63
- border: 1px solid var(--color-border);
64
- border-radius: 1.5rem;
65
- padding: 1.5rem;
66
- box-shadow: var(--color-shadow);
67
- transition: all 0.3s ease;
68
- }
69
-
70
- .egg-timer-card:hover {
71
- box-shadow: var(--color-shadow-lg);
72
- }
73
-
74
- .egg-timer-title {
75
- font-size: 1.125rem;
76
- font-weight: 700;
77
- color: var(--color-text-primary);
78
- margin-bottom: 1rem;
79
- display: flex;
80
- align-items: center;
81
- gap: 0.5rem;
82
- }
83
-
84
- .egg-timer-title svg {
85
- width: 1.25rem;
86
- height: 1.25rem;
87
- color: var(--color-primary);
88
- }
89
-
90
- .egg-timer-controls-space {
91
- display: flex;
92
- flex-direction: column;
93
- gap: 1.5rem;
94
- }
95
-
96
- .egg-timer-control-group {
97
- display: flex;
98
- flex-direction: column;
99
- gap: 0.75rem;
100
- }
101
-
102
- .egg-timer-label-row {
103
- display: flex;
104
- justify-content: space-between;
105
- align-items: center;
106
- margin-bottom: 0.5rem;
107
- }
108
-
109
- .egg-timer-label {
110
- font-size: 0.875rem;
111
- font-weight: 600;
112
- color: var(--color-text-secondary);
113
- text-transform: uppercase;
114
- letter-spacing: 0.05em;
115
- }
116
-
117
- .egg-timer-buttons-group {
118
- display: grid;
119
- grid-template-columns: 1fr 1fr;
120
- gap: 0.5rem;
121
- }
122
-
123
- .egg-timer-btn {
124
- padding: 0.75rem;
125
- border-radius: 0.75rem;
126
- border: 1px solid var(--color-border);
127
- background-color: var(--color-bg-secondary);
128
- color: var(--color-text-secondary);
129
- font-size: 0.875rem;
130
- font-weight: 600;
131
- cursor: pointer;
132
- transition: all 0.2s ease;
133
- display: flex;
134
- flex-direction: column;
135
- align-items: center;
136
- justify-content: center;
137
- gap: 0.25rem;
138
- }
139
-
140
- .egg-timer-btn:hover {
141
- background-color: var(--color-bg);
142
- border-color: var(--color-primary);
143
- }
144
-
145
- .egg-timer-btn.active {
146
- border-color: var(--color-primary);
147
- background-color: var(--color-soft);
148
- color: var(--color-text-primary);
149
- box-shadow: 0 0 0 1px var(--color-primary);
150
- }
151
-
152
- .theme-dark .egg-timer-btn.active {
153
- background-color: rgba(234, 179, 8, 0.1);
154
- color: var(--color-primary);
155
- }
156
-
157
- .egg-timer-btn svg {
158
- width: 1.25rem;
159
- height: 1.25rem;
160
- }
161
-
162
- .egg-timer-size-buttons {
163
- display: grid;
164
- grid-template-columns: repeat(4, 1fr);
165
- gap: 0.5rem;
166
- }
167
-
168
- .egg-timer-size-btn {
169
- padding: 0.5rem;
170
- border-radius: 0.75rem;
171
- border: 1px solid var(--color-border);
172
- background-color: var(--color-bg-secondary);
173
- color: var(--color-text-secondary);
174
- font-size: 0.875rem;
175
- font-weight: 600;
176
- cursor: pointer;
177
- transition: all 0.2s ease;
178
- }
179
-
180
- .egg-timer-size-btn:hover {
181
- border-color: var(--color-primary);
182
- background-color: var(--color-bg);
183
- }
184
-
185
- .egg-timer-size-btn.active {
186
- border-color: var(--color-primary);
187
- background-color: var(--color-soft);
188
- color: var(--color-text-primary);
189
- box-shadow: 0 0 0 1px var(--color-primary);
190
- }
191
-
192
- .theme-dark .egg-timer-size-btn.active {
193
- background-color: rgba(234, 179, 8, 0.1);
194
- color: var(--color-primary);
195
- }
196
-
197
- .egg-timer-input-wrapper {
198
- position: relative;
199
- display: flex;
200
- }
201
-
202
- .egg-timer-input {
203
- width: 100%;
204
- padding: 0.75rem 3rem 0.75rem 1rem;
205
- border-radius: 0.75rem;
206
- border: 1px solid var(--color-border);
207
- background-color: var(--color-bg-secondary);
208
- color: var(--color-text-primary);
209
- font-size: 1rem;
210
- transition: all 0.2s ease;
211
- }
212
-
213
- .egg-timer-input:focus {
214
- outline: none;
215
- border-color: var(--color-primary);
216
- box-shadow: 0 0 0 2px var(--color-ring);
217
- }
218
-
219
- .egg-timer-input-buttons {
220
- position: absolute;
221
- right: 0.5rem;
222
- top: 50%;
223
- transform: translateY(-50%);
224
- display: flex;
225
- gap: 0.25rem;
226
- }
227
-
228
- .egg-timer-quick-btn {
229
- padding: 0.25rem 0.5rem;
230
- border-radius: 0.5rem;
231
- border: 1px solid var(--color-border);
232
- background-color: var(--color-bg-secondary);
233
- color: var(--color-text-secondary);
234
- font-size: 0.625rem;
235
- font-weight: 600;
236
- cursor: pointer;
237
- transition: all 0.2s ease;
238
- }
239
-
240
- .egg-timer-quick-btn:hover {
241
- background-color: var(--color-bg);
242
- border-color: var(--color-primary);
243
- color: var(--color-primary);
244
- }
245
-
246
- .egg-timer-help-text {
247
- font-size: 0.75rem;
248
- color: var(--color-text-tertiary);
249
- margin-top: 0.5rem;
250
- }
251
-
252
- .egg-timer-results {
253
- display: flex;
254
- flex-direction: column;
255
- gap: 1rem;
256
- }
257
-
258
- .egg-timer-result-card {
259
- background-color: var(--color-bg);
260
- border: 1px solid var(--color-border);
261
- border-radius: 1.5rem;
262
- padding: 1.5rem;
263
- transition: all 0.3s ease;
264
- cursor: default;
265
- }
266
-
267
- .egg-timer-result-card:hover {
268
- box-shadow: var(--color-shadow-lg);
269
- border-color: var(--color-primary);
270
- }
271
-
272
- .egg-timer-result-card.soft {
273
- background-color: var(--color-bg);
274
- }
275
-
276
- .egg-timer-result-card.mollet {
277
- background-color: var(--color-bg);
278
- border: 2px solid var(--color-mollet);
279
- box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.1);
280
- }
281
-
282
- .theme-dark .egg-timer-result-card.mollet {
283
- box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.15);
284
- }
285
-
286
- .egg-timer-result-card.hard {
287
- background-color: var(--color-bg);
288
- }
289
-
290
- .egg-timer-result-header {
291
- display: flex;
292
- justify-content: space-between;
293
- align-items: flex-start;
294
- margin-bottom: 1rem;
295
- }
296
-
297
- .egg-timer-result-title {
298
- font-size: 1.25rem;
299
- font-weight: 700;
300
- color: var(--color-text-primary);
301
- }
302
-
303
- .egg-timer-result-subtitle {
304
- font-size: 0.875rem;
305
- color: var(--color-text-secondary);
306
- margin-top: 0.25rem;
307
- }
308
-
309
- .egg-timer-result-icon {
310
- width: 2rem;
311
- height: 2rem;
312
- color: var(--color-primary);
313
- }
314
-
315
- .egg-timer-result-card.mollet .egg-timer-result-icon {
316
- color: var(--color-mollet);
317
- }
318
-
319
- .egg-timer-result-card.hard .egg-timer-result-icon {
320
- color: var(--color-hard);
321
- }
322
-
323
- .egg-timer-result-time {
324
- font-size: 2.25rem;
325
- font-weight: 900;
326
- color: var(--color-text-primary);
327
- letter-spacing: -0.05em;
328
- }
329
-
330
- .egg-timer-result-card.mollet .egg-timer-result-time {
331
- color: var(--color-mollet);
332
- }
333
-
334
- .egg-timer-result-card.hard .egg-timer-result-time {
335
- color: var(--color-hard);
336
- }
337
-
338
- .egg-timer-seo-section {
339
- background-color: var(--color-bg);
340
- border: 1px solid var(--color-border);
341
- border-radius: 1.5rem;
342
- padding: 2rem;
343
- margin-top: 2rem;
344
- }
345
-
346
- .egg-timer-seo-title {
347
- font-size: 1.875rem;
348
- font-weight: 700;
349
- color: var(--color-text-primary);
350
- margin-bottom: 1.5rem;
351
- }
352
-
353
- .egg-timer-seo-subtitle {
354
- font-size: 1.25rem;
355
- font-weight: 700;
356
- color: var(--color-text-primary);
357
- margin-bottom: 1rem;
358
- display: flex;
359
- align-items: center;
360
- gap: 0.5rem;
361
- margin-top: 1.5rem;
362
- }
363
-
364
- .egg-timer-seo-subtitle:not(:first-of-type) {
365
- margin-top: 2rem;
366
- }
367
-
368
- .egg-timer-seo-subtitle svg {
369
- width: 1.5rem;
370
- height: 1.5rem;
371
- color: var(--color-primary);
372
- }
373
-
374
- .egg-timer-seo-text {
375
- font-size: 1rem;
376
- line-height: 1.625;
377
- color: var(--color-text-secondary);
378
- margin-bottom: 1rem;
379
- }
380
-
381
- .egg-timer-seo-grid {
382
- display: grid;
383
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
384
- gap: 1.5rem;
385
- margin-bottom: 1.5rem;
386
- }
387
-
388
- .egg-timer-seo-card {
389
- background-color: var(--color-bg-secondary);
390
- border-radius: 1rem;
391
- padding: 1.5rem;
392
- transition: all 0.2s ease;
393
- }
394
-
395
- .egg-timer-seo-card:hover {
396
- background-color: var(--color-soft);
397
- }
398
-
399
- .theme-dark .egg-timer-seo-card:hover {
400
- background-color: rgba(234, 179, 8, 0.1);
401
- }
402
-
403
- .egg-timer-seo-card-title {
404
- font-weight: 700;
405
- color: var(--color-primary);
406
- margin-bottom: 0.75rem;
407
- font-size: 0.875rem;
408
- }
409
-
410
- .egg-timer-seo-card-heading {
411
- font-weight: 700;
412
- color: var(--color-text-primary);
413
- margin-bottom: 0.5rem;
414
- }
415
-
416
- .egg-timer-seo-card-text {
417
- font-size: 0.875rem;
418
- color: var(--color-text-secondary);
419
- line-height: 1.5;
420
- }
421
-
422
- .egg-timer-formula-box {
423
- background-color: var(--color-bg-secondary);
424
- border-radius: 0.75rem;
425
- padding: 1rem;
426
- font-size: 0.875rem;
427
- color: var(--color-text-secondary);
428
- margin-bottom: 1rem;
429
- overflow-x: auto;
430
- }
431
-
432
- .egg-timer-formula-list {
433
- list-style: none;
434
- padding: 0;
435
- margin: 0;
436
- display: flex;
437
- flex-direction: column;
438
- gap: 0.5rem;
439
- }
440
-
441
- .egg-timer-formula-list li {
442
- font-size: 0.875rem;
443
- color: var(--color-text-secondary);
444
- }
445
-
446
- .egg-timer-formula-list strong {
447
- color: var(--color-text-primary);
448
- }
449
-
450
- .egg-timer-tips-list {
451
- list-style-position: inside;
452
- color: var(--color-text-secondary);
453
- font-size: 0.95rem;
454
- line-height: 1.75;
455
- margin-bottom: 1rem;
456
- }
457
-
458
- .egg-timer-tips-list li {
459
- margin-bottom: 0.75rem;
460
- }
461
-
462
- .egg-timer-tips-list strong {
463
- color: var(--color-text-primary);
464
- }
465
-
466
- .egg-timer-links {
467
- font-size: 0.75rem;
468
- color: var(--color-text-tertiary);
469
- border-top: 1px solid var(--color-border);
470
- padding-top: 1.5rem;
471
- margin-top: 1.5rem;
472
- }
473
-
474
- .egg-timer-links-title {
475
- font-weight: 700;
476
- margin-bottom: 0.5rem;
477
- color: var(--color-text-secondary);
478
- }
479
-
480
- .egg-timer-links-list {
481
- list-style: none;
482
- padding: 0;
483
- margin: 0;
484
- display: flex;
485
- flex-direction: column;
486
- gap: 0.25rem;
487
- }
488
-
489
- .egg-timer-links-list a {
490
- color: inherit;
491
- text-decoration: none;
492
- transition: color 0.2s ease;
493
- }
494
-
495
- .egg-timer-links-list a:hover {
496
- color: var(--color-primary);
497
- }
498
-
499
- .egg-timer-hr {
500
- border: none;
501
- border-top: 1px solid var(--color-border);
502
- margin: 2rem 0;
503
- }
2
+ --color-primary: #eab308;
3
+ --color-secondary: #f59e0b;
4
+ --color-tertiary: #ea580c;
5
+ --color-bg: #fff;
6
+ --color-bg-secondary: #f9fafb;
7
+ --color-border: #e5e7eb;
8
+ --color-text-primary: #111827;
9
+ --color-text-secondary: #4b5563;
10
+ --color-text-tertiary: #6b7280;
11
+ --color-soft: #fef08a;
12
+ --color-soft-bg: #fef08a;
13
+ --color-soft-text: #713f12;
14
+ --color-mollet: #fbbf24;
15
+ --color-mollet-bg: #fbbf24;
16
+ --color-mollet-text: #92400e;
17
+ --color-hard: #b45309;
18
+ --color-hard-text: #78350f;
19
+ --color-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
20
+ --color-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
21
+ --color-ring: rgba(234, 179, 8, 0.5);
22
+ }
23
+
24
+ .theme-dark .egg-timer-wrapper {
25
+ --color-bg: #1f2937;
26
+ --color-bg-secondary: #111827;
27
+ --color-border: #374151;
28
+ --color-text-primary: #f3f4f6;
29
+ --color-text-secondary: #d1d5db;
30
+ --color-text-tertiary: #9ca3af;
31
+ --color-soft-bg: #78350f;
32
+ --color-soft-text: #fef08a;
33
+ --color-mollet-bg: #92400e;
34
+ --color-mollet-text: #fbbf24;
35
+ --color-hard-text: #fbbf24;
36
+ --color-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
37
+ --color-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
38
+ --color-ring: rgba(234, 179, 8, 0.3);
39
+ }
40
+
41
+ .egg-timer-main-card {
42
+ max-width: 900px;
43
+ margin: 0 auto;
44
+ background: var(--color-bg);
45
+ border: 1px solid var(--color-border);
46
+ border-radius: 1.5rem;
47
+ box-shadow: var(--color-shadow-lg);
48
+ overflow: hidden;
49
+ }
50
+
51
+ .egg-timer-header {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 0.75rem;
55
+ padding: 1.5rem 2rem;
56
+ background: var(--color-bg-secondary);
57
+ border-bottom: 1px solid var(--color-border);
58
+ font-size: 1.25rem;
59
+ font-weight: 700;
60
+ color: var(--color-text-primary);
61
+ }
62
+
63
+ .egg-timer-header svg {
64
+ width: 1.5rem;
65
+ height: 1.5rem;
66
+ color: var(--color-primary);
67
+ }
68
+
69
+ .egg-timer-body {
70
+ display: grid;
71
+ grid-template-columns: 1fr 1.5fr;
72
+ gap: 0;
73
+ }
74
+
75
+ @media (max-width: 768px) {
76
+ .egg-timer-body {
77
+ grid-template-columns: 1fr;
78
+ }
79
+ }
80
+
81
+ .egg-timer-controls {
82
+ padding: 1.5rem 2rem;
83
+ border-right: 1px solid var(--color-border);
84
+ }
85
+
86
+ @media (max-width: 768px) {
87
+ .egg-timer-controls {
88
+ border-right: none;
89
+ border-bottom: 1px solid var(--color-border);
90
+ }
91
+ }
92
+
93
+ .egg-timer-parameters-grid {
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: 1.5rem;
97
+ }
98
+
99
+ .egg-timer-param {
100
+ display: flex;
101
+ flex-direction: column;
102
+ gap: 0.75rem;
103
+ }
104
+
105
+ .egg-timer-label-row {
106
+ display: flex;
107
+ justify-content: space-between;
108
+ align-items: center;
109
+ }
110
+
111
+ .egg-timer-label {
112
+ font-size: 0.875rem;
113
+ font-weight: 600;
114
+ color: var(--color-text-secondary);
115
+ text-transform: uppercase;
116
+ letter-spacing: 0.05em;
117
+ }
118
+
119
+ .egg-timer-buttons-group {
120
+ display: grid;
121
+ grid-template-columns: 1fr 1fr;
122
+ gap: 0.5rem;
123
+ }
124
+
125
+ .egg-timer-btn {
126
+ padding: 0.75rem;
127
+ border-radius: 0.75rem;
128
+ border: 1px solid var(--color-border);
129
+ background-color: var(--color-bg-secondary);
130
+ color: var(--color-text-secondary);
131
+ font-size: 0.875rem;
132
+ font-weight: 600;
133
+ cursor: pointer;
134
+ transition: all 0.2s ease;
135
+ display: flex;
136
+ flex-direction: column;
137
+ align-items: center;
138
+ justify-content: center;
139
+ gap: 0.25rem;
140
+ }
141
+
142
+ .egg-timer-btn:hover {
143
+ background-color: var(--color-bg);
144
+ border-color: var(--color-primary);
145
+ }
146
+
147
+ .egg-timer-btn.active {
148
+ border-color: var(--color-primary);
149
+ background-color: var(--color-soft);
150
+ color: var(--color-text-primary);
151
+ box-shadow: 0 0 0 1px var(--color-primary);
152
+ }
153
+
154
+ .theme-dark .egg-timer-btn.active {
155
+ background-color: rgba(234, 179, 8, 0.1);
156
+ color: var(--color-primary);
157
+ }
158
+
159
+ .egg-timer-btn svg {
160
+ width: 1.25rem;
161
+ height: 1.25rem;
162
+ }
163
+
164
+ .egg-timer-temp {
165
+ font-size: 0.7rem;
166
+ opacity: 0.7;
167
+ }
168
+
169
+ .egg-timer-size-buttons {
170
+ display: grid;
171
+ grid-template-columns: repeat(4, 1fr);
172
+ gap: 0.5rem;
173
+ }
174
+
175
+ .egg-timer-size-btn {
176
+ padding: 0.5rem;
177
+ border-radius: 0.75rem;
178
+ border: 1px solid var(--color-border);
179
+ background-color: var(--color-bg-secondary);
180
+ color: var(--color-text-secondary);
181
+ font-size: 0.875rem;
182
+ font-weight: 600;
183
+ cursor: pointer;
184
+ transition: all 0.2s ease;
185
+ }
186
+
187
+ .egg-timer-size-btn:hover {
188
+ border-color: var(--color-primary);
189
+ background-color: var(--color-bg);
190
+ }
191
+
192
+ .egg-timer-size-btn.active {
193
+ border-color: var(--color-primary);
194
+ background-color: var(--color-soft);
195
+ color: var(--color-text-primary);
196
+ box-shadow: 0 0 0 1px var(--color-primary);
197
+ }
198
+
199
+ .theme-dark .egg-timer-size-btn.active {
200
+ background-color: rgba(234, 179, 8, 0.1);
201
+ color: var(--color-primary);
202
+ }
203
+
204
+ .egg-timer-input-wrapper {
205
+ position: relative;
206
+ display: flex;
207
+ }
208
+
209
+ .egg-timer-input {
210
+ width: 100%;
211
+ padding: 0.75rem 3rem 0.75rem 1rem;
212
+ border-radius: 0.75rem;
213
+ border: 1px solid var(--color-border);
214
+ background-color: var(--color-bg-secondary);
215
+ color: var(--color-text-primary);
216
+ font-size: 1rem;
217
+ transition: all 0.2s ease;
218
+ }
219
+
220
+ .egg-timer-input:focus {
221
+ outline: none;
222
+ border-color: var(--color-primary);
223
+ box-shadow: 0 0 0 2px var(--color-ring);
224
+ }
225
+
226
+ .egg-timer-input-buttons {
227
+ position: absolute;
228
+ right: 0.5rem;
229
+ top: 50%;
230
+ transform: translateY(-50%);
231
+ display: flex;
232
+ gap: 0.25rem;
233
+ }
234
+
235
+ .egg-timer-quick-btn {
236
+ padding: 0.25rem 0.5rem;
237
+ border-radius: 0.5rem;
238
+ border: 1px solid var(--color-border);
239
+ background-color: var(--color-bg-secondary);
240
+ color: var(--color-text-secondary);
241
+ font-size: 0.625rem;
242
+ font-weight: 600;
243
+ cursor: pointer;
244
+ transition: all 0.2s ease;
245
+ }
246
+
247
+ .egg-timer-quick-btn:hover {
248
+ background-color: var(--color-bg);
249
+ border-color: var(--color-primary);
250
+ color: var(--color-primary);
251
+ }
252
+
253
+ .egg-timer-help-text {
254
+ font-size: 0.75rem;
255
+ color: var(--color-text-tertiary);
256
+ margin-top: 0.5rem;
257
+ }
258
+
259
+ .egg-timer-results {
260
+ padding: 1.5rem 2rem;
261
+ display: flex;
262
+ flex-direction: column;
263
+ gap: 1rem;
264
+ }
265
+
266
+ .egg-timer-result-item {
267
+ padding: 1.25rem;
268
+ border-radius: 1rem;
269
+ background: var(--color-bg-secondary);
270
+ border: 1px solid var(--color-border);
271
+ transition: all 0.2s ease;
272
+ cursor: default;
273
+ }
274
+
275
+ .egg-timer-result-item:hover {
276
+ border-color: var(--color-primary);
277
+ }
278
+
279
+ .egg-timer-result-item.mollet {
280
+ border-color: var(--color-mollet);
281
+ background: rgba(251, 191, 36, 0.05);
282
+ }
283
+
284
+ .egg-timer-result-item.hard {
285
+ border-color: var(--color-hard);
286
+ }
287
+
288
+ .egg-timer-result-header {
289
+ display: flex;
290
+ justify-content: space-between;
291
+ align-items: flex-start;
292
+ margin-bottom: 0.75rem;
293
+ }
294
+
295
+ .egg-timer-result-title {
296
+ font-size: 1.125rem;
297
+ font-weight: 700;
298
+ color: var(--color-text-primary);
299
+ margin: 0;
300
+ }
301
+
302
+ .egg-timer-result-subtitle {
303
+ font-size: 0.8rem;
304
+ color: var(--color-text-secondary);
305
+ margin-top: 0.2rem;
306
+ }
307
+
308
+ .egg-timer-result-icon {
309
+ width: 1.75rem;
310
+ height: 1.75rem;
311
+ color: var(--color-primary);
312
+ flex-shrink: 0;
313
+ }
314
+
315
+ .egg-timer-result-item.mollet .egg-timer-result-icon {
316
+ color: var(--color-mollet);
317
+ }
318
+
319
+ .egg-timer-result-item.hard .egg-timer-result-icon {
320
+ color: var(--color-hard);
321
+ }
322
+
323
+ .egg-timer-result-time {
324
+ font-size: 2rem;
325
+ font-weight: 900;
326
+ color: var(--color-text-primary);
327
+ letter-spacing: -0.05em;
328
+ font-variant-numeric: tabular-nums;
329
+ }
330
+
331
+ .egg-timer-result-item.mollet .egg-timer-result-time {
332
+ color: var(--color-mollet);
333
+ }
334
+
335
+ .egg-timer-result-item.hard .egg-timer-result-time {
336
+ color: var(--color-hard);
337
+ }