:root{--color-bg:#faf8f3;--color-surface:#fff;--color-border:#e8e2d6;--color-primary:#3f5b4e;--color-primary-hover:#2f4a3e;--color-text:#2b3a33;--color-text-secondary:#5e6e66;--color-gold:#a8874b;--color-honey:#e6c98a;--color-error:#b5543e;--chart-line-baby:#5c89a8;--chart-line-parent:#b5728f;--sp-1:4px;--sp-2:8px;--sp-3:16px;--sp-4:24px;--sp-5:32px;--sp-6:48px;--sp-7:64px;--sp-8:96px;--radius-btn:8px;--radius-card:12px;--serif:"Fraunces", Georgia, serif;--sans:"Inter", Helvetica, Arial, sans-serif;--text-display:48px;--text-h1:38px;--text-h2:30px;--text-h3:24px;--text-h4:19px;--text-body-lg:18px;--text-body:16px;--text-small:14px;--text-label:12px}.page{max-width:640px;padding:var(--sp-6) var(--sp-4) var(--sp-8);margin:0 auto}.page--with-bottom-nav{padding-bottom:calc(var(--sp-8) + 64px + env(safe-area-inset-bottom))}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-secondary{color:var(--color-text-secondary)}.page-header{margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;display:flex}.app-footer{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px}.app-footer a{color:inherit}.app-footer-on-green{border-top-color:var(--color-honey);color:var(--color-bg)}.wordmark-lockup{align-items:center;text-decoration:none;display:inline-flex}.overline{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin:0 0 var(--sp-2);font-weight:600}.btn{font-family:var(--sans);border-radius:var(--radius-btn);cursor:pointer;border:1px solid #0000;padding:13px 26px;font-size:15.5px;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-block}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--color-bg)}.btn-primary:hover{background:var(--color-primary-hover);color:var(--color-bg)}.btn-secondary{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn-secondary:hover{color:var(--color-primary);background:#3f5b4e0f}.btn-ghost{color:var(--color-primary);text-underline-offset:3px;background:0 0;border-color:#0000;padding-left:4px;padding-right:4px;text-decoration:underline}.btn-ghost:hover{color:var(--color-primary-hover)}.btn-sm{padding:9px 18px;font-size:14px}.btn-on-green{background:var(--color-bg);color:var(--color-primary)}.btn-on-green:hover{background:var(--color-honey);color:var(--color-primary)}.btn-on-green-secondary{color:var(--color-bg);border-color:var(--color-bg);background:0 0}.btn-on-green-secondary:hover{border-color:var(--color-honey);color:var(--color-honey)}.on-green .btn:focus-visible{outline-color:var(--color-honey)}.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.field{margin-bottom:var(--sp-3)}.field label{font-size:var(--text-small);margin-bottom:var(--sp-2);font-weight:600;display:block}.field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:var(--text-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-text-secondary);border-radius:var(--radius-btn);padding:12px 14px;transition:border-color .15s,box-shadow .15s}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-secondary)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.field .help{color:var(--color-text-secondary);margin-top:var(--sp-2);font-size:13px}.field.is-error input{border-color:var(--color-error);box-shadow:0 0 0 3px #b5543e1f}.field.is-error .help{color:var(--color-error)}.tag{border:1px solid #0000;border-radius:100px;align-items:center;gap:6px;padding:4px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.tag-progress,.tag-video{background:var(--color-surface);border-color:var(--color-gold);color:var(--color-primary)}.tag-done{color:var(--color-primary);background:#3f5b4e14}.tag-upcoming{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.tag-article{background:var(--color-border);color:var(--color-primary)}.milestone-card{background:var(--color-primary);color:var(--color-bg);border-radius:var(--radius-card);padding:var(--sp-6) var(--sp-5)}.milestone-card .check,.milestone-page .check{background:var(--color-honey);width:40px;height:40px;margin-bottom:var(--sp-4);border-radius:50%;justify-content:center;align-items:center;display:flex}.milestone-card h1,.milestone-card h3{font-family:var(--serif);margin:0 0 var(--sp-2);color:var(--color-bg);font-weight:500}.milestone-card p{font-size:var(--text-body);max-width:34ch;margin:0}.milestone-page{background:var(--color-primary);min-height:100vh;color:var(--color-bg);text-align:center;padding:var(--sp-6) var(--sp-4);flex-direction:column;justify-content:center;align-items:center;display:flex}.milestone-page h1{font-family:var(--serif);font-weight:500;font-size:var(--text-display);margin:var(--sp-4) 0 var(--sp-3);color:var(--color-bg)}.milestone-page p{font-size:var(--text-body-lg);margin:0 0 var(--sp-5);max-width:40ch}.milestone-page a:not(.btn):not(.chip){color:var(--color-bg)}.milestone-page .chip{border-color:var(--color-bg);color:var(--color-bg);background:0 0}.milestone-page .chip:hover{border-color:var(--color-honey);color:var(--color-honey)}.milestone-page .day-picker-lbl{color:var(--color-bg)}.tracker-wrap{margin-bottom:var(--sp-5)}.tracker{align-items:center;display:flex}.tstep{flex-direction:column;flex:1;align-items:center;gap:10px;display:flex;position:relative}a.tstep{cursor:pointer;text-decoration:none}a.tstep:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.tstep .dot{width:34px;height:34px;font-family:var(--sans);background:var(--color-surface);border:2px solid var(--color-border);color:var(--color-text-secondary);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:13.5px;font-weight:700;display:flex}.tstep .line{background:var(--color-border);z-index:0;width:100%;height:2px;position:absolute;top:17px;left:50%}.tstep:last-child .line{display:none}.tstep .lbl{color:var(--color-text-secondary);letter-spacing:.02em;font-size:11.5px}.tstep.done .dot{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-bg)}.tstep.done .line{background:var(--color-gold)}.tstep.current .dot{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 0 4px #3f5b4e1f}.tstep.current .lbl{color:var(--color-primary);font-weight:600}.chip-group{gap:var(--sp-2);flex-direction:column;display:flex}.chip{width:100%;font-family:var(--sans);font-size:var(--text-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-text-secondary);text-align:left;cursor:pointer;border-radius:100px;padding:14px 20px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:block}.chip:hover{border-color:var(--color-primary)}.chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.chip.selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-bg);font-weight:600}.mood-option{align-items:center;gap:var(--sp-3);display:flex}.chip-group.chip-group-scale{gap:var(--sp-2);flex-flow:row}.chip-group-scale .chip{text-align:center;flex:none;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:15px;display:flex}.day-picker-item{flex-direction:column;align-items:center;gap:6px;display:flex}.day-picker-lbl{color:var(--color-text-secondary);white-space:nowrap;font-size:9.5px}.rating-block{border-radius:var(--radius-card);padding:var(--sp-4);margin-bottom:var(--sp-5)}.rating-block h4{margin-top:0}.rating-block--baby{background:#5c89a81a;border:1px solid #5c89a873}.rating-block--parent{background:#b5728f1a;border:1px solid #b5728f73}.rating-option{flex-direction:column;gap:2px;display:flex}.rating-option-desc{font-size:var(--text-small);color:var(--color-text-secondary);font-weight:400}.chip.selected .rating-option-desc{color:var(--color-bg)}.checklist{margin:0 0 var(--sp-5);gap:var(--sp-2);flex-direction:column;padding:0;list-style:none;display:flex}.checklist li{align-items:flex-start;gap:var(--sp-2);font-size:var(--text-body);display:flex}.checklist li:before{content:"";border:1px solid var(--color-text-secondary);background:var(--color-surface);border-radius:5px;flex:none;width:18px;height:18px;margin-top:3px}.rating-trend-chart{margin:var(--sp-4) 0 var(--sp-2)}.rating-trend-svg{width:100%;display:block}.rating-calm-zone{fill:var(--color-border);opacity:.45}.rating-gridline{stroke:var(--color-border);stroke-width:1px}.rating-line{stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.rating-line--baby{stroke:var(--chart-line-baby)}.rating-line--parent{stroke:var(--chart-line-parent)}.rating-dot{stroke:var(--color-surface);stroke-width:2px}.rating-dot--baby{fill:var(--chart-line-baby)}.rating-dot--parent{fill:var(--chart-line-parent)}.rating-dot--empty{fill:var(--color-surface);stroke:var(--color-text-secondary);stroke-width:1px}.rating-day-lbl{font-family:var(--sans);fill:var(--color-text-secondary);font-size:9.5px}.rating-axis-lbl{font-family:var(--sans);fill:var(--color-text-secondary);font-size:8.5px;font-weight:500}.rating-scale-key{margin:var(--sp-3) 0 0;padding:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);font-size:var(--text-small);gap:4px;list-style:none;display:grid}.rating-scale-key strong{color:var(--color-text)}.rating-scale-key-desc{color:var(--color-text-secondary)}.clear-history-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:var(--sp-4)}.clear-history-card p{margin-top:0}.clear-history-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}.bottom-nav{z-index:10;background:var(--color-bg);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{text-align:center;font-family:var(--sans);color:var(--color-text-secondary);flex:1;padding:14px 4px;font-size:12.5px;font-weight:500;text-decoration:none}.bottom-nav-item.active{color:var(--color-primary);font-weight:600}.review-card{margin:0 0 var(--sp-5);padding:var(--sp-6) var(--sp-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);text-align:center}.review-stars{margin-bottom:var(--sp-4);fill:var(--color-gold);justify-content:center;gap:6px;display:flex}.review-quote{margin:0 auto var(--sp-4);max-width:24ch;font-family:var(--serif);color:var(--color-text);text-wrap:balance;font-size:26px;font-style:italic;font-weight:400;line-height:1.4}.review-card figcaption{align-items:center;gap:var(--sp-2);flex-direction:column;display:flex}.review-author{font-style:normal;font-weight:700;font-size:var(--text-body-lg);color:var(--color-primary)}.review-source{font-size:var(--text-small);color:var(--color-text-secondary);text-decoration:none}.review-source:hover{color:var(--color-primary);text-decoration:underline}@media (width<=480px){.review-card{padding:var(--sp-5) var(--sp-4)}.review-quote{font-size:22px}}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--color-bg);color:var(--color-text);font-family:var(--sans);font-size:var(--text-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:var(--color-primary)}a:hover{color:var(--color-primary-hover)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.on-green :focus-visible{outline-color:var(--color-honey)}h1,h2,h3{font-family:var(--serif);margin:0 0 var(--sp-3);color:var(--color-primary);font-weight:500}h1{font-size:var(--text-h1);line-height:1.2}h2{font-size:var(--text-h2);line-height:1.25}h3{font-size:var(--text-h3);line-height:1.3}h4{font-family:var(--sans);color:var(--color-primary);font-size:var(--text-h4);margin:0 0 var(--sp-2);font-weight:600}p{margin:0 0 var(--sp-4)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
