:root{--bg-main:#1a1c23;--bg-panel:#1e202899;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-primary:#e0b0ff;--accent-lavender:#a78bfa;--accent-purple:#8b5cf64d;--accent-glow:#e0b0ff66;--color-conceive:#b4e3b4;--color-avoid:#fadadd;--color-avoid-caution:#fbbf24;--color-avoid-high-risk:#f43f5e;--color-fertile-soft:#e0b0ff1a;--color-period-soft:#fadadd1a;--border-glass:#ffffff14;--card-bg:#2d303c66}*{box-sizing:border-box}body{background-color:var(--bg-main);color:var(--text-primary);background-image:radial-gradient(at 50% 0,#8b5cf60f,#0000 60%);min-height:100vh}.main-container{max-width:1200px;margin:0 auto;padding:24px 1.5rem 40px}.calc-title{color:var(--text-primary);margin:0 0 8px;font-size:1.8rem;font-weight:800}.calc-subtitle{color:var(--text-secondary);margin:0 0 24px;font-size:.95rem;line-height:1.6}.tab-nav{border-bottom:1px solid var(--border-glass);-webkit-overflow-scrolling:touch;gap:4px;margin-bottom:24px;padding-bottom:0;display:flex;overflow-x:auto}.tab-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:.88rem;font-weight:600;transition:color .2s,border-color .2s}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-content{display:none}.tab-content.active{display:block}.calc-layout{grid-template-columns:340px 1fr;align-items:start;gap:24px;display:grid}@media (width<=900px){.calc-layout{grid-template-columns:1fr}}.card{background:var(--card-bg);border:1px solid var(--border-glass);border-radius:16px;padding:20px}.input-card{border-left:3px solid #22d3ee}.result-panel .card{margin-bottom:16px}.section-title{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:.85rem;font-weight:700}.form-group{margin-bottom:14px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.input-hint{color:var(--text-secondary);margin:6px 0 0;font-size:.75rem;line-height:1.4}.date-error{color:#f43f5e}.hidden-control{display:none}.mode-toggle-pill{border:1px solid var(--border-glass);background:#0006;border-radius:12px;gap:4px;margin-top:5px;padding:3px;display:flex}.toggle-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:1;justify-content:center;align-items:center;padding:10px;font-size:.85rem;font-weight:700;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}#mode-ttc.active{color:#fff;background:linear-gradient(135deg,#a855f7,#7c3aed);border-color:#fff3;box-shadow:0 4px 15px #a855f766}#mode-tta.active{color:#fff;background:linear-gradient(135deg,#f43f5e,#e11d48);border-color:#fff3;box-shadow:0 4px 15px #f43f5e4d}.toggle-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);background:#e0b0ff26}.stepper-input{align-items:center;gap:6px;width:100%;display:flex}.stepper-input .glass-input-standard,.stepper-input .glass-input{text-align:center;flex:1;min-width:0}.step-btn{border:1px solid var(--border-glass);width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:#ffffff0f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}.step-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#ffffff1f}.step-btn:disabled{opacity:.25;cursor:not-allowed}.irr-inputs-row{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.hero-result{text-align:center;background:linear-gradient(145deg,#8b5cf61f,#22d3ee0f);border:1px solid #8b5cf633;border-radius:16px;margin-bottom:16px;padding:28px 20px}.hero-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);margin-bottom:4px;font-size:.78rem;font-weight:700}.hero-value{color:var(--accent-primary);margin:8px 0;font-size:3rem;font-weight:800;line-height:1.1}.hero-sub{color:var(--text-secondary);font-size:.88rem;font-weight:500}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.stat-card{border:1px solid var(--border-glass);text-align:center;background:#ffffff08;border-radius:12px;padding:14px}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:.72rem;font-weight:600}.stat-label-xs{font-size:.68rem}.stat-value{color:var(--text-primary);font-size:1.1rem;font-weight:800}.date-card{transition:transform .2s}.date-card .stat-value{color:var(--accent-primary);font-size:.88rem}@keyframes pulse-glow{0%,to{box-shadow:0 0 #8b5cf600}50%{box-shadow:0 0 12px #8b5cf64d}}.date-card.pulse{animation:.6s pulse-glow}.chart-card{padding:16px}.chart-card .section-title{margin-bottom:12px}.formula-strip{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.formula-pill{color:var(--accent-lavender);white-space:nowrap;background:#8b5cf61a;border:1px solid #8b5cf633;border-radius:20px;padding:6px 14px;font-size:.75rem;font-weight:600}.action-bar{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.action-btn{border:1px solid var(--border-glass);color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:10px 18px;font-size:.82rem;font-weight:600;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s}.action-btn:hover{border-color:var(--accent-lavender);color:var(--accent-lavender);background:#8b5cf626}.action-btn-sm{border:1px solid var(--border-glass);color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border-radius:8px;padding:6px 12px;font-size:.75rem}.disclaimer-text{color:var(--text-secondary);opacity:.8;margin-top:16px;font-size:.72rem;line-height:1.5}.rec-cards-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px;display:grid}.rec-card{border:1px solid var(--border-glass);background:#ffffff08;border-radius:12px;padding:14px;transition:transform .2s,border-color .2s}.rec-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.rec-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.rec-label{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.rec-text{color:var(--text-primary);margin:0;font-size:.82rem;line-height:1.55}.phase-badge{color:var(--accent-lavender);text-transform:uppercase;letter-spacing:.5px;background:#8b5cf626;border:1px solid #8b5cf64d;border-radius:20px;margin-bottom:12px;padding:4px 14px;font-size:.72rem;font-weight:700;display:inline-block}@media (width<=700px){.rec-cards-grid{grid-template-columns:1fr}}.mucus-grid{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px;display:grid}.mucus-btn{border:1px solid var(--border-glass);cursor:pointer;color:var(--text-secondary);background:#ffffff0a;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}.mucus-btn:hover{border-color:var(--accent-primary);color:var(--text-primary);background:#ffffff17;transform:translateY(-2px)}.mucus-btn.active{border-color:var(--accent-primary);color:var(--accent-primary);background:#e0b0ff1f;box-shadow:0 0 10px #e0b0ff26}.mucus-btn.active-reduce{color:#f87171;background:#f43f5e14;border-color:#f43f5e66}.mucus-icon{font-size:1.1rem;line-height:1}.mucus-label{text-transform:uppercase;letter-spacing:.3px;text-align:center;font-size:.6rem;font-weight:600}@media (width<=500px){.mucus-grid{grid-template-columns:repeat(3,1fr)}}.logger-section{border:1px solid #0000;border-radius:12px;gap:10px;padding:12px;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}.logger-section.state-fertile{background:#10b9810d;border-color:#10b98133}.logger-section.state-peak{background:#7c3aed0d;border-color:#7c3aed33}.logger-section.state-period{background:#f43f5e0d;border-color:#f43f5e33}.log-item-card{cursor:pointer;user-select:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}.log-item-card:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-1px)}.log-item-card.active{background:#a855f726;border:1px solid #a855f7;box-shadow:0 0 15px #a855f74d}.log-item-card.disabled,.log-item-card.is-future{opacity:.3;cursor:not-allowed;filter:grayscale();pointer-events:none}.log-card-icon{color:var(--text-secondary);font-size:1.1rem}.log-item-card.active .log-card-icon{color:#a855f7;filter:drop-shadow(0 0 5px #a855f780)}.log-label{color:var(--text-primary);white-space:nowrap;font-size:.85rem;font-weight:600}.viewing-bar{color:var(--text-secondary);background:#8b5cf614;border:1px solid #8b5cf633;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;font-size:.8rem;display:flex}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-month-label{color:var(--text-primary);font-size:.88rem;font-weight:700}.nav-btn-sm{border:1px solid var(--border-glass);color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex}.nav-btn-sm:hover{border-color:var(--accent-primary);background:#ffffff1a}.day-names-row-sm{text-align:center;color:var(--text-secondary);grid-template-columns:repeat(7,1fr);margin-bottom:6px;font-size:.65rem;font-weight:600;display:grid}.calendar-grid-sm{grid-template-columns:repeat(7,1fr);gap:0;display:grid}.cal-day-sm{cursor:pointer;color:var(--text-primary);background:#ffffff05;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin:1px;padding:8px 0;font-size:.8rem;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s;display:flex;position:relative}.cal-day-sm:hover{background:#ffffff14}.cal-day-sm.today{border-color:var(--accent-lavender);font-weight:700}.cal-day-sm.selected{background:var(--accent-lavender);color:#fff}.cal-day-sm.period-day{background:#f43f5e33}.cal-day-sm.fertile-day{background:#10b98133}.cal-day-sm.ovulation-day{background:linear-gradient(135deg,#10b98166,#06b6d466);font-weight:700}.cal-day-sm.has-love:after{content:"";background:#f43f5e;border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px}body.tta-mode .cal-day-sm.fertile-day{background:#f43f5e26}body.tta-mode .cal-day-sm.ovulation-day{background:#ef44444d}.calendar-legend{border-top:1px solid var(--border-glass);justify-content:center;gap:15px;margin-top:14px;padding-top:12px;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:.72rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.shade-period{background:#f43f5e;box-shadow:0 0 5px #f43f5e66}.shade-fertile{background:#10b981;box-shadow:0 0 5px #10b98166}.shade-ovulation{background:linear-gradient(135deg,#10b981,#06b6d4);box-shadow:0 0 5px #10b98199}body.tta-mode .shade-fertile{background:#f43f5e}body.tta-mode .shade-ovulation{background:#ef4444;border:1px solid #fff}.future-cycle-card{border:1px solid var(--border-glass);cursor:pointer;background:#ffffff08;border-radius:12px;margin-bottom:8px;padding:12px 14px;transition:transform .25s,opacity .25s,color .2s,box-shadow .25s}.future-cycle-card:hover{border-color:var(--accent-primary);background:#ffffff12;transform:translateY(-1px)}.future-cycle-header{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.future-cycle-num{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.5px;font-size:.68rem;font-weight:700}.future-cycle-start{color:var(--accent-primary);font-size:.78rem;font-weight:700}.future-cycle-body{flex-direction:column;gap:2px;display:flex}.future-ov-label,.future-win-label{color:var(--text-secondary);font-size:.75rem}.future-ov-label strong{color:var(--text-primary);font-weight:700}.gender-cards{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.gender-card{border:1px solid var(--border-glass);text-align:center;background:#ffffff08;border-radius:14px;padding:20px;transition:transform .2s,border-color .2s}.gender-card:hover{transform:translateY(-2px)}.gender-card h4{color:var(--text-primary);margin:10px 0 8px;font-size:1rem}.gender-card p{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.55}.gender-icon{font-size:2rem;line-height:1}.gender-girl{border-color:#ec48994d}.gender-girl:hover{border-color:#ec489980}.gender-girl .gender-icon{color:#ec4899}.gender-boy{border-color:#3b82f64d}.gender-boy:hover{border-color:#3b82f680}.gender-boy .gender-icon{color:#3b82f6}@media (width<=500px){.gender-cards{grid-template-columns:1fr}}.tab-intro{color:var(--text-secondary);margin:0 0 20px;font-size:.88rem;line-height:1.6}.insight-cards{flex-direction:column;gap:12px;display:flex}.insight-card{border:1px solid var(--border-glass);background:#ffffff08;border-radius:12px;gap:14px;padding:16px;display:flex}.insight-icon{flex-shrink:0;font-size:1.5rem}.insight-content h4{color:var(--text-primary);margin:0 0 5px;font-size:.9rem}.insight-content p{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.55}.alert-tip{color:var(--text-primary);background:#10b98114;border:1px solid #10b98133;border-radius:12px;padding:14px 16px;font-size:.82rem;line-height:1.55}.bbt-notice{color:#fbbf24;background:#fbbf2414;border:1px solid #fbbf2433;border-radius:8px;margin:6px 0 0;padding:8px 10px;font-size:.72rem;line-height:1.4}.share-modal-compact{max-width:380px}.share-card-preview{color:#fff;background:linear-gradient(135deg,#7c3aed,#2dd4bf);border-radius:20px;flex-direction:column;align-items:center;margin-bottom:20px;padding:30px;display:flex;box-shadow:0 10px 30px #0000004d}.share-logo{letter-spacing:2px;opacity:.8;font-size:.8rem;font-weight:800}.share-main-stat{text-align:center;margin:20px 0}.share-main-stat span{text-transform:uppercase;letter-spacing:1px;font-size:1.1rem;font-weight:600}.share-main-stat h2{margin:5px 0;font-size:4rem;font-weight:800;line-height:1}#share-summary-text{opacity:.9;font-size:1rem;font-style:italic;font-weight:500}.next-step-banner{text-align:center;border-top:1px solid var(--border-glass);border-bottom:1px solid var(--border-glass);background:#8b5cf60f;padding:16px;font-size:.85rem}.nsb-text{color:var(--text-secondary)}.nsb-link{color:var(--accent-lavender);margin-left:4px;font-weight:600;text-decoration:none}.nsb-link:hover{text-decoration:underline}.nsb-sep{color:var(--text-secondary);opacity:.4;margin:0 12px}.toast{z-index:9999;color:#fff;border-radius:8px;max-width:320px;padding:.75rem 1.25rem;font-size:.875rem;animation:.3s toastIn;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 12px #0000004d}.toast-success{background:#00b4d8}.toast-warn{background:#f59e0b}.toast-error{background:#dc2626}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-theme=light]{--bg-main:#f1f5f9;--bg-panel:#fff;--card-bg:#fff;--text-primary:#0f172a;--text-secondary:#475569;--border-glass:#0000001f;--accent-primary:#0891b2;--accent-lavender:#6b21a8;--accent-purple:#0891b24d;--accent-glow:#0891b21f;--color-conceive:#15803d;--color-avoid:#9f1239;--color-fertile-soft:#0891b21a;--color-period-soft:#f43f5e1a}[data-theme=light] body{color:#0f172a;background-color:#f1f5f9;background-image:none}[data-theme=light] input,[data-theme=light] select{color-scheme:light}[data-theme=light] .glass-navbar{backdrop-filter:blur(12px);background:#fffffff2;border-bottom:1px solid #00000014}[data-theme=light] .tab-btn{color:#64748b}[data-theme=light] .tab-btn:hover{color:#0f172a}[data-theme=light] .tab-btn.active{color:#0891b2;border-bottom-color:#0891b2}[data-theme=light] .card{background:#fff;border-color:#0000001a;box-shadow:0 2px 10px #0000000f}[data-theme=light] .input-card{border-left-color:#0891b2}[data-theme=light] .hero-result{background:linear-gradient(145deg,#0891b214,#6b21a80a);border-color:#0891b233}[data-theme=light] .hero-value{color:#0891b2}[data-theme=light] .hero-label{color:#64748b}[data-theme=light] .mode-toggle-pill{background:#edf2f9;border-color:#0000001a}[data-theme=light] .toggle-btn{color:#64748b}[data-theme=light] .toggle-btn.active{color:#0891b2;background:#0891b21f;border-color:#0891b24d}[data-theme=light] #mode-ttc.active{color:#fff;background:linear-gradient(135deg,#7c3aed,#6b21a8);box-shadow:0 2px 8px #7c3aed40}[data-theme=light] #mode-tta.active{color:#fff;background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 2px 8px #e11d4840}[data-theme=light] .step-btn{color:#0f172a;background:#f0f4f9;border-color:#0000001f}[data-theme=light] .step-btn:hover{color:#0891b2;background:#e2e8f0;border-color:#0891b2}[data-theme=light] .stat-card{background:#f0f4f9;border-color:#00000014}[data-theme=light] .stat-value{color:#0f172a}[data-theme=light] .stat-label{color:#64748b}[data-theme=light] .date-card .stat-value{color:#0891b2}[data-theme=light] .formula-pill{color:#0891b2;background:#0891b214;border-color:#0891b233}[data-theme=light] .action-btn{color:#0f172a;background:#f0f4f9;border-color:#0000001a}[data-theme=light] .action-btn:hover{color:#0891b2;background:#0891b21a;border-color:#0891b2}[data-theme=light] .rec-card{background:#f0f4f9;border-color:#00000014}[data-theme=light] .rec-card:hover{border-color:#0891b2}[data-theme=light] .rec-label{color:#0891b2}[data-theme=light] .rec-text{color:#334155}[data-theme=light] .phase-badge{color:#0891b2;background:#0891b21a;border-color:#0891b240}[data-theme=light] .mucus-btn{color:#475569;background:#f0f4f9;border-color:#0000001a}[data-theme=light] .mucus-btn:hover{color:#0f172a;background:#e2e8f0;border-color:#0891b2}[data-theme=light] .mucus-btn.active{color:#0891b2;box-shadow:none;background:#0891b21f;border-color:#0891b2}[data-theme=light] .log-item-card{background:#f0f4f9;border-color:#0000001a}[data-theme=light] .log-item-card:hover{background:#e2e8f0;border-color:#0003}[data-theme=light] .log-item-card.active{background:#6b21a81a;border-color:#7c3aed;box-shadow:0 0 8px #6b21a826}[data-theme=light] .log-card-icon{color:#64748b}[data-theme=light] .log-item-card.active .log-card-icon{color:#7c3aed;filter:none}[data-theme=light] .nav-btn-sm{color:#0f172a;background:#f0f4f9;border-color:#0000001a}[data-theme=light] .nav-btn-sm:hover{background:#e2e8f0;border-color:#0891b2}[data-theme=light] .day-names-row-sm span{color:#64748b}[data-theme=light] .cal-day-sm{color:#0f172a;background:0 0}[data-theme=light] .cal-day-sm:hover{background:#edf2f9}[data-theme=light] .cal-day-sm.today{border-color:#7c3aed}[data-theme=light] .cal-day-sm.selected{color:#fff;background:#7c3aed}[data-theme=light] .cal-day-sm.period-day{background:#f43f5e26}[data-theme=light] .cal-day-sm.fertile-day{background:#10b98126}[data-theme=light] .cal-day-sm.ovulation-day{background:linear-gradient(135deg,#10b9814d,#06b6d44d)}[data-theme=light] .future-cycle-card{background:#f0f4f9;border-color:#00000014}[data-theme=light] .future-cycle-card:hover{background:#e2e8f0;border-color:#0891b2}[data-theme=light] .future-cycle-num{color:#64748b}[data-theme=light] .future-cycle-start{color:#0891b2}[data-theme=light] .gender-card{background:#fff;border-color:#0000001a;box-shadow:0 1px 6px #0000000f}[data-theme=light] .gender-card h4{color:#0f172a}[data-theme=light] .gender-card p{color:#475569}[data-theme=light] .gender-girl{border-color:#ec489940}[data-theme=light] .gender-boy{border-color:#3b82f640}[data-theme=light] .insight-card{background:#f0f4f9;border-color:#00000014}[data-theme=light] .insight-content h4{color:#0f172a}[data-theme=light] .insight-content p{color:#475569}[data-theme=light] .alert-tip{color:#14532d;background:#f0fdf4;border-color:#16a34a4d}[data-theme=light] .bbt-notice{color:#92400e;background:#fbbf241f;border-color:#d977064d}[data-theme=light] .next-step-banner{background:#0891b20a;border-color:#00000014}[data-theme=light] .nsb-link{color:#0891b2}[data-theme=light] .viewing-bar{background:#0891b20f;border-color:#0891b226}[data-theme=light] .action-btn-sm{color:#475569;background:#f0f4f9;border-color:#0000001a}[data-theme=light] .toast{box-shadow:0 4px 12px #00000026}[data-theme=light] .share-card-preview{background:linear-gradient(135deg,#7c3aed,#0891b2)}[data-theme=light] .disclaimer-text{color:#64748b}[data-theme=light] .calendar-legend{border-top-color:#00000014}[data-theme=light] .legend-item{color:#64748b}[data-theme=light] .chart-card{background:#fff}[data-theme=light] .date-error{color:#be123c}[data-theme=light] .mucus-btn.active-reduce{color:#b91c1c}[data-theme=light] .gender-boy .gender-icon{color:#1d4ed8}