@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DM Serif Display;src:url(/fonts/dm-serif-display-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--cream:#faf6f0;--warm-white:#fffdf9;--rose:#c97a5e;--deep:#3a2a22;--muted:#8a7060;--sage:#8fa88a;--sage-light:#d4e0d2;--ink:#2a1e18;--border:#e2d4c8}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--ink);flex-direction:column;align-items:center;min-height:100vh;padding:40px 20px 80px;font-family:DM Sans,sans-serif;display:flex;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#f0ddd0 0%,#0000 70%);border-radius:50%;width:420px;height:420px;position:fixed;top:-120px;right:-80px}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#dce8da 0%,#0000 70%);border-radius:50%;width:360px;height:360px;position:fixed;bottom:-100px;left:-60px}.container{z-index:1;width:100%;max-width:560px;position:relative}header{text-align:center;margin-bottom:48px;animation:.7s both fadeUp}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--rose);margin-bottom:12px;font-size:11px;font-weight:500}h1{color:var(--deep);margin-bottom:14px;font-family:DM Serif Display,serif;font-size:clamp(2.6rem,7vw,3.4rem);line-height:1.1}h1 em{color:var(--rose);font-style:italic}.subtitle{color:var(--muted);font-size:.92rem;font-weight:300;line-height:1.6}.card{background:var(--warm-white);border:1px solid var(--border);border-radius:24px;margin-bottom:16px;padding:36px 32px;animation:.7s .1s both fadeUp;box-shadow:0 4px 32px #3a2a220f,0 1px 4px #3a2a220a}.field-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:.78rem;font-weight:500;display:block}.field{margin-bottom:28px}.field:last-child{margin-bottom:0}.ref-date-disclosure{margin-bottom:24px}.ref-date-summary{color:var(--muted);cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:.78rem;list-style:none;transition:color .15s;display:inline-flex}.ref-date-summary::-webkit-details-marker{display:none}.ref-date-summary:after{content:"▾";opacity:.55;font-size:.65rem;transition:transform .2s}.ref-date-disclosure[open] .ref-date-summary:after{transform:rotate(180deg)}.ref-date-summary:hover{color:var(--deep)}.ref-date-summary #ref-date-text{color:var(--deep);font-weight:500}.ref-date-summary #ref-date-text.modified{color:var(--rose)}.ref-date-editor{background:var(--cream);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;display:flex}.ref-date-editor-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:500}.ref-date-editor input[type=date]{flex:1;min-width:130px;width:auto!important;padding:6px 10px!important;font-size:.85rem!important}.link-btn{color:var(--rose);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.78rem;text-decoration:underline}.link-btn:hover{color:var(--deep)}.field-hint{color:var(--muted);margin-top:-6px;margin-bottom:10px;font-size:.75rem;font-style:italic}.or-divider{align-items:center;margin:24px 0;display:flex}.or-divider:before,.or-divider:after{content:"";background:var(--border);flex:1;height:1px}.or-divider span{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0 16px;font-size:.7rem;font-weight:500}input[type=date]{border:1.5px solid var(--border);width:100%;color:var(--deep);background:var(--cream);cursor:pointer;border-radius:12px;outline:none;padding:14px 18px;font-family:DM Sans,sans-serif;font-size:1rem;transition:border-color .2s,box-shadow .2s}input[type=date]:focus{border-color:var(--rose);box-shadow:0 0 0 3px #c97a5e1f}.pregnancy-inputs{grid-template-columns:1fr 1fr;gap:14px;display:grid}.spinner-wrap{flex-direction:column;gap:8px;display:flex}.spinner-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:500}.spinner{border:1.5px solid var(--border);background:var(--cream);border-radius:12px;align-items:stretch;height:56px;transition:border-color .2s;display:flex;overflow:hidden}.spinner:focus-within{border-color:var(--rose);box-shadow:0 0 0 3px #c97a5e1f}.spin-btn{cursor:pointer;width:48px;color:var(--muted);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;transition:color .15s,background .15s;display:flex}.spin-btn:hover{color:var(--rose);background:#c97a5e12}.spin-btn:active{background:#c97a5e29}.spin-display{color:var(--deep);-webkit-user-select:none;user-select:none;cursor:default;border-left:1px solid var(--border);border-right:1px solid var(--border);flex:1;justify-content:center;align-items:center;font-family:DM Serif Display,serif;font-size:1.6rem;display:flex}.week-notation{text-align:center;color:var(--muted);margin-top:10px;font-family:DM Serif Display,serif;font-size:1.1rem}.week-notation strong{color:var(--rose);font-size:1.3rem}.divider{background:var(--border);height:1px;margin:28px 0}.results-title{color:var(--deep);margin-bottom:20px;font-family:DM Serif Display,serif;font-size:1.1rem}.due-date-hero{background:linear-gradient(135deg, var(--rose) 0%, #b5664c 100%);color:#fff;border-radius:18px;margin-bottom:20px;padding:28px 28px 24px;position:relative;overflow:hidden}.due-date-hero:before{content:"♡";opacity:.15;font-size:3.5rem;position:absolute;top:16px;right:20px}.due-date-label{letter-spacing:.18em;text-transform:uppercase;opacity:.75;margin-bottom:6px;font-size:.72rem;font-weight:500}.due-date-value{margin-bottom:6px;font-family:DM Serif Display,serif;font-size:2.2rem;line-height:1.1}.due-date-sub{opacity:.8;font-size:.85rem;font-weight:300}.stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.stat{background:var(--cream);border:1px solid var(--border);border-radius:14px;padding:18px 16px}.stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.7rem;font-weight:500}.stat-value{color:var(--deep);margin-bottom:3px;font-family:DM Serif Display,serif;font-size:1.5rem;line-height:1}.stat-sub{color:var(--muted);font-size:.75rem;font-weight:300}.progress-section{background:var(--cream);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:20px 18px}.progress-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.progress-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:500}.progress-pct{color:var(--rose);font-family:DM Serif Display,serif;font-size:1.1rem}.progress-track{background:var(--border);border-radius:99px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--sage) 0%, var(--rose) 100%);border-radius:99px;min-width:4px;height:100%;transition:width .8s cubic-bezier(.16,1,.3,1)}.trimester-badge{background:var(--sage-light);color:#4a6646;border-radius:99px;align-items:center;gap:6px;margin-top:14px;padding:6px 14px;font-size:.78rem;font-weight:500;display:inline-flex}.trimester-badge .dot{background:var(--sage);border-radius:50%;width:6px;height:6px}.lmp-note{border:1px solid var(--border);color:var(--muted);background:#f5f0ec;border-radius:12px;margin-top:8px;padding:14px 16px;font-size:.8rem;line-height:1.6}.lmp-note strong{color:var(--deep);font-weight:500}.empty-state{text-align:center;color:var(--muted);padding:32px 0 8px;font-size:.88rem;font-style:italic}.accordion{background:var(--warm-white);border:1px solid var(--border);border-radius:20px;margin-bottom:16px;animation:.7s .15s both fadeUp;overflow:hidden;box-shadow:0 4px 32px #3a2a220d}.accordion-trigger{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:20px 28px;font-family:DM Sans,sans-serif;display:flex}.accordion-trigger:hover{background:#c97a5e0a}.accordion-trigger-left{align-items:center;gap:12px;display:flex}.accordion-icon-wrap{background:var(--sage-light);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:flex}.accordion-title{color:var(--deep);font-size:.95rem;font-weight:500}.accordion-desc{color:var(--muted);margin-top:1px;font-size:.78rem}.accordion-chevron{color:var(--muted);flex-shrink:0;font-size:.85rem;transition:transform .3s}.accordion-chevron.open{transform:rotate(180deg)}.accordion-body{max-height:0;transition:max-height .35s cubic-bezier(.16,1,.3,1);overflow:hidden}.accordion-body.open{max-height:600px}.accordion-inner{padding:0 28px 24px}.rev-inputs{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.rev-result{background:var(--cream);border:1px solid var(--border);border-radius:14px;align-items:center;gap:14px;min-height:72px;padding:18px 20px;display:flex}.rev-result-icon{flex-shrink:0;font-size:1.5rem}.rev-big{color:var(--deep);font-family:DM Serif Display,serif;font-size:1.1rem}.rev-small{color:var(--muted);margin-top:3px;font-size:.78rem}.open-cal-btn{border:1.5px solid var(--border);cursor:pointer;width:100%;color:var(--muted);background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .2s,color .2s,background .2s;animation:.7s .2s both fadeUp;display:flex}.open-cal-btn:hover:not(:disabled){border-color:var(--rose);color:var(--rose);background:#c97a5e0a}.open-cal-btn:disabled{opacity:.38;cursor:not-allowed}.disclaimer{color:var(--muted);text-align:center;border-top:1px solid var(--border);margin-top:28px;padding:18px 20px 0;font-size:.72rem;line-height:1.6;animation:.7s .25s both fadeUp}dialog{background:var(--warm-white);border:none;border-radius:24px;outline:none;flex-direction:column;width:calc(100vw - 32px);max-width:520px;max-height:82vh;padding:0;display:flex;box-shadow:0 24px 80px #3a2a2238}dialog:not([open]){display:none}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a1e1873}.dialog-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 28px 16px;display:flex}.dialog-header h2{color:var(--deep);font-family:DM Serif Display,serif;font-size:1.4rem}.dialog-header p{color:var(--muted);margin-top:3px;font-size:.8rem}.dialog-close{background:var(--cream);cursor:pointer;width:34px;height:34px;color:var(--muted);border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;transition:background .15s,color .15s;display:flex}.dialog-close:hover{background:var(--border);color:var(--deep)}.dialog-search{border-bottom:1px solid var(--border);flex-shrink:0;padding:12px 28px}.dialog-search input{border:1.5px solid var(--border);width:100%;color:var(--deep);background:var(--cream);border-radius:10px;outline:none;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.88rem;transition:border-color .2s}.dialog-search input:focus{border-color:var(--rose)}.dialog-search input::placeholder{color:var(--muted)}.dialog-body{flex:1;overflow-y:auto}.week-group-header{letter-spacing:.13em;text-transform:uppercase;color:var(--rose);background:var(--warm-white);z-index:1;border-bottom:1px solid var(--border);padding:9px 28px 5px;font-size:.68rem;font-weight:500;position:sticky;top:0}.cal-row{border-bottom:1px solid #f0e8e0;align-items:center;gap:14px;padding:9px 28px;transition:background .1s;display:flex}.cal-row:hover{background:#c97a5e0d}.cal-row.highlight{background:#c97a5e1a}.cal-row.highlight .cal-wk{color:var(--rose);font-weight:700}.cal-wk{color:var(--deep);flex-shrink:0;min-width:58px;font-family:DM Serif Display,serif;font-size:.95rem}.cal-dt{color:var(--muted);font-size:.86rem}.cal-dt strong{color:var(--ink);font-weight:500}.cal-here{background:var(--rose);color:#fff;border-radius:99px;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:.7rem;font-weight:500}.dialog-body::-webkit-scrollbar{width:6px}.dialog-body::-webkit-scrollbar-track{background:0 0}.dialog-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.card{padding:28px 20px}.accordion-trigger{padding:18px 20px}.accordion-inner{padding:0 20px 20px}.dialog-header,.dialog-search,.week-group-header,.cal-row{padding-left:20px;padding-right:20px}.stats{gap:10px}.due-date-value{font-size:1.8rem}}
