/* 受孕窗口计算器 —— 紫罗兰月相 · 周期轨道 */
.c60{
  --a:#6d28d9;
  --a2:#c4b5fd;
  --a-soft:rgba(109,40,217,.10);
  --a-line:rgba(109,40,217,.26);
}

/* HERO：晨昏紫 + 星点 */
.c60-hero{
  background:
    radial-gradient(560px 280px at 86% 6%, rgba(196,181,253,.55), transparent 64%),
    radial-gradient(2px 2px at 18% 24%, rgba(109,40,217,.4), transparent 60%),
    radial-gradient(2px 2px at 34% 62%, rgba(109,40,217,.28), transparent 60%),
    radial-gradient(2px 2px at 70% 76%, rgba(109,40,217,.24), transparent 60%),
    linear-gradient(128deg,#f5f3ff 0%,#ede9fe 48%,#faf5ff 100%);
}
:root[data-theme="dark"] .c60-hero{
  background:
    radial-gradient(560px 280px at 86% 6%, rgba(196,181,253,.16), transparent 64%),
    radial-gradient(2px 2px at 18% 24%, rgba(196,181,253,.5), transparent 60%),
    radial-gradient(2px 2px at 70% 76%, rgba(196,181,253,.4), transparent 60%),
    linear-gradient(128deg,#130d24 0%,#1a1230 52%,#0f0c1c 100%);
}

/* 周期轨道：四段相位的圆环 */
.c60-hero-art .cw-orbit{
  position:relative;
  width:180px;height:180px;
  border-radius:50%;
  background:conic-gradient(from -90deg,#c4b5fd 0 14%,#6d28d9 14% 40%,#a78bfa 40% 58%,#ede9fe 58% 100%);
  box-shadow:0 18px 42px rgba(109,40,217,.26);
}
:root[data-theme="dark"] .c60-hero-art .cw-orbit{
  background:conic-gradient(from -90deg,#4c1d95 0 14%,#7c3aed 14% 40%,#a78bfa 40% 58%,#241a3d 58% 100%);
  box-shadow:0 18px 42px rgba(0,0,0,.5);
}
.c60-hero-art .cw-orbit::after{
  content:"";
  position:absolute;
  inset:22px;
  border-radius:50%;
  background:var(--card);
}
:root[data-theme="dark"] .c60-hero-art .cw-orbit::after{background:#141021;}
.c60-hero-art .cw-phase{
  position:absolute;
  z-index:1;
  border-radius:50%;
  border:1px dashed rgba(109,40,217,.30);
}
:root[data-theme="dark"] .c60-hero-art .cw-phase{border-color:rgba(196,181,253,.30);}
.c60-hero-art .cw-phase.p1{inset:34px;}
.c60-hero-art .cw-phase.p2{inset:46px;border-style:solid;border-color:rgba(109,40,217,.16);}
.c60-hero-art .cw-phase.p3{inset:58px;border-color:rgba(109,40,217,.10);}
.c60-hero-art .cw-dot{
  position:absolute;
  z-index:2;
  left:50%;top:50%;
  width:14px;height:14px;
  margin:-7px 0 0 -7px;
  border-radius:50%;
  background:#6d28d9;
  box-shadow:0 0 0 6px rgba(109,40,217,.14), 0 0 18px rgba(109,40,217,.5);
}
:root[data-theme="dark"] .c60-hero-art .cw-dot{background:#c4b5fd;box-shadow:0 0 0 6px rgba(196,181,253,.16), 0 0 18px rgba(196,181,253,.5);}
.c60-hero-art .cw-core{
  position:absolute;
  z-index:3;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  font-size:34px;
  line-height:1;
}
.c60-hero-art .chip{background:rgba(255,255,255,.92);}
:root[data-theme="dark"] .c60-hero-art .chip{background:rgba(20,16,33,.92);}
.c60-hero-art .chip b{color:#6d28d9;}
:root[data-theme="dark"] .c60-hero-art .chip b{color:#c4b5fd;}

/* 主指标 */
.c60-metric.is-hero{
  background:linear-gradient(135deg,#4c1d95 0%,#6d28d9 52%,#a78bfa 100%);
  box-shadow:0 16px 34px rgba(109,40,217,.32);
}

.c60-segbtn.on{color:#6d28d9;}
:root[data-theme="dark"] .c60-segbtn.on{color:#c4b5fd;}

/* 小标题 */
.cw-sub{
  position:relative;
  margin:20px 0 8px;
  padding-left:12px;
  font-size:13.5px;
  font-weight:900;
  color:var(--ink);
}
.cw-sub::before{
  content:"";
  position:absolute;
  left:0;top:4px;bottom:4px;
  width:4px;
  border-radius:4px;
  background:linear-gradient(180deg,#6d28d9,#c4b5fd);
}

/* 阶段环图 */
.cw-donut-wrap{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  align-items:center;
  margin-top:10px;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--a) 4%,var(--card)),var(--card));
}
:root[data-theme="dark"] .cw-donut-wrap{background:linear-gradient(160deg,#171128,#0e1626);}
.cw-donut-wrap .c60-donut{display:grid;place-items:center;color:var(--ink);}
.cw-legend{display:flex;flex-direction:column;gap:7px;}
.cw-legend .row{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  font-size:12.5px;
  color:var(--ink2);
}
.cw-legend .dot{width:10px;height:10px;border-radius:3px;}
.cw-legend .nm{font-weight:800;color:var(--ink);}
.cw-legend .vl{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:800;white-space:nowrap;}

/* 日期主指标小字 */
#cwOvulation,#cwWindowStart,#cwWindowEnd,#cwPeak,#cwNextPeriod{font-size:clamp(16px,1.9vw,22px);letter-spacing:-.3px;}
#cwStage{font-size:clamp(18px,2.1vw,25px);}
#cwStage.is-hot{color:#be185d;}
:root[data-theme="dark"] #cwStage.is-hot{color:#f9a8d4;}

/* 建议卡 */
.cw-advice{display:flex;flex-direction:column;gap:9px;margin-top:10px;}
.cw-advice .row{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:11px;
  padding:11px 13px;
  border-radius:12px;
  background:var(--soft);
  border-left:3px solid rgba(109,40,217,.5);
}
:root[data-theme="dark"] .cw-advice .row{background:#141f31;border-left-color:#c4b5fd;}
.cw-advice .tag{
  display:grid;
  place-items:center;
  height:24px;
  border-radius:7px;
  background:rgba(109,40,217,.12);
  color:#6d28d9;
  font-size:11px;
  font-weight:900;
  text-align:center;
  padding:0 4px;
}
:root[data-theme="dark"] .cw-advice .tag{background:rgba(196,181,253,.14);color:#c4b5fd;}
.cw-advice .tx{font-size:12.5px;line-height:1.7;color:var(--ink2);}
.cw-advice .tx b{color:var(--ink);}

/* 周期表 */
#cwCycleTable td:first-child{font-weight:900;color:#6d28d9;white-space:nowrap;}
:root[data-theme="dark"] #cwCycleTable td:first-child{color:#c4b5fd;}
#cwCycleTable td:nth-child(n+2){font-variant-numeric:tabular-nums;white-space:nowrap;}
#cwCycleTable tbody tr.is-now td{background:color-mix(in srgb,var(--a) 9%,var(--card));font-weight:800;color:var(--ink);}
#cwCycleTable tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--a) 3%,transparent);}
#cwCycleTable tbody tr.is-now:nth-child(even) td{background:color-mix(in srgb,var(--a) 9%,var(--card));}

/* 批量表 */
#cwBatchTable td:nth-child(n+2){font-variant-numeric:tabular-nums;white-space:nowrap;}
#cwBatchTable td:first-child{font-weight:800;color:var(--ink);}
#cwBatchTableWrap{margin-top:12px;}
.c60-table tr.is-bad td{background:rgba(220,38,38,.07);color:#b91c1c;}
:root[data-theme="dark"] .c60-table tr.is-bad td{background:rgba(248,113,113,.10);color:#fca5a5;}

/* 参考日期字段 */
#cwRefDate{font-weight:700;}

@media (max-width:960px){
  .cw-donut-wrap{grid-template-columns:1fr;justify-items:center;}
  .cw-legend{width:100%;}
  .c60-hero-art .cw-orbit{width:152px;height:152px;}
}
@media (max-width:640px){
  .c60-hero-art{display:none;}
  .cw-advice .row{grid-template-columns:46px minmax(0,1fr);}
  #cwCycleTable{min-width:520px;}
  .c60-metrics{grid-template-columns:1fr 1fr;}
  #cwStage{font-size:20px;}
}
@media print{
  .c60-actions,.c60-batch,.c60-hist{display:none!important;}
  #cwCycleTable th,#cwCycleTable td{padding:6px 8px;font-size:11px;}
  .cw-donut-wrap{border:0;padding:0;}
}
