.insight-fab {
  position: fixed;
  top: 50%;
  left: calc(50% + 300px);
  right: auto;
  z-index: 1100;
  width: 72px;
  min-height: 90px;
  padding: 10px 8px;
  border: 1px solid rgba(255,231,153,.9);
  border-radius: 22px;
  background: linear-gradient(145deg,#f7d66f,#d99a22);
  color: #171029;
  box-shadow: 0 16px 42px rgba(0,0,0,.38),0 0 26px rgba(232,184,75,.46),inset 0 1px 0 rgba(255,255,255,.62);
  backdrop-filter: blur(14px);
  cursor: pointer;
  transform: translateY(-50%);
  transition: .22s ease;
  animation: insight-fab-pulse 2.4s ease-in-out infinite;
}
.insight-fab:hover {
  border-color: #fff1b8;
  box-shadow: 0 20px 52px rgba(0,0,0,.42),0 0 38px rgba(247,214,111,.72);
  transform: translate(-3px,-50%) scale(1.05);
}
.insight-fab-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0 auto 6px;
  border-radius: 11px;
  background: rgba(23,16,41,.2);
  color: #fff6d2;
  font-family: "Noto Serif SC","Songti SC",serif;
  font-size: 20px;
  font-weight: 800;
}
.insight-fab-label {
  display: block;
  color: #211538;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .12em;
}
@keyframes insight-fab-pulse {
  0%,100% { box-shadow: 0 16px 42px rgba(0,0,0,.38),0 0 22px rgba(232,184,75,.38); }
  50% { box-shadow: 0 18px 46px rgba(0,0,0,.4),0 0 38px rgba(247,214,111,.68); }
}
.insight-overlay {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: grid;
  place-items: center;
  padding: 12px;
  background: rgba(2,3,14,.78);
  backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .24s ease,visibility .24s ease;
}
.insight-overlay.is-open { opacity: 1; visibility: visible; }
.insight-panel {
  width: min(880px,100%);
  max-height: calc(100vh - 24px);
  display: grid;
  grid-template-columns: 184px minmax(0,1fr);
  grid-template-rows: auto minmax(0,1fr);
  overflow: hidden;
  border: 1px solid rgba(163,173,218,.2);
  border-radius: 28px;
  background: linear-gradient(145deg,#121630,#080b20);
  box-shadow: 0 34px 100px rgba(0,0,0,.62),0 0 60px rgba(124,92,191,.1);
  transform: translateY(16px) scale(.98);
  transition: transform .24s ease;
}
.insight-overlay.is-open .insight-panel { transform: none; }
.insight-head {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  padding: 16px 20px 16px 26px;
  border-bottom: 1px solid rgba(163,173,218,.12);
  background: linear-gradient(90deg,rgba(17,21,50,.96),rgba(10,13,36,.82));
}
.insight-title {
  color: #f1f3ff;
  font-family: "Noto Serif SC","Songti SC",serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: .08em;
}
.insight-subtitle {
  margin-top: 4px;
  color: #7f89aa;
  font-size: 13px;
}
.insight-head-actions { display: flex; align-items: center; gap: 12px; }
.beijing-clock {
  min-width: 146px;
  padding: 8px 13px;
  border: 1px solid rgba(232,184,75,.2);
  border-radius: 13px;
  background: rgba(232,184,75,.06);
  text-align: right;
}
.beijing-clock-label {
  display: block;
  margin-bottom: 1px;
  color: #9b88c8;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
}
.beijing-clock-time {
  color: #f1d682;
  font-size: 18px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
}
.insight-close {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(163,173,218,.16);
  border-radius: 13px;
  background: rgba(163,173,218,.07);
  color: #aeb5d2;
  font-size: 25px;
  cursor: pointer;
}
.insight-close:hover { border-color: rgba(232,184,75,.46); color: #f1d682; }
.insight-nav {
  min-height: 0;
  padding: 20px 13px;
  border-right: 1px solid rgba(163,173,218,.1);
  background: linear-gradient(180deg,rgba(15,18,44,.82),rgba(7,9,27,.62));
}
.insight-tabs { display: grid; gap: 9px; }
.insight-tab {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid transparent;
  border-radius: 13px;
  background: transparent;
  color: #aeb5d2;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
.insight-tab.is-active {
  border-color: rgba(232,184,75,.34);
  background: linear-gradient(135deg,rgba(232,184,75,.15),rgba(124,92,191,.12));
  color: #f0c95f;
  box-shadow: inset 3px 0 0 #e8b84b;
}
.insight-nav-note {
  margin: 20px 9px 0;
  color: #606b8d;
  font-size: 12px;
  line-height: 1.7;
}
.insight-content {
  min-width: 0;
  overflow-y: auto;
  padding: 26px;
  background: radial-gradient(circle at 75% 0,rgba(124,92,191,.08),transparent 38%);
  overscroll-behavior: contain;
  scrollbar-width: none;
}
.insight-content::-webkit-scrollbar { display: none; }
.calendar-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  border: 1px solid rgba(232,184,75,.26);
  border-radius: 20px;
  background: linear-gradient(135deg,rgba(232,184,75,.13),rgba(124,92,191,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.calendar-lunar {
  color: #f3d77f;
  font-family: "Noto Serif SC","Songti SC",serif;
  font-size: clamp(32px,4vw,42px);
  font-weight: 900;
  line-height: 1.2;
  text-shadow: 0 0 24px rgba(232,184,75,.13);
}
.calendar-ganzhi { margin-top: 9px; color: #b9bfd5; font-size: 14px; font-weight: 600; }
.calendar-solar { color: #cbd0e2; font-size: 15px; font-weight: 600; text-align: right; white-space: nowrap; }
.calendar-festival {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(153,119,219,.18);
  color: #cfbaf7;
  font-size: 12px;
  font-weight: 700;
}
.calendar-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 16px; }
.calendar-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(163,173,218,.13);
  border-radius: 17px;
  background: linear-gradient(145deg,rgba(25,29,61,.78),rgba(16,19,45,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.calendar-card-title {
  margin-bottom: 13px;
  color: #d7dbee;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .08em;
}
.calendar-card-value { color: #e8ebf6; font-size: 16px; font-weight: 600; line-height: 1.9; }
.calendar-card.is-yi { border-color: rgba(75,201,151,.24); background: linear-gradient(145deg,rgba(23,63,55,.4),rgba(15,28,42,.76)); }
.calendar-card.is-yi .calendar-card-title { color: #71ddb0; }
.calendar-card.is-ji { border-color: rgba(236,115,122,.24); background: linear-gradient(145deg,rgba(73,34,48,.4),rgba(27,23,43,.76)); }
.calendar-card.is-ji .calendar-card-title { color: #f1959b; }
.calendar-card.is-direction { border-color: rgba(232,184,75,.2); }
.calendar-card.is-direction .calendar-card-title { color: #ebca70; }
.calendar-card.is-hours { border-color: rgba(103,169,239,.21); }
.calendar-card.is-hours .calendar-card-title { color: #8fc8ff; }
.calendar-card.is-note { border-color: rgba(155,126,217,.2); background: linear-gradient(135deg,rgba(51,39,88,.32),rgba(20,23,52,.72)); }
.calendar-card.is-note .calendar-card-title { color: #c8b5f0; }
.calendar-card.is-wide { grid-column: 1/-1; }
.calendar-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.calendar-tag {
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(215,219,238,.075);
  color: #d9ddec;
  font-size: 13px;
  font-weight: 600;
}
.calendar-card.is-yi .calendar-tag { background: rgba(75,201,151,.11); color: #b4ebd3; }
.calendar-card.is-ji .calendar-tag { background: rgba(236,115,122,.1); color: #f2c1c4; }
.calendar-error { padding: 52px 20px; color: #aeb5d2; font-size: 15px; text-align: center; }
body.insight-open { overflow: hidden; }
@media (min-width: 781px) and (max-height: 850px) {
  .insight-head { min-height: 70px; padding-top: 11px; padding-bottom: 11px; }
  .insight-content { padding: 18px 22px; }
  .calendar-hero { padding: 16px 20px; }
  .calendar-lunar { font-size: 34px; }
  .calendar-ganzhi { margin-top: 5px; }
  .calendar-grid { gap: 10px; margin-top: 11px; }
  .calendar-card { padding: 13px 16px; }
  .calendar-card-title { margin-bottom: 8px; }
  .calendar-card-value { line-height: 1.65; }
  .calendar-tag { padding: 4px 9px; }
}
@media (prefers-reduced-motion: reduce) { .insight-fab { animation: none; } }
@media (max-width: 1080px) { .insight-fab { left: auto!important; right: 16px; } }
@media (max-width: 780px) {
  .insight-fab { top: auto; right: 14px; bottom: 86px; width: 58px; min-height: 72px; border-radius: 18px; transform: none; }
  .insight-fab:hover { transform: translateY(-2px); }
  .insight-overlay { align-items: end; padding: 0; }
  .insight-panel { width: 100%; max-height: 90vh; grid-template-columns: 1fr; grid-template-rows: auto auto minmax(0,1fr); border-radius: 24px 24px 0 0; }
  .insight-head { grid-column: 1; min-height: 74px; padding: 13px 14px 13px 18px; }
  .insight-title { font-size: 21px; }
  .beijing-clock { min-width: 112px; padding: 6px 9px; }
  .beijing-clock-label { font-size: 10px; }
  .beijing-clock-time { font-size: 15px; }
  .insight-head-actions { gap: 7px; }
  .insight-close { width: 38px; height: 38px; }
  .insight-nav { padding: 10px 16px; border-right: 0; border-bottom: 1px solid rgba(163,173,218,.1); overflow-x: auto; }
  .insight-tabs { display: flex; }
  .insight-tab { width: auto; white-space: nowrap; }
  .insight-nav-note { display: none; }
  .insight-content { padding: 16px; }
  .calendar-hero { align-items: flex-start; flex-direction: column; padding: 19px; }
  .calendar-solar { text-align: left; }
}
@media (max-width: 480px) {
  .insight-subtitle,.beijing-clock-label { display: none; }
  .beijing-clock { min-width: 88px; }
  .calendar-grid { grid-template-columns: 1fr; }
  .calendar-card.is-wide { grid-column: auto; }
  .calendar-lunar { font-size: 30px; }
  .calendar-card-title { font-size: 14px; }
}
