@jjlmoya/utils-babies 1.1.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 (82) hide show
  1. package/package.json +69 -0
  2. package/src/category/i18n/en.ts +48 -0
  3. package/src/category/i18n/es.ts +48 -0
  4. package/src/category/i18n/fr.ts +48 -0
  5. package/src/category/index.ts +24 -0
  6. package/src/category/seo.astro +15 -0
  7. package/src/components/PreviewNavSidebar.astro +116 -0
  8. package/src/components/PreviewToolbar.astro +143 -0
  9. package/src/data.ts +30 -0
  10. package/src/env.d.ts +5 -0
  11. package/src/index.ts +19 -0
  12. package/src/layouts/PreviewLayout.astro +117 -0
  13. package/src/pages/[locale]/[slug].astro +146 -0
  14. package/src/pages/[locale].astro +251 -0
  15. package/src/pages/index.astro +4 -0
  16. package/src/tests/faq_count.test.ts +19 -0
  17. package/src/tests/locale_completeness.test.ts +42 -0
  18. package/src/tests/mocks/astro_mock.js +2 -0
  19. package/src/tests/no_h1_in_components.test.ts +48 -0
  20. package/src/tests/seo_length.test.ts +23 -0
  21. package/src/tests/tool_validation.test.ts +17 -0
  22. package/src/tool/baby-feeding-calculator/bibliography.astro +7 -0
  23. package/src/tool/baby-feeding-calculator/component.astro +210 -0
  24. package/src/tool/baby-feeding-calculator/i18n/en.ts +162 -0
  25. package/src/tool/baby-feeding-calculator/i18n/es.ts +162 -0
  26. package/src/tool/baby-feeding-calculator/i18n/fr.ts +162 -0
  27. package/src/tool/baby-feeding-calculator/index.ts +47 -0
  28. package/src/tool/baby-feeding-calculator/logic.ts +85 -0
  29. package/src/tool/baby-feeding-calculator/seo.astro +58 -0
  30. package/src/tool/baby-feeding-calculator/style.css +329 -0
  31. package/src/tool/baby-percentile-calculator/bibliography.astro +7 -0
  32. package/src/tool/baby-percentile-calculator/component.astro +388 -0
  33. package/src/tool/baby-percentile-calculator/i18n/en.ts +244 -0
  34. package/src/tool/baby-percentile-calculator/i18n/es.ts +244 -0
  35. package/src/tool/baby-percentile-calculator/i18n/fr.ts +244 -0
  36. package/src/tool/baby-percentile-calculator/index.ts +54 -0
  37. package/src/tool/baby-percentile-calculator/lmsData.ts +80 -0
  38. package/src/tool/baby-percentile-calculator/logic.ts +85 -0
  39. package/src/tool/baby-percentile-calculator/seo.astro +36 -0
  40. package/src/tool/baby-percentile-calculator/style.css +393 -0
  41. package/src/tool/baby-size-converter/bibliography.astro +7 -0
  42. package/src/tool/baby-size-converter/component.astro +289 -0
  43. package/src/tool/baby-size-converter/data.json +11 -0
  44. package/src/tool/baby-size-converter/i18n/en.ts +203 -0
  45. package/src/tool/baby-size-converter/i18n/es.ts +203 -0
  46. package/src/tool/baby-size-converter/i18n/fr.ts +203 -0
  47. package/src/tool/baby-size-converter/index.ts +53 -0
  48. package/src/tool/baby-size-converter/logic.ts +44 -0
  49. package/src/tool/baby-size-converter/seo.astro +36 -0
  50. package/src/tool/baby-size-converter/style.css +394 -0
  51. package/src/tool/fertile-days-estimator/bibliography.astro +7 -0
  52. package/src/tool/fertile-days-estimator/component.astro +265 -0
  53. package/src/tool/fertile-days-estimator/i18n/en.ts +258 -0
  54. package/src/tool/fertile-days-estimator/i18n/es.ts +262 -0
  55. package/src/tool/fertile-days-estimator/i18n/fr.ts +258 -0
  56. package/src/tool/fertile-days-estimator/index.ts +47 -0
  57. package/src/tool/fertile-days-estimator/logic.ts +58 -0
  58. package/src/tool/fertile-days-estimator/seo.astro +36 -0
  59. package/src/tool/fertile-days-estimator/style.css +419 -0
  60. package/src/tool/pregnancy-calculator/bibliography.astro +7 -0
  61. package/src/tool/pregnancy-calculator/calculator.ts +41 -0
  62. package/src/tool/pregnancy-calculator/component.astro +432 -0
  63. package/src/tool/pregnancy-calculator/i18n/en.ts +315 -0
  64. package/src/tool/pregnancy-calculator/i18n/es.ts +319 -0
  65. package/src/tool/pregnancy-calculator/i18n/fr.ts +315 -0
  66. package/src/tool/pregnancy-calculator/index.ts +55 -0
  67. package/src/tool/pregnancy-calculator/milestones.ts +153 -0
  68. package/src/tool/pregnancy-calculator/seo.astro +36 -0
  69. package/src/tool/pregnancy-calculator/store.ts +60 -0
  70. package/src/tool/pregnancy-calculator/style.css +807 -0
  71. package/src/tool/vaccination-calendar/bibliography.astro +7 -0
  72. package/src/tool/vaccination-calendar/component.astro +286 -0
  73. package/src/tool/vaccination-calendar/i18n/en.ts +170 -0
  74. package/src/tool/vaccination-calendar/i18n/es.ts +174 -0
  75. package/src/tool/vaccination-calendar/i18n/fr.ts +170 -0
  76. package/src/tool/vaccination-calendar/index.ts +47 -0
  77. package/src/tool/vaccination-calendar/logic.ts +59 -0
  78. package/src/tool/vaccination-calendar/seo.astro +36 -0
  79. package/src/tool/vaccination-calendar/style.css +316 -0
  80. package/src/tool/vaccination-calendar/vaccinationData.ts +21 -0
  81. package/src/tools.ts +17 -0
  82. package/src/types.ts +72 -0
@@ -0,0 +1,807 @@
1
+ .pregnancy-calculator {
2
+ --pc-tri-primary: #86efac;
3
+ --pc-tri-accent: #22c55e;
4
+ --pc-tri-glow: rgba(134, 239, 172, 0.18);
5
+ --pc-tri-text: #14532d;
6
+ --pc-tri-bg: #f0fdf4;
7
+ --pc-tri-badge: #dcfce7;
8
+ --pc-bg: #fff;
9
+ --pc-bg-muted: #f8fafc;
10
+ --pc-bg-dark: #1a2332;
11
+ --pc-text: #1e293b;
12
+ --pc-text-muted: #475569;
13
+ --pc-text-dim: #94a3b8;
14
+ --pc-border: #edf2f7;
15
+ --pc-border-inner: rgba(0, 0, 0, 0.04);
16
+ --pc-shadow: rgba(0, 0, 0, 0.07);
17
+ --pc-safe-bg: #f0fdf4;
18
+ --pc-safe-title: #16a34a;
19
+ --pc-alert-bg: #fff7ed;
20
+ --pc-alert-title: #ea580c;
21
+
22
+ position: relative;
23
+ width: 100%;
24
+ color: var(--pc-text);
25
+ background: var(--pc-bg);
26
+ border-radius: 1rem;
27
+ overflow: hidden;
28
+ border: 1px solid var(--pc-border);
29
+ box-shadow: 0 2px 16px var(--pc-shadow);
30
+ }
31
+
32
+ .pregnancy-calculator::before {
33
+ content: '';
34
+ display: block;
35
+ height: 4px;
36
+ background: linear-gradient(90deg, var(--pc-tri-primary), var(--pc-tri-accent));
37
+ width: 100%;
38
+ }
39
+
40
+ .pregnancy-calculator.pregnancy-calculator-t1 {
41
+ --pc-tri-primary: #86efac;
42
+ --pc-tri-accent: #22c55e;
43
+ --pc-tri-glow: rgba(134, 239, 172, 0.18);
44
+ --pc-tri-text: #14532d;
45
+ --pc-tri-bg: #f0fdf4;
46
+ --pc-tri-badge: #dcfce7;
47
+ }
48
+
49
+ .pregnancy-calculator.pregnancy-calculator-t2 {
50
+ --pc-tri-primary: #fcd34d;
51
+ --pc-tri-accent: #f59e0b;
52
+ --pc-tri-glow: rgba(252, 211, 77, 0.2);
53
+ --pc-tri-text: #78350f;
54
+ --pc-tri-bg: #fffbeb;
55
+ --pc-tri-badge: #fef3c7;
56
+ }
57
+
58
+ .pregnancy-calculator.pregnancy-calculator-t3 {
59
+ --pc-tri-primary: #d8b4fe;
60
+ --pc-tri-accent: #a855f7;
61
+ --pc-tri-glow: rgba(216, 180, 254, 0.2);
62
+ --pc-tri-text: #4c1d95;
63
+ --pc-tri-bg: #faf5ff;
64
+ --pc-tri-badge: #ede9fe;
65
+ }
66
+
67
+ .theme-dark .pregnancy-calculator {
68
+ --pc-bg: #111827;
69
+ --pc-bg-muted: #0f1923;
70
+ --pc-bg-dark: #0f1923;
71
+ --pc-text: #f1f5f9;
72
+ --pc-text-muted: #94a3b8;
73
+ --pc-text-dim: #64748b;
74
+ --pc-border: rgba(255, 255, 255, 0.04);
75
+ --pc-border-inner: rgba(255, 255, 255, 0.04);
76
+ --pc-shadow: rgba(0, 0, 0, 0.4);
77
+ --pc-safe-bg: rgba(16, 185, 129, 0.08);
78
+ --pc-safe-title: #16a34a;
79
+ --pc-alert-bg: rgba(249, 115, 22, 0.08);
80
+ --pc-alert-title: #ea580c;
81
+ }
82
+
83
+ .pregnancy-calculator-header {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: space-between;
87
+ padding: 1rem 1.25rem;
88
+ border-bottom: 1px solid var(--pc-border);
89
+ gap: 1rem;
90
+ flex-wrap: wrap;
91
+ }
92
+
93
+ .pregnancy-calculator-method-group {
94
+ display: flex;
95
+ gap: 0.375rem;
96
+ background: var(--pc-bg-muted);
97
+ padding: 0.25rem;
98
+ border-radius: 0.625rem;
99
+ border: 1px solid var(--pc-border);
100
+ }
101
+
102
+ .pregnancy-calculator-method-btn {
103
+ padding: 0.375rem 0.875rem;
104
+ border-radius: 0.375rem;
105
+ border: none;
106
+ background: transparent;
107
+ color: var(--pc-text-muted);
108
+ font-size: 0.8125rem;
109
+ font-weight: 500;
110
+ cursor: pointer;
111
+ transition: background 0.15s, color 0.15s, box-shadow 0.15s;
112
+ }
113
+
114
+ .pregnancy-calculator-method-btn-active {
115
+ background: var(--pc-bg);
116
+ color: var(--pc-tri-accent);
117
+ box-shadow: 0 1px 4px var(--pc-shadow);
118
+ }
119
+
120
+ .pregnancy-calculator-partner-wrap {
121
+ display: flex;
122
+ align-items: center;
123
+ gap: 0.5rem;
124
+ cursor: pointer;
125
+ user-select: none;
126
+ }
127
+
128
+ .pregnancy-calculator-partner-label {
129
+ font-size: 0.8125rem;
130
+ color: var(--pc-text-muted);
131
+ }
132
+
133
+ .pregnancy-calculator-toggle-track {
134
+ width: 2.5rem;
135
+ height: 1.375rem;
136
+ border-radius: 0.6875rem;
137
+ background: var(--pc-border);
138
+ position: relative;
139
+ transition: background 0.2s;
140
+ border: 1px solid var(--pc-border-inner);
141
+ }
142
+
143
+ .pregnancy-calculator-toggle-track-on {
144
+ background: var(--pc-tri-accent);
145
+ }
146
+
147
+ .pregnancy-calculator-toggle-thumb {
148
+ position: absolute;
149
+ top: 2px;
150
+ left: 2px;
151
+ width: 1rem;
152
+ height: 1rem;
153
+ border-radius: 50%;
154
+ background: var(--pc-bg);
155
+ box-shadow: 0 1px 3px var(--pc-shadow);
156
+ transition: transform 0.2s;
157
+ }
158
+
159
+ .pregnancy-calculator-toggle-track-on .pregnancy-calculator-toggle-thumb {
160
+ transform: translateX(1.125rem);
161
+ }
162
+
163
+ .pregnancy-calculator-main {
164
+ display: grid;
165
+ grid-template-columns: 1fr 1.4fr 14rem;
166
+ min-height: 32rem;
167
+ }
168
+
169
+ .pregnancy-calculator-left {
170
+ padding: 1.25rem;
171
+ border-right: 1px solid var(--pc-border);
172
+ display: flex;
173
+ flex-direction: column;
174
+ gap: 1.25rem;
175
+ }
176
+
177
+ .pregnancy-calculator-center {
178
+ padding: 1.25rem;
179
+ border-right: 1px solid var(--pc-border);
180
+ overflow-y: auto;
181
+ }
182
+
183
+ .pregnancy-calculator-right {
184
+ display: flex;
185
+ flex-direction: column;
186
+ overflow: hidden;
187
+ }
188
+
189
+ .pregnancy-calculator-dp-wrap {
190
+ display: flex;
191
+ flex-direction: column;
192
+ gap: 0.5rem;
193
+ }
194
+
195
+ .pregnancy-calculator-dp-label {
196
+ font-size: 0.8125rem;
197
+ font-weight: 600;
198
+ color: var(--pc-text-muted);
199
+ text-transform: uppercase;
200
+ letter-spacing: 0.04em;
201
+ }
202
+
203
+ .pregnancy-calculator-dp-selects {
204
+ display: flex;
205
+ align-items: center;
206
+ gap: 0.375rem;
207
+ }
208
+
209
+ .pregnancy-calculator-dp-select {
210
+ flex: 1;
211
+ padding: 0.5rem 0.375rem;
212
+ border-radius: 0.5rem;
213
+ border: 1px solid var(--pc-border);
214
+ background: var(--pc-bg);
215
+ color: var(--pc-text);
216
+ font-size: 0.875rem;
217
+ cursor: pointer;
218
+ transition: border-color 0.15s;
219
+ min-width: 0;
220
+ }
221
+
222
+ .pregnancy-calculator-dp-select:focus {
223
+ outline: none;
224
+ border-color: var(--pc-tri-accent);
225
+ }
226
+
227
+ .pregnancy-calculator-dp-sep {
228
+ color: var(--pc-text-dim);
229
+ font-size: 0.875rem;
230
+ flex-shrink: 0;
231
+ }
232
+
233
+ .pregnancy-calculator-cs-wrap {
234
+ display: flex;
235
+ flex-direction: column;
236
+ gap: 0.5rem;
237
+ }
238
+
239
+ .pregnancy-calculator-cs-header {
240
+ display: flex;
241
+ align-items: center;
242
+ justify-content: space-between;
243
+ }
244
+
245
+ .pregnancy-calculator-cs-label {
246
+ font-size: 0.8125rem;
247
+ font-weight: 600;
248
+ color: var(--pc-text-muted);
249
+ text-transform: uppercase;
250
+ letter-spacing: 0.04em;
251
+ }
252
+
253
+ .pregnancy-calculator-cs-value-wrap {
254
+ font-size: 0.875rem;
255
+ font-weight: 700;
256
+ color: var(--pc-tri-accent);
257
+ display: flex;
258
+ align-items: baseline;
259
+ gap: 0.25rem;
260
+ }
261
+
262
+ .pregnancy-calculator-cs-unit {
263
+ font-size: 0.75rem;
264
+ font-weight: 400;
265
+ color: var(--pc-text-dim);
266
+ }
267
+
268
+ .pregnancy-calculator-cs-slider {
269
+ width: 100%;
270
+ accent-color: var(--pc-tri-accent);
271
+ cursor: pointer;
272
+ }
273
+
274
+ .pregnancy-calculator-cs-extremes {
275
+ display: flex;
276
+ justify-content: space-between;
277
+ font-size: 0.6875rem;
278
+ color: var(--pc-text-dim);
279
+ }
280
+
281
+ .pregnancy-calculator-sd-wrap {
282
+ display: flex;
283
+ flex-direction: column;
284
+ gap: 0.875rem;
285
+ }
286
+
287
+ .pregnancy-calculator-stats-row {
288
+ display: flex;
289
+ gap: 0.625rem;
290
+ }
291
+
292
+ .pregnancy-calculator-stat-chip {
293
+ flex: 1;
294
+ background: var(--pc-tri-bg);
295
+ border: 1px solid var(--pc-tri-primary);
296
+ border-radius: 0.625rem;
297
+ padding: 0.625rem 0.75rem;
298
+ display: flex;
299
+ flex-direction: column;
300
+ gap: 0.25rem;
301
+ }
302
+
303
+ .pregnancy-calculator-stat-key {
304
+ font-size: 0.6875rem;
305
+ font-weight: 600;
306
+ text-transform: uppercase;
307
+ letter-spacing: 0.04em;
308
+ color: var(--pc-tri-text);
309
+ }
310
+
311
+ .pregnancy-calculator-stat-value {
312
+ font-size: 1.375rem;
313
+ font-weight: 800;
314
+ color: var(--pc-text);
315
+ line-height: 1;
316
+ }
317
+
318
+ .pregnancy-calculator-accent {
319
+ color: var(--pc-tri-accent);
320
+ }
321
+
322
+ .pregnancy-calculator-edd-box {
323
+ background: var(--pc-bg-muted);
324
+ border: 1px solid var(--pc-border);
325
+ border-radius: 0.75rem;
326
+ padding: 0.875rem 1rem;
327
+ display: flex;
328
+ flex-direction: column;
329
+ gap: 0.25rem;
330
+ }
331
+
332
+ .pregnancy-calculator-edd-label {
333
+ font-size: 0.6875rem;
334
+ font-weight: 600;
335
+ text-transform: uppercase;
336
+ letter-spacing: 0.04em;
337
+ color: var(--pc-text-muted);
338
+ }
339
+
340
+ .pregnancy-calculator-edd-date {
341
+ font-size: 1rem;
342
+ font-weight: 700;
343
+ color: var(--pc-text);
344
+ }
345
+
346
+ .pregnancy-calculator-edd-note {
347
+ font-size: 0.6875rem;
348
+ color: var(--pc-text-dim);
349
+ line-height: 1.4;
350
+ }
351
+
352
+ .pregnancy-calculator-btn-cal {
353
+ width: 100%;
354
+ padding: 0.625rem 1rem;
355
+ border-radius: 0.625rem;
356
+ border: 1px solid var(--pc-tri-primary);
357
+ background: var(--pc-tri-bg);
358
+ color: var(--pc-tri-text);
359
+ font-size: 0.8125rem;
360
+ font-weight: 600;
361
+ cursor: pointer;
362
+ transition: background 0.15s, opacity 0.15s;
363
+ }
364
+
365
+ .pregnancy-calculator-btn-cal:hover:not(:disabled) {
366
+ background: var(--pc-tri-primary);
367
+ }
368
+
369
+ .pregnancy-calculator-btn-cal:disabled {
370
+ opacity: 0.45;
371
+ cursor: not-allowed;
372
+ }
373
+
374
+ .pregnancy-calculator-mp-empty {
375
+ display: flex;
376
+ flex-direction: column;
377
+ align-items: center;
378
+ justify-content: center;
379
+ height: 100%;
380
+ min-height: 18rem;
381
+ gap: 0.75rem;
382
+ text-align: center;
383
+ }
384
+
385
+ .pregnancy-calculator-mp-empty-dot {
386
+ width: 3rem;
387
+ height: 3rem;
388
+ border-radius: 50%;
389
+ background: var(--pc-tri-bg);
390
+ border: 2px solid var(--pc-tri-primary);
391
+ box-shadow: 0 0 0 6px var(--pc-tri-glow);
392
+ }
393
+
394
+ .pregnancy-calculator-mp-empty-title {
395
+ font-size: 1.125rem;
396
+ font-weight: 700;
397
+ color: var(--pc-text);
398
+ }
399
+
400
+ .pregnancy-calculator-mp-empty-body {
401
+ font-size: 0.875rem;
402
+ color: var(--pc-text-muted);
403
+ max-width: 22ch;
404
+ line-height: 1.5;
405
+ margin: 0;
406
+ }
407
+
408
+ @keyframes pc-fade-in {
409
+ from {
410
+ opacity: 0;
411
+ transform: translateY(6px);
412
+ }
413
+ to {
414
+ opacity: 1;
415
+ transform: translateY(0);
416
+ }
417
+ }
418
+
419
+ .pregnancy-calculator-mp-results {
420
+ display: flex;
421
+ flex-direction: column;
422
+ gap: 1rem;
423
+ }
424
+
425
+ .pregnancy-calculator-mp-enter {
426
+ animation: pc-fade-in 0.25s ease-out;
427
+ }
428
+
429
+ .pregnancy-calculator-mp-top-row {
430
+ display: flex;
431
+ align-items: center;
432
+ justify-content: space-between;
433
+ gap: 0.75rem;
434
+ flex-wrap: wrap;
435
+ }
436
+
437
+ .pregnancy-calculator-mp-badge {
438
+ display: inline-flex;
439
+ align-items: center;
440
+ padding: 0.375rem 0.875rem;
441
+ border-radius: 2rem;
442
+ background: var(--pc-tri-badge);
443
+ color: var(--pc-tri-text);
444
+ font-size: 0.875rem;
445
+ font-weight: 700;
446
+ border: 1px solid var(--pc-tri-primary);
447
+ }
448
+
449
+ .pregnancy-calculator-analogy-tabs {
450
+ display: flex;
451
+ gap: 0.25rem;
452
+ background: var(--pc-bg-muted);
453
+ padding: 0.25rem;
454
+ border-radius: 0.5rem;
455
+ border: 1px solid var(--pc-border);
456
+ }
457
+
458
+ .pregnancy-calculator-at-btn {
459
+ padding: 0.25rem 0.625rem;
460
+ border-radius: 0.375rem;
461
+ border: none;
462
+ background: transparent;
463
+ color: var(--pc-text-muted);
464
+ font-size: 0.75rem;
465
+ font-weight: 500;
466
+ cursor: pointer;
467
+ transition: background 0.15s, color 0.15s;
468
+ }
469
+
470
+ .pregnancy-calculator-at-btn-active {
471
+ background: var(--pc-bg);
472
+ color: var(--pc-tri-accent);
473
+ box-shadow: 0 1px 3px var(--pc-shadow);
474
+ }
475
+
476
+ .pregnancy-calculator-size-card {
477
+ display: flex;
478
+ align-items: center;
479
+ justify-content: space-between;
480
+ background: var(--pc-tri-bg);
481
+ border: 1px solid var(--pc-tri-primary);
482
+ border-radius: 0.75rem;
483
+ padding: 0.875rem 1rem;
484
+ gap: 0.5rem;
485
+ }
486
+
487
+ .pregnancy-calculator-size-name {
488
+ font-size: 1rem;
489
+ font-weight: 700;
490
+ color: var(--pc-tri-text);
491
+ }
492
+
493
+ .pregnancy-calculator-size-measure {
494
+ font-size: 0.875rem;
495
+ font-weight: 600;
496
+ color: var(--pc-text-muted);
497
+ background: var(--pc-bg);
498
+ border: 1px solid var(--pc-border);
499
+ border-radius: 0.375rem;
500
+ padding: 0.125rem 0.5rem;
501
+ }
502
+
503
+ .pregnancy-calculator-info-stack {
504
+ display: flex;
505
+ flex-direction: column;
506
+ gap: 0.75rem;
507
+ }
508
+
509
+ .pregnancy-calculator-info-block {
510
+ display: flex;
511
+ flex-direction: column;
512
+ gap: 0.25rem;
513
+ }
514
+
515
+ .pregnancy-calculator-info-key {
516
+ font-size: 0.6875rem;
517
+ font-weight: 700;
518
+ text-transform: uppercase;
519
+ letter-spacing: 0.05em;
520
+ color: var(--pc-tri-accent);
521
+ }
522
+
523
+ .pregnancy-calculator-info-text {
524
+ font-size: 0.875rem;
525
+ color: var(--pc-text-muted);
526
+ line-height: 1.55;
527
+ margin: 0;
528
+ }
529
+
530
+ .pregnancy-calculator-wonder-line {
531
+ font-size: 0.8125rem;
532
+ font-style: italic;
533
+ color: var(--pc-text-dim);
534
+ padding: 0.5rem 0.75rem;
535
+ border-left: 3px solid var(--pc-tri-primary);
536
+ background: var(--pc-tri-bg);
537
+ border-radius: 0 0.375rem 0.375rem 0;
538
+ line-height: 1.5;
539
+ }
540
+
541
+ .pregnancy-calculator-semaphore {
542
+ display: grid;
543
+ grid-template-columns: 1fr 1fr;
544
+ gap: 0.75rem;
545
+ }
546
+
547
+ .pregnancy-calculator-sema {
548
+ border-radius: 0.625rem;
549
+ padding: 0.75rem;
550
+ display: flex;
551
+ flex-direction: column;
552
+ gap: 0.5rem;
553
+ }
554
+
555
+ .pregnancy-calculator-sema-safe {
556
+ background: var(--pc-safe-bg);
557
+ border: 1px solid rgba(22, 163, 74, 0.2);
558
+ }
559
+
560
+ .pregnancy-calculator-sema-alert {
561
+ background: var(--pc-alert-bg);
562
+ border: 1px solid rgba(234, 88, 12, 0.2);
563
+ }
564
+
565
+ .pregnancy-calculator-sema-title {
566
+ font-size: 0.6875rem;
567
+ font-weight: 700;
568
+ text-transform: uppercase;
569
+ letter-spacing: 0.04em;
570
+ }
571
+
572
+ .pregnancy-calculator-sema-safe .pregnancy-calculator-sema-title {
573
+ color: var(--pc-safe-title);
574
+ }
575
+
576
+ .pregnancy-calculator-sema-alert .pregnancy-calculator-sema-title {
577
+ color: var(--pc-alert-title);
578
+ }
579
+
580
+ .pregnancy-calculator-sema-list {
581
+ list-style: none;
582
+ margin: 0;
583
+ padding: 0;
584
+ display: flex;
585
+ flex-direction: column;
586
+ gap: 0.25rem;
587
+ }
588
+
589
+ .pregnancy-calculator-sema-list li {
590
+ font-size: 0.75rem;
591
+ color: var(--pc-text-muted);
592
+ padding-left: 1rem;
593
+ position: relative;
594
+ line-height: 1.4;
595
+ }
596
+
597
+ .pregnancy-calculator-sema-safe .pregnancy-calculator-sema-list li::before {
598
+ content: '';
599
+ position: absolute;
600
+ left: 0;
601
+ top: 0.45em;
602
+ width: 0.375rem;
603
+ height: 0.375rem;
604
+ border-radius: 50%;
605
+ background: var(--pc-safe-title);
606
+ }
607
+
608
+ .pregnancy-calculator-sema-alert .pregnancy-calculator-sema-list li::before {
609
+ content: '';
610
+ position: absolute;
611
+ left: 0;
612
+ top: 0.45em;
613
+ width: 0.375rem;
614
+ height: 0.375rem;
615
+ border-radius: 50%;
616
+ background: var(--pc-alert-title);
617
+ }
618
+
619
+ .pregnancy-calculator-tl-header {
620
+ padding: 0.75rem 1rem;
621
+ font-size: 0.75rem;
622
+ font-weight: 700;
623
+ text-transform: uppercase;
624
+ letter-spacing: 0.05em;
625
+ color: var(--pc-text-dim);
626
+ border-bottom: 1px solid var(--pc-border);
627
+ background: var(--pc-bg-muted);
628
+ }
629
+
630
+ .pregnancy-calculator-tl-scroll {
631
+ flex: 1;
632
+ overflow-y: auto;
633
+ padding: 0.5rem 0;
634
+ }
635
+
636
+ .pregnancy-calculator-tl-row {
637
+ display: flex;
638
+ align-items: flex-start;
639
+ gap: 0.5rem;
640
+ padding: 0.25rem 0.75rem;
641
+ cursor: default;
642
+ transition: background 0.1s;
643
+ }
644
+
645
+ .pregnancy-calculator-tl-row-current {
646
+ background: var(--pc-tri-bg);
647
+ }
648
+
649
+ .pregnancy-calculator-tl-line-col {
650
+ display: flex;
651
+ flex-direction: column;
652
+ align-items: center;
653
+ flex-shrink: 0;
654
+ width: 1rem;
655
+ padding-top: 0.2rem;
656
+ }
657
+
658
+ .pregnancy-calculator-tl-dot {
659
+ width: 0.5rem;
660
+ height: 0.5rem;
661
+ border-radius: 50%;
662
+ background: var(--pc-border);
663
+ flex-shrink: 0;
664
+ transition: background 0.15s;
665
+ }
666
+
667
+ .pregnancy-calculator-tl-row-past .pregnancy-calculator-tl-dot {
668
+ background: var(--pc-tri-accent);
669
+ }
670
+
671
+ .pregnancy-calculator-tl-row-current .pregnancy-calculator-tl-dot {
672
+ background: var(--pc-tri-accent);
673
+ box-shadow: 0 0 0 3px var(--pc-tri-glow);
674
+ width: 0.625rem;
675
+ height: 0.625rem;
676
+ }
677
+
678
+ .pregnancy-calculator-tl-line {
679
+ width: 2px;
680
+ flex: 1;
681
+ min-height: 1.25rem;
682
+ background: var(--pc-border);
683
+ margin-top: 2px;
684
+ }
685
+
686
+ .pregnancy-calculator-tl-row-past .pregnancy-calculator-tl-line {
687
+ background: var(--pc-tri-primary);
688
+ }
689
+
690
+ .pregnancy-calculator-tl-info {
691
+ display: flex;
692
+ align-items: baseline;
693
+ gap: 0.375rem;
694
+ min-width: 0;
695
+ }
696
+
697
+ .pregnancy-calculator-tl-num {
698
+ font-size: 0.75rem;
699
+ font-weight: 700;
700
+ color: var(--pc-text-dim);
701
+ flex-shrink: 0;
702
+ }
703
+
704
+ .pregnancy-calculator-tl-row-past .pregnancy-calculator-tl-num {
705
+ color: var(--pc-tri-accent);
706
+ }
707
+
708
+ .pregnancy-calculator-tl-row-current .pregnancy-calculator-tl-num {
709
+ color: var(--pc-tri-accent);
710
+ font-size: 0.875rem;
711
+ }
712
+
713
+ .pregnancy-calculator-tl-label {
714
+ font-size: 0.6875rem;
715
+ color: var(--pc-text-dim);
716
+ white-space: nowrap;
717
+ overflow: hidden;
718
+ text-overflow: ellipsis;
719
+ }
720
+
721
+ .pregnancy-calculator-tl-row-current .pregnancy-calculator-tl-label {
722
+ color: var(--pc-tri-text);
723
+ font-weight: 600;
724
+ font-size: 0.75rem;
725
+ }
726
+
727
+ @media (max-width: 900px) {
728
+ .pregnancy-calculator-main {
729
+ grid-template-columns: 1fr;
730
+ }
731
+
732
+ .pregnancy-calculator-center {
733
+ border-right: none;
734
+ border-top: 1px solid var(--pc-border);
735
+ }
736
+
737
+ .pregnancy-calculator-right {
738
+ border-top: 1px solid var(--pc-border);
739
+ max-height: 16rem;
740
+ }
741
+
742
+ .pregnancy-calculator-tl-scroll {
743
+ display: flex;
744
+ flex-direction: row;
745
+ overflow-x: auto;
746
+ overflow-y: hidden;
747
+ padding: 0.5rem;
748
+ gap: 0.25rem;
749
+ }
750
+
751
+ .pregnancy-calculator-tl-row {
752
+ flex-direction: column;
753
+ align-items: center;
754
+ padding: 0.5rem 0.375rem;
755
+ min-width: 3rem;
756
+ }
757
+
758
+ .pregnancy-calculator-tl-line-col {
759
+ flex-direction: row;
760
+ width: auto;
761
+ padding-top: 0;
762
+ }
763
+
764
+ .pregnancy-calculator-tl-line {
765
+ width: 1.25rem;
766
+ height: 2px;
767
+ min-height: 0;
768
+ margin-top: 0;
769
+ margin-left: 2px;
770
+ }
771
+
772
+ .pregnancy-calculator-tl-info {
773
+ flex-direction: column;
774
+ align-items: center;
775
+ gap: 0.125rem;
776
+ }
777
+
778
+ .pregnancy-calculator-tl-label {
779
+ display: none;
780
+ }
781
+
782
+ .pregnancy-calculator-semaphore {
783
+ grid-template-columns: 1fr;
784
+ }
785
+
786
+ .pregnancy-calculator-left {
787
+ border-right: none;
788
+ border-bottom: 1px solid var(--pc-border);
789
+ }
790
+ }
791
+
792
+ @media (max-width: 600px) {
793
+ .pregnancy-calculator-header {
794
+ flex-direction: column;
795
+ align-items: flex-start;
796
+ }
797
+
798
+ .pregnancy-calculator-method-group {
799
+ width: 100%;
800
+ justify-content: stretch;
801
+ }
802
+
803
+ .pregnancy-calculator-method-btn {
804
+ flex: 1;
805
+ text-align: center;
806
+ }
807
+ }