:root{--bg:#f9fafb;--card:#fff;--ink:#111827;--ink2:#374151;--muted:#6b7280;--soft:#9ca3af;--border:#e5e7eb;--pink:#ec4899;--pinkD:#db2777;--pinkL:#fce7f3;--pinkB:#f9a8d4;--purple:#7c3aed;--green:#059669;--greenL:#d1fae5;--blue:#2563eb;--shadow:0 1px 3px rgba(17,24,39,.07),0 10px 30px rgba(17,24,39,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
header{position:sticky;top:0;z-index:20;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;color:var(--ink);text-decoration:none;font-weight:800;letter-spacing:-.02em}.orb{width:34px;height:34px;margin-right:10px;border-radius:10px;background:linear-gradient(135deg,var(--pink),var(--purple));box-shadow:0 4px 12px rgba(236,72,153,.3);position:relative}.orb:after{content:"";position:absolute;inset:9px;border:2px solid #fff;border-radius:50%}.local{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.09em}
main{width:min(1180px,calc(100% - 36px));margin:auto}.hero{padding:72px 24px 58px;text-align:center;position:relative}.eyebrow{display:inline-flex;align-items:center;margin:0 0 18px;padding:5px 14px;border:1px solid var(--pinkB);border-radius:999px;background:var(--pinkL);color:var(--pinkD);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hero h1{margin:0;color:var(--ink);font-size:clamp(2.3rem,6vw,4.4rem);line-height:1.06;letter-spacing:-.05em}.hero h1 em{color:var(--pink);font-style:normal}.hero>p:last-child{max-width:650px;margin:18px auto 0;color:var(--muted);font-size:1rem}.orbit{position:absolute;width:84px;height:84px;right:7%;top:38px;border-radius:50%;background:var(--pinkL);opacity:.75}.orbit:before,.orbit:after{content:"";position:absolute;border-radius:50%}.orbit:before{width:18px;height:18px;background:var(--purple);left:8px;top:26px}.orbit:after{width:12px;height:12px;background:var(--pink);right:13px;bottom:17px}.orbit i{display:none}
.console{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}.log-panel,.map-panel{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.log-panel{padding:24px}.panel-label{margin:-24px -24px 20px;padding:17px 22px;border-bottom:1px solid var(--border);color:var(--ink);font-size:13px;font-weight:800}label{display:grid;gap:7px;margin:17px 0;color:var(--ink2);font-size:12px;font-weight:600}label small{color:var(--soft);font-size:10px;font-weight:400}input,select{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:9px;background:var(--bg);color:var(--ink);font:500 13px Inter,sans-serif;outline:none}input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(236,72,153,.14);background:#fff}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.map,.save{width:100%;padding:12px;border-radius:9px;font:700 13px Inter,sans-serif;cursor:pointer;transition:.15s ease}.map{margin-top:6px;border:0;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;box-shadow:0 4px 12px rgba(236,72,153,.25)}.map:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(236,72,153,.3)}.save{margin-top:10px;border:1.5px solid var(--border);background:#fff;color:var(--ink2)}.save:hover{border-color:var(--pinkB);color:var(--pinkD)}.message{min-height:22px;margin:8px 0 0;color:var(--green);font-size:11px}.history{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.history-title{display:flex;justify-content:space-between;color:var(--soft);font-size:10px;font-weight:700;letter-spacing:.08em}.history-title button{border:0;background:none;color:var(--pink);cursor:pointer}.history ul{margin:10px 0 0;padding:0;list-style:none;color:var(--muted);font-size:11px}.history li{padding:6px 0;border-bottom:1px solid var(--border)}
.map-panel{padding:24px}.map-head{display:flex;justify-content:space-between;gap:20px;margin:-24px -24px 20px;padding:17px 22px;border-bottom:1px solid var(--border)}.map-head>div{display:grid;gap:3px}.map-head span{color:var(--soft);font-size:9px;font-weight:700;letter-spacing:.08em}.map-head strong{color:var(--pink);font-size:1.1rem}.confidence{text-align:right}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin:16px 0 10px}.calendar-nav h2{margin:0;font-size:1rem}.calendar-nav button{width:31px;height:31px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--muted);cursor:pointer}.calendar-nav button:hover{border-color:var(--pink);color:var(--pink)}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.week span{padding:5px 0;text-align:center;color:var(--soft);font-size:10px;font-weight:600}.day{aspect-ratio:1;min-width:0;display:grid;place-items:center;position:relative;border-radius:50%}.day.muted{opacity:.22}.day b{font-size:11px;font-weight:500}.day.period{border:1px solid var(--pinkB);background:var(--pinkL);color:var(--pinkD)}.day.range:not(.period){box-shadow:inset 0 -3px var(--pinkB)}.day.fertile:not(.period){background:var(--greenL);color:var(--green)}.day.ovulation:after{content:"";position:absolute;width:7px;height:7px;right:4px;bottom:4px;border-radius:50%;background:var(--purple)}.day.today{outline:2px solid var(--blue);outline-offset:1px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:15px;padding-top:13px;border-top:1px solid var(--border);color:var(--muted);font-size:10px}.dot{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:50%}.dot.period{background:var(--pink)}.dot.range{background:var(--pinkB)}.dot.fertile{background:var(--green)}.dot.today{border:2px solid var(--blue)}
.forecast{padding:86px 0 72px;display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:start}.forecast h2{margin:0 0 14px;font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;letter-spacing:-.04em}.forecast-copy>p:last-child{color:var(--muted)}.cycle-cards{display:grid;gap:12px}.cycle-card{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:16px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:0 1px 3px rgba(17,24,39,.04)}.cycle-card>span{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--pinkL);color:var(--pink);font-weight:700}.cycle-card div{display:grid}.cycle-card small{color:var(--muted)}.cycle-card em{color:var(--purple);font-style:normal;font-weight:800}
.safety{display:grid;grid-template-columns:58px 1fr;gap:22px;padding:32px;border:1px solid #fed7aa;border-radius:18px;background:#fff7ed;color:#7c2d12}.safety-mark{width:50px;height:50px;display:grid;place-items:center;border:2px solid #f97316;border-radius:50%;font-size:1.6rem;font-weight:800}.safety h2{margin:0 0 8px;color:#9a3412;font-size:1.45rem;line-height:1.2}.safety p{margin:0}.guide{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:72px 0}.guide article{padding:26px;border:1px solid var(--border);border-radius:16px;background:var(--card)}.guide span{color:var(--pink);font-size:10px;font-weight:800;letter-spacing:.08em}.guide h2{font-size:1.2rem;line-height:1.25}.guide p,.faq p{color:var(--muted)}.faq{max-width:780px;margin:72px auto}.faq>h2{font-size:2rem}.faq details{padding:17px 0;border-top:1px solid var(--border)}.faq summary{cursor:pointer;font-weight:700}footer{display:flex;justify-content:space-between;gap:20px;padding:30px max(24px,5vw);border-top:1px solid var(--border);background:#fff;color:var(--muted);font-size:.78rem}footer a{color:var(--pinkD);font-weight:600}
@media(max-width:850px){.orbit{display:none}.console,.forecast{grid-template-columns:1fr}.forecast{padding:70px 0}.guide{grid-template-columns:1fr}.local{display:none}}@media(max-width:540px){main{width:min(100% - 24px,1180px)}.hero{padding:52px 4px 42px}.hero h1{font-size:2.75rem}.log-panel,.map-panel{padding:18px}.panel-label,.map-head{margin-left:-18px;margin-right:-18px}.week,.calendar{gap:2px}.week span{font-size:8px}.day b{font-size:9px}.cycle-card{grid-template-columns:42px 1fr}.cycle-card em{grid-column:2}.safety{grid-template-columns:1fr;padding:24px}footer{display:block}}
