/* 安全期計算 */
#sp-form [hidden] { display: none !important; }
.sp-warn { background: #fef2f2; border: 2px solid var(--bad); border-radius: 10px; padding: 12px 16px; margin: 1rem 0; font-size: 1rem; }
.sp-warn p { margin: 0; }
.sp-warn-title { font-weight: 700; color: var(--bad); font-size: 1.1rem; margin: 0 0 .4rem !important; }
.sp-warn ul { margin: .25rem 0 0; padding-left: 1.2rem; }
.sp-warn li { margin: .35rem 0; }
.sp-warn-inline { margin: .5rem 0; }
.sp-adv { margin: .75rem 0 0; }
.sp-adv summary { cursor: pointer; font-weight: 600; color: var(--brand); }
.sp-mode { color: var(--muted); font-size: 1rem; margin: .5rem 0; }
.sp-note { background: #fff7e6; border-left: 4px solid var(--warn); padding: 8px 12px; border-radius: 6px; font-size: 1rem; margin: .5rem 0; }
.sp-cycle { margin: 1rem 0 0; }
.sp-cycle h3 { margin-bottom: .25rem; }
.sp-cycle .calc-table { margin-top: .25rem; }
.sp-cycle small { display: block; }
.calc-table tr.sp-fertile td, .calc-table tr.sp-fertile th { background: #ffedd5; }
.calc-table tr.sp-ov td { background: #fdba74; font-weight: 700; }
.calc-table tr.sp-less td, .calc-table tr.sp-less th { background: #f1f5f9; }
