:root{--bg:#fff7f5;--surface:#fff;--surface-alt:#fceeeb;--text:#2b1f2e;--text-muted:#7a6b7d;--border:#f0e2e0;--period:#f0506e;--period-soft:#fde0e5;--fertile:#3bb3a6;--fertile-soft:#d6f2ee;--ovulation:#1f9488;--follicular:#f2a65a;--follicular-soft:#fdebd8;--luteal:#9b87e0;--luteal-soft:#ece7fb;--success:#2e9e6a;--warning:#d98e04;--warning-soft:#fff1d6;--danger:#d64545;--accent:#e5486a;--accent-soft:#fce3e8;--shadow:0 8px 24px #2b1f2e0f;--radius:24px;--radius-sm:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-accent=lavender]{--accent:#8b6fe0;--accent-soft:#ede7fc}:root[data-accent=peach]{--accent:#ee7a4f;--accent-soft:#fde8df}:root[data-accent=mint]{--accent:#2fa393;--accent-soft:#ddf3ef}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16111a;--surface:#211a26;--surface-alt:#2c2333;--text:#f6eef5;--text-muted:#b3a5b6;--border:#3a2f42;--period:#ff6b86;--period-soft:#4a2230;--fertile:#4fd1c1;--fertile-soft:#173b38;--ovulation:#6be3d3;--follicular:#ffbb7a;--follicular-soft:#3d2c1c;--luteal:#b7a6ff;--luteal-soft:#2e2748;--success:#5fd39a;--warning:#ffc25c;--warning-soft:#3b2e14;--accent:#ff6f8e;--accent-soft:#45202c;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:not([data-theme=light])[data-accent=lavender]{--accent:#b39dff;--accent-soft:#2e2748}:root:not([data-theme=light])[data-accent=peach]{--accent:#ff9c75;--accent-soft:#45281c}:root:not([data-theme=light])[data-accent=mint]{--accent:#5ed6c4;--accent-soft:#173b38}}:root[data-theme=dark]{--bg:#16111a;--surface:#211a26;--surface-alt:#2c2333;--text:#f6eef5;--text-muted:#b3a5b6;--border:#3a2f42;--period:#ff6b86;--period-soft:#4a2230;--fertile:#4fd1c1;--fertile-soft:#173b38;--ovulation:#6be3d3;--follicular:#ffbb7a;--follicular-soft:#3d2c1c;--luteal:#b7a6ff;--luteal-soft:#2e2748;--success:#5fd39a;--warning:#ffc25c;--warning-soft:#3b2e14;--accent:#ff6f8e;--accent-soft:#45202c;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark][data-accent=lavender]{--accent:#b39dff;--accent-soft:#2e2748}:root[data-theme=dark][data-accent=peach]{--accent:#ff9c75;--accent-soft:#45281c}:root[data-theme=dark][data-accent=mint]{--accent:#5ed6c4;--accent-soft:#173b38}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;font-weight:500;line-height:1.45}h1,h2,h3,h4{margin:0;line-height:1.2}h1{font-size:28px;font-weight:800}h2{font-size:20px;font-weight:800}h3{font-size:16px;font-weight:700}p{margin:0}a{color:var(--accent);font-weight:700;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:2px}.muted{color:var(--text-muted)}.small{font-size:13px;font-weight:600}.caps{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:800}.row{align-items:center;gap:12px;display:flex}.row-wrap{flex-wrap:wrap;gap:8px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.center{text-align:center}.app{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:240px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:10px;padding:0 12px 20px;font-size:22px;font-weight:900;display:flex}.brand-logo{background:linear-gradient(135deg, var(--accent), var(--luteal));border-radius:50%;place-items:center;width:40px;height:40px;font-size:22px;display:grid}.nav-link{color:var(--text-muted);border-radius:14px;align-items:center;gap:12px;padding:11px 14px;font-weight:700;display:flex}.nav-link:hover{background:var(--surface-alt);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--text)}.nav-link .icon{text-align:center;width:22px;font-size:18px}.main{flex:1;min-width:0;padding:32px 32px 64px}.page{max-width:1080px;margin:0 auto}.page-narrow{max-width:720px;margin:0 auto}.page-header{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;display:flex}.bottom-nav{display:none}.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.grid-home{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.grid-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=900px){.sidebar{display:none}.main{padding:20px 16px 96px}.bottom-nav{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--text-muted);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:12px;font-weight:700;display:flex}.bottom-nav a .icon{font-size:20px}.bottom-nav a.active{color:var(--text);background:var(--accent-soft)}.bottom-nav a:hover{text-decoration:none}.grid-home,.grid-2{grid-template-columns:minmax(0,1fr)}.grid-stats{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:24px}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #0000;padding:20px}:root[data-theme=dark] .card{border-color:var(--border)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .card{border-color:var(--border)}}.card.tinted{box-shadow:none;border-color:#0000}.card-click{cursor:pointer;transition:transform .15s}.card-click:hover{transform:translateY(-1px)}.card-title{align-items:center;gap:8px;margin-bottom:12px;display:flex}.btn{cursor:pointer;background:var(--accent);color:#fff;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:15px;font-weight:800;transition:filter .15s,transform .1s;display:inline-flex}.btn:hover{filter:brightness(1.05)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-outline{color:var(--text);border-color:var(--border);background:0 0}.btn-soft{background:var(--accent-soft);color:var(--text)}.btn-text{color:var(--accent);background:0 0;min-height:36px;padding:0 10px}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, transparent);background:0 0}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 14px;font-size:14px}.icon-btn{cursor:pointer;background:var(--surface-alt);width:40px;height:40px;color:var(--text);border:none;border-radius:50%;place-items:center;font-size:18px;display:grid}.icon-btn:hover{filter:brightness(.97)}.chip{background:var(--surface);border:1.5px solid var(--border);cursor:pointer;border-radius:16px;align-items:center;gap:6px;padding:9px 12px;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.chip:hover{border-color:color-mix(in srgb, var(--chip-color,var(--accent)) 50%, var(--border))}.chip.selected{background:var(--chip-color,var(--accent));border-color:var(--chip-color,var(--accent));color:#fff}.tag{background:var(--surface-alt);border-radius:12px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-block}.pill-info{border-radius:18px;padding:12px 14px}.pill-info .label{color:var(--text-muted);font-size:12px;font-weight:700}.pill-info .value{font-size:15px;font-weight:800}.phase-badge{border-radius:999px;padding:4px 12px;font-size:13px;font-weight:800;display:inline-block}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-muted);font-size:13px;font-weight:700}.input,.select,.textarea{background:var(--surface-alt);border:1.5px solid #0000;border-radius:16px;outline:none;width:100%;padding:13px 16px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:80px}.segmented{background:var(--surface-alt);border-radius:999px;flex-wrap:wrap;gap:2px;padding:4px;display:inline-flex}.segmented button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:8px 16px;font-weight:700}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.switch{flex-shrink:0;width:48px;height:28px;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{background:var(--border);cursor:pointer;border-radius:999px;transition:background .2s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:before{transform:translate(20px)}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 4px;display:flex}.list-row:last-child{border-bottom:none}.alert{background:var(--warning-soft);border-radius:16px;padding:14px 16px}.error-text{color:var(--danger);font-weight:700}.empty{text-align:center;padding:28px 12px}.empty .emoji{font-size:44px}.stepper{justify-content:center;align-items:center;gap:16px;display:flex}.stepper .value{text-align:center;width:90px;font-size:40px;font-weight:800}.cal-head,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-head div{text-align:center;color:var(--text-muted);padding:6px 0;font-size:13px;font-weight:700}.cal-cell{cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:6px 0;display:flex}.cal-cell:hover{background:var(--surface-alt)}.cal-cell.selected{background:var(--accent-soft)}.cal-cell.outside{visibility:hidden}.cal-day{border-radius:50%;place-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:grid;position:relative}.cal-day.actual{background:var(--period);color:#fff}.cal-day.predicted{background:var(--period-soft);color:var(--period);border:1.5px dashed var(--period)}.cal-day.fertile{background:var(--fertile-soft);color:var(--ovulation)}.cal-day.late{background:var(--warning-soft)}.cal-day.ovulation{box-shadow:inset 0 0 0 2px var(--ovulation)}.cal-day.today{box-shadow:inset 0 0 0 2px var(--text);font-weight:900}.cal-day.future{color:var(--text-muted)}.cal-sub{color:var(--text-muted);align-items:center;gap:2px;height:12px;font-size:10px;font-weight:700;display:flex}.dot{border-radius:50%;width:5px;height:5px;display:inline-block}.legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:14px;font-size:13px;font-weight:600;display:flex}.legend span.sw{vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:6px;display:inline-block}.overlay{z-index:50;background:#16111a73;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-radius:28px 28px 0 0;flex-direction:column;width:100%;max-width:640px;max-height:92vh;animation:.22s ease-out rise;display:flex}@media (width>=901px){.overlay{align-items:center}.sheet{border-radius:28px;max-height:88vh}}.sheet-head{align-items:center;gap:8px;padding:16px 16px 8px;display:flex}.sheet-body{padding:4px 20px 20px;overflow-y:auto}.sheet-foot{padding:12px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.log-section{margin-bottom:22px}.log-section h3{align-items:center;gap:8px;margin-bottom:10px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.toast{z-index:60;background:var(--text);color:var(--bg);border-radius:16px;max-width:calc(100vw - 32px);padding:12px 18px;font-weight:700;animation:.2s ease-out rise;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.article-body h2{margin:18px 0 8px}.article-body p{margin:0 0 10px;font-size:16px}.article-body ul,.article-body ol{margin:0 0 12px;padding-left:22px;font-size:16px}.article-body li{margin-bottom:6px}.article-body li::marker{color:var(--accent);font-weight:800}@media print{.sidebar,.bottom-nav,.no-print{display:none!important}.main{padding:0}body{color:#000;background:#fff}.card{box-shadow:none;break-inside:avoid;border:1px solid #ddd}}.report-table{border-collapse:collapse;width:100%;font-size:14px}.report-table td,.report-table th{text-align:left;vertical-align:top;padding:7px 8px}.report-table td:first-child{color:var(--text-muted);width:45%}.report-table.grid td:first-child{color:inherit;width:auto}.report-table.grid th{background:var(--surface-alt);font-weight:800}.report-table.grid td,.report-table.grid th{border:1px solid var(--border)}
