/* ───────── 星盘星空背景 + 悬停卡 + 空态 CTA ───────── */

/* 星点轻微闪烁（每颗 delay 不同，避免整片同步闪） */
@keyframes chartStarTwinkle{
  0%,100%{opacity:.85}
  50%    {opacity:.35}
}
#bigchart .chart-star{
  animation:chartStarTwinkle 3.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  #bigchart .chart-star{animation:none}
}

/* 空盘/未排盘中心 CTA：多层呼吸光晕 + 亮核脉动 */
@keyframes cectaHalo{
  0%  {transform:scale(1);    opacity:.9}
  70% {transform:scale(1.28); opacity:0}
  100%{transform:scale(1.28); opacity:0}
}
#bigchart .cecta-halo,
#bigchart .cecta-halo2,
#bigchart .cecta-halo3{
  transform-box:fill-box;transform-origin:center;
  animation:cectaHalo 3s ease-out infinite;
}
#bigchart .cecta-halo2{animation-delay:1s}
#bigchart .cecta-halo3{animation-delay:2s}
/* 中心亮核：明暗呼吸，让「亮着」这件事持续可见 */
@keyframes cectaGlow{
  0%,100%{opacity:.55;transform:scale(1)}
  50%    {opacity:1;  transform:scale(1.05)}
}
#bigchart .cecta-glow{
  transform-box:fill-box;transform-origin:center;
  animation:cectaGlow 2.6s ease-in-out infinite;
}
/* 提示文字也要闪，不然在星空上不显眼 */
@keyframes cectaHint{
  0%,100%{opacity:.75}
  50%    {opacity:1}
}
#bigchart .cecta-hintline{animation:cectaHint 2s ease-in-out infinite}
@keyframes cectaStar{
  0%,100%{opacity:.7;transform:scale(1)}
  50%    {opacity:1; transform:scale(1.16)}
}
#bigchart .cecta-star{
  transform-box:fill-box;transform-origin:center;
  animation:cectaStar 2.2s ease-in-out infinite;
}
/* 悬停：整个圆都亮起来（外圈三道光环 + 中心核 + 实底同时加亮） */
#bigchart #chart-empty-cta:hover .cecta-bg,
#bigchart #chart-center-cta:hover .cecta-bg{
  fill:rgba(78,44,150,.98);
  stroke:#ffffff;
  stroke-width:3;
}
#bigchart #chart-empty-cta:hover .cecta-glow,
#bigchart #chart-center-cta:hover .cecta-glow{
  fill:rgba(168,85,247,.52);
}
/* 悬停时光环不再脉动扩散，而是变成常亮的粗描边——「整个圆亮起来」 */
#bigchart #chart-empty-cta:hover .cecta-halo,
#bigchart #chart-center-cta:hover .cecta-halo,
#bigchart #chart-empty-cta:hover .cecta-halo2,
#bigchart #chart-center-cta:hover .cecta-halo2,
#bigchart #chart-empty-cta:hover .cecta-halo3,
#bigchart #chart-center-cta:hover .cecta-halo3{
  animation:none;
  opacity:1;
  transform:scale(1);
  filter:drop-shadow(0 0 14px rgba(168,85,247,.95));
}
#bigchart #chart-empty-cta:hover .cecta-halo,
#bigchart #chart-center-cta:hover .cecta-halo{stroke:#f0e9ff; stroke-width:3.2}
#bigchart #chart-empty-cta:hover .cecta-halo2,
#bigchart #chart-center-cta:hover .cecta-halo2{stroke:#a855f7; stroke-width:2.6}
#bigchart #chart-empty-cta:hover .cecta-halo3,
#bigchart #chart-center-cta:hover .cecta-halo3{stroke:#5ec8ff; stroke-width:2}

/* ───────── 星座悬停讲解卡 ───────── */
.sign-hover-card{
  position:fixed;z-index:150;left:0;top:0;
  width:min(330px,calc(100vw - 32px));
  padding:14px 16px;
  border-radius:13px;
  background:linear-gradient(165deg,rgba(28,17,58,.98),rgba(14,8,34,.99));
  border:1px solid color-mix(in srgb,var(--sac,#7b4dff) 55%,transparent);
  box-shadow:
    0 18px 48px rgba(0,0,0,.66),
    0 0 0 1px color-mix(in srgb,var(--sac,#7b4dff) 22%,transparent) inset,
    0 0 26px color-mix(in srgb,var(--sac,#7b4dff) 28%,transparent);
  opacity:0;visibility:hidden;transform:translateY(6px) scale(.98);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
  pointer-events:none;
}
.sign-hover-card.on{opacity:1;visibility:visible;transform:translateY(0) scale(1)}

.shc-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.shc-glyph{
  font-size:22px;line-height:1;color:var(--sac,#c9b6ff);
  filter:drop-shadow(0 0 8px color-mix(in srgb,var(--sac,#7b4dff) 70%,transparent));
}
.shc-head b{font-size:15.5px;color:#f0e9ff;font-weight:800}
.shc-elem{
  margin-left:auto;font-size:10.5px;font-style:normal;font-weight:800;
  padding:2px 9px;border-radius:999px;
  color:var(--sac,#c9b6ff);
  background:color-mix(in srgb,var(--sac,#7b4dff) 18%,transparent);
  border:1px solid color-mix(in srgb,var(--sac,#7b4dff) 42%,transparent);
}
.shc-sub{
  font-size:11.5px;line-height:1.65;color:#a99ed0;
  padding-bottom:9px;margin-bottom:9px;
  border-bottom:1px solid rgba(150,120,255,.16);
}
.shc-line{font-size:12.5px;line-height:1.75;color:#e0d4ff;margin-bottom:9px}
.shc-line b{color:#fff;font-weight:700}
.shc-seg{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  padding:8px 10px;border-radius:9px;margin-bottom:6px;
  background:color-mix(in srgb,var(--sac,#7b4dff) 11%,transparent);
  border-left:2.5px solid color-mix(in srgb,var(--sac,#7b4dff) 60%,transparent);
}
.shc-house{font-size:12px;font-weight:700;color:#e0d4ff;flex:none}
.shc-pct{
  font-size:10.5px;font-weight:800;color:var(--sac,#c9b6ff);
  padding:1px 6px;border-radius:999px;
  background:color-mix(in srgb,var(--sac,#7b4dff) 20%,transparent);flex:none;
}
.shc-seg em{
  flex:1 1 100%;font-size:11.5px;line-height:1.6;
  color:var(--ink-2,#b9abd8);font-style:normal;
}
.shc-planets{
  font-size:11px;line-height:1.6;color:#ffd6a5;
  padding-top:7px;margin-top:7px;
  border-top:1px dashed rgba(150,120,255,.18);
}

/* ───────── 未输入命盘的引导条 ───────── */
.missing-hint{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  /* 现在它位于星盘「正上方」：上不贴标题、下紧贴盘沿 */
  margin:0 auto 14px;padding:13px 16px;border-radius:12px;
  background:linear-gradient(120deg,rgba(123,77,255,.16),rgba(94,200,255,.08));
  border:1px solid rgba(150,120,255,.38);
  position:relative;overflow:hidden;
  max-width:700px;
}
/* 内嵌一层微星点，避免「一条纯色提示条」 */
.missing-hint::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    radial-gradient(1.2px 1.2px at 12% 30%, rgba(255,255,255,.7), transparent),
    radial-gradient(1px 1px at 34% 76%, rgba(201,182,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 58% 22%, rgba(255,255,255,.62), transparent),
    radial-gradient(1px 1px at 78% 68%, rgba(180,220,255,.55), transparent),
    radial-gradient(1.1px 1.1px at 92% 36%, rgba(255,255,255,.55), transparent);
}
.mh-ico{
  flex:none;font-size:22px;color:#c9a0ff;
  filter:drop-shadow(0 0 10px rgba(168,85,247,.7));
}
.mh-body{flex:1 1 320px;min-width:0;position:relative}
.mh-body b{display:block;font-size:14px;color:#f0e9ff;margin-bottom:4px}
.mh-body span{font-size:12.5px;line-height:1.7;color:#b9abd8}
.mh-btn{
  flex:none;appearance:none;border:0;cursor:pointer;
  padding:10px 22px;border-radius:999px;
  font-family:inherit;font-size:13px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#7b4dff,#a855f7);
  box-shadow:0 6px 20px rgba(123,77,255,.45);transition:.18s;
  position:relative;
}
.mh-btn:hover{transform:translateY(-1px);box-shadow:0 9px 26px rgba(123,77,255,.6)}
@media (max-width:640px){
  .missing-hint{padding:13px 15px}
  .mh-btn{width:100%;text-align:center}
}

/* ── 已排盘圆心：悬停整体发亮 + 显示「切换命盘」提示 ── */
#bigchart #chart-center-cta.center-switch .switch-hint{
  opacity:0;transition:opacity .2s ease;
}
#bigchart #chart-center-cta.center-switch:hover .switch-hint{opacity:1}
#bigchart #chart-center-cta.center-switch:hover .cecta-bg{
  fill:rgba(78,44,150,.98);
  stroke:#ffffff;
  stroke-width:2.6;
}
#bigchart #chart-center-cta.center-switch:hover .cecta-halo{
  stroke:#c9a0ff;
  stroke-width:2.6;
  filter:drop-shadow(0 0 16px rgba(168,85,247,.95));
  animation:none;
}
