#ovulation-layout{display:grid;grid-template-columns:2fr 1fr;gap:32px;margin-top:30px;align-items:flex-start;}@media (max-width:768px){#ovulation-layout{grid-template-columns:1fr;}#ovulation-calendar-wrapper,#ovulation-result{width:100%;}#calendar-box{margin-top:20px;}}.ovulation-accordion{background:#fff;border-radius:12px;box-shadow:0 1px 3px var(--color-shadow);margin-bottom:16px;font-size:var(--font-size-base);color:var(--color-text-secondary);overflow:hidden;}.ovulation-accordion summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:14px 18px;font-weight:bold;position:relative;list-style:none;}.ovulation-accordion summary::-webkit-details-marker{display:none;}.ovulation-accordion summary .icon{font-size:1.2rem;margin-right:10px;}.ovulation-accordion summary .title{flex-grow:1;}.ovulation-accordion summary .date{font-size:var(--font-size-small);font-weight:600;color:var(--color-text-tertiary);margin-left:auto;margin-right:8px;white-space:nowrap;text-align:right;flex-shrink:0;}.ovulation-accordion summary::after{content:"▸";font-size:1rem;margin-left:10px;transition:transform 0.3s ease;color:var(--color-arrow-bg);}.ovulation-accordion[open] summary::after{transform:rotate(90deg);}.ovulation-accordion .accordion-body{padding:0 18px 16px 18px;background:#f9f9f9;border-top:1px solid #eee;}#accordion-fertile summary{background:#e6f4ff;color:#004080;}#accordion-ovulation summary{background:#dffcf1;color:#006644;}#accordion-period summary{background:#ffe5e5;color:#800000;}#accordion-test summary{background:#fff7d9;color:#7a5900;}#accordion-due summary{background:#f3e9ff;color:#5e2b97;}.calendar-box,.calendar-popover{background:white;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,0.08);padding:16px;max-width:100%;}.calendar-popover{position:absolute;z-index:999;top:100%;left:0;margin-top:8px;width:300px;display:none;}.calendar-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:bold;font-size:var(--font-size-base);}.calendar-arrows{display:flex;gap:8px;}.arrow-circle{background:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:16px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,0.1);color:var(--color-arrow-bg);}.arrow-circle:hover{background:var(--color-arrow-bg);color:var(--color-arrow-fill);}#calendar table,#popup-calendar-inner table{width:100%;table-layout:fixed;border-collapse:collapse;}#calendar th,#popup-calendar-inner th{font-size:var(--font-size-small);color:var(--color-text-tertiary);text-align:center;padding-bottom:6px;}#calendar td,#popup-calendar-inner td{text-align:center;padding:4px;}.day-btn{width:36px;height:36px;border-radius:6px;background:#eee;border:none;font-size:var(--font-size-small);cursor:pointer;transition:background 0.2s ease;}.day-btn:hover{background:#ddd;}.start-day{background-color:#ffe0e0 !important;border:2px solid #e06666;}.fertile-day{background-color:#e0f0ff !important;border:2px solid #4da3ff;}.ovulation-day{background-color:#d5f8e0 !important;border:2px solid #3cc187;}.next-period-day{background-color:#ffe0e0 !important;border:2px solid #e06666;}.test-day{background-color:#fff4c2 !important;border:2px solid #ffc107;}.calendar-tooltip{position:absolute;background:#fff;color:var(--color-text-primary);padding:8px 12px;font-size:var(--font-size-small);border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,0.15);white-space:nowrap;z-index:999;pointer-events:none;transform:translate(-50%,-120%);opacity:0;transition:opacity 0.15s ease;}.calendar-tooltip.show{opacity:1;}#ovulation-result.disabled .ovulation-accordion{opacity:0.4;pointer-events:none;filter:grayscale(80%);transition:opacity 0.5s ease,filter 0.5s ease;}#ovulation-result.activated .ovulation-accordion{opacity:1;pointer-events:auto;filter:none;animation:fadeInAccordion 0.6s ease-in-out forwards;}#ovulation-indicator{font-size:var(--font-size-base);margin-bottom:10px;background:#eef5ff;color:#004080;padding:10px 14px;border-radius:8px;display:none;animation:fadeInText 0.3s ease-in-out;}.ovulation-prompt{background:#fff3cd;color:#856404;padding:14px 18px;border:1px solid #ffeeba;border-radius:10px;margin-bottom:24px;font-size:var(--font-size-base);animation:fadeInPrompt 0.4s ease;display:block;}@keyframes fadeInAccordion{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}@keyframes fadeInText{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:translateY(0);}}@keyframes fadeInPrompt{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:translateY(0);}}.summary-box{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;font-size:var(--font-size-base);position:relative;background:#fff;border-radius:10px;padding:16px 20px;box-shadow:0 2px 10px var(--color-shadow);align-items:center;}.summary-box .clickable-date{color:var(--color-link);cursor:pointer;text-decoration:underline;}#cycleLength{font:inherit;border:1px solid #ccc;border-radius:6px;padding:4px 8px;font-weight:bold;background:#fff;cursor:pointer;}