/* Ovulation Calculator — ovulation-calculator.css
   Mobile-first. Scoped to .ov-wrap */

.ov-wrap *,.ov-wrap *::before,.ov-wrap *::after{box-sizing:border-box;margin:0;padding:0}
.ov-wrap{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#1e293b;max-width:960px;margin:0 auto;background:#fff;border-radius:16px;border:1px solid #e2e8f0;overflow:hidden}

.ov-header{display:flex;align-items:center;gap:14px;padding:20px 24px;background:#831843}
.ov-header-icon{width:44px;height:44px;background:rgba(255,255,255,.15);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fbcfe8;flex-shrink:0}
.ov-title{font-size:19px;font-weight:700;color:#fff;margin-bottom:3px}
.ov-subtitle{font-size:12.5px;color:#fbcfe8}

.ov-body{display:flex;flex-direction:column}
@media(min-width:720px){.ov-body{flex-direction:row;align-items:flex-start}.ov-form{width:42%;border-right:1px solid #e2e8f0}.ov-results{width:58%;position:sticky;top:0;max-height:100vh;overflow-y:auto}}

.ov-form{padding:20px;display:flex;flex-direction:column;gap:16px}
.ov-field{display:flex;flex-direction:column;gap:6px}
.ov-label{font-size:12px;font-weight:700;color:#334155;text-transform:uppercase;letter-spacing:.05em}
.ov-hint{font-size:11.5px;color:#94a3b8;line-height:1.5}

.ov-date-input{width:100%;padding:11px 14px;border:1.5px solid #cbd5e1;border-radius:10px;font-size:15px;color:#1e293b;outline:none;background:#f8fafc;transition:border-color .18s;font-family:inherit}
.ov-date-input:focus{border-color:#be185d;background:#fff}

.ov-slider-wrap{display:flex;align-items:center;gap:12px}
.ov-slider{flex:1;-webkit-appearance:none;height:4px;background:#f1f5f9;border-radius:4px;outline:none;transition:background .2s}
.ov-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#be185d;cursor:pointer;border:2px solid #fff;box-shadow:0 0 0 2px #be185d}
.ov-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#be185d;cursor:pointer;border:2px solid #fff}
.ov-slider-val{font-size:15px;font-weight:700;color:#be185d;min-width:60px;text-align:right;white-space:nowrap}
.ov-cycle-note{font-size:12px;color:#94a3b8;text-align:right}

.ov-btn-group{display:grid;gap:8px}
.ov-btn-2{grid-template-columns:1fr 1fr}
.ov-choice{padding:10px 14px;border:1.5px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:13.5px;font-weight:600;color:#475569;cursor:pointer;transition:all .15s;text-align:center}
.ov-choice:hover{border-color:#be185d;color:#be185d}
.ov-choice.active{background:#831843;border-color:#831843;color:#fff}

.ov-disclaimer{display:flex;align-items:flex-start;gap:8px;background:#fefce8;border:1px solid #fde047;border-radius:9px;padding:10px 14px;font-size:12px;color:#854d0e;line-height:1.5}
.ov-disclaimer svg{flex-shrink:0;margin-top:1px;color:#ca8a04}

/* Results */
.ov-results{background:#fdf2f8;padding:20px}
.ov-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;gap:14px;color:#94a3b8;text-align:center}
.ov-placeholder p{font-size:13.5px;line-height:1.6;max-width:220px}

/* Date hero cards */
.ov-dates-hero{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px}
.ov-date-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:12px;text-align:center}
.ov-date-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:4px}
.ov-date-val{font-size:16px;font-weight:800;color:#1e293b;line-height:1.2;margin-bottom:3px}
.ov-date-small{font-size:13px}
.ov-date-sub{font-size:11px;color:#94a3b8}
.ov-date-ovulation{border-color:#c084fc;background:#faf5ff}
.ov-date-ovulation .ov-date-val{color:#7e22ce}
.ov-date-window{border-color:#86efac;background:#f0fdf4}
.ov-date-window .ov-date-val{color:#15803d}
.ov-date-next{border-color:#f9a8d4;background:#fdf2f8}
.ov-date-next .ov-date-val{color:#be185d}
.ov-day-fertile-avoid {
    background: #fee2e2 !important;
    color: #991b1b !important;
}
.ov-day-peak-avoid {
    background: #ef4444 !important;
    color: #fff !important;
    font-weight: 700;
}
/* Due date */
.ov-duedate{display:flex;align-items:center;gap:10px;background:#fdf4ff;border:1px solid #e879f9;border-radius:10px;padding:10px 14px;font-size:13px;color:#7e22ce;margin-bottom:14px}
.ov-duedate svg{flex-shrink:0;color:#a855f7}

/* Calendar */
.ov-calendar-section{margin-bottom:14px}
.ov-cal-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:8px}
.ov-cal-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.ov-leg{display:flex;align-items:center;gap:5px;font-size:11.5px;color:#475569}
.ov-leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.ov-dot-fertile{background:#86efac;display:inline-block}
.ov-dot-peak{background:#f472b6;display:inline-block}

.ov-month-block{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin-bottom:8px}
.ov-month-name{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:8px}
.ov-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.ov-cal-header{font-size:10px;font-weight:700;color:#94a3b8;text-align:center;padding:3px 0}
.ov-cal-day{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:11.5px;border-radius:6px;font-weight:500}
.ov-day-empty{background:transparent}
.ov-day-normal{color:#475569}
.ov-day-period{background:#f9a8d4;color:#9f1239;font-weight:700}
.ov-day-fertile{background:#86efac;color:#14532d;font-weight:600}
.ov-day-peak{background:#f472b6;color:#fff;font-weight:700}
.ov-day-ovulation{background:#c084fc;color:#fff;font-weight:800;border-radius:50%}
.ov-day-today{outline:2px solid #be185d;outline-offset:1px}
.ov-day-fertile-avoid{background:#fee2e2;color:#991b1b;font-weight:600}
.ov-day-peak-avoid{background:#ef4444;color:#fff;font-weight:700}

/* Pregnancy test */
.ov-test-date{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px}
.ov-test-icon{width:34px;height:34px;background:#fdf2f8;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#be185d;flex-shrink:0}
.ov-test-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:3px}
.ov-test-date-val{font-size:16px;font-weight:800;color:#be185d;margin-bottom:2px}
.ov-test-sub{font-size:11.5px;color:#94a3b8}

@media(max-width:480px){
  .ov-header,.ov-form,.ov-results{padding:16px}
  .ov-title{font-size:17px}
  .ov-dates-hero{grid-template-columns:1fr 1fr 1fr}
  .ov-date-val{font-size:14px}
}
