:root{--paper:#f5f3ee;--ink:#1a1815;--muted:#6d6259;--accent:#7c4a72;--accent-deep:#5f3656;--gold:#b98a2f;--card:#fffdf9;--line:#e3dacb;--fertile:#dcead9;--fertile-line:#9db98f;--ovul:#7c4a72;--period:#f3d9d4;--period-line:#d29a8f;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}h1,h2,h3{font-weight:700;line-height:1.18;letter-spacing:-.015em;color:var(--ink)}h1{font-size:clamp(2rem,4.6vw,3.2rem);margin:.15em 0 .3em}h2{font-size:clamp(1.45rem,2.8vw,1.9rem);margin:1.7em 0 .5em}h3{font-size:1.12rem;margin:1.2em 0 .35em}p{margin:.55em 0}a{color:var(--accent-deep)}.lede{font-size:1.16rem;color:var(--muted);max-width:44em}header.site{border-bottom:1px solid var(--line)}header.site .wrap{display:flex;align-items:baseline;gap:26px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}.logo{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.logo em{color:var(--accent);font-style:normal}.tagline{color:var(--muted);font-size:.9rem}nav.main{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}nav.main a{color:var(--ink);text-decoration:none;font-size:.95rem}nav.main a:hover{color:var(--accent-deep);text-decoration:underline}main{padding:32px 0 56px}footer.site{border-top:1px solid var(--line);margin-top:26px;padding:32px 0 44px;color:var(--muted);font-size:.93rem}footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px}footer.site h4{color:var(--ink);margin:0 0 .5em;font-size:1rem}footer.site ul{list-style:none;margin:0;padding:0}footer.site li{margin:.34em 0}footer.site a{color:var(--muted);text-decoration:none}footer.site a:hover{color:var(--accent-deep);text-decoration:underline}.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:13px 26px;font-size:1rem;font-family:var(--sans);font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--accent-deep)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin:22px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px 24px}.card h3{margin-top:0}.tool-layout{display:grid;grid-template-columns:minmax(300px,400px) 1fr;gap:30px;align-items:start;margin:26px 0}@media(max-width:920px){.tool-layout{grid-template-columns:1fr}}form.tool{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px}form.tool label{display:block;font-size:.9rem;font-weight:600;margin:14px 0 5px}form.tool label:first-child{margin-top:0}form.tool input,form.tool select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.98rem;background:#fff}form.tool .hint{font-size:.83rem;color:var(--muted);font-weight:400;margin-top:3px}form.tool .btn{width:100%;margin-top:20px}.results{display:grid;gap:18px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.stat .k{font-size:.8rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.stat .v{font-size:1.28rem;font-weight:700;letter-spacing:-.01em;margin-top:2px}.stat .s{font-size:.88rem;color:var(--muted)}.stat.hero{border-color:var(--accent);background:#fbf3f9}.stat.hero .v{color:var(--accent-deep);font-size:1.45rem}table.data{width:100%;border-collapse:collapse;margin:16px 0;background:var(--card);font-size:.96rem}table.data th,table.data td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}table.data th{background:#efe8da;font-weight:700}table.data tr.ov td{background:#fbf3f9;font-weight:600}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:14px 0}.cal .dow{font-size:.75rem;text-align:center;color:var(--muted);font-weight:700;padding:2px 0}.cal .day{border:1px solid var(--line);border-radius:8px;min-height:52px;padding:5px 7px;font-size:.85rem;background:var(--card);position:relative}.cal .day .n{font-weight:700}.cal .day .tag{font-size:.68rem;line-height:1.25;display:block;color:var(--muted)}.cal .day.period{background:var(--period);border-color:var(--period-line)}.cal .day.fertile{background:var(--fertile);border-color:var(--fertile-line)}.cal .day.ovulation{background:var(--ovul);border-color:var(--ovul);color:#fff}.cal .day.ovulation .tag{color:#f6e3f2}.cal .day.dim{opacity:.38}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.88rem;color:var(--muted);margin:8px 0}.legend span:before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;border:1px solid var(--line);vertical-align:-1px}.legend .lp:before{background:var(--period)}.legend .lf:before{background:var(--fertile)}.legend .lo:before{background:var(--ovul)}.disclaimer{border:1px solid var(--gold);background:#fdf6e3;border-radius:10px;padding:14px 18px;font-size:.92rem;margin:22px 0}.disclaimer strong{color:#7a5a12}.crosslink{border:1px solid var(--accent);background:#fbf3f9;border-radius:12px;padding:18px 22px;margin:20px 0}.crosslink a{font-weight:700}.pro{border:1px dashed var(--line);border-radius:12px;padding:18px 22px;margin:26px 0;color:var(--muted);font-size:.95rem}.pro strong{color:var(--ink)}.small{font-size:.88rem;color:var(--muted)}
