/* The Vatsalyam Ovulation Calculator — scoped, offline and responsive */
.ov-shell{--ov-rose:#ba6983;--ov-rose-dark:#924c69;--ov-cream:#fff9f7;--ov-ink:#433c43;--ov-muted:#716a70;--ov-sage:#6d9e8b;background:linear-gradient(180deg,#fff9f7 0,#fbfbfb 75%);color:var(--ov-ink);min-height:70vh}
.ov-shell *{box-sizing:border-box}
.ov-back{color:var(--ov-rose-dark);font-weight:650;text-decoration:none}
.ov-hero{border-radius:25px;padding:clamp(1.3rem,4vw,2.7rem);background:linear-gradient(112deg,#fbe4e9,#fff3ea 55%,#e9f4ee);border:1px solid #f3d8de}
.ov-eyebrow{font-size:.73rem;letter-spacing:.13em;font-weight:800;color:var(--ov-rose-dark)}
.ov-hero h1{font-size:clamp(1.75rem,4.5vw,2.75rem);line-height:1.16;font-weight:800;margin:.55rem 0}
.ov-hero p{color:#605663;max-width:680px;margin:0;font-size:1.025rem}
.ov-hero-icon{font-size:4.4rem;line-height:1.1;color:#a86483}
.ov-safety,.ov-guidance{padding:1rem 1.15rem;border-radius:14px;background:#fff4e6;border:1px solid #efd4a7;color:#655039;line-height:1.55}
.ov-guest{padding:1rem 1.2rem;border:1px solid #e5cbd4;border-radius:16px;background:#fff}
.ov-guest p{margin-bottom:.8rem}
.ov-btn{background:var(--ov-rose-dark);color:#fff;border:1px solid var(--ov-rose-dark);font-weight:700;border-radius:12px;padding:.75rem 1.25rem}
.ov-btn:hover,.ov-btn:focus{background:#71374e;color:#fff;border-color:#71374e}
.ov-panel{background:#fff;border:1px solid #eddde3;border-radius:22px;padding:clamp(1rem,2.5vw,1.6rem);box-shadow:0 8px 28px rgba(96,52,70,.055)}
.ov-panel h2{font-size:1.18rem;font-weight:800;color:#4e3b48;margin:0 0 1.2rem}
.ov-panel h3{font-size:1rem;font-weight:750}
.ov-stat{height:100%;background:#f3f8f5;padding:1.1rem 1rem;border-radius:17px;display:flex;flex-direction:column;gap:.5rem;border:1px solid #dcebe2}
.ov-stat-pink{background:#fff0f4;border-color:#efd5dd}
.ov-stat small{font-size:.8rem;color:#625c64;font-weight:650}
.ov-stat strong{font-size:clamp(1.05rem,2.2vw,1.35rem);font-variant-numeric:tabular-nums;letter-spacing:-.025em;color:#574455}
.ov-stat span{font-size:.9rem;color:#735b6c}
.ov-guidance{background:#fff9e9;border-color:#f1e3c4;margin-top:.65rem}
.ov-cycle-list{display:flex;gap:.6rem;flex-wrap:wrap}
.ov-cycle-list>div{border:1px solid #e6d9df;background:#fdf9fa;padding:.8rem 1rem;border-radius:11px;display:flex;flex-direction:column;gap:.2rem}
.ov-cycle-list span{font-size:.86rem;color:var(--ov-muted)}
.ov-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.ov-calendar-head h2{margin:0}
.ov-calendar-switch{display:flex;align-items:center;gap:.9rem}
.ov-calendar-switch strong{font-size:.98rem;min-width:130px;text-align:center}
.ov-calendar-switch button{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #dbc6cf;color:#86465f;font-size:1.6rem;line-height:1;cursor:pointer}
.ov-calendar-switch button:disabled{opacity:.35;cursor:default}
.ov-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.36rem;max-width:670px;margin:auto}
.ov-weekday{font-size:.77rem;text-align:center;color:#6b5a65;font-weight:750;padding:.35rem 0}
.ov-day{min-height:52px;border:1px solid #eee6eb;border-radius:11px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:650;font-size:.95rem}
.ov-day small{font-size:.62rem;font-weight:500;opacity:.92}
.ov-day.empty{background:transparent;border:none}
.ov-day.period{background:#ffe9dc;border-color:#f2cbb9}
.ov-day.fertile{background:#e6f5ee;border-color:#b4d9c8}
.ov-day.ovulation{background:#b16a86;color:#fff;border-color:#995a75}
.ov-day.today{outline:2px solid #397b84;outline-offset:1px}
.ov-legend{display:flex;flex-wrap:wrap;gap:.55rem 1.25rem;font-size:.82rem;color:#655d65}
.ov-legend span{display:flex;align-items:center;gap:.35rem}
.ov-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid #d2bcc2}
.ov-dot.period{background:#ffe9dc}.ov-dot.fertile{background:#bce3d1}.ov-dot.ovulation{background:#b16a86}.ov-dot.today{background:#fff;outline:2px solid #397b84}
.ov-muted{color:var(--ov-muted)}
.ov-shell .form-label{font-weight:650;color:#584c56;font-size:.9rem}
.ov-shell .form-control,.ov-shell .form-select{border:1px solid #d9ccd2;border-radius:11px;min-height:45px}
.ov-shell .form-control:focus,.ov-shell .form-select:focus{border-color:#b27089;box-shadow:0 0 0 .2rem #b2708927}
.ov-consent{display:flex;align-items:flex-start;gap:.75rem;padding:.8rem 1rem;background:#fbf3f6;border:1px solid #f1e2e8;border-radius:11px;cursor:pointer}
.ov-consent input{margin-top:.3rem;min-width:18px;min-height:18px;accent-color:#995a75}
.ov-table{min-width:540px;font-size:.85rem}
.ov-table th{color:#765363;white-space:nowrap}
.ov-tips ul{padding-left:1.25rem;margin-bottom:.8rem}
.ov-tips li{margin-bottom:.8rem;line-height:1.55}
.ov-references a{display:block;margin-bottom:.65rem;word-break:break-word;color:#8a4c69}
.ov-references a:focus-visible,.ov-back:focus-visible{outline:3px solid #97627f;outline-offset:3px}
@media(max-width:600px){.ov-hero-icon{display:none}.ov-calendar{gap:.18rem}.ov-day{min-height:42px;border-radius:8px;font-size:.85rem}.ov-day small{font-size:.5rem}.ov-stat strong{font-size:1.05rem}.ov-calendar-head{align-items:flex-start}}
@media print{.site-header,.announcement,.ov-back,.ov-btn,.ov-guest,.ov-table form,.ov-calendar-switch button,#ovPrint,footer,.ov-safety{display:none!important}.ov-shell{background:#fff}.ov-panel{box-shadow:none;break-inside:avoid}.ov-day{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
