@import url('styles/heartMotion.css');

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --page-pad: clamp(1.25rem, 3vw, 3rem);
  --content-max: min(72rem, 100%);
  --accent: #c9a46a;
  --font-system: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", system-ui, sans-serif;
  --font-apple-zh: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", sans-serif;
  --text-primary: #f5f5f7;
  --text-secondary: rgba(245, 245, 247, 0.72);
  --text-tertiary: rgba(245, 245, 247, 0.48);
  --glass-blur: 24px;
  --glass-border: rgba(186, 160, 255, 0.28);
  --glass-shine: rgba(255, 255, 255, 0.09);
  --glass-gradient: linear-gradient(
    145deg,
    rgba(76, 68, 220, 0.28) 0%,
    rgba(124, 58, 237, 0.2) 42%,
    rgba(59, 130, 246, 0.16) 100%
  );
  --glass-gradient-strong: linear-gradient(
    145deg,
    rgba(99, 102, 241, 0.55) 0%,
    rgba(139, 92, 246, 0.48) 50%,
    rgba(96, 165, 250, 0.42) 100%
  );
  --btn-primary-top: rgba(124, 112, 255, 0.96);
  --btn-primary-mid: rgba(99, 91, 245, 0.94);
  --btn-primary-bottom: rgba(79, 70, 229, 0.96);
  /* Helix holographic · shared by 3D stage + 九宫格 */
  --helix-cyan: #00d2ff;
  --helix-cyan-soft: rgba(0, 210, 255, 0.55);
  --helix-cyan-glow: rgba(0, 210, 255, 0.22);
  --helix-deep: #061830;
  --helix-mid: rgba(6, 24, 48, 0.96);
  --helix-label: rgba(168, 255, 248, 0.92);
  --helix-border: rgba(0, 210, 255, 0.22);
  --helix-gradient-label: linear-gradient(
    135deg,
    rgba(0, 110, 185, 0.9) 0%,
    rgba(32, 52, 138, 0.92) 48%,
    rgba(78, 42, 136, 0.94) 100%
  );
  --helix-violet: rgba(78, 42, 136, 0.94);
  --helix-violet-soft: rgba(139, 92, 246, 0.42);
  --helix-indigo: rgba(32, 52, 138, 0.92);
  --helix-indigo-mist: rgba(48, 36, 96, 0.55);
  /* Phase A · 五行氛围（由 wuxingAmbient.js 写入） */
  --ambient-dom-r: 40;
  --ambient-dom-g: 140;
  --ambient-dom-b: 220;
  --ambient-weak-r: 20;
  --ambient-weak-g: 48;
  --ambient-weak-b: 96;
  --ambient-kelvin-warmth: 0.42;
  --ambient-balance: 0.55;
  --ambient-pulse-period: 24s;
  --ambient-nebula-alpha: 0.14;
  --ambient-star-alpha: 0.38;
}

/* 客户模式 · 默认隐藏 L1/L2/引擎/内测说明（开发者 localStorage show-internal-ui=true 可见） */
.ui-internal-only {
  display: none !important;
}

html[data-internal-ui='visible'] .ui-internal-only {
  display: revert !important;
}

html[data-internal-ui='visible'] button.ui-internal-only,
html[data-internal-ui='visible'] .btn.ui-internal-only {
  display: inline-flex !important;
}

html {
  height: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  height: 100%;
  background: #030818;
  color: var(--text-primary);
  font-family: var(--font-system);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "kern" 1;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* 流动感深蓝背景 · 两层光晕缓慢漂移 */
body::before,
body::after {
  content: "";
  position: fixed;
  inset: -40%;
  width: 180%;
  height: 180%;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
}

body::before {
  background:
    radial-gradient(ellipse 32% 38% at 22% 28%, rgba(37, 99, 180, 0.38), transparent 52%),
    radial-gradient(ellipse 29% 34% at 78% 72%, rgba(15, 52, 110, 0.45), transparent 50%),
    radial-gradient(ellipse 38% 31% at 55% 45%, rgba(30, 64, 120, 0.22), transparent 58%);
  animation: flow-deep-a 24s ease-in-out infinite alternate;
}

body::after {
  background:
    radial-gradient(ellipse 27% 39% at 68% 22%, rgba(59, 130, 246, 0.14), transparent 55%),
    radial-gradient(ellipse 33% 29% at 12% 78%, rgba(23, 58, 110, 0.32), transparent 52%),
    radial-gradient(ellipse 23% 28% at 88% 55%, rgba(10, 35, 75, 0.55), transparent 48%);
  animation: flow-deep-b 32s ease-in-out infinite alternate;
}

@keyframes flow-deep-a {
  0%   { transform: translate(0%, 0%) rotate(0deg) scale(1); }
  33%  { transform: translate(4%, -3%) rotate(1.5deg) scale(1.04); }
  66%  { transform: translate(-3%, 5%) rotate(-1deg) scale(1.02); }
  100% { transform: translate(5%, 2%) rotate(2deg) scale(1.05); }
}

@keyframes flow-deep-b {
  0%   { transform: translate(0%, 0%) rotate(0deg) scale(1.05); }
  40%  { transform: translate(-5%, 4%) rotate(-2deg) scale(1); }
  70%  { transform: translate(3%, -4%) rotate(1deg) scale(1.06); }
  100% { transform: translate(-2%, -2%) rotate(-1.5deg) scale(1.02); }
}

.content-wrapper {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
}

body.is-dashboard .content-wrapper {
  visibility: hidden;
  pointer-events: none;
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.hero {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--page-pad);
  transition: opacity 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),
    transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 42rem;
  padding: 0 clamp(1rem, 4vw, 2rem);
}

.hero__title {
  font-size: clamp(2.75rem, 7.5vw, 4.5rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 0 0 0.85rem;
  color: var(--text-primary);
}

.hero__tagline {
  font-size: clamp(1.125rem, 2.2vw, 1.5rem);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.45;
  color: var(--text-secondary);
  margin: 0 0 2.25rem;
  max-width: 22rem;
}

.hero__boot-error {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem 0.65rem 2.15rem;
  border-radius: 0.65rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(255, 210, 210, 0.95);
  background: rgba(80, 20, 30, 0.55);
  border: 1px solid rgba(255, 120, 120, 0.38);
  position: relative;
}

.hero__boot-error::before {
  content: '!';
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.15rem;
  height: 1.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 50%;
  background: rgba(255, 100, 100, 0.25);
  border: 1px solid rgba(255, 140, 140, 0.45);
}

@keyframes ui-spin {
  to { transform: rotate(360deg); }
}

.hero.is-leaving {
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
}

/* ── Why page ── */
.why {
  position: fixed;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: var(--page-pad);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s cubic-bezier(0.25, 0.1, 0.25, 1),
    transform 0.6s cubic-bezier(0.25, 0.1, 0.25, 1);
  transform: translateY(12px);
}

.why.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.why.is-leaving {
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
}

.why__inner {
  width: 100%;
  max-width: min(36rem, 90vw);
  text-align: center;
  padding: 0 clamp(1rem, 4vw, 2rem);
}

.why__eyebrow {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin-bottom: 2rem;
}

.why__body {
  margin-bottom: 2.75rem;
}

.why__body p {
  font-size: clamp(1.125rem, 2.2vw, 1.625rem);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0 0 0.65rem;
}

.why__closing {
  margin-top: 1.5rem !important;
  color: var(--text-secondary) !important;
  font-size: clamp(1rem, 1.8vw, 1.25rem) !important;
}

/* ── Profile setup (onboarding + edit overlay) ── */
.profile-setup {
  position: fixed;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: var(--page-pad);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s cubic-bezier(0.25, 0.1, 0.25, 1),
    transform 0.45s cubic-bezier(0.25, 0.1, 0.25, 1);
  transform: translateY(10px);
}

.profile-setup.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  z-index: 120;
}

body.is-profile-open .profile-setup.is-visible {
  pointer-events: auto;
}

body.is-profile-open.is-dashboard .profile-setup.is-visible {
  z-index: 130;
}

body.is-profile-open.is-dashboard .profile-setup.is-visible ~ .next {
  pointer-events: none;
}

body.is-profile-open .birth-stale-banner {
  display: none;
}

body.is-profile-overlay .profile-setup {
  z-index: 110;
  background: rgba(8, 6, 18, 0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.profile-setup__inner {
  width: 100%;
  max-width: min(28rem, 92vw);
  max-height: min(90vh, 900px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  text-align: center;
  padding: clamp(1.25rem, 4vw, 2rem);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

body.is-profile-overlay .profile-setup__inner {
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}

.profile-setup__eyebrow {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin: 0 0 1rem;
}

.profile-setup__title {
  font-size: clamp(1.25rem, 2.4vw, 1.625rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0 0 0.75rem;
}

.profile-setup__lead {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text-secondary);
  margin: 0 0 1.75rem;
}

.profile-setup__form {
  text-align: left;
}

.profile-field {
  border: none;
  margin: 0 0 1.25rem;
  padding: 0;
}

.profile-field__label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}

.profile-gender-options {
  display: flex;
  gap: 0.5rem;
}

.profile-gender-option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.625rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.profile-gender-option:has(input:checked) {
  border-color: rgba(160, 130, 255, 0.55);
  background: rgba(120, 90, 220, 0.18);
}

.profile-gender-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.profile-gender-option span {
  font-size: 0.9375rem;
  color: var(--text-primary);
}

.profile-field__input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;
  border-radius: 0.625rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.25);
  color: var(--text-primary);
  font: inherit;
  font-size: 0.9375rem;
}

.profile-field__input:focus {
  outline: none;
  border-color: rgba(160, 130, 255, 0.5);
}

.profile-field__select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, rgba(196, 181, 253, 0.7) 50%),
    linear-gradient(135deg, rgba(196, 181, 253, 0.7) 50%, transparent 50%);
  background-position:
    calc(100% - 1.1rem) calc(50% + 0.15rem),
    calc(100% - 0.75rem) calc(50% + 0.15rem);
  background-size: 0.35rem 0.35rem, 0.35rem 0.35rem;
  background-repeat: no-repeat;
  padding-right: 2rem;
  cursor: pointer;
}

.profile-field__select option,
.profile-field__select optgroup {
  color: #1a1028;
  background: #f5f0ff;
}

.profile-field__input--number {
  max-width: 6rem;
}

.profile-field__textarea {
  width: 100%;
  min-height: 4.5rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--line, rgba(255, 255, 255, 0.12));
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  color: inherit;
  font: inherit;
  resize: vertical;
}

.profile-experiential {
  margin-top: 1.25rem;
  border: none;
  padding: 0;
}

.profile-experiential legend {
  margin-bottom: 0.35rem;
}

.profile-field__hint {
  margin: 0.45rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--text-tertiary);
}

.profile-setup__actions {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-top: 1.5rem;
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding-top: 0.75rem;
  background: linear-gradient(to top, rgba(12, 10, 22, 0.98) 70%, rgba(12, 10, 22, 0));
}

.profile-setup__actions .btn--primary {
  width: 100%;
}

.profile-setup__skip {
  width: 100%;
  justify-content: center;
}

.profile-setup__skip {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: rgba(200, 185, 255, 0.85);
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.5rem;
  background: rgba(100, 75, 200, 0.12);
  border: 1px solid rgba(140, 110, 230, 0.2);
}

.profile-setup__birth-cta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0.5rem 0 0.25rem;
}

.birth-stale-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
  padding: 0.65rem 1rem;
  background: rgba(120, 40, 20, 0.92);
  color: #fff;
  font-size: 0.875rem;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.birth-stale-banner[hidden] {
  display: none !important;
}

.birth-stale-banner__text {
  margin: 0;
  max-width: 42rem;
  line-height: 1.45;
}

.season-care-banner-host {
  padding: 0 1rem 0.35rem;
}

.season-care-banner-host[hidden] {
  display: none !important;
}

.season-care-banner {
  margin: 0;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(72, 120, 72, 0.35);
  background: linear-gradient(135deg, rgba(220, 240, 220, 0.95), rgba(200, 230, 210, 0.88));
  color: rgba(24, 48, 32, 0.92);
}

.season-care-banner--inline {
  margin-bottom: 0.85rem;
}

.season-care-banner__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.82;
}

.season-care-banner__body {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  font-weight: 550;
}

.season-care-banner__detail {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  line-height: 1.4;
  opacity: 0.88;
}

.season-care-banner__scope {
  margin: 0.25rem 0 0;
  font-size: 0.66rem;
  line-height: 1.35;
  letter-spacing: 0.03em;
  opacity: 0.78;
}

.element-lifestyle {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(48, 80, 56, 0.15);
}

.element-lifestyle--compact .element-lifestyle__section-title {
  font-size: 0.72rem;
}

.element-lifestyle__corr {
  margin: 0 0 0.45rem;
  font-size: 0.75rem;
  line-height: 1.4;
  opacity: 0.85;
}

.element-lifestyle__section + .element-lifestyle__section {
  margin-top: 0.5rem;
}

.element-lifestyle__section-title {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.04em;
}

.element-lifestyle__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
  line-height: 1.45;
}

.element-lifestyle__list li + li {
  margin-top: 0.2rem;
}

.almanac__lifestyle {
  margin: 0.65rem 0;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: rgba(248, 252, 248, 0.92);
  border: 1px solid rgba(72, 120, 72, 0.22);
}

.almanac__lifestyle-eyebrow {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.78;
}

.season-care-banner-host--latent .season-care-banner {
  border-color: rgba(96, 112, 88, 0.35);
  background: linear-gradient(135deg, rgba(236, 240, 232, 0.95), rgba(224, 230, 218, 0.9));
}

.season-care-banner--latent .season-care-banner__eyebrow {
  opacity: 0.72;
}

.birth-stale-banner__cta {
  flex-shrink: 0;
  font-size: 0.8125rem;
  padding: 0.35rem 0.85rem;
}

/* ── macOS-style primary button ── */
.btn {
  appearance: none;
  font-family: inherit;
  cursor: pointer;
  border: none;
}

.btn--primary,
.btn#start-btn,
.btn#why-continue-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7rem;
  padding: 0.6875rem 1.5rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(
    180deg,
    var(--btn-primary-top) 0%,
    var(--btn-primary-mid) 48%,
    var(--btn-primary-bottom) 100%
  );
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    0 1px 2px rgba(0, 0, 0, 0.24),
    0 4px 14px rgba(79, 70, 229, 0.28);
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease,
    opacity 0.2s ease;
}

.btn--primary:hover,
.btn#start-btn:hover,
.btn#why-continue-btn:hover {
  background: linear-gradient(
    180deg,
    rgba(134, 124, 255, 0.98) 0%,
    rgba(109, 100, 250, 0.96) 48%,
    rgba(88, 80, 236, 0.98) 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 2px 6px rgba(0, 0, 0, 0.22),
    0 6px 20px rgba(99, 91, 245, 0.35);
}

.btn--primary:active,
.btn#start-btn:active,
.btn#why-continue-btn:active {
  background: linear-gradient(
    180deg,
    rgba(79, 70, 229, 0.98) 0%,
    rgba(67, 56, 202, 0.96) 100%
  );
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.18),
    0 1px 2px rgba(0, 0, 0, 0.16);
}

/* ── Dashboard · deep ambient (same family as Jade chat) ── */
.dashboard-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(ellipse 72% 58% at 52% 36%, rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), calc(0.22 + (1 - var(--ambient-balance)) * 0.18)), transparent 62%),
    radial-gradient(ellipse 90% 65% at 50% 38%, rgba(0, 90, 160, 0.14), transparent 62%),
    radial-gradient(ellipse 120% 80% at 50% 100%, rgba(2, 16, 42, 0.95), transparent 55%),
    linear-gradient(180deg, #030818 0%, #020610 45%, #010408 100%);
}

body.ambient-active.is-dashboard .dashboard-bg {
  background:
    radial-gradient(ellipse 88% 68% at 48% 30%, rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), 0.48), transparent 58%),
    radial-gradient(ellipse 60% 50% at 82% 82%, rgba(var(--ambient-weak-r), var(--ambient-weak-g), var(--ambient-weak-b), 0.32), transparent 52%),
    radial-gradient(ellipse 120% 80% at 50% 100%, rgba(2, 16, 42, 0.92), transparent 55%),
    linear-gradient(180deg, #030818 0%, #020610 45%, #010408 100%);
}

.dashboard-bg__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.92;
}

.dashboard-bg__mist {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 32% 38%, rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), calc(0.05 + (1 - var(--ambient-balance)) * 0.07)), transparent 46%),
    radial-gradient(circle at 68% 62%, rgba(var(--ambient-weak-r), var(--ambient-weak-g), var(--ambient-weak-b), calc(0.08 + (1 - var(--ambient-balance)) * 0.06)), transparent 44%),
    radial-gradient(circle at 70% 60%, rgba(30, 80, 180, 0.08), transparent 42%);
  animation: flow-deep-a var(--ambient-pulse-period, 24s) ease-in-out infinite alternate;
}

.dashboard-bg__vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 85% 75% at 50% 45%, transparent 35%, rgba(1, 4, 12, 0.55) 100%),
    linear-gradient(180deg, rgba(2, 8, 22, 0.35) 0%, transparent 28%, rgba(0, 0, 0, 0.5) 100%);
}

body.is-dashboard .content-wrapper,
body.is-dashboard .hero,
body.is-dashboard .why {
  pointer-events: none;
}

body.is-dashboard .next {
  z-index: 3;
  background: transparent;
  padding: 0;
  pointer-events: auto;
}

body.is-dashboard .next__inner--calendar {
  position: relative;
  z-index: 1;
  max-width: min(56rem, 100%);
  min-height: 100dvh;
  padding:
    calc(0.35rem + env(safe-area-inset-top, 0))
    max(0.75rem, env(safe-area-inset-right, 0))
    calc(0.85rem + env(safe-area-inset-bottom, 0))
    max(0.75rem, env(safe-area-inset-left, 0));
}

.dashboard-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.75rem 0.85rem 0.55rem;
  margin-bottom: 0.65rem;
  border-radius: 0 0 1.15rem 1.15rem;
  background: linear-gradient(
    125deg,
    #0c2d6b 0%,
    #1e3a8a 28%,
    #3730a3 52%,
    #0084ff 100%
  );
  box-shadow: 0 8px 32px rgba(0, 60, 140, 0.4);
  transition: background 0.8s ease, box-shadow 0.8s ease;
}

body[data-ambient-dom='fire'].ambient-active .dashboard-top {
  background: linear-gradient(125deg, #3a1208 0%, #7a2810 32%, #b84a18 58%, #ff8a50 100%);
  box-shadow: 0 8px 36px rgba(255, 90, 40, 0.35);
}

body[data-ambient-dom='water'].ambient-active .dashboard-top {
  background: linear-gradient(125deg, #081a38 0%, #123868 32%, #1a5898 58%, #4a9eff 100%);
  box-shadow: 0 8px 36px rgba(60, 140, 255, 0.32);
}

body[data-ambient-dom='wood'].ambient-active .dashboard-top {
  background: linear-gradient(125deg, #0a2818 0%, #145830 32%, #1a7848 58%, #3ecf7a 100%);
  box-shadow: 0 8px 36px rgba(40, 180, 100, 0.28);
}

body[data-ambient-dom='metal'].ambient-active .dashboard-top {
  background: linear-gradient(125deg, #28220a 0%, #484018 32%, #706028 58%, #d4bc50 100%);
  box-shadow: 0 8px 36px rgba(212, 188, 80, 0.28);
}

body[data-ambient-dom='earth'].ambient-active .dashboard-top {
  background: linear-gradient(125deg, #281c10 0%, #483420 32%, #685030 58%, #c49a62 100%);
  box-shadow: 0 8px 36px rgba(180, 130, 70, 0.28);
}

.ambient-status-strip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.3rem 0.72rem;
  border-radius: 999px;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 0 16px rgba(255, 255, 255, 0.06);
}

.ambient-status-strip__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  flex-shrink: 0;
}

.ambient-status-strip__dot--fire { background: #ff6b4a; box-shadow: 0 0 12px rgba(255, 107, 74, 0.85); }
.ambient-status-strip__dot--water { background: #8ec8ff; box-shadow: 0 0 12px rgba(142, 200, 255, 0.85); }
.ambient-status-strip__dot--wood { background: #22c55e; box-shadow: 0 0 12px rgba(34, 197, 94, 0.85); }
.ambient-status-strip__dot--metal { background: #ffe566; box-shadow: 0 0 12px rgba(255, 229, 102, 0.85); }
.ambient-status-strip__dot--earth { background: #cfaf82; box-shadow: 0 0 12px rgba(207, 175, 130, 0.85); }

.dashboard-top__brand {
  text-align: center;
  min-width: 0;
}

.dashboard-top__title {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.dashboard-top__title-zh {
  font-size: clamp(1.05rem, 2.4vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
}

.dashboard-top__title-en {
  font-size: clamp(0.68rem, 1.6vw, 0.78rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.82);
}

.dashboard-top__status {
  margin: 0.35rem 0 0;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.72);
}

body.is-dashboard .panel--month.panel--dashboard-glass,
body.is-dashboard .panel--month {
  background: linear-gradient(
    145deg,
    rgba(12, 40, 90, 0.55) 0%,
    rgba(8, 28, 68, 0.62) 100%
  );
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(80, 160, 255, 0.18);
  box-shadow:
    0 8px 32px rgba(0, 40, 100, 0.28),
    inset 0 1px 0 rgba(120, 200, 255, 0.08);
  overflow: visible;
}

body.is-dashboard .panel--month.is-season-spring,
body.is-dashboard .panel--month.is-season-summer,
body.is-dashboard .panel--month.is-season-autumn,
body.is-dashboard .panel--month.is-season-winter {
  background: linear-gradient(
    145deg,
    rgba(12, 40, 90, 0.58) 0%,
    rgba(8, 28, 68, 0.65) 100%
  );
  border-color: rgba(80, 160, 255, 0.2);
  box-shadow:
    0 8px 32px rgba(0, 40, 100, 0.28),
    inset 0 1px 0 rgba(120, 200, 255, 0.08);
}

body.is-dashboard .panel--month::before {
  opacity: 0.35;
  background: radial-gradient(ellipse 90% 70% at 50% -10%, rgba(0, 132, 255, 0.22), transparent 68%);
}

body.is-dashboard .calendar-toolbar {
  display: flex;
  justify-content: center;
  margin-bottom: 0.95rem;
  position: relative;
  z-index: 110;
}

/* 流月 fold 打开时 · 遮罩不盖住顶栏，月历/年历仍可点 */
body.is-dashboard.liuyue-fold-open .liuyue-fold__backdrop {
  top: var(--calendar-toolbar-clearance, 9.5rem);
}

body.is-dashboard .calendar-mode {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.2rem;
  max-width: 100%;
  padding: 0.28rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.is-dashboard .calendar-mode__views {
  display: inline-flex;
  gap: 0.2rem;
  position: relative;
  z-index: 2;
}

body.is-dashboard .calendar-mode__views .calendar-mode__btn {
  pointer-events: auto;
  cursor: pointer;
}

body.is-dashboard .calendar-mode__btn--link {
  pointer-events: auto;
  cursor: pointer;
  color: rgba(230, 235, 255, 0.78);
}

body.is-dashboard .calendar-mode__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  min-width: 4.6rem;
  padding: 0.38rem 0.72rem;
  border-radius: 999px;
  color: rgba(230, 235, 255, 0.65);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
}

body.is-dashboard .calendar-mode__en {
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  opacity: 0.72;
}

body.is-dashboard .calendar-mode__btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, rgba(0, 100, 200, 0.75), rgba(80, 60, 180, 0.7));
  box-shadow: 0 2px 12px rgba(0, 80, 180, 0.35);
}

body.is-dashboard .calendar-mode__btn--link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

body.is-dashboard .calendar-mode__btn--primary,
body.is-dashboard .calendar-mode__btn--primary.calendar-mode__btn--heart {
  min-width: 5rem;
  padding: 0.48rem 1rem 0.42rem 1.15rem;
  font-weight: 700;
  color: rgba(255, 248, 240, 0.96);
  background: linear-gradient(145deg, rgba(255, 120, 90, 0.42), rgba(139, 92, 246, 0.48));
  border: 1px solid rgba(255, 160, 120, 0.38);
  box-shadow: 0 0 16px rgba(255, 120, 90, 0.24);
}

body.is-dashboard .calendar-mode__btn--primary .calendar-mode__zh {
  font-size: 0.84rem;
  letter-spacing: 0.04em;
}

body.is-dashboard .calendar-mode__btn--primary:hover {
  color: #fff;
  background: linear-gradient(145deg, rgba(255, 130, 100, 0.52), rgba(159, 112, 255, 0.55));
}

body.is-dashboard .dashboard-footer .btn--secondary {
  border-color: rgba(120, 180, 255, 0.22);
  background: rgba(8, 28, 68, 0.45);
  color: rgba(220, 235, 255, 0.88);
}

/* ── Dashboard (L1) ── */
.next {
  position: fixed;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: var(--page-pad);
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
  overflow-y: auto;
}

.next.is-visible {
  opacity: 1;
  pointer-events: auto;
}

html.boot-dashboard body.is-dashboard .next {
  opacity: 1;
  pointer-events: auto;
}

.next__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.next__inner--calendar {
  width: 100%;
  max-width: min(56rem, calc(100% - 1rem));
  margin: 0 auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-bottom: 1rem;
  transition: max-width 0.45s cubic-bezier(0.25, 0.1, 0.25, 1),
    padding 0.45s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.dashboard-stage {
  flex: 0 1 auto;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  padding: clamp(0.35rem, 1vh, 0.85rem) 0;
  transition: transform 0.45s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.dashboard-stage .panel--month {
  width: 100%;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
}

.dashboard-stage.is-detail-open {
  transform: none;
}

.dashboard-footer {
  text-align: center;
  margin-top: clamp(1.5rem, 3vh, 2.5rem);
  padding-top: 0.5rem;
  padding-bottom: 1rem;
}

.btn--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.5rem;
  padding: 0.5625rem 1.25rem;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: var(--text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn--secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--text-primary);
  border-color: rgba(255, 255, 255, 0.22);
}

.btn--secondary:active {
  background: rgba(255, 255, 255, 0.05);
}

.dashboard-header {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  text-align: center;
  margin-bottom: clamp(0.85rem, 1.5vh, 1.15rem);
  padding-top: 0;
  flex-shrink: 0;
}

.calendar-view {
  width: 100%;
}

.calendar-view[hidden] {
  display: none !important;
}

.calendar-view--month {
  display: flex;
  flex-direction: column;
  gap: 0;
}

body.day-drawer-open .next {
  overflow: hidden;
}

body.day-drawer-open .next__inner--calendar {
  max-width: 100%;
  width: 100%;
  margin: 0;
}

body.day-drawer-open .dashboard-stage {
  padding-top: clamp(0.25rem, 0.8vh, 0.5rem);
}

/* ── Day detail · 居中模态 ── */
.day-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 3vw, 2rem);
  pointer-events: none;
  visibility: hidden;
}

.day-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}

.day-drawer[hidden] {
  display: none !important;
}

.day-drawer__backdrop {
  position: absolute;
  inset: 0;
  border: none;
  padding: 0;
  margin: 0;
  background: rgba(3, 8, 24, 0.58);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  cursor: pointer;
  transition: opacity 0.35s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.day-drawer.is-open .day-drawer__backdrop {
  opacity: 1;
}

.day-drawer__panel {
  position: relative;
  z-index: 1;
  width: min(56rem, calc(100vw - clamp(1.25rem, 4vw, 3rem)));
  max-height: min(92vh, calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 1.5rem));
  margin: max(0.75rem, env(safe-area-inset-top, 0px)) max(0.75rem, env(safe-area-inset-right, 0px)) max(0.75rem, env(safe-area-inset-bottom, 0px)) max(0.75rem, env(safe-area-inset-left, 0px));
  display: flex;
  flex-direction: column;
  background: linear-gradient(
    180deg,
    rgba(18, 14, 48, 0.96) 0%,
    rgba(8, 10, 32, 0.98) 100%
  );
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid var(--glass-border);
  border-radius: 20px;
  box-shadow:
    0 24px 80px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transform: translateY(12px) scale(0.97);
  opacity: 0;
  transition:
    transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1),
    opacity 0.35s ease;
}

.day-drawer.is-open .day-drawer__panel {
  transform: translateY(0) scale(1);
  opacity: 1;
  box-shadow:
    0 24px 80px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    inset 0 0 52px rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), calc(0.05 + (1 - var(--ambient-balance)) * 0.09));
}

#day-drawer[data-temp-level='hot'] .day-drawer__panel:not(.day-drawer__panel--board),
#day-drawer[data-temp-level='extreme-hot'] .day-drawer__panel:not(.day-drawer__panel--board),
#day-drawer[data-temp-level='warm'] .day-drawer__panel:not(.day-drawer__panel--board) {
  background: linear-gradient(
    180deg,
    rgba(42, 20, 28, 0.96) 0%,
    rgba(10, 10, 30, 0.98) 100%
  );
}

#day-drawer[data-temp-level='cool'] .day-drawer__panel:not(.day-drawer__panel--board),
#day-drawer[data-temp-level='cold'] .day-drawer__panel:not(.day-drawer__panel--board),
#day-drawer[data-temp-level='extreme-cold'] .day-drawer__panel:not(.day-drawer__panel--board) {
  background: linear-gradient(
    180deg,
    rgba(14, 22, 42, 0.96) 0%,
    rgba(8, 10, 32, 0.98) 100%
  );
}

body.ambient-active.is-dashboard .dashboard-bg__canvas {
  opacity: 1;
}

body.ambient-active.is-dashboard .dashboard-bg__vignette {
  opacity: 0.42;
}

body.ambient-active.is-dashboard .dashboard-bg__mist {
  background:
    radial-gradient(circle at 32% 38%, rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), 0.16), transparent 46%),
    radial-gradient(circle at 68% 62%, rgba(var(--ambient-weak-r), var(--ambient-weak-g), var(--ambient-weak-b), 0.14), transparent 44%),
    radial-gradient(circle at 70% 60%, rgba(30, 80, 180, 0.06), transparent 42%);
}

.day-drawer.is-open .day-drawer__panel--board {
  width: 100%;
  max-width: 100%;
  max-height: 100dvh;
  height: 100dvh;
  margin: 0;
  border-radius: 0;
  border: none;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(ellipse 110% 70% at 50% -5%, rgba(56, 140, 220, 0.22) 0%, transparent 52%),
    radial-gradient(ellipse 80% 55% at 85% 100%, rgba(40, 100, 180, 0.14) 0%, transparent 48%),
    linear-gradient(180deg, #040e18 0%, #061222 42%, #0b2344 68%, #040e18 100%);
  box-shadow: inset 0 0 80px rgba(0, 0, 0, 0.45);
}

.day-drawer.is-open .day-drawer__panel--board .day-drawer__header {
  flex-shrink: 0;
  padding: 0.22rem 0.5rem 0.18rem;
  min-height: 0;
  border-bottom: none;
}

.day-drawer.is-open .day-drawer__panel--board .day-drawer__title {
  flex-direction: row;
  align-items: baseline;
  gap: 0.35rem;
}

.day-drawer.is-open .day-drawer__panel--board .day-drawer__title-main {
  font-size: 0.88rem;
  font-weight: 600;
  font-family: var(--font-apple-zh);
  letter-spacing: -0.01em;
}

.day-drawer.is-open .day-drawer__panel--board .day-drawer__title-sub {
  display: none;
}

.day-drawer.is-open .day-drawer__panel--board .day-drawer__close {
  width: 1.75rem;
  height: 1.75rem;
  font-size: 1rem;
}

/* 接入生日 · 日详情整页深蓝（静态，同重点养阴色） */
.day-drawer__panel--natal-yong {
  background: linear-gradient(
    165deg,
    #061222 0%,
    #0b2344 38%,
    #071828 72%,
    #040e18 100%
  );
  border-color: rgba(56, 140, 220, 0.34);
  box-shadow:
    0 24px 80px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(130, 200, 255, 0.14);
}

.day-drawer__panel--natal-yong .day-drawer__header {
  border-bottom-color: rgba(56, 140, 220, 0.2);
}

.day-drawer__panel--natal-yong .day-drawer__title {
  color: #e8f4ff;
}

.day-drawer__panel--natal-yong .day-drawer__close {
  background: rgba(56, 140, 220, 0.15);
  color: rgba(200, 230, 255, 0.88);
}

.day-drawer__panel--natal-yong .panel--almanac,
.day-drawer__panel--natal-yong .panel--journal,
.day-drawer__panel--natal-yong .panel--key-path,
.day-drawer__panel--natal-yong .panel--contact {
  background: transparent;
  box-shadow: none;
}

.day-drawer__panel--natal-yong .panel__title,
.day-drawer__panel--natal-yong .almanac__date-main,
.day-drawer__panel--natal-yong .almanac__wx-health-score {
  color: #e8f4ff;
}

.day-drawer__panel--natal-yong .almanac__date-sub,
.day-drawer__panel--natal-yong .almanac__date-lunar,
.day-drawer__panel--natal-yong .almanac__meta,
.day-drawer__panel--natal-yong .almanac__ganzhi,
.day-drawer__panel--natal-yong .almanac__wx-health-meta,
.day-drawer__panel--natal-yong .almanac__wx-health-mode,
.day-drawer__panel--natal-yong .almanac__wx-helix,
.day-drawer__panel--natal-yong .almanac__wx-health-label,
.day-drawer__panel--natal-yong .almanac__wx-natal-label,
.day-drawer__panel--natal-yong .almanac__wx-natal-base,
.day-drawer__panel--natal-yong .almanac__wx-natal-tst,
.day-drawer__panel--natal-yong .almanac__wx-natal-place,
.day-drawer__panel--natal-yong .almanac__rhythm-meta,
.day-drawer__panel--natal-yong .panel__hint,
.day-drawer__panel--natal-yong .contact__lead {
  color: rgba(190, 220, 250, 0.72);
}

.day-drawer__panel--natal-yong .almanac__wx-yong {
  color: rgba(160, 210, 255, 0.92);
}

.day-drawer__panel--natal-yong .almanac__wx-health,
.day-drawer__panel--natal-yong .almanac__fold,
.day-drawer__panel--natal-yong .wx-energy--day-temp .sys-temp,
.day-drawer__panel--natal-yong .temp-care,
.day-drawer__panel--natal-yong .almanac__wx-loss-entry,
.day-drawer__panel--natal-yong .key-path--unlocked,
.day-drawer__panel--natal-yong .journal-input {
  background: rgba(8, 24, 48, 0.45);
  border-color: rgba(56, 140, 220, 0.22);
}

.day-drawer__panel--natal-yong .temp-care--urgent {
  background: rgba(6, 18, 36, 0.55);
  border-color: rgba(70, 150, 230, 0.3);
}

.day-drawer__panel--natal-yong .temp-care--urgent .temp-care__title {
  color: #c8e8ff;
}

.day-drawer__panel--natal-yong .almanac__wx-health-edit {
  color: #a8d4ff;
}

.day-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.15rem, 2.2vh, 1.5rem) clamp(1.25rem, 2.5vw, 1.85rem);
  border-bottom: 1px solid rgba(186, 160, 255, 0.12);
  flex-shrink: 0;
}

.day-drawer__title {
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0;
}

.day-drawer__close {
  appearance: none;
  border: none;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-secondary);
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease;
}

.day-drawer__close:hover {
  background: rgba(255, 255, 255, 0.14);
  color: var(--text-primary);
}

.day-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: clamp(1.15rem, 2.2vw, 1.85rem);
  -webkit-overflow-scrolling: touch;
  min-height: 0;
}

.day-drawer__body--decision {
  overflow: hidden;
  flex: 1;
  min-height: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.day-drawer__body .panel--contact {
  margin-bottom: 0;
}

body.day-drawer-open {
  overflow: hidden;
}

body.liuyue-fold-open {
  overflow: hidden;
}

.next__inner--calendar .next__title {
  text-align: center;
}

.next__title-en {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.58em;
  font-weight: 500;
  letter-spacing: 0.06em;
  opacity: 0.55;
  text-transform: none;
}

.next__title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 0 0 0.5rem;
  color: var(--text-primary);
}

.next__subtitle {
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--text-tertiary);
  margin: 0;
}

.panel--month,
.panel--almanac,
.panel--key-path,
.panel--journal,
.panel--contact,
.panel {
  padding: clamp(1rem, 1.5vw, 1.35rem);
  border-radius: 18px;
  margin-bottom: 1rem;
  color: #ede9fe;
  background: var(--glass-gradient);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid var(--glass-border);
  box-shadow:
    0 8px 32px rgba(10, 8, 35, 0.4),
    inset 0 1px 0 var(--glass-shine);
}

.panel--almanac {
  padding: clamp(1.25rem, 2vw, 1.75rem);
}

.panel--key-path {
  margin-top: 0.25rem;
}

/* ── 流月 L1 · 年历下方 ── */
.liuyue-l1 {
  margin-top: 1rem;
  flex-shrink: 0;
}

.calendar-view--month .liuyue-l1 {
  margin-top: clamp(0.85rem, 2vh, 1.15rem);
}

/* 月历下方 · 精简流月条 */
.month-context-strip {
  padding: 0.75rem 0.85rem 0.8rem;
  border-radius: 14px;
  border: 1px solid rgba(139, 92, 246, 0.18);
  background: linear-gradient(
    145deg,
    rgba(78, 42, 136, 0.12) 0%,
    rgba(6, 24, 48, 0.55) 100%
  );
  box-shadow: inset 0 1px 0 rgba(139, 92, 246, 0.12);
}

.month-context__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
}

.month-context__pillars {
  font-size: clamp(0.72rem, 2.6cqw, 0.8rem);
  font-weight: 600;
  color: rgba(200, 210, 240, 0.88);
  letter-spacing: -0.01em;
}

.month-context__temp {
  font-size: clamp(0.88rem, 3cqw, 1rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--helix-label);
}

.month-context__meter {
  margin-bottom: 0.55rem;
}

.month-context__meter .sys-temp__track {
  height: 0.35rem;
}

.month-context__liunian {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
}

.month-context__liunian-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.14rem 0.45rem;
  font-size: clamp(0.62rem, 2.2cqw, 0.68rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: 999px;
  border: 1px solid rgba(139, 92, 246, 0.28);
  background: rgba(32, 52, 138, 0.35);
  color: rgba(200, 210, 240, 0.82);
}

.month-context__liunian-tag--current {
  border-color: rgba(139, 92, 246, 0.55);
  background: var(--helix-gradient-label);
  color: var(--helix-label);
  box-shadow: 0 0 12px rgba(78, 42, 136, 0.35);
}

.day-drawer__transit-host {
  flex-shrink: 0;
  padding: 0 0 0.35rem;
}

.day-drawer__transit-host:empty {
  display: none;
}

.day-drawer__transit-host .transit-companion {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(139, 92, 246, 0.2);
  background: linear-gradient(145deg, rgba(78, 42, 136, 0.14) 0%, rgba(6, 24, 48, 0.5) 100%);
}

/* ── Day Drawer · Brief 屏 ── */
.day-drawer-brief {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0.65rem;
}

.day-drawer-brief[hidden] {
  display: none !important;
}

.day-drawer-brief__cycle-update {
  margin-top: 0.55rem;
}

.day-drawer-brief__cycle-update .cycle-period-update {
  margin: 0;
}

.day-drawer-brief__meta {
  margin: 0.55rem 0 0;
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  opacity: 0.72;
}

.day-drawer-brief__wx-hero-host {
  margin: 0.4rem 0 0.45rem;
}

.day-drawer-brief__wx-hero {
  padding: 0.55rem 0.72rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), 0.42);
  border-left-width: 4px;
  box-shadow:
    inset 0 0 28px rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), 0.12),
    0 4px 18px rgba(var(--ambient-dom-r), var(--ambient-dom-g), var(--ambient-dom-b), 0.1);
}

.day-drawer-brief__wx-hero .wx-energy__hero-el {
  font-size: 1.12rem;
}

.day-drawer-brief__wx-hero .wx-energy__hero-pct {
  font-size: 1.42rem;
}

.day-drawer-brief__wx-hero .wx-energy__hero-sub {
  margin-top: 0.15rem;
  font-size: 0.72rem;
}

.day-drawer-brief__liuyue-delta {
  margin: 0.45rem 0 0.65rem;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(186, 160, 255, 0.12);
}

.day-drawer-brief__liuyue-line {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  opacity: 0.92;
}

.day-drawer-brief__liuyue-line + .day-drawer-brief__liuyue-line {
  margin-top: 0.35rem;
  opacity: 0.78;
}

.day-drawer-brief__record {
  margin: 0 0 0.65rem;
}

.day-drawer-brief__record-label {
  display: block;
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
}

.journal-input--brief {
  min-height: 8.5rem;
  font-size: 0.95rem;
  line-height: 1.5;
}

.decision-capture__meta--compact {
  margin-bottom: 0.45rem;
}

.decision-capture__actions--brief {
  margin-top: 0.55rem;
}

.day-drawer-brief__journal-echo {
  margin: 0.45rem 0 0;
  font-size: 0.75rem;
  opacity: 0.78;
  line-height: 1.4;
}

.day-drawer-brief__focus-collapse {
  margin: 0.25rem 0 0.65rem;
}

.day-drawer-brief__focus-summary {
  cursor: pointer;
  font-size: 0.72rem;
  opacity: 0.65;
  margin-bottom: 0.35rem;
}

.board-journal-redirect {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.85;
}

.day-drawer-brief__open-board.btn--ghost {
  opacity: 0.88;
}

.cell-vitality {
  margin: 0.65rem 0;
}

.cell-vitality__eyebrow {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  opacity: 0.85;
}

.cell-vitality__meters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}

.cell-vitality__meter-label {
  display: block;
  font-size: 0.62rem;
  opacity: 0.75;
}

.cell-vitality__meter-value {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
}

.cell-vitality__summary,
.cell-vitality__bridge {
  margin: 0.35rem 0 0;
  font-size: clamp(0.72rem, 0.9vw, 0.8rem);
  line-height: 1.5;
}

.cell-vitality__logistics {
  margin: 0.55rem 0 0;
  padding-left: 1.1rem;
  font-size: clamp(0.72rem, 0.9vw, 0.78rem);
  line-height: 1.45;
}

.cell-vitality__logistics-item--cycle {
  color: rgba(255, 175, 210, 0.95);
}

.day-decision-hero__vitality .cell-vitality {
  margin: 0.5rem 0 0.65rem;
}

.day-decision-hero__vitality .cell-vitality__logistics {
  display: none;
}

.me-helix-meta__vitality {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(255, 140, 190, 0.18);
}

.me-helix-meta__vitality-title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
}

.me-helix-meta__vitality-dual {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  opacity: 0.85;
}

.me-helix-meta__vitality-bridge {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  opacity: 0.9;
}

.cycle-period-update__label {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
}

.cycle-period-update__hint {
  margin: 0 0 0.55rem;
  font-size: clamp(0.72rem, 0.9vw, 0.78rem);
  line-height: 1.5;
  color: rgba(210, 190, 220, 0.82);
}

.cycle-period-update--urgent .cycle-period-update__hint {
  color: rgba(255, 175, 210, 0.95);
}

.cycle-period-update__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.55rem;
}

.cycle-period-update__input {
  flex: 1 1 10rem;
  padding: 0.4rem 0.5rem;
  border-radius: 0.35rem;
  border: 1px solid rgba(180, 140, 200, 0.35);
  background: rgba(10, 8, 24, 0.55);
  color: inherit;
  font-size: 0.78rem;
}

.cycle-period-update__btn {
  flex: 0 0 auto;
}

.day-drawer-brief__focus {
  margin-top: 0.55rem;
  padding: 0.9rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(0, 210, 255, 0.18);
  background: linear-gradient(155deg, rgba(8, 28, 56, 0.72) 0%, rgba(4, 16, 36, 0.88) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.day-drawer-brief__focus-label {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: rgba(167, 139, 250, 0.88);
}

.day-drawer-brief__focus-one {
  margin: 0;
  font-size: clamp(0.92rem, 3.2vw, 1.05rem);
  line-height: 1.55;
  color: rgba(230, 240, 255, 0.94);
}

.day-drawer-brief__journal-note {
  margin: 0.65rem 0 0;
  padding: 0.55rem 0.75rem;
  border-radius: 12px;
  border: 1px solid rgba(0, 210, 255, 0.16);
  background: rgba(4, 20, 40, 0.55);
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(180, 220, 255, 0.88);
}

.day-drawer-brief__journal-note[hidden] {
  display: none !important;
}

.day-drawer-brief__footer {
  margin-top: auto;
  padding: 1rem 0 max(0.85rem, env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.day-drawer-brief__body-link {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.day-drawer-brief__open-board {
  width: 100%;
  justify-content: center;
  font-size: 0.95rem;
  padding: 0.72rem 1rem;
  border-radius: 999px;
  box-shadow: 0 0 24px rgba(0, 210, 255, 0.18);
}

.day-drawer-brief__open-board--coach-target {
  animation: brief-open-board-pulse 1.6s ease-in-out infinite;
  box-shadow:
    0 0 0 2px rgba(0, 210, 255, 0.55),
    0 0 28px rgba(139, 92, 246, 0.45);
}

@keyframes brief-open-board-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}

.day-drawer-brief--entering {
  animation: brief-screen-in 0.38s cubic-bezier(0.25, 0.1, 0.25, 1);
}

@keyframes brief-screen-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── Day Drawer · Board 屏（全屏九宫）── */
.day-drawer-board-stage {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.day-drawer-board-stage[hidden] {
  display: none !important;
}

.day-drawer-board-stage__nav {
  flex-shrink: 0;
  padding: 0.15rem 0.45rem 0.1rem;
}

.day-drawer-board-stage__back {
  margin: 0;
  padding: 0.35rem 0.55rem;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(180, 210, 240, 0.9);
  font: inherit;
  font-size: 0.78rem;
  cursor: pointer;
}

.day-drawer-board-stage__back:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(230, 240, 255, 0.95);
}

.day-drawer__panel--board-stage .day-drawer-board {
  flex: 1;
  min-height: 0;
  height: auto;
}

.day-drawer__panel--board-stage .day-drawer-board__frame {
  width: min(100%, calc(100dvh - 5.5rem));
  height: min(100%, calc(100dvh - 5.5rem));
}

.day-drawer__panel:not(.day-drawer__panel--board-stage) .day-drawer-board-stage {
  display: none !important;
}

.transit-companion__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: none;
  color: rgba(167, 139, 250, 0.88);
}

.transit-companion__lead {
  margin: 0;
  font-size: clamp(0.82rem, 2.8cqw, 0.92rem);
  line-height: 1.55;
  color: rgba(230, 235, 250, 0.92);
}

.transit-companion__list {
  margin: 0.45rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: rgba(200, 210, 240, 0.82);
}

.transit-companion__mechanism {
  margin: 0.5rem 0 0;
  font-size: 0.74rem;
  color: rgba(180, 190, 220, 0.75);
}

.transit-companion__prompts {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(139, 92, 246, 0.15);
}

.transit-companion__prompts-label {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(167, 139, 250, 0.8);
}

.transit-companion__prompt-title {
  margin: 0.35rem 0 0.15rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: rgba(210, 220, 245, 0.9);
}

.transit-companion__prompt-text {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(190, 200, 230, 0.78);
}

.transit-companion__prompt-note {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
  color: rgba(168, 255, 248, 0.75);
}

.transit-companion__foot {
  margin: 0.55rem 0 0;
  font-size: 0.68rem;
  color: rgba(160, 170, 200, 0.65);
}

.wx-energy--liuyue {
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.wx-energy--day-temp {
  margin: 0.85rem 0 1rem;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
}

.wx-energy--day-temp .sys-temp {
  margin-bottom: 0;
  padding: 1rem 1.05rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.wx-energy--day-temp .sys-temp--day {
  border-bottom: none;
  padding-bottom: 1rem;
}

.sys-temp--liuyue {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding-bottom: 1.1rem;
  margin-bottom: 1.15rem;
}

/* ── 大势 · 嵌入 almanac（legacy） ── */
.wx-energy--in-almanac {
  margin: 0.85rem 0 1rem;
  padding: 1rem 1.05rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.wx-energy__title,
.sys-temp__title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: rgba(245, 245, 247, 0.88);
}

.wx-energy {
  --wx-fire: #ff9f85;
  --wx-earth: #cfaf82;
  --wx-metal: #9eb4c8;
  --wx-water: #5ac8fa;
  --wx-wood: #5dd39e;
}

/* ── 系统温度 T · 双向进度条 ── */
.sys-temp {
  margin-bottom: 1.15rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.sys-temp__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.95rem;
}

.sys-temp__title {
  font-size: 0.9rem;
}

.sys-temp__title-en {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(245, 245, 247, 0.38);
}

.sys-temp__readout {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
}

.sys-temp__value {
  font-size: 1.65rem;
  font-weight: 300;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: rgba(245, 245, 247, 0.94);
}

.sys-temp--hot .sys-temp__value,
.sys-temp--extreme-hot .sys-temp__value {
  color: #ffb4a2;
}

.sys-temp--cold .sys-temp__value,
.sys-temp--extreme-cold .sys-temp__value {
  color: #7ec8ff;
}

.sys-temp__pillars {
  font-size: 0.68rem;
  color: rgba(245, 245, 247, 0.42);
  letter-spacing: 0.04em;
}

.sys-temp__meter {
  margin-bottom: 0.45rem;
}

.sys-temp__track {
  position: relative;
  height: 12px;
  border-radius: 999px;
  overflow: visible;
}

.sys-temp__gradient {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    #5ac8fa 0%,
    rgba(255, 255, 255, 0.22) 50%,
    #ff9f85 100%
  );
  opacity: 0.85;
}

.sys-temp__mid {
  position: absolute;
  top: -3px;
  bottom: -3px;
  left: 50%;
  width: 1px;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.22);
}

.sys-temp__thumb {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow:
    0 1px 4px rgba(0, 0, 0, 0.35),
    0 0 0 3px rgba(255, 255, 255, 0.12);
  transition: left 0.45s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.sys-temp--extreme-hot .sys-temp__thumb {
  box-shadow:
    0 1px 6px rgba(255, 100, 70, 0.45),
    0 0 0 3px rgba(255, 159, 133, 0.25);
}

.sys-temp--extreme-cold .sys-temp__thumb {
  box-shadow:
    0 1px 6px rgba(90, 200, 250, 0.4),
    0 0 0 3px rgba(90, 200, 250, 0.2);
}

.sys-temp__scale {
  display: flex;
  justify-content: space-between;
  margin-top: 0.45rem;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  color: rgba(245, 245, 247, 0.34);
}

.sys-temp__base,
.sys-temp__dual {
  font-size: 0.78rem;
  color: var(--muted, #5a6478);
  margin: 0.35rem 0 0;
  line-height: 1.45;
}

.sys-temp__dual {
  font-weight: 500;
  color: var(--text-secondary, #3d4a5c);
}

.sys-temp__fuyi-score {
  font-size: 0.72rem;
  color: var(--muted, #5a6478);
  margin: 0.25rem 0 0;
}

.sys-temp__dayun-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.45rem 0 0;
}

.sys-temp__dayun-tag {
  font-size: 0.68rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #4a5568;
  border: 1px solid #dde3ec;
}

.sys-temp__dayun-tag--current {
  background: #e8f0fa;
  border-color: #4a6fa5;
  color: #1a3a5c;
  font-weight: 600;
}

.sys-temp__dayun-tag--pressure {
  background: #f5eef8;
  border-color: #c4b5d0;
}

.sys-temp__dayun-tag--support {
  background: #eef6f0;
  border-color: #a8c4b0;
}

.rhythm-axes-panel {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(74, 111, 165, 0.12);
  border: 1px solid rgba(90, 200, 250, 0.22);
}

.rhythm-axes-panel__title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 220, 255, 0.88);
}

.sys-temp__life-phase {
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.sys-temp__energy-lead {
  margin-bottom: 0.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(255, 200, 120, 0.25);
}

.sys-temp__energy-headline {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(255, 210, 150, 0.95);
}

.sys-temp__energy-line {
  margin: 0.3rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(220, 230, 245, 0.82);
}

.sys-temp__month-command {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(180, 210, 240, 0.9);
}

.sys-temp__month-command-block {
  margin: 0 0 0.45rem;
  padding: 0.35rem 0.5rem;
  background: rgba(60, 90, 120, 0.18);
  border-radius: 6px;
  border-left: 3px solid rgba(140, 180, 220, 0.55);
}

.sys-temp__month-command-note {
  margin: 0.3rem 0 0;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(200, 220, 240, 0.78);
}

.sys-temp__dual--secondary {
  font-size: 0.76rem;
  opacity: 0.78;
}

.sys-temp__life-phase p {
  margin: 0.25rem 0 0;
  font-size: 0.68rem;
  line-height: 1.5;
  color: rgba(245, 245, 247, 0.58);
}

.sys-temp__base,
.sys-temp__cooling,
.sys-temp__overlays {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(245, 245, 247, 0.46);
}

.sys-temp__cooling {
  color: rgba(90, 200, 250, 0.72);
}

.sys-temp__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.55rem;
}

.sys-temp__tag {
  font-size: 0.65rem;
  font-weight: 500;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: rgba(255, 159, 133, 0.12);
  border: 1px solid rgba(255, 159, 133, 0.28);
  color: #ffc9b8;
  letter-spacing: 0.03em;
}

/* 温度养护 · 滋阴补水 / 经期 */
.temp-care {
  margin-top: 0.85rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: rgba(255, 140, 100, 0.06);
  border: 1px solid rgba(255, 159, 133, 0.16);
}

.temp-care--attention {
  background: rgba(255, 120, 80, 0.09);
  border-color: rgba(255, 140, 100, 0.22);
}

.temp-care--urgent {
  background: rgba(255, 90, 60, 0.11);
  border-color: rgba(255, 120, 90, 0.28);
}

.temp-care__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.temp-care__title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255, 200, 175, 0.95);
  letter-spacing: 0.02em;
}

.temp-care__trait {
  flex-shrink: 0;
  font-size: 0.62rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: rgba(90, 200, 250, 0.1);
  border: 1px solid rgba(90, 200, 250, 0.25);
  color: rgba(160, 220, 255, 0.9);
}

.temp-care__summary {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  line-height: 1.55;
  color: rgba(245, 245, 247, 0.62);
}

.temp-care__tips {
  margin: 0;
  padding-left: 1.05rem;
  font-size: 0.7rem;
  line-height: 1.55;
  color: rgba(245, 245, 247, 0.55);
}

.temp-care__tips li + li {
  margin-top: 0.25rem;
}

.temp-care__cycle {
  margin: 0.65rem 0 0;
  padding-top: 0.6rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  font-size: 0.7rem;
  line-height: 1.55;
  color: rgba(255, 190, 210, 0.82);
}

.temp-care__cycle-tag {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 600;
  background: rgba(255, 140, 180, 0.14);
  border: 1px solid rgba(255, 160, 190, 0.25);
  color: rgba(255, 200, 215, 0.95);
  vertical-align: 0.05em;
}

.wx-energy__head {
  margin-bottom: 1rem;
}

.wx-energy__title {
  font-size: 0.9rem;
}

.wx-energy__eyebrow {
  margin: 0 0 0.65rem;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(245, 245, 247, 0.48);
}

.wx-energy__hero {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.wx-energy__hero-main {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
}

.wx-energy__hero-el {
  font-size: clamp(1.65rem, 3.2vw, 2rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
}

.wx-energy__hero-el--fire { color: var(--wx-fire); }
.wx-energy__hero-el--earth { color: var(--wx-earth); }
.wx-energy__hero-el--metal { color: var(--wx-metal); }
.wx-energy__hero-el--water { color: var(--wx-water); }
.wx-energy__hero-el--wood { color: var(--wx-wood); }

.wx-energy__hero-pct {
  font-size: clamp(1.85rem, 3.5vw, 2.35rem);
  font-weight: 300;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: rgba(245, 245, 247, 0.92);
}

.wx-energy__hero-unit {
  font-size: 0.55em;
  font-weight: 400;
  opacity: 0.55;
  margin-left: 0.05em;
}

.wx-energy__hero-sub {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 400;
  color: rgba(245, 245, 247, 0.46);
  letter-spacing: 0.02em;
}

.wx-energy__bars {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 1.15rem;
}

.wx-bar {
  display: grid;
  grid-template-columns: 1.1rem 1fr 2.35rem;
  align-items: center;
  gap: 0.65rem;
}

.wx-bar__label {
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: rgba(245, 245, 247, 0.72);
  text-align: center;
}

.wx-bar__track {
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  overflow: hidden;
}

.wx-bar__fill {
  height: 100%;
  border-radius: inherit;
  background: rgba(255, 255, 255, 0.22);
  transition: width 0.45s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.wx-bar--dominant .wx-bar__fill {
  box-shadow: 0 0 12px rgba(255, 255, 255, 0.12);
}

.wx-bar[data-element="fire"] .wx-bar__fill { background: linear-gradient(90deg, rgba(255, 159, 133, 0.55), var(--wx-fire)); }
.wx-bar[data-element="earth"] .wx-bar__fill { background: linear-gradient(90deg, rgba(207, 175, 130, 0.5), var(--wx-earth)); }
.wx-bar[data-element="metal"] .wx-bar__fill { background: linear-gradient(90deg, rgba(158, 180, 200, 0.5), var(--wx-metal)); }
.wx-bar[data-element="water"] .wx-bar__fill { background: linear-gradient(90deg, rgba(90, 200, 250, 0.45), var(--wx-water)); }
.wx-bar[data-element="wood"] .wx-bar__fill { background: linear-gradient(90deg, rgba(93, 211, 158, 0.45), var(--wx-wood)); }

.wx-bar--dominant .wx-bar__label {
  color: rgba(245, 245, 247, 0.95);
  font-weight: 600;
}

.wx-bar--weak .wx-bar__label {
  opacity: 0.45;
}

.wx-bar__value {
  font-size: 0.72rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: rgba(245, 245, 247, 0.58);
}

.wx-bar--dominant .wx-bar__value {
  color: rgba(245, 245, 247, 0.88);
}

.wx-bar__unit {
  font-size: 0.85em;
  opacity: 0.65;
  margin-left: 0.05em;
}

.wx-energy__evolution {
  padding-top: 0.15rem;
}

.wx-energy__evolution-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.wx-energy__evolution-title {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(245, 245, 247, 0.72);
}

.wx-energy__evolution-note {
  font-size: 0.68rem;
  color: rgba(245, 245, 247, 0.42);
  text-align: right;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
}

.wx-chart {
  display: block;
  width: 100%;
  height: 5.5rem;
  overflow: visible;
}

.wx-chart__grid {
  stroke: rgba(255, 255, 255, 0.06);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.wx-chart__axis {
  stroke: rgba(255, 255, 255, 0.1);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.wx-chart__area {
  opacity: 0.14;
  stroke: none;
}

.wx-chart__area--fire { fill: var(--wx-fire); }
.wx-chart__area--earth { fill: var(--wx-earth); }
.wx-chart__area--metal { fill: var(--wx-metal); }
.wx-chart__area--water { fill: var(--wx-water); }
.wx-chart__area--wood { fill: var(--wx-wood); }

.wx-chart__line {
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.28;
  vector-effect: non-scaling-stroke;
}

.wx-chart__line--fire { stroke: var(--wx-fire); }
.wx-chart__line--earth { stroke: var(--wx-earth); }
.wx-chart__line--metal { stroke: var(--wx-metal); }
.wx-chart__line--water { stroke: var(--wx-water); }
.wx-chart__line--wood { stroke: var(--wx-wood); }

.wx-chart__line--dominant {
  opacity: 0.95;
  stroke-width: 2.25;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.12));
}

.wx-chart__dot {
  fill: rgba(245, 245, 247, 0.35);
  opacity: 0.5;
}

.wx-chart__dot--fire { fill: var(--wx-fire); }
.wx-chart__dot--earth { fill: var(--wx-earth); }
.wx-chart__dot--metal { fill: var(--wx-metal); }
.wx-chart__dot--water { fill: var(--wx-water); }
.wx-chart__dot--wood { fill: var(--wx-wood); }

.wx-chart__dot--dominant {
  opacity: 1;
  filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.25));
}

.wx-energy__chart-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(245, 245, 247, 0.34);
}

.wx-energy__chart-foot-mid {
  letter-spacing: 0.04em;
  text-transform: none;
  font-size: 0.65rem;
}

.wx-energy__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.wx-energy__tag {
  font-size: 0.68rem;
  font-weight: 500;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(245, 245, 247, 0.62);
  letter-spacing: 0.03em;
}

.almanac__head {
  margin-bottom: 0.75rem;
}

.almanac__date-main {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.2;
}

.almanac__date-sub {
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  opacity: 0.6;
  margin-top: 0.25rem;
}

.almanac__date-lunar {
  font-size: clamp(0.9rem, 1.1vw, 1rem);
  opacity: 0.72;
  margin-top: 0.15rem;
}

.almanac__liuyue-basis {
  margin: 0.65rem 0 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.almanac__liuyue-main {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(245, 245, 247, 0.9);
}

.almanac__liuyue-main strong {
  font-weight: 600;
  letter-spacing: 0.06em;
}

.almanac__liuyue-tag {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.62rem;
  font-weight: 500;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  vertical-align: middle;
  color: rgba(167, 139, 250, 0.95);
  background: rgba(139, 92, 246, 0.16);
  border: 1px solid rgba(186, 160, 255, 0.2);
}

.almanac__liuyue-aside {
  margin: 0.4rem 0 0;
  font-size: 0.68rem;
  line-height: 1.55;
  color: rgba(245, 245, 247, 0.42);
}

.almanac__liuyue-aside strong {
  font-weight: 500;
  color: rgba(245, 245, 247, 0.58);
}

.almanac__liuyue-next {
  color: rgba(245, 245, 247, 0.48);
}

.almanac__liuyue-aside--peak {
  color: rgba(255, 200, 160, 0.82);
}

.almanac__liuyue-aside--peak strong {
  color: #ffc9a8;
}

.sys-temp__overlays--day {
  margin-top: 0.25rem;
}

.sys-temp__overlay-tag {
  display: inline-block;
  margin-right: 0.35rem;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  color: rgba(245, 245, 247, 0.38);
}

.sys-temp__day-line {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255, 180, 140, 0.82);
}

.sys-temp__ziwei {
  margin: 0.45rem 0 0;
  font-size: 0.65rem;
  line-height: 1.45;
  color: rgba(245, 245, 247, 0.4);
}

.sys-temp__ziwei--peak {
  color: rgba(255, 200, 160, 0.78);
}

.almanac__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  font-size: 0.8rem;
  opacity: 0.5;
  margin-bottom: 0.85rem;
}

.almanac__ganzhi {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
}

.almanac__rhythm {
  font-size: 0.8rem;
  line-height: 1.6;
  color: #ddd6fe;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(139, 92, 246, 0.18);
  border: 1px solid rgba(186, 160, 255, 0.15);
  margin-bottom: 0;
}

.almanac__rhythm-meta {
  margin: 0 0 0.45rem;
  opacity: 0.85;
}

.almanac__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.4rem;
}

.almanac__tag {
  font-size: 0.72rem;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: rgba(167, 139, 250, 0.16);
  border: 1px solid rgba(186, 160, 255, 0.18);
  color: #e9e0ff;
}

.almanac__hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.6;
  opacity: 0.72;
}

.almanac__fold {
  margin: 0.85rem 0;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: rgba(30, 22, 70, 0.35);
  border: 1px solid rgba(186, 160, 255, 0.14);
}

.almanac__memoir-fold {
  margin: 0.75rem 0 0.85rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: linear-gradient(
    135deg,
    rgba(48, 32, 12, 0.32) 0%,
    rgba(28, 20, 48, 0.28) 100%
  );
  border: 1px dashed rgba(255, 190, 110, 0.38);
}

.almanac__memoir-fold-eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 200, 130, 0.78);
}

.almanac__memoir-fold-line {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(255, 235, 210, 0.92);
}

.almanac__fold .liuyue-compare {
  margin-bottom: 0;
}

.panel--key-path {
  padding: 0;
  overflow: hidden;
}

.key-path {
  display: block;
  width: 100%;
  text-align: left;
  padding: clamp(1rem, 1.5vw, 1.25rem);
  color: inherit;
  font: inherit;
}

.key-path--locked {
  cursor: pointer;
  background: linear-gradient(
    145deg,
    rgba(88, 70, 180, 0.22) 0%,
    rgba(45, 35, 95, 0.35) 100%
  );
  border: none;
  transition: background 0.2s ease, transform 0.15s ease;
}

.key-path--locked:hover {
  background: linear-gradient(
    145deg,
    rgba(100, 80, 200, 0.28) 0%,
    rgba(55, 42, 110, 0.4) 100%
  );
}

.key-path__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.key-path__eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.55;
  margin: 0;
}

.key-path__lock {
  font-size: 0.85rem;
  opacity: 0.45;
  filter: grayscale(0.3);
}

.key-path__locked-title {
  font-size: 0.95rem;
  font-weight: 500;
  margin: 0 0 0.35rem;
  color: #e9e0ff;
}

.key-path__locked-hint {
  font-size: 0.78rem;
  line-height: 1.65;
  opacity: 0.62;
  margin: 0 0 0.75rem;
}

.key-path__locked-cta {
  font-size: 0.78rem;
  color: #c4b5fd;
  opacity: 0.85;
}

.key-path__desc {
  font-size: 0.82rem;
  line-height: 1.65;
  opacity: 0.78;
  margin: 0 0 0.85rem;
}

.key-path__rows {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.key-path__row {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

.key-path__row-label {
  flex: 0 0 1.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.7;
  padding-top: 0.15rem;
}

.key-path__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.key-path__chip {
  font-size: 0.75rem;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.key-path__chip--yi {
  background: rgba(52, 211, 153, 0.12);
  color: #a7f3d0;
  border-color: rgba(52, 211, 153, 0.2);
}

.key-path__chip--ji {
  background: rgba(248, 113, 113, 0.1);
  color: #fecaca;
  border-color: rgba(248, 113, 113, 0.18);
}

.key-path__weekly {
  margin-top: 0.95rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(186, 160, 255, 0.12);
}

.key-path__weekly-title {
  font-size: 0.78rem;
  font-weight: 500;
  margin: 0 0 0.55rem;
  opacity: 0.75;
}

.key-path__weekly-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.key-path__weekly-label {
  font-size: 0.72rem;
  opacity: 0.55;
  margin: 0 0 0.35rem;
}

.key-path__weekly-list {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.75rem;
  line-height: 1.7;
  opacity: 0.82;
}

.key-path__empty {
  list-style: none;
  margin-left: -1rem;
  opacity: 0.55;
}

.unlock-modal {
  border: none;
  padding: 0;
  max-width: min(420px, calc(100vw - 2rem));
  background: transparent;
  color: #f5f1e8;
}

.unlock-modal[open] {
  z-index: 200;
}

.unlock-modal::backdrop {
  background: rgba(8, 6, 24, 0.72);
  backdrop-filter: blur(6px);
}

.unlock-modal__inner {
  position: relative;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: 20px;
  background: linear-gradient(
    160deg,
    rgba(55, 42, 120, 0.95) 0%,
    rgba(25, 18, 55, 0.98) 100%
  );
  border: 1px solid rgba(186, 160, 255, 0.22);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
  max-height: min(92vh, 720px);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

.unlock-modal__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #ede9fe;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.unlock-modal__eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.55;
  margin: 0 0 0.35rem;
}

.unlock-modal__title {
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  font-weight: 500;
  line-height: 1.35;
  margin: 0 0 0.75rem;
  padding-right: 1.5rem;
}

.unlock-modal__lead {
  font-size: 0.85rem;
  line-height: 1.7;
  opacity: 0.78;
  margin: 0 0 1rem;
}

.unlock-modal__list {
  margin: 0 0 1.25rem;
  padding-left: 1.15rem;
  font-size: 0.82rem;
  line-height: 1.75;
  opacity: 0.85;
}

.unlock-modal__cta {
  width: 100%;
}

.unlock-modal__note {
  font-size: 0.72rem;
  opacity: 0.45;
  text-align: center;
  margin: 0.75rem 0 0;
}

.panel--journal {
  margin-bottom: 1rem;
}

.panel__hint {
  font-size: 0.78rem;
  line-height: 1.65;
  opacity: 0.7;
  margin-bottom: 0.65rem;
  color: #c4b5fd;
}

.journal-input {
  width: 100%;
  min-height: 5rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(186, 160, 255, 0.18);
  background: rgba(15, 10, 40, 0.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #f5f1e8;
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.65;
  resize: vertical;
}

.journal-input::placeholder {
  opacity: 0.38;
  color: #c4b5fd;
}

.decision-capture__meta {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr;
  gap: 0.35rem 0.5rem;
  align-items: center;
  margin-bottom: 0.55rem;
}

.decision-capture__quota {
  margin: 0 0 0.55rem;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(190, 175, 230, 0.82);
}

.journal-save-toast {
  margin: 0.45rem 0 0;
  padding: 0.45rem 0.65rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(180, 255, 220, 0.95);
  background: rgba(40, 90, 70, 0.35);
  border: 1px solid rgba(110, 231, 183, 0.28);
  border-radius: 0.5rem;
  animation: journal-save-toast-in 0.28s ease both;
}

.journal-save-toast--out {
  opacity: 0;
  transition: opacity 0.28s ease;
}

@keyframes journal-save-toast-in {
  from {
    opacity: 0;
    transform: translateY(0.25rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.decision-capture__label {
  font-size: 0.72rem;
  color: rgba(180, 200, 230, 0.75);
}

.decision-capture__select {
  font: inherit;
  font-size: 0.78rem;
  padding: 0.35rem 0.45rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(120, 150, 200, 0.22);
  background: rgba(0, 0, 0, 0.2);
  color: inherit;
}

.decision-capture__note {
  margin: 0.45rem 0 0;
  font-size: 0.68rem;
  color: rgba(160, 180, 210, 0.55);
  line-height: 1.45;
}

.journal-input:focus {
  outline: none;
  border-color: rgba(167, 139, 250, 0.45);
  box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.15);
}

.panel--contact {
  margin-bottom: 0;
  border-color: rgba(167, 139, 250, 0.32);
}

.contact__lead {
  font-size: 0.85rem;
  line-height: 1.7;
  opacity: 0.8;
  margin-bottom: 0.75rem;
}

.contact__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.contact__list li {
  font-size: 0.875rem;
  line-height: 1.6;
}

.contact__label {
  display: inline-block;
  min-width: 2.5rem;
  opacity: 0.55;
  margin-right: 0.35rem;
}

.contact__note {
  font-size: 0.78rem !important;
  opacity: 0.55 !important;
  margin-top: 0.25rem;
}

.panel__title {
  font-size: 0.8rem;
  font-weight: 500;
  opacity: 0.6;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
  color: #c4b5fd;
}

.panel--month {
  margin-bottom: 0;
  padding: clamp(1.15rem, 2vw, 1.65rem);
  position: relative;
  overflow: hidden;
  transition:
    background 1.05s ease,
    border-color 1.05s ease,
    box-shadow 1.05s ease;
}

.panel--month::before {
  content: '';
  position: absolute;
  inset: -20% -10% auto -10%;
  height: 70%;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.05s ease;
  z-index: 0;
}

.panel--month > * {
  position: relative;
  z-index: 1;
}

.panel--month.is-season-spring {
  background: linear-gradient(
    155deg,
    rgba(16, 185, 129, 0.22) 0%,
    rgba(76, 29, 149, 0.28) 52%,
    rgba(52, 211, 153, 0.14) 100%
  );
  border-color: rgba(110, 231, 183, 0.32);
  box-shadow:
    0 8px 32px rgba(6, 78, 59, 0.35),
    inset 0 1px 0 rgba(167, 243, 208, 0.18);
}

.panel--month.is-season-spring::before {
  opacity: 1;
  background: radial-gradient(ellipse 90% 70% at 50% -10%, rgba(134, 239, 172, 0.38), transparent 68%);
}

.panel--month.is-season-summer {
  background: linear-gradient(
    155deg,
    rgba(251, 113, 133, 0.24) 0%,
    rgba(180, 83, 9, 0.18) 38%,
    rgba(91, 33, 182, 0.26) 100%
  );
  border-color: rgba(253, 186, 116, 0.36);
  box-shadow:
    0 8px 32px rgba(124, 45, 18, 0.32),
    inset 0 1px 0 rgba(254, 215, 170, 0.2);
}

.panel--month.is-season-summer::before {
  opacity: 1;
  background: radial-gradient(ellipse 85% 65% at 42% -8%, rgba(251, 146, 60, 0.42), transparent 70%);
}

.panel--month.is-season-autumn {
  background: linear-gradient(
    155deg,
    rgba(217, 119, 6, 0.24) 0%,
    rgba(120, 53, 15, 0.2) 42%,
    rgba(67, 56, 202, 0.24) 100%
  );
  border-color: rgba(252, 211, 77, 0.3);
  box-shadow:
    0 8px 32px rgba(92, 25, 9, 0.3),
    inset 0 1px 0 rgba(253, 230, 138, 0.16);
}

.panel--month.is-season-autumn::before {
  opacity: 1;
  background: radial-gradient(ellipse 88% 68% at 55% -12%, rgba(245, 158, 11, 0.35), transparent 72%);
}

.panel--month.is-season-winter {
  background: linear-gradient(
    155deg,
    rgba(56, 189, 248, 0.18) 0%,
    rgba(30, 27, 75, 0.42) 48%,
    rgba(99, 102, 241, 0.2) 100%
  );
  border-color: rgba(125, 211, 252, 0.28);
  box-shadow:
    0 8px 32px rgba(15, 23, 42, 0.45),
    inset 0 1px 0 rgba(186, 230, 253, 0.14);
}

.panel--month.is-season-winter::before {
  opacity: 1;
  background: radial-gradient(ellipse 90% 72% at 50% -5%, rgba(147, 197, 253, 0.32), transparent 75%);
}

.calendar-toolbar {
  margin-bottom: 0.85rem;
  flex-shrink: 0;
}

.calendar-mode {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.2rem;
  padding: 3px;
  border-radius: 999px;
  background: rgba(15, 10, 40, 0.45);
  border: 1px solid rgba(186, 160, 255, 0.14);
}

.calendar-mode__views {
  display: inline-flex;
  gap: 0.2rem;
}

.calendar-mode__btn {
  border: none;
  background: transparent;
  color: rgba(237, 233, 254, 0.65);
  font-family: inherit;
  font-size: 0.78rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
}

.calendar-mode__btn.is-active {
  background: rgba(139, 92, 246, 0.38);
  color: #f5f1ff;
}

.calendar-mode__btn:hover:not(.is-active) {
  color: #ede9fe;
}

.calendar-mode__zh {
  display: block;
  line-height: 1.25;
}

.calendar-mode__en {
  display: block;
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  opacity: 0.72;
  line-height: 1.2;
}

.calendar-mode__zone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.05rem;
  height: 1.05rem;
  margin-bottom: 0.08rem;
  border-radius: 999px;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  color: rgba(255, 248, 240, 0.92);
  background: rgba(139, 92, 246, 0.55);
  border: 1px solid rgba(200, 170, 255, 0.35);
}

.calendar-mode__secondary {
  display: inline-flex;
  gap: 0.15rem;
  align-items: stretch;
  padding-left: 0.15rem;
  margin-left: 0.1rem;
  border-left: 1px solid rgba(186, 160, 255, 0.14);
}

.calendar-mode__btn--secondary {
  opacity: 0.78;
  font-size: 0.72rem;
  padding: 0.32rem 0.65rem;
}

.calendar-mode__btn--secondary .calendar-mode__en {
  font-size: 0.52rem;
}

.calendar-mode__btn--link {
  text-decoration: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.calendar-mode__btn--link:hover {
  background: rgba(78, 205, 196, 0.18);
  color: #e8fffb;
}

.calendar-mode__btn--primary,
.calendar-mode__btn--primary.calendar-mode__btn--heart {
  min-width: 5rem;
  padding: 0.48rem 1rem 0.42rem 1.15rem;
  font-weight: 700;
  color: rgba(255, 248, 240, 0.96);
  background: linear-gradient(145deg, rgba(255, 120, 90, 0.38), rgba(139, 92, 246, 0.45));
  border: 1px solid rgba(255, 160, 120, 0.35);
  box-shadow: 0 0 18px rgba(255, 120, 90, 0.22);
}

.calendar-mode__btn--primary .calendar-mode__zh {
  font-size: 0.84rem;
  letter-spacing: 0.04em;
}

.calendar-mode__btn--primary:hover {
  color: #fff;
  background: linear-gradient(145deg, rgba(255, 130, 100, 0.48), rgba(159, 112, 255, 0.52));
}

.year-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.year-nav__btn {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid rgba(186, 160, 255, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: #ede9fe;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
}

.year-nav__btn:hover {
  background: rgba(255, 255, 255, 0.08);
}

.year-nav__title {
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 0;
  text-align: center;
}

.liuyue-sisters {
  margin-bottom: 0.35rem;
}

.liuyue-sisters__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.liuyue-sister-chip {
  appearance: none;
  border: 1px solid rgba(186, 160, 255, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(237, 233, 254, 0.88);
  font: inherit;
  font-size: 0.68rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.liuyue-sister-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(186, 160, 255, 0.32);
}

.liuyue-sister-chip--current {
  border-color: rgba(251, 191, 36, 0.35);
  color: #fde68a;
}

.liuyue-sister-chip--active {
  background: rgba(52, 211, 153, 0.12);
  border-color: rgba(52, 211, 153, 0.35);
  color: #a7f3d0;
}

.liuyue-compare {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.liuyue-compare-fold {
  margin-top: 0.35rem;
}

.liuyue-compare-fold__summary {
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(237, 233, 254, 0.82);
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(186, 160, 255, 0.14);
  list-style: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.liuyue-compare-fold__summary::-webkit-details-marker {
  display: none;
}

.liuyue-compare-fold__summary::before {
  content: '▸ ';
  display: inline-block;
  opacity: 0.55;
  transition: transform 0.15s ease;
}

.liuyue-compare-fold[open] .liuyue-compare-fold__summary::before {
  transform: rotate(90deg);
}

.liuyue-compare-fold__summary:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(186, 160, 255, 0.24);
}

.liuyue-compare-fold__body {
  padding-top: 0.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.liuyue-row__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.35rem;
}

.liuyue-row__year {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.liuyue-board {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.25rem 0 0.65rem;
  -webkit-overflow-scrolling: touch;
}

.liuyue-pillar {
  flex: 0 0 3rem;
  min-width: 3rem;
  text-align: center;
}

button.liuyue-pillar {
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

button.liuyue-pillar:hover .liuyue-pillar__body {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.28),
    0 0 20px rgba(186, 160, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

button.liuyue-pillar:hover .liuyue-pillar__stem,
button.liuyue-pillar:hover .liuyue-pillar__branch {
  filter: brightness(1.06);
}

.liuyue-pillar__meta {
  font-size: 0.56rem;
  line-height: 1.25;
  opacity: 0.55;
  margin-bottom: 0.3rem;
  white-space: nowrap;
}

.liuyue-pillar__term {
  display: block;
}

.liuyue-pillar__date {
  display: block;
  opacity: 0.85;
}

.liuyue-pillar__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.22rem;
  min-height: 3.35rem;
  border-radius: 14px;
  padding: 0.32rem 0.22rem;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.14) 0%,
    rgba(255, 255, 255, 0.05) 48%,
    rgba(255, 255, 255, 0.02) 100%
  );
  backdrop-filter: blur(22px) saturate(1.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.24),
    0 2px 6px rgba(0, 0, 0, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(0, 0, 0, 0.06);
  transition:
    transform 0.22s cubic-bezier(0.25, 0.1, 0.25, 1),
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.liuyue-pillar--active .liuyue-pillar__body {
  background: linear-gradient(
    165deg,
    rgba(253, 230, 138, 0.22) 0%,
    rgba(251, 191, 36, 0.1) 55%,
    rgba(255, 255, 255, 0.06) 100%
  );
  border-color: rgba(253, 230, 138, 0.42);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.26),
    0 0 0 1px rgba(251, 191, 36, 0.18),
    0 0 24px rgba(251, 191, 36, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.32);
}

.liuyue-pillar__stem,
.liuyue-pillar__branch {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 1.38rem;
  border-radius: 9px;
  font-weight: 600;
  line-height: 1;
  font-size: clamp(1rem, 2.2vw, 1.2rem);
  letter-spacing: 0.02em;
  backdrop-filter: blur(16px) saturate(1.5);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, 0.24);
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 4px 14px rgba(0, 0, 0, 0.16);
}

.liuyue-pillar__stem::before,
.liuyue-pillar__branch::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    168deg,
    rgba(255, 255, 255, 0.38) 0%,
    rgba(255, 255, 255, 0.1) 36%,
    transparent 58%
  );
  pointer-events: none;
  z-index: 0;
}

.liuyue-pillar__stem,
.liuyue-pillar__branch {
  z-index: 1;
}

.liuyue-pillar__branch {
  margin-top: 0;
}

/* 五行 · 磨砂透光色片（Apple 时间组件风格） */
.liuyue-pillar__wx--木 {
  color: #dcfce7;
  background: linear-gradient(
    168deg,
    rgba(187, 247, 208, 0.55) 0%,
    rgba(110, 231, 183, 0.28) 52%,
    rgba(52, 211, 153, 0.14) 100%
  );
  border-color: rgba(167, 243, 208, 0.45);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.48),
    inset 0 -1px 0 rgba(16, 120, 80, 0.12),
    0 0 18px rgba(134, 239, 172, 0.32),
    0 4px 14px rgba(0, 0, 0, 0.14);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 12px rgba(167, 243, 208, 0.55);
}

.liuyue-pillar__wx--火 {
  color: #ffe4e6;
  background: linear-gradient(
    168deg,
    rgba(253, 164, 175, 0.52) 0%,
    rgba(251, 113, 133, 0.3) 52%,
    rgba(244, 63, 94, 0.14) 100%
  );
  border-color: rgba(253, 164, 175, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.46),
    inset 0 -1px 0 rgba(159, 18, 57, 0.1),
    0 0 18px rgba(251, 113, 133, 0.34),
    0 4px 14px rgba(0, 0, 0, 0.14);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 12px rgba(253, 164, 175, 0.5);
}

.liuyue-pillar__wx--土 {
  color: #fef3c7;
  background: linear-gradient(
    168deg,
    rgba(232, 196, 140, 0.52) 0%,
    rgba(212, 165, 116, 0.3) 52%,
    rgba(180, 130, 70, 0.14) 100%
  );
  border-color: rgba(232, 196, 140, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.44),
    inset 0 -1px 0 rgba(120, 80, 30, 0.1),
    0 0 16px rgba(212, 165, 116, 0.28),
    0 4px 14px rgba(0, 0, 0, 0.14);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 10px rgba(232, 196, 140, 0.45);
}

.liuyue-pillar__wx--金 {
  color: #fef9c3;
  background: linear-gradient(
    168deg,
    rgba(253, 230, 138, 0.58) 0%,
    rgba(250, 204, 21, 0.32) 52%,
    rgba(202, 138, 4, 0.14) 100%
  );
  border-color: rgba(253, 230, 138, 0.48);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    inset 0 -1px 0 rgba(146, 100, 10, 0.1),
    0 0 20px rgba(253, 230, 138, 0.36),
    0 4px 14px rgba(0, 0, 0, 0.14);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 14px rgba(253, 230, 138, 0.55);
}

.liuyue-pillar__wx--水 {
  color: #e0f2fe;
  background: linear-gradient(
    168deg,
    rgba(186, 230, 253, 0.55) 0%,
    rgba(125, 211, 252, 0.3) 52%,
    rgba(56, 189, 248, 0.14) 100%
  );
  border-color: rgba(186, 230, 253, 0.45);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.48),
    inset 0 -1px 0 rgba(12, 74, 110, 0.1),
    0 0 18px rgba(125, 211, 252, 0.34),
    0 4px 14px rgba(0, 0, 0, 0.14);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 0 12px rgba(186, 230, 253, 0.52);
}

.liuyue-compare__bridge {
  text-align: center;
  padding: 0.15rem 0 0.45rem;
}

.liuyue-compare__badge {
  display: inline-block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  background: rgba(52, 211, 153, 0.1);
  color: #a7f3d0;
  border: 1px solid rgba(52, 211, 153, 0.18);
}

.liuyue-compare__note {
  margin: 0.3rem 0 0;
  font-size: 0.68rem;
  opacity: 0.52;
}

/* ── 年历 · 流月：大屏展示（留白 · 防重叠） ── */
body.is-year-view .next {
  overflow-x: hidden;
  overflow-y: auto;
  padding: clamp(1rem, 2.5vh, 1.75rem) clamp(1rem, 3vw, 2.25rem);
}

body.is-year-view .next__inner--calendar {
  max-width: min(68rem, calc(100% - 0.5rem));
  width: 100%;
  margin: 0 auto;
  min-height: 0;
  padding-bottom: 0.5rem;
}

body.is-year-view .dashboard-top {
  margin-bottom: clamp(0.35rem, 1vh, 0.65rem);
  padding: 0.55rem 0.75rem 0.45rem;
}

body.is-year-view .dashboard-top__title-zh {
  font-size: clamp(0.95rem, 2vw, 1.15rem);
}

body.is-year-view .dashboard-top__status {
  display: none;
}

body.is-year-view .dashboard-stage {
  align-items: stretch;
  justify-content: flex-start;
  flex: 1;
  min-height: 0;
  padding: clamp(0.25rem, 0.8vh, 0.5rem) 0;
}

body.is-year-view .panel--month {
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  width: 100%;
  max-height: calc(100dvh - 8.5rem);
  min-height: 0;
  padding: clamp(0.85rem, 1.8vw, 1.35rem) clamp(0.75rem, 1.5vw, 1.25rem);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body.is-year-view .calendar-toolbar {
  margin-bottom: clamp(0.45rem, 1vh, 0.75rem);
  flex-shrink: 0;
}

body.is-year-view .calendar-view--year {
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  min-height: 0;
}

body.is-year-view .year-nav {
  flex-shrink: 0;
  margin-bottom: clamp(0.45rem, 1vh, 0.85rem);
}

body.is-year-view .year-nav__title {
  font-size: clamp(0.95rem, 2vw, 1.25rem);
}

body.is-year-view .year-nav__btn {
  width: 2.35rem;
  height: 2.35rem;
  font-size: 1.2rem;
}

body.is-year-view .year-liuyue {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body.is-year-view .liuyue-sisters {
  flex-shrink: 0;
  margin-bottom: clamp(0.35rem, 0.9vh, 0.55rem);
}

body.is-year-view .liuyue-compare-fold {
  flex-shrink: 0;
}

body.is-year-view .liuyue-compare-fold__summary {
  text-align: center;
  font-size: clamp(0.78rem, 1.35vw, 0.92rem);
  padding: clamp(0.45rem, 1vh, 0.6rem) 0.65rem;
}

body.is-year-view .liuyue-sisters__chips {
  justify-content: center;
}

body.is-year-view .liuyue-compare {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-height: 0;
}

body.is-year-view .liuyue-row {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

body.is-year-view .liuyue-row__head {
  margin-bottom: 0.45rem;
  flex-shrink: 0;
}

body.is-year-view .liuyue-row__year {
  font-size: clamp(0.88rem, 1.6vw, 1.1rem);
}

body.is-year-view .liuyue-board {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: clamp(0.25rem, 0.65vw, 0.55rem);
  overflow-x: auto;
  overflow-y: visible;
  padding: 0.15rem 0 0.35rem;
  flex-shrink: 0;
  -webkit-overflow-scrolling: touch;
}

body.is-year-view .liuyue-pillar {
  flex: 1 1 0;
  min-width: clamp(2.35rem, 4.2vw, 3.1rem);
  max-width: 4.25rem;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}

body.is-year-view .liuyue-pillar__meta {
  font-size: clamp(0.5rem, 0.85vw, 0.65rem);
  margin-bottom: 0.25rem;
  flex-shrink: 0;
}

body.is-year-view .liuyue-pillar__body {
  flex: 0 0 auto;
  min-height: clamp(3.25rem, 11vh, 5.5rem);
  max-height: 5.75rem;
  border-radius: 13px;
  padding: 0.3rem 0.18rem;
  gap: 0.18rem;
}

body.is-year-view .liuyue-pillar__stem,
body.is-year-view .liuyue-pillar__branch {
  flex: 0 0 auto;
  min-height: clamp(1.25rem, 4vh, 1.85rem);
  font-size: clamp(0.92rem, 2.2vw, 1.45rem);
  border-radius: 8px;
}

body.is-year-view .liuyue-compare__bridge {
  flex: 0 0 auto;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0.65rem 0;
  margin: 0.15rem 0;
}

body.is-year-view .liuyue-compare__badge {
  font-size: 0.68rem;
  padding: 0.24rem 0.65rem;
}

body.is-year-view .liuyue-compare__note {
  font-size: 0.66rem;
  margin-top: 0.35rem;
}

/* 流月折叠 · 居中模态 */
.liuyue-fold {
  position: fixed;
  inset: 0;
  z-index: 102;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 3vw, 2rem);
  pointer-events: none;
  visibility: hidden;
}

.liuyue-fold:not([hidden]) {
  pointer-events: none;
  visibility: visible;
}

.liuyue-fold__backdrop,
.liuyue-fold__dialog {
  pointer-events: auto;
}

.liuyue-fold[hidden] {
  display: none !important;
}

.liuyue-fold__backdrop {
  position: absolute;
  inset: 0;
  border: none;
  padding: 0;
  margin: 0;
  background: rgba(1, 6, 18, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}

.liuyue-fold__dialog {
  position: relative;
  z-index: 1;
  width: min(52rem, 100%);
  max-height: min(90vh, 100%);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.liuyue-fold__inner {
  padding: clamp(1.15rem, 2.5vw, 1.75rem);
  border-radius: 20px;
  background: linear-gradient(
    145deg,
    rgba(12, 40, 90, 0.72) 0%,
    rgba(8, 28, 68, 0.82) 100%
  );
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(80, 160, 255, 0.22);
  box-shadow:
    0 24px 80px rgba(0, 20, 60, 0.55),
    inset 0 1px 0 rgba(120, 200, 255, 0.1);
}

.liuyue-fold__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(0.85rem, 2vh, 1.25rem);
}

.liuyue-fold__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  opacity: 0.72;
  color: rgba(186, 220, 255, 0.88);
}

.liuyue-fold__title {
  margin: 0;
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #eef4ff;
}

.liuyue-fold__close {
  appearance: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.05rem;
  border: 1px solid rgba(120, 180, 255, 0.22);
  background: rgba(0, 0, 0, 0.2);
  color: rgba(230, 240, 255, 0.92);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.liuyue-fold__close-en {
  font-size: 0.58rem;
  font-weight: 500;
  opacity: 0.72;
}

.liuyue-fold__close:hover {
  background: rgba(0, 100, 200, 0.28);
  border-color: rgba(120, 180, 255, 0.38);
}

.liuyue-fold__mirror-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: clamp(0.85rem, 2vh, 1.15rem);
}

.liuyue-fold-hero {
  text-align: center;
  padding: clamp(0.85rem, 2vw, 1.15rem);
  border-radius: 16px;
  background: rgba(15, 10, 40, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.liuyue-fold-liunian__lead,
.liuyue-fold-liuyue__lead {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  line-height: 1.5;
  opacity: 0.65;
  text-align: center;
}

.liuyue-fold-liuyue,
.liuyue-fold-liunian {
  padding: clamp(0.65rem, 1.5vw, 0.85rem) 0;
}

/* 流月 / 流年 · 与年历流月盘同式横排 */
.liuyue-fold-strip,
.liunian-board {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(0.25rem, 0.65vw, 0.55rem);
  overflow-x: auto;
  padding: 0.15rem 0 0.35rem;
  -webkit-overflow-scrolling: touch;
}

.liuyue-fold-strip-pillar,
.liunian-pillar {
  flex: 1 1 0;
  min-width: clamp(2.35rem, 4.2vw, 3.1rem);
  max-width: 4.25rem;
  text-align: center;
  flex-shrink: 0;
}

.liuyue-fold-strip-pillar__meta,
.liunian-pillar__meta {
  font-size: clamp(0.5rem, 0.85vw, 0.62rem);
  line-height: 1.25;
  opacity: 0.55;
  margin-bottom: 0.25rem;
  white-space: nowrap;
}

.liuyue-fold-strip-pillar__meta span,
.liunian-pillar__meta span {
  display: block;
}

.liuyue-fold-strip-pillar__body,
.liunian-pillar__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.18rem;
  min-height: clamp(3rem, 9vh, 4.5rem);
  border-radius: 13px;
  padding: 0.28rem 0.18rem;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.14) 0%,
    rgba(255, 255, 255, 0.05) 100%
  );
  backdrop-filter: blur(22px) saturate(1.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.liuyue-fold-strip-pillar__stem,
.liuyue-fold-strip-pillar__branch,
.liunian-pillar__stem,
.liunian-pillar__branch {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(1.15rem, 3.5vh, 1.65rem);
  font-size: clamp(0.88rem, 2vw, 1.25rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.liuyue-fold-strip-pillar--active .liuyue-fold-strip-pillar__body {
  border-color: rgba(251, 146, 60, 0.5);
  background: linear-gradient(
    165deg,
    rgba(251, 146, 60, 0.18) 0%,
    rgba(255, 255, 255, 0.06) 100%
  );
  box-shadow:
    0 0 0 1px rgba(251, 146, 60, 0.22),
    0 10px 28px rgba(124, 45, 18, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.liunian-pillar--mirror .liunian-pillar__body {
  border-color: rgba(251, 113, 133, 0.95);
  background: linear-gradient(
    165deg,
    rgba(251, 113, 133, 0.42) 0%,
    rgba(251, 146, 60, 0.28) 55%,
    rgba(255, 255, 255, 0.1) 100%
  );
  box-shadow:
    0 0 0 2px rgba(251, 113, 133, 0.55),
    0 0 28px rgba(251, 113, 133, 0.45),
    0 12px 32px rgba(124, 45, 18, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.liuyue-fold-strip-pillar--active .liuyue-fold-strip-pillar__meta {
  opacity: 1;
  color: #fed7aa;
}

.liunian-pillar--mirror .liunian-pillar__meta {
  opacity: 1;
  color: #ffe4e6;
  font-weight: 600;
}

.liunian-pillar--mirror .liunian-pillar__year {
  color: #fff1f2;
  font-weight: 700;
}

.liunian-pillar--mirror .liunian-pillar__stem,
.liunian-pillar--mirror .liunian-pillar__branch {
  border-color: rgba(255, 210, 180, 0.65);
  font-weight: 700;
  text-shadow: 0 0 12px rgba(251, 113, 133, 0.35);
}

.liuyue-fold-hero__label {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fdba74;
  opacity: 0.9;
}

.liuyue-fold-hero__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.45rem;
  width: min(100%, 11rem);
  min-height: clamp(5rem, 14vh, 7.5rem);
  margin: 0 auto;
  padding: 0.65rem 0.55rem;
  border-radius: 18px;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.16) 0%,
    rgba(255, 255, 255, 0.05) 100%
  );
  backdrop-filter: blur(22px) saturate(1.35);
  -webkit-backdrop-filter: blur(22px) saturate(1.35);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow:
    0 16px 40px rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.liuyue-fold-hero__stem,
.liuyue-fold-hero__branch {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(2rem, 6vh, 3rem);
  border-radius: 12px;
  font-size: clamp(1.75rem, 4.5vw, 2.75rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.liuyue-fold-hero__sub {
  margin: 0.55rem 0 0;
  font-size: clamp(0.72rem, 1.2vw, 0.85rem);
  line-height: 1.5;
  opacity: 0.72;
  color: #ede9fe;
}

.liuyue-fold__bridge {
  text-align: center;
  padding: 0.35rem 0.5rem;
}

.liuyue-fold__bridge-badge {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: rgba(251, 146, 60, 0.18);
  border: 1px solid rgba(253, 186, 116, 0.35);
  color: #fed7aa;
}

.liuyue-fold__bridge-note,
.liuyue-fold__bridge-span {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  line-height: 1.5;
  opacity: 0.62;
}

.liuyue-fold__cross {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.75rem;
  border-radius: 12px;
  background: rgba(15, 10, 40, 0.35);
  border: 1px solid rgba(186, 160, 255, 0.12);
  font-size: 0.78rem;
}

.liuyue-fold__cross-item--active {
  color: #fed7aa;
}

.liuyue-fold__cross-arrow {
  opacity: 0.45;
}

.liuyue-fold__similar-title {
  margin: 0 0 0.2rem;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: #c4b5fd;
}

.liuyue-fold__similar-lead {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  opacity: 0.5;
}

.liuyue-fold__similar-board {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  -webkit-overflow-scrolling: touch;
}

.liuyue-fold-year {
  appearance: none;
  flex: 0 0 auto;
  min-width: 5.5rem;
  border: 1px solid rgba(186, 160, 255, 0.18);
  background: rgba(15, 10, 40, 0.4);
  color: #ede9fe;
  font: inherit;
  text-align: center;
  padding: 0.55rem 0.65rem;
  border-radius: 14px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.liuyue-fold-year--current {
  border-color: rgba(251, 146, 60, 0.45);
  background: rgba(251, 146, 60, 0.14);
  color: #ffedd5;
}

.liuyue-fold-year:hover {
  transform: translateY(-2px);
  border-color: rgba(196, 181, 253, 0.38);
  background: rgba(139, 92, 246, 0.16);
}

.liuyue-fold-year__y {
  display: block;
  font-size: 0.92rem;
  font-weight: 600;
}

.liuyue-fold-year__gz {
  display: block;
  font-size: 0.78rem;
  margin-top: 0.15rem;
  letter-spacing: 0.06em;
}

.liuyue-fold-year__term {
  display: block;
  font-size: 0.62rem;
  margin-top: 0.2rem;
  opacity: 0.55;
}

.liuyue-fold__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(186, 160, 255, 0.12);
}

.liuyue-fold__action {
  appearance: none;
  border: 1px solid rgba(52, 211, 153, 0.32);
  background: rgba(52, 211, 153, 0.12);
  color: #a7f3d0;
  font: inherit;
  font-size: 0.78rem;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  cursor: pointer;
}

.liuyue-fold__action--ghost {
  border-color: rgba(186, 160, 255, 0.22);
  background: rgba(15, 10, 40, 0.35);
  color: rgba(237, 233, 254, 0.82);
}

.liuyue-fold__action:hover {
  filter: brightness(1.08);
}

.liuyue-fold__empty {
  margin: 0;
  font-size: 0.75rem;
  opacity: 0.5;
}

body.is-year-view .dashboard-footer {
  flex-shrink: 0;
  margin-top: clamp(0.65rem, 1.5vh, 1.25rem);
  padding-top: 0;
  padding-bottom: 0.5rem;
}

@media (max-height: 820px) {
  body.is-year-view .panel--month {
    max-height: calc(100dvh - 9rem);
  }

  body.is-year-view .liuyue-pillar__body {
    min-height: 2.85rem;
    max-height: 4.35rem;
  }

  body.is-year-view .liuyue-pillar__stem,
  body.is-year-view .liuyue-pillar__branch {
    min-height: 1.15rem;
    font-size: clamp(0.85rem, 1.8vw, 1.2rem);
  }

  body.is-year-view .liuyue-compare {
    gap: 0.9rem;
  }

  body.is-year-view .liuyue-compare__bridge {
    padding: 0.5rem 0;
  }
}

.almanac__fold .liuyue-pillar {
  flex: 0 0 2.55rem;
  min-width: 2.55rem;
}

.almanac__fold .liuyue-pillar__body,
.bazi-pan .liuyue-pillar__body {
  min-height: 2.85rem;
  border-radius: 12px;
}

.almanac__fold .liuyue-pillar__stem,
.almanac__fold .liuyue-pillar__branch,
.bazi-pan .liuyue-pillar__stem,
.bazi-pan .liuyue-pillar__branch {
  font-size: 0.95rem;
}

.month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(0.75rem, 1.5vh, 1rem);
}

.month-nav__btn {
  appearance: none;
  border: 1px solid rgba(186, 160, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #ede9fe;
  width: clamp(2rem, 3vw, 2.5rem);
  height: clamp(2rem, 3vw, 2.5rem);
  border-radius: 10px;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.9;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.month-nav__btn:hover {
  opacity: 1;
  border-color: rgba(196, 181, 253, 0.45);
  background: rgba(139, 92, 246, 0.2);
}

.month-nav__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  text-align: center;
}

.month-nav__title-row {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.month-nav__season-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  border: 1px solid transparent;
  opacity: 0.92;
}

.month-nav__season-tag.is-season-spring {
  color: #bbf7d0;
  background: rgba(16, 185, 129, 0.22);
  border-color: rgba(110, 231, 183, 0.35);
}

.month-nav__season-tag.is-season-summer {
  color: #fed7aa;
  background: rgba(251, 146, 60, 0.24);
  border-color: rgba(253, 186, 116, 0.38);
}

.month-nav__season-tag.is-season-autumn {
  color: #fde68a;
  background: rgba(245, 158, 11, 0.22);
  border-color: rgba(252, 211, 77, 0.34);
}

.month-nav__season-tag.is-season-winter {
  color: #bae6fd;
  background: rgba(56, 189, 248, 0.18);
  border-color: rgba(125, 211, 252, 0.32);
}

.month-nav__title-zh {
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  opacity: 0.92;
  color: #f5f3ff;
}

.month-nav__title-en {
  font-size: clamp(0.7rem, 0.85vw, 0.78rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  opacity: 0.5;
  color: #c4b5fd;
  text-transform: capitalize;
}

.xun-broadcast-bar {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0.35rem 0 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(180, 160, 255, 0.12);
}

.xun-broadcast-bar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.xun-broadcast-bar__label {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: rgba(196, 181, 253, 0.8);
}

.xun-broadcast-bar__more {
  flex-shrink: 0;
  font-size: 0.76rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(210, 195, 255, 0.88);
  text-decoration: none;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(180, 160, 255, 0.18);
  transition: background 0.15s ease, border-color 0.15s ease;
}

.xun-broadcast-bar__more:hover {
  background: rgba(140, 100, 220, 0.12);
  border-color: rgba(180, 160, 255, 0.32);
}

.xun-broadcast-bar__chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.xun-broadcast-bar__chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 48px;
  padding: 0.5rem 0.55rem;
  border-radius: 12px;
  border: 1px solid rgba(180, 160, 255, 0.15);
  background: rgba(0, 0, 0, 0.18);
  color: rgba(220, 210, 255, 0.55);
  font-family: inherit;
  font-size: 0.78rem;
  line-height: 1.25;
  text-align: center;
  cursor: default;
  -webkit-tap-highlight-color: transparent;
}

.xun-broadcast-bar__chip-label {
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
}

.xun-broadcast-bar__chip-hint {
  font-size: 0.68rem;
  line-height: 1.3;
  opacity: 0.75;
}

.xun-broadcast-bar__chip--has-content {
  color: rgba(235, 225, 255, 0.92);
  cursor: pointer;
}

.xun-broadcast-bar__chip--has-content:hover {
  border-color: rgba(180, 160, 255, 0.35);
  background: rgba(140, 100, 220, 0.12);
}

.xun-broadcast-bar__chip--has-content:active {
  transform: scale(0.98);
}

.xun-broadcast-bar__chip--current {
  box-shadow: 0 0 0 1px rgba(167, 139, 250, 0.45);
}

.xun-broadcast-bar__chip--open {
  background: rgba(140, 100, 220, 0.22);
  border-color: rgba(167, 139, 250, 0.5);
}

.xun-broadcast-bar__chip--empty {
  opacity: 0.55;
}

.xun-broadcast-bar__chip--empty .xun-broadcast-bar__chip-hint {
  opacity: 0.65;
}

.xun-broadcast-bar__chip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(167, 139, 250, 0.85);
}

.xun-broadcast-bar__chip:disabled {
  opacity: 0.55;
}

.xun-broadcast-bar__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  width: 100%;
  min-height: 52px;
  padding: 0.65rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(167, 139, 250, 0.35);
  background: linear-gradient(135deg, rgba(140, 100, 220, 0.45), rgba(90, 70, 170, 0.38));
  color: rgba(245, 240, 255, 0.96);
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

.xun-broadcast-bar__cta:hover {
  border-color: rgba(180, 160, 255, 0.5);
  background: linear-gradient(135deg, rgba(150, 110, 230, 0.55), rgba(100, 80, 180, 0.48));
}

.xun-broadcast-bar__cta:active {
  transform: scale(0.99);
}

.xun-broadcast-bar__cta-sub {
  font-size: 0.72rem;
  font-weight: 400;
  opacity: 0.82;
  letter-spacing: 0.02em;
}

.xun-broadcast-bar__cta--link {
  background: rgba(255, 255, 255, 0.04);
}

.xun-broadcast-bar__cta--empty {
  cursor: default;
  text-align: center;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(210, 195, 255, 0.82);
  background: rgba(255, 255, 255, 0.03);
}

.xun-broadcast-bar__cta--empty a {
  color: rgba(180, 200, 255, 0.95);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.month-cell--xun-broadcast {
  box-shadow: inset 0 0 0 1px rgba(167, 139, 250, 0.22);
}

body.xun-broadcast-fold-open {
  overflow: hidden;
}

.xun-broadcast-fold {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  visibility: hidden;
  pointer-events: none;
}

.xun-broadcast-fold:not([hidden]) {
  pointer-events: auto;
  visibility: visible;
}

.xun-broadcast-fold[hidden] {
  display: none;
}

.xun-broadcast-fold__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(8, 6, 18, 0.72);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.xun-broadcast-fold__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 42rem);
  max-height: min(85vh, 720px);
  overflow: auto;
  margin: 0 auto;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(32, 24, 56, 0.98), rgba(18, 12, 32, 0.98));
  border: 1px solid rgba(180, 160, 255, 0.18);
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);
}

@media (min-width: 640px) {
  .xun-broadcast-fold {
    padding: 1.5rem;
  }
}

.xun-broadcast-fold__inner {
  padding: 1.25rem 1.25rem 1.5rem;
}

.xun-broadcast-fold__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.xun-broadcast-fold__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: rgba(200, 180, 255, 0.75);
}

.xun-broadcast-fold__body .stories-article__block,
.xun-broadcast-fold__body .stories-article__block p,
.xun-broadcast-fold__body .stories-article__block h2,
.xun-broadcast-fold__body .stories-article__block li {
  color: rgba(235, 225, 255, 0.9);
}

.xun-broadcast-fold__title {
  margin: 0 0 0.25rem;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.35;
  color: rgba(245, 240, 255, 0.96);
}

.xun-broadcast-fold__meta {
  margin: 0;
  font-size: 0.78rem;
  color: rgba(180, 170, 210, 0.7);
}

.xun-broadcast-fold__scope {
  margin: 0.45rem 0 0;
  font-size: 0.76rem;
  line-height: 1.55;
  color: rgba(190, 175, 230, 0.72);
}

.xun-broadcast-fold__close {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(180, 160, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(235, 225, 255, 0.9);
  cursor: pointer;
}

.xun-broadcast-fold__close-en {
  font-size: 0.62rem;
  opacity: 0.65;
}

.xun-broadcast-fold__body {
  max-height: 50vh;
  overflow: auto;
  padding-right: 0.25rem;
}

.xun-broadcast-fold__lead {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.65;
  color: rgba(235, 225, 255, 0.88);
}

.xun-broadcast-fold__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(180, 160, 255, 0.12);
}

.xun-broadcast-fold__action {
  display: inline-block;
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
  font-size: 0.82rem;
  text-decoration: none;
  border: 1px solid rgba(180, 160, 255, 0.25);
  color: rgba(245, 240, 255, 0.95);
}

.xun-broadcast-fold__action--primary {
  background: linear-gradient(135deg, rgba(140, 100, 220, 0.55), rgba(100, 80, 180, 0.45));
}

.xun-broadcast-fold__action--ghost {
  background: transparent;
  border-color: rgba(180, 160, 255, 0.2);
  color: rgba(210, 195, 255, 0.88);
}

.xun-broadcast-fold__action--ghost:hover {
  background: rgba(140, 100, 220, 0.1);
  border-color: rgba(180, 160, 255, 0.32);
}

.xun-broadcast-fold__link {
  align-self: center;
  font-size: 0.78rem;
  color: rgba(210, 195, 255, 0.85);
}

.month-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: clamp(2px, 0.4vw, 6px);
  position: relative;
  z-index: 2;
}

.month-grid__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  font-size: clamp(0.65rem, 0.9vw, 0.75rem);
  text-align: center;
  padding: 0.35rem 0 0.5rem;
  font-weight: 500;
  color: #c4b5fd;
}

.month-grid__head-zh {
  opacity: 0.55;
  line-height: 1.1;
}

.month-grid__head-en {
  font-size: 0.58em;
  opacity: 0.4;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.1;
}

.month-cell {
  aspect-ratio: 1;
  min-height: clamp(2.75rem, 5vw, 4.5rem);
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  cursor: pointer;
  padding: 4px 2px;
  font-family: inherit;
  color: rgba(237, 233, 254, 0.92);
  position: relative;
  z-index: 1;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.month-cell:hover:not(.month-cell--selected) {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(186, 160, 255, 0.15);
}

.month-cell:disabled,
.month-cell--empty {
  visibility: hidden;
  pointer-events: none;
}

.month-cell__day {
  font-size: clamp(0.85rem, 1.05vw, 1rem);
  font-weight: 500;
  line-height: 1;
}

.month-cell__sub {
  font-size: clamp(0.55rem, 0.75vw, 0.68rem);
  opacity: 0.5;
  line-height: 1.1;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 2px;
}

.month-cell__ganzhi {
  font-size: clamp(0.5rem, 0.65vw, 0.6rem);
  opacity: 0.38;
  letter-spacing: 0.04em;
  line-height: 1.1;
  margin-top: 1px;
}

.month-cell__record-dot {
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 3px;
  border-radius: 999px;
  background: rgba(167, 139, 250, 0.42);
  pointer-events: none;
}

.month-cell__prep-dot {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 3px;
  height: 3px;
  border-radius: 999px;
  background: rgba(244, 114, 182, 0.5);
  pointer-events: none;
}

.month-cell--selected .month-cell__record-dot {
  background: rgba(237, 233, 254, 0.55);
}

.month-cell--selected .month-cell__prep-dot {
  background: rgba(251, 207, 232, 0.75);
}

.month-cell--kindred:not(.month-cell--selected) {
  box-shadow: inset 0 0 0 1px rgba(251, 191, 36, 0.35);
}

.month-cell--kindred:not(.month-cell--selected) .month-cell__ganzhi {
  opacity: 0.95;
  color: #fde68a;
  font-weight: 600;
}

.month-cell--kindred:not(.month-cell--selected)::after {
  content: '';
  position: absolute;
  top: 4px;
  right: 4px;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(251, 191, 36, 0.9);
}

.month-cell--cycle-start:not(.month-cell--selected) {
  background: rgba(244, 114, 182, 0.1);
  box-shadow: inset 0 -2px 0 rgba(251, 113, 180, 0.75);
}

.month-cell--cycle-predict-exact:not(.month-cell--selected)::before {
  content: '';
  position: absolute;
  inset: clamp(3px, 10%, 7px);
  border-radius: 50%;
  border: 2px dashed rgba(251, 113, 180, 0.88);
  background: rgba(244, 114, 182, 0.1);
  box-shadow: 0 0 10px rgba(244, 114, 182, 0.28);
  pointer-events: none;
  z-index: 0;
}

.month-cell--cycle-window-bracket-start:not(.month-cell--selected)::before,
.month-cell--cycle-window-bracket-end:not(.month-cell--selected)::before {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.month-cell--cycle-window-bracket-start:not(.month-cell--selected)::before {
  left: 4px;
  top: 16%;
  bottom: 16%;
  width: 4px;
  border-left: 2px dashed rgba(251, 113, 180, 0.62);
  border-top: 2px dashed rgba(251, 113, 180, 0.62);
  border-bottom: 2px dashed rgba(251, 113, 180, 0.62);
  border-radius: 5px 0 0 5px;
}

.month-cell--cycle-window-bracket-end:not(.month-cell--selected)::before {
  right: 4px;
  top: 16%;
  bottom: 16%;
  width: 4px;
  border-right: 2px dashed rgba(251, 113, 180, 0.62);
  border-top: 2px dashed rgba(251, 113, 180, 0.62);
  border-bottom: 2px dashed rgba(251, 113, 180, 0.62);
  border-radius: 0 5px 5px 0;
}

.month-cell--cycle-start:not(.month-cell--selected)::after {
  content: '始';
  position: absolute;
  top: 3px;
  left: 4px;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: 999px;
  font-size: 0.55rem;
  font-weight: 700;
  line-height: 14px;
  text-align: center;
  color: #831843;
  background: rgba(251, 207, 232, 0.95);
  z-index: 2;
}

.month-cell--cycle-start:not(.month-cell--selected) .month-cell__day,
.month-cell--cycle-start:not(.month-cell--selected) .month-cell__sub,
.month-cell--cycle-start:not(.month-cell--selected) .month-cell__ganzhi,
.month-cell--cycle-predict-exact:not(.month-cell--selected) .month-cell__day,
.month-cell--cycle-predict-exact:not(.month-cell--selected) .month-cell__sub,
.month-cell--cycle-predict-exact:not(.month-cell--selected) .month-cell__ganzhi,
.month-cell--cycle-window-bracket-start:not(.month-cell--selected) .month-cell__day,
.month-cell--cycle-window-bracket-start:not(.month-cell--selected) .month-cell__sub,
.month-cell--cycle-window-bracket-start:not(.month-cell--selected) .month-cell__ganzhi,
.month-cell--cycle-window-bracket-end:not(.month-cell--selected) .month-cell__day,
.month-cell--cycle-window-bracket-end:not(.month-cell--selected) .month-cell__sub,
.month-cell--cycle-window-bracket-end:not(.month-cell--selected) .month-cell__ganzhi {
  position: relative;
  z-index: 1;
}

.month-cell__sub--cycle-start {
  opacity: 1 !important;
  font-weight: 600 !important;
  color: #fbcfe8 !important;
}

.month-cell--selected .month-cell__ganzhi {
  opacity: 1;
  color: #fff;
}

.month-cell--term:not(.month-cell--selected) {
  color: #86efac;
}

.month-cell--term:not(.month-cell--selected) .month-cell__sub {
  color: #6ee7b7;
  opacity: 0.95;
  font-weight: 500;
}

.month-cell--festival:not(.month-cell--selected) {
  color: #a5b4fc;
}

.month-cell--festival:not(.month-cell--selected) .month-cell__sub {
  color: #93c5fd;
  opacity: 0.95;
  font-weight: 500;
}

.month-cell--today:not(.month-cell--selected) .month-cell__day {
  position: relative;
}

.month-cell--today:not(.month-cell--selected) .month-cell__day::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -3px;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #c4b5fd;
  box-shadow: 0 0 6px rgba(196, 181, 253, 0.8);
}

.month-cell--selected {
  background: var(--glass-gradient-strong);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  border-color: rgba(196, 181, 253, 0.45);
  box-shadow:
    0 4px 16px rgba(99, 102, 241, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.month-cell--selected .month-cell__sub {
  color: rgba(255, 255, 255, 0.88);
  opacity: 1;
}

.month-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: center;
  margin-top: 0.85rem;
  font-size: 0.68rem;
  opacity: 0.55;
  color: #c4b5fd;
}

.month-legend__item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.month-legend__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 2px;
}

.month-legend__dot--term { background: #6ee7b7; box-shadow: 0 0 6px rgba(110, 231, 183, 0.5); }
.month-legend__dot--festival { background: #93c5fd; box-shadow: 0 0 6px rgba(147, 197, 253, 0.5); }
.month-legend__dot--kindred { background: #fbbf24; box-shadow: 0 0 6px rgba(251, 191, 36, 0.45); }
.month-legend__dot--cycle-start {
  background: rgba(244, 114, 182, 0.22);
  box-shadow: inset 0 -2px 0 rgba(251, 113, 180, 0.85);
}

.month-legend__dot--cycle-predict-exact {
  background: transparent;
  border: 2px dashed rgba(251, 113, 180, 0.88);
  box-shadow: 0 0 6px rgba(244, 114, 182, 0.3);
}

.month-legend__dot--cycle-predict-window {
  background: transparent;
  border: 2px dashed rgba(251, 113, 180, 0.55);
  box-shadow: none;
}

.month-legend__cycle-note {
  flex: 1 1 100%;
  width: 100%;
  margin: 0.15rem 0 0;
  text-align: center;
  font-size: 0.65rem;
  line-height: 1.45;
  color: rgba(251, 207, 232, 0.62);
}

.month-legend__bar {
  display: inline-block;
  width: 0.35rem;
  height: 0.85rem;
  border-radius: 2px;
}

.month-legend__bar--wx-high { background: rgba(134, 239, 172, 0.85); }
.month-legend__bar--wx-mid { background: rgba(251, 191, 36, 0.85); }
.month-legend__bar--wx-low { background: rgba(248, 113, 113, 0.85); }

.month-legend__wx-note {
  flex: 1 1 100%;
  width: 100%;
  margin: 0.1rem 0 0;
  text-align: center;
  font-size: 0.65rem;
  line-height: 1.45;
  color: rgba(196, 181, 253, 0.55);
}

.month-cell--wx-high:not(.month-cell--selected) {
  box-shadow:
    inset 3px 0 0 rgba(134, 239, 172, 0.85),
    inset 0 0 0 1px rgba(134, 239, 172, 0.12);
}

.month-cell--wx-mid:not(.month-cell--selected) {
  box-shadow:
    inset 3px 0 0 rgba(251, 191, 36, 0.85),
    inset 0 0 0 1px rgba(251, 191, 36, 0.1);
}

.month-cell--wx-low:not(.month-cell--selected) {
  box-shadow:
    inset 3px 0 0 rgba(248, 113, 113, 0.88),
    inset 0 0 0 1px rgba(248, 113, 113, 0.12);
}

.notion-companion-host {
  margin-top: 0.75rem;
}

.notion-companion {
  padding: clamp(0.85rem, 1.4vw, 1.1rem);
  border-radius: 14px;
  border: 1px solid rgba(130, 165, 255, 0.22);
  background: linear-gradient(
    155deg,
    rgba(18, 32, 62, 0.38) 0%,
    rgba(32, 22, 52, 0.32) 100%
  );
}

.notion-companion__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 190, 235, 0.72);
}

.notion-companion__title {
  margin: 0 0 0.35rem;
  font-size: clamp(0.88rem, 1vw, 0.96rem);
  font-weight: 600;
  color: rgba(235, 242, 255, 0.94);
}

.notion-companion__lead {
  margin: 0 0 0.55rem;
  font-size: clamp(0.78rem, 0.92vw, 0.84rem);
  line-height: 1.55;
  color: rgba(170, 195, 230, 0.86);
}

.notion-companion__links {
  margin: 0;
  font-size: 0.78rem;
}

.notion-companion__link {
  color: rgba(160, 210, 255, 0.92);
  text-decoration: none;
}

.notion-companion__link:hover {
  text-decoration: underline;
}

.almanac__wx-health {
  margin: 0.85rem 0;
  padding: 0.75rem 0.85rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
}

.almanac__wx-health--high { border-color: rgba(134, 239, 172, 0.35); }
.almanac__wx-health--mid { border-color: rgba(251, 191, 36, 0.35); }
.almanac__wx-health--low { border-color: rgba(248, 113, 113, 0.35); }

.almanac__wx-yong {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: rgba(150, 205, 255, 0.88);
}

.almanac__wx-health-label {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.55;
}

.almanac__wx-health-score {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.almanac__wx-health-meta {
  margin: 0;
  font-size: 0.72rem;
  opacity: 0.65;
  line-height: 1.45;
}

.almanac__wx-health-mode {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  opacity: 0.55;
  letter-spacing: 0.03em;
}

.almanac__wx-helix {
  margin: 0 0 0.5rem;
  font-size: 0.68rem;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: rgba(150, 200, 255, 0.75);
}

.almanac__wx-health--locked {
  display: block;
  width: 100%;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
  background: linear-gradient(
    145deg,
    rgba(88, 70, 180, 0.22) 0%,
    rgba(45, 35, 95, 0.35) 100%
  );
  border: 1px solid rgba(186, 160, 255, 0.18);
  transition: background 0.2s ease, border-color 0.2s ease;
}

.almanac__wx-health--locked:hover {
  background: linear-gradient(
    145deg,
    rgba(100, 80, 200, 0.28) 0%,
    rgba(55, 42, 110, 0.4) 100%
  );
  border-color: rgba(186, 160, 255, 0.28);
}

.almanac__wx-health-locked-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: #e9e0ff;
}

.almanac__wx-health-locked-hint {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  line-height: 1.65;
  opacity: 0.62;
}

.almanac__wx-health-locked-cta {
  font-size: 0.78rem;
  color: #c4b5fd;
  opacity: 0.85;
}

.birth-unlock-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.birth-unlock-form__step-hint {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: #c4b5fd;
  opacity: 0.92;
}

.birth-unlock-form__step-hint--error {
  color: #ffb4b4;
}

.birth-unlock-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.15rem;
}

.birth-unlock-form__actions .btn--primary,
.birth-unlock-form__actions .birth-unlock-form__submit {
  flex: 1 1 auto;
  min-width: 7rem;
}

.birth-unlock-form__back {
  flex: 0 0 auto;
}

.birth-unlock-form__remember {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(210, 220, 240, 0.9);
  cursor: pointer;
}

.birth-unlock-form__remember input {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.birth-unlock-form__remember-hint {
  margin: 0.15rem 0 0.35rem;
  font-size: 0.68rem;
  color: rgba(170, 185, 210, 0.72);
}

.birth-unlock-form__step .profile-field__input[type="date"],
.birth-unlock-form__step .profile-field__input[type="time"] {
  min-height: 2.75rem;
}

.birth-unlock-form__advanced {
  font-size: 0.78rem;
  opacity: 0.75;
}

.birth-unlock-form__advanced summary {
  cursor: pointer;
  margin-bottom: 0.5rem;
  color: #c4b5fd;
}

.environment-profile__fold {
  margin-top: 0.5rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}

.environment-profile__fold-summary {
  padding: 0.65rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
  cursor: pointer;
  list-style: none;
}

.environment-profile__fold-summary::-webkit-details-marker {
  display: none;
}

.environment-profile__fold-body {
  padding: 0 0.75rem 0.75rem;
}

.environment-profile__fold-body .profile-field--environment {
  border-top: none;
  padding-top: 0.35rem;
}

.birth-unlock-form__advanced .profile-field {
  margin-top: 0.5rem;
}

/* 语言习惯 · 地域常居 · L1 环境补益 */
.profile-field--environment {
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.profile-field--environment .profile-field__label {
  font-size: 0.88rem;
}

.environment-dialects {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.environment-dialect-row {
  display: grid;
  grid-template-columns: minmax(6rem, 1fr) minmax(7rem, 9rem);
  gap: 0.55rem;
  align-items: center;
}

.environment-dialect-row__label {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.82);
}

.environment-residence-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.35rem;
}

.environment-residence-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.78rem;
  cursor: pointer;
}

.environment-residence-chip:has(input:checked) {
  border-color: rgba(180, 220, 255, 0.35);
  background: rgba(100, 140, 220, 0.14);
}

.environment-residence-chips-label {
  margin-top: 0.65rem;
}

.environment-lang-row {
  display: grid;
  grid-template-columns: minmax(5rem, 1fr) minmax(5.5rem, 7rem) auto;
  gap: 0.45rem 0.55rem;
  align-items: center;
  margin-bottom: 0.45rem;
}

.environment-lang-row__main,
.environment-lang-child {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  cursor: pointer;
}

.environment-lang-child {
  font-size: 0.72rem;
  opacity: 0.85;
}

.almanac__wx-environment,
.me-dash-wx__environment {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(180, 220, 255, 0.88);
}

/* Day Drawer · 嵌入与 me 侧栏一致的分层能量条 */
.almanac__wx-layered {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.almanac__wx-layered .me-dash-wx--embedded {
  margin: 0;
}

.almanac__wx-layered .me-dash-wx__bars-title {
  margin-top: 0;
}

.almanac__wx-layered .me-dash-wx__layer-legend {
  font-size: 0.62rem;
  gap: 0.25rem 0.45rem;
}

.almanac__wx-layered .me-dash-bar {
  font-size: 0.72rem;
}

.almanac__wx-layered .me-dash-wx__water-callout {
  font-size: 0.68rem;
}

.me-helix-meta__env-impact {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(180, 220, 255, 0.82);
}

.me-helix-meta__environment dd {
  font-size: 0.82rem;
}

.almanac__wx-health-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.15rem;
}

.almanac__wx-health-edit {
  border: none;
  background: transparent;
  color: #c4b5fd;
  font-size: 0.72rem;
  cursor: pointer;
  opacity: 0.75;
  padding: 0.15rem 0.35rem;
}

.almanac__wx-health-edit:hover {
  opacity: 1;
}

.almanac__wx-natal {
  margin: 0.65rem 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(186, 160, 255, 0.12);
}

.almanac__wx-natal-label {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.5;
}

.almanac__wx-natal-pillars {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #e9e0ff;
}

.almanac__wx-natal-tst,
.almanac__wx-natal-place {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  line-height: 1.5;
  opacity: 0.65;
}

.almanac__wx-liuri {
  margin: 0 0 0.65rem;
  padding-left: 0.15rem;
  border-left: 2px solid rgba(186, 160, 255, 0.25);
}

.almanac__wx-transit--primary {
  opacity: 0.78;
  font-weight: 500;
}

.almanac__wx-transit {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  opacity: 0.58;
}

.almanac__wx-natal-base {
  margin: 0.5rem 0 0.35rem;
  font-size: 0.74rem;
  line-height: 1.55;
  color: #d4c4ff;
  opacity: 0.9;
}

.almanac__wx-score-note {
  font-size: 0.68rem;
  opacity: 0.55;
  font-weight: 400;
}

.almanac__wx-qiyun {
  opacity: 0.75;
}

.almanac__wx-drag {
  opacity: 0.7;
}

.almanac__wx-bottleneck {
  opacity: 0.85;
}

.almanac__wx-loss-entry {
  display: block;
  width: 100%;
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  text-align: left;
  font: inherit;
  color: inherit;
  border-radius: 0.55rem;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.almanac__wx-loss-entry--locked {
  background: linear-gradient(
    145deg,
    rgba(120, 60, 90, 0.22) 0%,
    rgba(55, 30, 70, 0.35) 100%
  );
  border: 1px solid rgba(255, 180, 200, 0.16);
}

.almanac__wx-loss-entry--locked:hover {
  border-color: rgba(255, 180, 200, 0.28);
  background: linear-gradient(
    145deg,
    rgba(140, 70, 100, 0.28) 0%,
    rgba(65, 35, 85, 0.4) 100%
  );
}

.almanac__wx-loss-entry--unlocked {
  background: rgba(0, 0, 0, 0.15);
  border: 1px solid rgba(186, 160, 255, 0.2);
}

.almanac__wx-loss-entry--unlocked:hover {
  border-color: rgba(186, 160, 255, 0.35);
}

.almanac__wx-loss-entry-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 500;
  color: #f5d0e0;
  margin-bottom: 0.25rem;
}

.almanac__wx-loss-entry--unlocked .almanac__wx-loss-entry-label {
  color: #e9e0ff;
}

.almanac__wx-loss-entry-teaser {
  display: block;
  font-size: 0.72rem;
  line-height: 1.55;
  opacity: 0.65;
  margin-bottom: 0.35rem;
}

.almanac__wx-loss-entry-cta {
  font-size: 0.72rem;
  color: #f0a8c0;
}

.almanac__wx-loss-entry--unlocked .almanac__wx-loss-entry-cta {
  color: #c4b5fd;
}

.loss-guide-modal__inner {
  max-width: 28rem;
  max-height: min(85vh, 640px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.loss-guide-modal--yong-jst .loss-guide-modal__inner {
  background: linear-gradient(
    165deg,
    #061222 0%,
    #0b2344 38%,
    #071828 72%,
    #040e18 100%
  );
  border: 1px solid rgba(56, 140, 220, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(130, 200, 255, 0.14),
    0 12px 32px rgba(2, 8, 22, 0.45);
}

.loss-guide-modal--yong-jst .unlock-modal__title,
.loss-guide-modal--yong-jst .loss-guide-item__title,
.loss-guide-modal--yong-jst .loss-guide-section__title {
  color: #e0f0ff;
}

.loss-guide-modal--yong-jst .unlock-modal__lead,
.loss-guide-modal--yong-jst .loss-guide-item__remedies,
.loss-guide-modal--yong-jst .loss-guide-climate {
  color: rgba(190, 220, 250, 0.78);
}

.loss-guide-body {
  overflow-y: auto;
  max-height: min(58vh, 480px);
  margin-top: 0.75rem;
  padding-right: 0.25rem;
}

.loss-guide-item {
  margin-bottom: 0.85rem;
  padding: 0.75rem;
  border-radius: 0.55rem;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(186, 160, 255, 0.12);
}

.loss-guide-item--high {
  border-color: rgba(255, 140, 160, 0.35);
}

.loss-guide-item--mid {
  border-color: rgba(255, 200, 140, 0.25);
}

.loss-guide-item__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.loss-guide-item__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: #e9e0ff;
}

.loss-guide-item__weak {
  font-size: 0.68rem;
  opacity: 0.55;
}

.loss-guide-item__damages {
  margin: 0 0 0.55rem;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  line-height: 1.55;
  opacity: 0.82;
}

.loss-guide-item__damages p {
  margin: 0.2rem 0 0;
  opacity: 0.75;
}

.loss-guide-item__layers {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.65rem;
  opacity: 0.55;
}

.loss-guide-item__remedy-label {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.5;
}

.loss-guide-item__remedies ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  line-height: 1.6;
  color: #d4c4ff;
}

.loss-guide-section {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(186, 160, 255, 0.12);
}

.loss-guide-section__title {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #e9e0ff;
}

.loss-guide-section__segment {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  opacity: 0.7;
}

.loss-guide-section__text,
.loss-guide-empty {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.6;
  opacity: 0.78;
}

.loss-guide-climate {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  line-height: 1.6;
  opacity: 0.82;
}

.bazi-pan {
  margin-top: 0.35rem;
  width: 100%;
}

.bazi-pan__board {
  display: grid;
  width: 100%;
  column-gap: clamp(0.2rem, 0.55vw, 0.38rem);
  row-gap: 0;
  align-items: start;
  padding: 0.15rem 0 0.35rem;
}

.bazi-pan__board--natal {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bazi-pan__board--full {
  grid-template-columns: repeat(4, minmax(0, 1fr)) 1px repeat(4, minmax(0, 1fr));
}

.bazi-pan .liuyue-pillar {
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.bazi-pan__sep {
  width: 1px;
  min-height: 2.85rem;
  margin: 1.85rem auto 0;
  align-self: start;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(255, 255, 255, 0.22) 30%,
    rgba(255, 255, 255, 0.22) 70%,
    transparent
  );
}

.bazi-pan .liuyue-pillar--transit .liuyue-pillar__term {
  color: rgba(253, 230, 138, 0.85);
  opacity: 1;
}

.bazi-pan .liuyue-pillar--transit-today .liuyue-pillar__body {
  border-color: rgba(96, 165, 250, 0.45);
  box-shadow:
    0 0 0 1px rgba(96, 165, 250, 0.2),
    0 10px 28px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.bazi-pan .liuyue-pillar__meta {
  font-size: clamp(0.5rem, 0.85vw, 0.62rem);
  margin-bottom: 0.25rem;
  min-height: 1.85rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  line-height: 1.25;
}

.bazi-pan .liuyue-pillar__body {
  width: 100%;
}

.bazi-pan .liuyue-pillar__stem,
.bazi-pan .liuyue-pillar__branch {
  width: 100%;
}

.bazi-pan__hidden {
  display: block;
  margin-top: 0.28rem;
  min-height: 2rem;
  font-size: clamp(0.48rem, 0.75vw, 0.58rem);
  line-height: 1.35;
  opacity: 0.55;
  word-break: break-all;
}

.bazi-pan__hidden--spacer {
  visibility: hidden;
  pointer-events: none;
}

.bazi-pan__meta {
  margin: 0.55rem 0 0;
  font-size: 0.68rem;
  opacity: 0.6;
  line-height: 1.45;
}

.panel {
  margin-bottom: 0;
}

.next__inner--calendar .btn--secondary {
  display: inline-flex;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .why__inner {
    max-width: 40rem;
  }

  .why__body p {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
  }
}

@media (max-width: 720px) {
  body.is-year-view .next {
    padding: 0.85rem 0.75rem;
  }

  body.is-year-view .next__inner--calendar {
    max-width: 100%;
  }

  body.is-year-view .liuyue-board {
    justify-content: flex-start;
  }

  body.is-year-view .liuyue-pillar {
    flex: 0 0 clamp(2.45rem, 7vw, 2.85rem);
    max-width: none;
  }

  body.is-year-view .liuyue-pillar__body {
    min-height: 3.25rem;
    max-height: 4.75rem;
  }
}

@media (min-width: 1200px) {
  :root {
    --page-pad: clamp(1.5rem, 2.5vw, 2.75rem);
  }

  .next__inner--calendar {
    max-width: min(58rem, calc(100% - 2rem));
  }

  .month-cell {
    min-height: clamp(3.5rem, 5vh, 5.5rem);
    border-radius: 12px;
  }

  .month-cell__day {
    font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  }
}

@media (min-width: 1600px) {
  .next__inner--calendar {
    max-width: min(60rem, calc(100% - 4rem));
  }

  .month-cell {
    min-height: clamp(4rem, 6vh, 6.5rem);
  }
}

@media (min-width: 1280px) {
  .day-drawer__panel {
    width: min(60rem, calc(100vw - 4rem));
  }
}

@media (max-width: 767px) {
  body.day-drawer-open .next {
    padding-right: 0;
  }

  .almanac__gods {
    flex-direction: column;
    gap: 0.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body::before,
  body::after {
    animation: none !important;
  }

  .hero,
  .why,
  .next,
  .btn--primary,
  .btn#start-btn,
  .btn#why-continue-btn,
  .btn--secondary,
  .day-drawer__panel,
  .day-drawer__backdrop,
  .dashboard-stage,
  .next__inner--calendar {
    transition: none !important;
  }
}

/* ── 我的 · DNA 螺旋页 ── */
body.me-body {
  min-height: 100vh;
  background: radial-gradient(ellipse 120% 80% at 50% -10%, rgba(78, 205, 196, 0.12), transparent 55%),
    radial-gradient(ellipse 90% 60% at 80% 100%, rgba(244, 162, 97, 0.1), transparent 50%),
    linear-gradient(165deg, #0a0e1a 0%, #12182b 45%, #0d1220 100%);
}

.me-page {
  max-width: 52rem;
  margin: 0 auto;
  padding: 1.25rem 1rem 3rem;
}

.me-header {
  margin-bottom: 1.5rem;
}

.me-header__back {
  color: rgba(200, 210, 240, 0.75);
  text-decoration: none;
  font-size: 0.85rem;
}

.me-header__back:hover {
  color: #fff;
}

.me-header__eyebrow {
  margin: 0.75rem 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(180, 200, 230, 0.55);
}

.me-header__title {
  margin: 0;
  font-size: clamp(1.6rem, 4vw, 2rem);
  font-weight: 600;
  color: #f0f4ff;
}

.me-header__lead {
  margin: 0.35rem 0 0;
  color: rgba(210, 220, 245, 0.72);
  font-size: 0.92rem;
  line-height: 1.5;
}

.me-header__natal {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  color: rgba(160, 200, 255, 0.85);
  font-variant-numeric: tabular-nums;
}

.me-dna {
  margin-bottom: 1.25rem;
  background: rgba(12, 18, 36, 0.72);
  border: 1px solid rgba(120, 160, 220, 0.16);
  border-radius: 1rem;
  padding: 1rem 1.1rem 1.15rem;
}

.me-dna__sub {
  margin: 0.2rem 0 0.85rem;
  font-size: 0.82rem;
  color: rgba(200, 210, 235, 0.62);
}

.me-dna__canvas-wrap {
  border-radius: 0.75rem;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(8, 12, 28, 0.9), rgba(6, 10, 22, 0.95));
  border: 1px solid rgba(100, 140, 200, 0.12);
  margin-bottom: 0.85rem;
}

.me-dna__canvas {
  display: block;
  width: 100%;
  height: clamp(22rem, 52vh, 28rem);
  cursor: crosshair;
}

.me-dna__locked {
  text-align: center;
  padding: 2rem 1rem;
  color: rgba(210, 220, 240, 0.7);
  font-size: 0.9rem;
}

.me-dna__locked .btn {
  margin-top: 0.85rem;
}

.me-dna__locked-hint {
  margin-top: 0.65rem;
  font-size: 0.78rem;
  color: rgba(170, 190, 220, 0.55);
}

.me-dna__legend {
  margin: 0;
  padding: 0 0 0 1.1rem;
  font-size: 0.78rem;
  color: rgba(190, 200, 225, 0.65);
  line-height: 1.55;
}

.me-dna__detail {
  margin-top: 0.85rem;
  padding: 0.85rem 1rem;
  border-radius: 0.65rem;
  background: rgba(20, 28, 52, 0.65);
  border: 1px solid rgba(140, 180, 240, 0.14);
}

.me-dna-detail__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  color: rgba(180, 200, 230, 0.6);
}

.me-dna-detail__title {
  margin: 0.2rem 0 0.55rem;
  font-size: 1.05rem;
  color: #f2f6ff;
}

.me-dna-detail__grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1rem;
  margin: 0;
  font-size: 0.82rem;
}

.me-dna-detail__grid dt {
  color: rgba(170, 185, 215, 0.65);
}

.me-dna-detail__grid dd {
  margin: 0;
  color: rgba(230, 238, 255, 0.92);
}

.me-dna-detail__tags {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: rgba(200, 215, 245, 0.75);
  line-height: 1.45;
}

.me-dna-detail__burst {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: #ffcc80;
}

.me-wuxing .panel__title {
  margin-bottom: 0.65rem;
}

.almanac__wx-health--me {
  border-radius: 0.75rem;
}

.me-footer {
  margin-top: 2rem;
  text-align: center;
}

.me-natal-line {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: rgba(200, 210, 230, 0.75);
}

.me-natal-edit {
  margin-left: 0.35rem;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: rgba(140, 190, 255, 0.9);
  text-decoration: underline;
  cursor: pointer;
}

.me-natal-edit:hover {
  color: rgba(180, 215, 255, 1);
}

.me-footer__note {
  font-size: 0.75rem;
  color: rgba(180, 190, 210, 0.45);
}

.me-error {
  color: rgba(255, 180, 180, 0.85);
  font-size: 0.9rem;
}

/* ── 生命仪表盘 · Life Helix Dashboard ── */
.me-page--dashboard {
  max-width: none;
  width: 100%;
  padding: 0.65rem clamp(0.85rem, 2.5vw, 2rem) 1.5rem;
}

.me-header--compact {
  margin-bottom: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
}

.me-header--compact .me-header__titles {
  flex: 1 1 12rem;
}

.me-export-panel {
  margin-top: 0.65rem;
  padding: 0.65rem 0.7rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(120, 160, 220, 0.22);
}

.me-export-panel__title {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(220, 230, 250, 0.92);
}

.me-export-panel__hint {
  margin: 0 0 0.55rem;
  font-size: 0.62rem;
  line-height: 1.45;
  color: rgba(170, 190, 220, 0.62);
}

.me-export {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.me-export__btn {
  flex: 1 1 8rem;
  width: auto;
  max-width: 100%;
  font-size: 0.72rem;
  padding: 0.45rem 0.65rem;
  min-width: 0;
}

.me-export__version {
  margin: 0.45rem 0 0;
  font-size: 0.62rem;
  color: rgba(140, 180, 220, 0.65);
  letter-spacing: 0.02em;
}

.me-export__decade-hint {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  line-height: 1.4;
  color: rgba(170, 200, 230, 0.72);
}

.me-dashboard {
  display: grid;
  grid-template-columns: minmax(14rem, 20rem) minmax(0, 1fr);
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
  align-items: stretch;
}

.user-guide {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0.85rem 1rem;
  font-size: 0.74rem;
  line-height: 1.6;
  color: rgba(195, 205, 225, 0.88);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.user-guide__title {
  margin: 0 0 0.5rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(220, 230, 250, 0.95);
}

.user-guide p {
  margin: 0.45rem 0 0;
}

.user-guide__list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
}

.user-guide__list li {
  margin-top: 0.35rem;
}

.user-guide__steps {
  margin-top: 0.55rem !important;
}

.user-guide__foot {
  margin-top: 0.55rem !important;
  font-size: 0.68rem;
  color: rgba(170, 185, 210, 0.65);
}

@media (max-width: 820px) {
  .me-dashboard {
    grid-template-columns: 1fr;
  }

  .me-dashboard--quadrant .me-quadrant-shell {
    grid-template-areas:
      "north"
      "center"
      "south";
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .me-dashboard--quadrant .me-quadrant--south {
    gap: 0.85rem;
  }

  .me-helix-duo {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .me-helix-duo__stage .me-helix-stage--3d {
    min-height: clamp(16rem, 50vh, 22rem);
  }

  .me-helix-duo__stage .me-helix-stage__viewport-wrap {
    min-height: clamp(14rem, 48vh, 20rem);
  }

  .me-helix-duo__stage .me-helix-stage__viewport {
    height: 100%;
    min-height: 0;
  }

  .me-quadrant-north__row .me-trend-chip {
    flex: 1 1 100%;
    max-width: none;
    min-width: 0;
  }
}

/* ── me 四象限布局（desktop） ── */
.me-dashboard--quadrant {
  grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
  gap: clamp(1rem, 1.8vw, 1.5rem);
  align-items: start;
}

.me-quadrant-shell {
  display: grid;
  grid-template-areas:
    "north"
    "center"
    "south";
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  gap: clamp(0.85rem, 1.4vw, 1.35rem);
  min-width: 0;
}

.me-quadrant-north__row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.55rem 0.75rem;
}

.me-quadrant-north__row .me-heart-status-host,
.me-quadrant-north__row .me-quadrant-trend-host {
  display: flex;
  align-items: stretch;
  margin: 0;
}

.me-quadrant-north__row .me-heart-status-host {
  flex: 1 1 16rem;
  min-width: 0;
}

.me-quadrant-north__row .me-quadrant-trend-host {
  flex: 0 0 auto;
}

.me-quadrant-north__row .me-heart-status {
  flex: 1 1 auto;
  width: 100%;
  min-height: 4.35rem;
}

.me-quadrant-north__row .me-trend-chip {
  height: 100%;
  min-height: 4.35rem;
}

.me-quadrant--north { grid-area: north; }
.me-quadrant--center { grid-area: center; min-width: 0; }
.me-quadrant--south { grid-area: south; display: flex; flex-direction: column; gap: 0.65rem; }

/* Helix + 奇点 · 主视觉并排 */
.me-helix-duo {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(15rem, 0.95fr);
  gap: clamp(0.75rem, 1.2vw, 1.1rem);
  align-items: stretch;
  min-height: clamp(22rem, calc(100vh - 20rem), 52rem);
}

.me-helix-duo__stage {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.me-helix-duo__stage .me-helix-stage--3d {
  flex: 1 1 auto;
  min-height: clamp(20rem, calc(100vh - 22rem), 50rem);
  display: flex;
  flex-direction: column;
}

.me-helix-duo__stage .me-helix-stage__viewport-wrap {
  flex: 1 1 auto;
  min-height: clamp(18rem, calc(100vh - 24rem), 46rem);
}

.me-helix-duo__singularity {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.me-helix-duo__singularity .me-singularity-host {
  flex: 1 1 auto;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.me-helix-duo__singularity .me-singularity {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: clamp(0.85rem, 1.2vw, 1.1rem);
  background: linear-gradient(155deg, rgba(28, 14, 48, 0.92), rgba(10, 18, 40, 0.88));
  border: 1px solid rgba(200, 130, 255, 0.38);
  border-radius: 0.85rem;
  box-shadow:
    0 0 32px rgba(140, 70, 220, 0.18),
    inset 0 1px 0 rgba(255, 200, 255, 0.08);
}

.me-helix-duo__singularity .me-singularity__title {
  font-size: clamp(0.95rem, 1.25vw, 1.12rem);
}

.me-helix-duo__singularity .me-singularity__primary {
  padding: 0.75rem 0.8rem;
  border-width: 1.5px;
  box-shadow: 0 0 18px rgba(255, 120, 60, 0.12);
}

.me-helix-duo__singularity .me-singularity__primary-title {
  font-size: clamp(0.92rem, 1.1vw, 1.05rem);
}

.me-helix-duo__singularity .me-singularity__key-list {
  flex: 1 1 auto;
  overflow-y: auto;
  max-height: none;
}

.me-dashboard--quadrant .me-quadrant__pathway .me-rhythm-pathway {
  display: none;
}

.me-dashboard--quadrant .me-quadrant--north .me-heart-status-host {
  margin-bottom: 0;
}

/* 7日流通 · 顶栏紧凑 chip（纯 sparkline，与跃迁窗同高） */
.me-trend-chip {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  min-width: 7.5rem;
  max-width: 10.5rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.55rem;
  background: rgba(8, 14, 28, 0.72);
  border: 1px solid rgba(100, 150, 210, 0.22);
  color: rgba(200, 215, 240, 0.88);
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
  box-sizing: border-box;
}

.me-trend-chip:hover {
  border-color: rgba(120, 190, 255, 0.38);
  background: rgba(12, 22, 42, 0.85);
}

.me-trend-chip__spark {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.16rem;
  width: 100%;
  height: 1.75rem;
}

.me-trend-chip__bar {
  flex: 1 1 0;
  min-width: 0.32rem;
  max-width: 0.75rem;
  border-radius: 0.14rem 0.14rem 0 0;
  background: rgba(100, 180, 255, 0.85);
}

.me-trend-chip__bar--good { background: var(--heart-tone-steady); }
.me-trend-chip__bar--mid { background: var(--heart-tone-accumulate); }
.me-trend-chip__bar--low { background: var(--heart-tone-leap); opacity: 0.75; }
.me-trend-chip__bar--empty { background: rgba(120, 140, 170, 0.25); }

.me-trend-chip__empty {
  font-size: 0.62rem;
  opacity: 0.55;
  align-self: center;
}

.me-quadrant-trend {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  height: 100%;
  margin: 0;
  padding: clamp(0.75rem, 1.2vw, 1rem);
  background: var(--glass-gradient);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  box-shadow:
    0 8px 32px rgba(10, 8, 35, 0.4),
    inset 0 1px 0 var(--glass-shine);
}

.me-quadrant-trend__title {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(170, 195, 235, 0.8);
}

.me-quadrant-trend__flow {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(220, 235, 255, 0.92);
}

.me-quadrant-spark {
  display: flex;
  align-items: flex-end;
  gap: 0.18rem;
  min-height: 3.2rem;
  padding: 0.25rem 0;
}

.me-quadrant-spark__bar {
  flex: 1;
  min-width: 0.28rem;
  border-radius: 0.15rem 0.15rem 0 0;
  background: rgba(100, 180, 255, 0.85);
}

.me-quadrant-spark__bar--good { background: var(--heart-tone-steady); }
.me-quadrant-spark__bar--mid { background: var(--heart-tone-accumulate); }
.me-quadrant-spark__bar--low { background: var(--heart-tone-leap); opacity: 0.75; }
.me-quadrant-spark__bar--empty { background: rgba(120, 140, 170, 0.25); }

.me-quadrant-spark__empty {
  font-size: 0.68rem;
  color: rgba(160, 180, 210, 0.7);
}

.me-quadrant-trend__meta {
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.4;
  color: rgba(160, 185, 220, 0.75);
}

.me-quadrant-trend__link {
  margin-top: auto;
  font-size: 0.68rem;
  color: rgba(150, 200, 255, 0.92);
  text-decoration: underline;
}

.me-quadrant-actions-host {
  margin-top: 0;
}

.me-quadrant-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.me-quadrant-actions__btn {
  flex: 1 1 auto;
  min-width: 6.5rem;
  padding: 0.42rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(100, 160, 220, 0.28);
  background: rgba(12, 22, 42, 0.65);
  color: rgba(210, 225, 250, 0.92);
  font-size: 0.72rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.me-quadrant-actions__btn:hover {
  border-color: rgba(120, 190, 255, 0.45);
  background: rgba(18, 32, 58, 0.8);
}

.me-quadrant-actions__btn--primary {
  border-color: rgba(0, 200, 255, 0.4);
  background: rgba(0, 80, 130, 0.35);
  color: rgba(190, 235, 255, 0.98);
}

.me-dashboard--quadrant .me-helix-duo .me-helix-stage--3d {
  min-height: clamp(20rem, calc(100vh - 22rem), 50rem);
}

.me-dashboard__panel-title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(180, 200, 230, 0.55);
  font-weight: 600;
}

.me-dashboard__left {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  position: sticky;
  top: 1rem;
  align-self: start;
}

.me-dashboard__fold {
  margin: 0;
  border-radius: 0.55rem;
  border: 1px solid rgba(100, 140, 200, 0.14);
  background: rgba(8, 14, 28, 0.35);
}

.me-dashboard__fold-summary {
  padding: 0.55rem 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(170, 195, 235, 0.75);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.me-dashboard__fold-summary::-webkit-details-marker {
  display: none;
}

.me-dashboard__fold-summary::before {
  content: '▸ ';
  display: inline-block;
  transition: transform 0.15s ease;
  color: rgba(130, 170, 220, 0.55);
}

.me-dashboard__fold[open] > .me-dashboard__fold-summary::before {
  transform: rotate(90deg);
}

.me-dashboard__fold-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0 0.55rem 0.65rem;
}

.me-dashboard__fold--longterm {
  margin-top: 0.65rem;
  border-color: rgba(180, 140, 255, 0.22);
  background: rgba(12, 8, 32, 0.42);
}

/* 四象限 center 行 · details 才是 grid 直接子项（main 在 fold 内） */
#me-zone4-fold.me-dashboard__fold--longterm {
  grid-area: center;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

#me-zone4-fold .me-dashboard__fold-body--longterm {
  flex: 0 1 auto;
  min-height: 0;
  overflow: visible;
}

#me-zone4-fold .me-quadrant--center {
  grid-area: unset;
  flex: 0 1 auto;
  min-height: auto;
  overflow: visible;
}

#me-zone4-fold .me-helix-duo {
  min-height: clamp(14rem, 38vh, 24rem);
}

#me-zone4-fold .me-helix-duo__stage .me-helix-stage--3d {
  min-height: clamp(12rem, 36vh, 22rem);
}

.me-dashboard--quadrant #me-zone4-fold .me-quadrant--center {
  min-height: auto;
}

.me-dashboard__fold-summary--longterm {
  color: rgba(200, 175, 255, 0.82);
  font-size: 0.74rem;
}

.me-dashboard__fold-body--longterm {
  padding-top: 0.35rem;
}

.me-quadrant__zone-label {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 190, 240, 0.55);
}

.me-guide {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.68rem;
  line-height: 1.55;
  color: rgba(195, 205, 225, 0.82);
}

.me-guide__summary {
  cursor: pointer;
  font-weight: 600;
  color: rgba(210, 220, 240, 0.9);
  list-style: none;
}

.me-guide__summary::-webkit-details-marker {
  display: none;
}

.me-guide__body p {
  margin: 0.45rem 0 0;
}

.me-guide__body p:first-child {
  margin-top: 0.5rem;
}

.me-dashboard__pan {
  margin-top: 0.85rem;
  font-size: 0.72rem;
  transform: scale(0.92);
  transform-origin: top left;
}

.me-mini-tst {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  color: rgba(160, 180, 210, 0.55);
}

.me-dash-wx__score {
  margin: 0;
  font-size: 2.4rem;
  font-weight: 300;
  color: #f0f4ff;
  line-height: 1;
}

.me-dash-wx__score span {
  font-size: 1rem;
  opacity: 0.45;
}

.me-dash-wx__tier {
  margin: 0.15rem 0 0.65rem;
  font-size: 0.85rem;
  color: rgba(200, 220, 255, 0.75);
}

.me-dash-wx__yong {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  color: rgba(140, 190, 255, 0.85);
}

.me-dash-wx__behavior {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
}

.me-dash-wx__behavior--up {
  color: #6ecf8a;
}

.me-dash-wx__behavior--down {
  color: #f4a261;
}

.me-behavior-host {
  margin: 0.75rem 0 1rem;
}

.me-behavior-host .panel--behavior {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 12px;
  padding: 0.65rem;
}

.me-behavior-host .behavior-group {
  border-color: rgba(255, 255, 255, 0.12);
}

.me-behavior-host .panel__title,
.me-behavior-host .behavior-field__label,
.me-behavior-host .behavior-group__legend {
  color: rgba(220, 230, 245, 0.9);
}

.me-behavior-host .behavior-group__hint,
.me-behavior-host .panel__hint {
  color: rgba(180, 190, 210, 0.65);
}

.me-behavior-host .behavior-field--select select {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: inherit;
}

.me-structure {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.06) 0%,
    rgba(80, 140, 255, 0.08) 45%,
    rgba(120, 60, 200, 0.1) 100%
  );
  border: 1px solid rgba(140, 180, 255, 0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.me-structure__title {
  margin: 0 0 0.25rem;
  font-size: 0.82rem;
  font-weight: 650;
  color: rgba(220, 235, 255, 0.95);
}

.me-structure__lead,
.me-structure__hint {
  margin: 0 0 0.5rem;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(180, 200, 230, 0.72);
}

.me-structure__dm {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(255, 200, 140, 0.92);
}

.me-structure__stats {
  display: grid;
  gap: 0.35rem;
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
}

.me-structure__stats div {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
}

.me-structure__stats dt {
  color: rgba(160, 180, 210, 0.75);
}

.me-structure__stats dd {
  margin: 0;
  font-weight: 600;
  color: rgba(230, 240, 255, 0.92);
  text-align: right;
}

.me-structure__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.45rem;
}

.me-structure__btn {
  flex: 1 1 auto;
  min-width: 5.5rem;
  padding: 0.38rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(140, 180, 255, 0.28);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(220, 235, 255, 0.92);
  font: inherit;
  font-size: 0.68rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.me-structure__btn:hover {
  background: rgba(100, 160, 255, 0.18);
  border-color: rgba(160, 200, 255, 0.42);
}

.me-dna-detail__behavior {
  margin: 0 0 0.65rem;
  font-size: 0.85rem;
  padding: 0.4rem 0.55rem;
  border-radius: 8px;
}

.me-dna-detail__behavior--up {
  background: rgba(42, 157, 106, 0.15);
  color: #6ecf8a;
}

.me-dna-detail__behavior--down {
  background: rgba(196, 92, 38, 0.15);
  color: #f4a261;
}

.me-dna-detail__behavior--neutral {
  background: rgba(255, 255, 255, 0.06);
}

.me-dash-bars {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}

.me-dash-bar {
  display: grid;
  grid-template-columns: 1.65rem 1fr 2.4rem;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.72rem;
}

.me-dash-bar__label {
  color: rgba(190, 200, 220, 0.7);
}

.me-dash-bar__label--phase {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.15;
  gap: 0.1rem;
}

.me-dash-bar__el {
  font-weight: 600;
  color: rgba(220, 228, 245, 0.92);
}

.me-dash-bar__phase {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.05rem 0.2rem;
  border-radius: 3px;
  line-height: 1.2;
}

.me-dash-bar__phase--wang {
  color: #ffe8a8;
  background: rgba(255, 180, 80, 0.22);
}

.me-dash-bar__phase--xiang {
  color: #c8e6ff;
  background: rgba(100, 160, 255, 0.18);
}

.me-dash-bar__phase--xiu {
  color: rgba(180, 190, 210, 0.85);
  background: rgba(255, 255, 255, 0.06);
}

.me-dash-bar__phase--qiu {
  color: rgba(200, 170, 220, 0.88);
  background: rgba(140, 90, 180, 0.15);
}

.me-dash-bar__phase--si {
  color: rgba(150, 155, 170, 0.75);
  background: rgba(0, 0, 0, 0.2);
}

.me-dash-bars--temperature {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(160, 140, 255, 0.15);
}

.me-dash-bar__track {
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.me-dash-bar__fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.6s ease;
}

.me-dash-bar__val {
  text-align: right;
  color: rgba(210, 220, 240, 0.65);
  font-variant-numeric: tabular-nums;
}

.me-dash-wx__bars-title {
  margin: 0.5rem 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(200, 215, 240, 0.85);
}

.me-dash-wx__layer-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 0 0 0.35rem;
  padding: 0;
  list-style: none;
  font-size: 0.62rem;
  color: rgba(190, 200, 220, 0.65);
}

.me-dash-wx__layer-swatch {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 2px;
  margin-right: 0.2rem;
  vertical-align: middle;
}

.me-dash-wx__layer-swatch--natal {
  background: rgba(255, 255, 255, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.me-dash-wx__layer-swatch--highlight {
  background: linear-gradient(135deg, #fff 0%, #ffe566 55%, #ffd024 100%);
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.55), 0 0 4px rgba(255, 230, 120, 0.45);
}

.me-dash-wx__layer-legend-detail {
  opacity: 0.75;
  font-size: 0.58rem;
  padding-left: 0.15rem;
}

.me-dash-wx__layer-swatch--liunian,
.me-dash-wx__layer-swatch--fire-frame,
.me-dash-wx__layer-swatch--chen-xu {
  display: none;
}

.me-dash-wx__layer-swatch--chen-potential {
  background: linear-gradient(90deg, rgba(0, 178, 255, 0.35), rgba(180, 120, 255, 0.35));
  border: 1px dashed rgba(140, 200, 255, 0.65);
  box-shadow: none;
  opacity: 1;
}

.me-dash-wx__layer-swatch--season {
  background: repeating-linear-gradient(
    135deg,
    rgba(90, 200, 140, 0.45) 0 3px,
    rgba(255, 140, 90, 0.35) 3px 6px
  );
  border: 1px solid rgba(160, 200, 180, 0.45);
  box-shadow: none;
  opacity: 1;
}

.me-dash-bar--temperature .me-dash-bar__track--temperature {
  position: relative;
  overflow: visible;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.me-dash-bar__temp-gradient {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    #5ac8fa 0%,
    rgba(255, 255, 255, 0.22) 52.5%,
    #ff9f85 100%
  );
  opacity: 0.88;
}

.me-dash-bar__temp-mid {
  position: absolute;
  top: -2px;
  bottom: -2px;
  width: 1px;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.28);
  pointer-events: none;
}

.me-dash-bar__temp-thumb {
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-left: -5px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.25),
    0 1px 4px rgba(0, 0, 0, 0.35);
  pointer-events: none;
}

.sys-temp--visual-only .sys-temp__meter {
  margin: 0;
}

.me-dash-wx__layer-notes {
  margin: 0 0 0.45rem;
  font-size: 0.65rem;
  line-height: 1.45;
  color: rgba(180, 195, 220, 0.6);
}

.me-dash-wx__liuri-day {
  margin: 0 0 0.5rem;
  padding: 0.35rem 0.45rem;
  font-size: 0.62rem;
  line-height: 1.45;
  color: rgba(190, 205, 230, 0.72);
  background: rgba(8, 14, 28, 0.35);
  border: 1px dashed rgba(120, 150, 200, 0.22);
  border-radius: 0.4rem;
}

.me-dash-wx__liuri-day-hint {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.58rem;
  color: rgba(150, 170, 200, 0.48);
  letter-spacing: 0.02em;
}

.me-dash-bars--layered {
  gap: 0.45rem;
}

.me-dash-bar--layered {
  grid-template-columns: 1.1rem 1fr 3.2rem;
}

.me-dash-bar__track--stack {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  position: relative;
  height: 10px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.me-dash-bar__segment {
  height: 100%;
  flex-shrink: 0;
  min-width: 2px;
  border-radius: 0;
  transition: width 0.5s ease;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
}

.me-dash-bar__segment--natal {
  background: var(--wx-base) !important;
  opacity: 0.55 !important;
  filter: saturate(0.88);
}

.me-dash-bar__segment--highlight,
.me-dash-bar__segment--liunian,
.me-dash-bar__segment--fire-frame {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wx-base) 42%, white) 0%,
    var(--wx-base) 55%,
    color-mix(in srgb, var(--wx-base) 88%, black) 100%
  ) !important;
  opacity: 1 !important;
  filter: brightness(1.28) saturate(1.12);
  box-shadow:
    0 0 14px color-mix(in srgb, var(--wx-base) 55%, white),
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.12);
}

.me-dash-bar__segment--fire-frame {
  filter: brightness(1.38) saturate(1.22);
  box-shadow:
    0 0 16px color-mix(in srgb, var(--wx-base) 65%, #ff8844),
    inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.me-dash-bar__segment--potential {
  background: linear-gradient(
    90deg,
    rgba(0, 178, 255, 0.12) 0%,
    rgba(90, 140, 255, 0.22) 45%,
    rgba(200, 120, 255, 0.18) 100%
  ) !important;
  opacity: 1 !important;
  filter: none;
  border-top: 1px dashed rgba(120, 200, 255, 0.55);
  border-bottom: 1px dashed rgba(180, 130, 255, 0.45);
  box-shadow: inset 0 0 12px rgba(80, 160, 255, 0.12);
  animation: me-dash-potential-pulse 3s ease-in-out infinite;
}

.me-dash-bar__segment--season-element {
  background: repeating-linear-gradient(
    -45deg,
    color-mix(in srgb, var(--wx-base) 35%, white) 0 4px,
    color-mix(in srgb, var(--wx-base) 55%, transparent) 4px 8px
  ) !important;
  opacity: 0.95 !important;
  filter: brightness(1.15) saturate(1.08);
  box-shadow: inset 0 0 8px color-mix(in srgb, var(--wx-base) 25%, white);
}

.me-dash-bar__segment--season-corner {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wx-base) 38%, white) 0%,
    var(--wx-base) 55%,
    color-mix(in srgb, var(--wx-base) 82%, black) 100%
  ) !important;
  opacity: 0.92 !important;
  filter: brightness(1.12) saturate(1.06);
  box-shadow: inset 0 0 6px color-mix(in srgb, var(--wx-base) 22%, white);
}

.me-dash-bar__segment--season-earth {
  background: linear-gradient(
    180deg,
    rgba(180, 150, 110, 0.55) 0%,
    rgba(140, 110, 80, 0.75) 100%
  ) !important;
  opacity: 0.92 !important;
  box-shadow: inset 0 1px 0 rgba(255, 230, 200, 0.25);
}

.me-dash-bar__segment--season-corner-fire {
  background: linear-gradient(
    180deg,
    rgba(255, 120, 60, 0.75) 0%,
    rgba(180, 110, 70, 0.65) 100%
  ) !important;
  opacity: 1 !important;
  box-shadow: 0 0 10px rgba(255, 100, 40, 0.35);
}

.me-dash-bar__segment--season-corner-water {
  background: linear-gradient(
    90deg,
    rgba(120, 180, 255, 0.35) 0%,
    rgba(200, 230, 255, 0.45) 50%,
    rgba(160, 190, 230, 0.35) 100%
  ) !important;
  opacity: 0.9 !important;
  border-top: 1px dashed rgba(180, 220, 255, 0.5);
  border-bottom: 1px dashed rgba(140, 180, 230, 0.45);
  box-shadow: inset 0 0 10px rgba(100, 180, 255, 0.15);
}

@keyframes me-dash-potential-pulse {
  0%, 100% { opacity: 0.72; }
  50% { opacity: 1; }
}

.me-dash-bar--water-potential .me-dash-bar__final-mark {
  background: rgba(180, 220, 255, 0.95);
  box-shadow: 0 0 6px rgba(120, 200, 255, 0.55);
}

.me-dash-wx__water-callout {
  margin: 0.35rem 0 0.65rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.55rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(190, 225, 255, 0.95);
  background: linear-gradient(135deg, rgba(20, 60, 110, 0.55), rgba(30, 80, 140, 0.35));
  border: 1px solid rgba(120, 190, 255, 0.35);
}

.me-dash-wx__water-callout strong {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(210, 235, 255, 0.98);
}

.me-dash-bar__label--water-up .me-dash-bar__phase--up {
  color: rgba(140, 210, 255, 0.98);
  font-weight: 700;
}

.me-dash-bar__val-potential {
  display: inline-block;
  margin-right: 0.2rem;
  padding: 0.05rem 0.28rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(160, 210, 255, 0.92);
  border: 1px dashed rgba(120, 190, 255, 0.45);
  border-radius: 0.2rem;
  vertical-align: middle;
}

.me-dash-bar__val-potential-up {
  display: inline-block;
  margin-left: 0.15rem;
  font-size: 0.62rem;
  font-weight: 600;
  color: rgba(140, 210, 255, 0.95);
  white-space: nowrap;
}

.me-dash-bar__segment:first-child {
  border-radius: 999px 0 0 999px;
}

.me-dash-bar__segment:last-child {
  border-radius: 0 999px 999px 0;
}

.me-dash-bar__segment:only-child {
  border-radius: 999px;
}

.me-dash-bar__final-mark {
  position: absolute;
  top: -2px;
  bottom: -2px;
  width: 2px;
  margin-left: -1px;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 1px;
  pointer-events: none;
  box-shadow: 0 0 4px rgba(255, 255, 255, 0.4);
}

.me-dash-bar__val-final {
  display: block;
  font-size: 0.62rem;
  color: rgba(255, 200, 140, 0.85);
}

.me-dash-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 0.5rem;
  margin: 0;
  font-size: 0.72rem;
}

.me-dash-meta div {
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
}

.me-dash-meta dt {
  color: rgba(170, 185, 210, 0.55);
}

.me-dash-meta dd {
  margin: 0;
  color: rgba(230, 238, 255, 0.88);
}

.me-dash__empty {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  padding: 0.65rem 0.75rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(190, 210, 235, 0.78);
  background: rgba(6, 24, 48, 0.55);
  border: 1px solid var(--helix-border);
  border-radius: 0.55rem;
}

.me-dash__empty[data-state='loading']::before {
  content: '';
  flex-shrink: 0;
  width: 0.85rem;
  height: 0.85rem;
  margin-top: 0.15rem;
  border-radius: 50%;
  border: 2px solid rgba(0, 210, 255, 0.35);
  border-top-color: var(--helix-cyan);
  animation: ui-spin 0.85s linear infinite;
}

.me-dash__empty[data-state='error'] {
  color: rgba(255, 210, 210, 0.92);
  border-color: rgba(255, 120, 120, 0.35);
  background: rgba(80, 20, 30, 0.45);
}

.me-dash__empty[data-state='error']::before {
  content: '!';
  color: rgba(255, 160, 160, 0.95);
}

.me-zone4-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(16rem, 40vh, 28rem);
  margin: 0;
  padding: 2rem 1.25rem;
  font-size: 0.88rem;
  line-height: 1.5;
  text-align: center;
  color: rgba(190, 210, 235, 0.72);
}

.me-heart-emergency {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.85rem 1rem;
  align-items: start;
  border-color: rgba(255, 120, 120, 0.45);
  background: linear-gradient(135deg, rgba(70, 18, 28, 0.72), rgba(24, 12, 28, 0.82));
}

.me-heart-emergency__icon {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-weight: 700;
  color: rgba(255, 190, 190, 0.95);
  background: rgba(255, 80, 80, 0.18);
  border: 1px solid rgba(255, 120, 120, 0.45);
}

.me-heart-emergency__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: rgba(255, 210, 210, 0.96);
}

.me-heart-emergency__message,
.me-heart-emergency__hint {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: rgba(210, 220, 240, 0.82);
}

.me-heart-emergency__hint {
  color: rgba(170, 190, 220, 0.72);
}

.me-heart-emergency__actions {
  align-self: center;
}

.me-heart-emergency-inline {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  height: 100%;
  justify-content: center;
  padding: 0.5rem;
}

.me-heart-emergency-inline__retry {
  align-self: flex-start;
}

.me-heart-emergency__satellite {
  min-height: 6rem;
  justify-content: center;
}

.me-dashboard__center,
.me-quadrant--center {
  min-height: clamp(34rem, calc(100vh - 16rem), 56rem);
  display: flex;
  flex-direction: column;
}

.me-dashboard--quadrant .me-quadrant--center {
  min-height: clamp(26rem, calc(100vh - 18rem), 52rem);
}

.me-helix-head {
  flex-shrink: 0;
  margin-bottom: 0.35rem;
}

.me-helix-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.35rem;
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.4;
}

.me-helix-crumb__sep {
  color: rgba(140, 170, 210, 0.45);
  user-select: none;
}

.me-helix-crumb__link {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: rgba(130, 190, 255, 0.82);
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(130, 190, 255, 0.35);
  text-underline-offset: 0.15em;
}

.me-helix-crumb__link:hover {
  color: rgba(170, 220, 255, 0.98);
}

.me-helix-crumb__current {
  color: rgba(210, 225, 250, 0.88);
  font-weight: 550;
}

.me-helix-head__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.65rem;
}

.me-helix-head__row .me-dashboard__panel-title {
  margin: 0;
  font-size: 0.72rem;
}

.me-profile-refine-btn {
  flex-shrink: 0;
  font-size: 0.72rem;
  padding: 0.28rem 0.6rem;
}

.me-profile-refine-hint {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  color: rgba(190, 205, 235, 0.5);
  line-height: 1.4;
}

.me-helix-sub {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  color: rgba(190, 205, 235, 0.52);
  line-height: 1.4;
}

.me-helix-meta--sidebar {
  margin: 0;
  padding: 0.5rem 0.55rem;
  border-radius: 0.5rem;
  background: rgba(8, 14, 28, 0.55);
  border: 1px solid rgba(100, 140, 200, 0.18);
}

.me-heart-bridge-host {
  margin: 0.55rem 0 0;
}

.me-heart-status-host {
  margin: 0 0 0.55rem;
}

.me-heart-status {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.65rem 0.75rem;
  align-items: center;
  margin: 0;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  background: rgba(10, 18, 36, 0.78);
  border: 1px solid rgba(100, 150, 210, 0.24);
}

.me-heart-status--steady {
  border-color: rgba(80, 180, 120, 0.35);
}

.me-heart-status--accumulate {
  border-color: rgba(80, 150, 220, 0.35);
}

.me-heart-status--leap {
  border-color: rgba(255, 140, 90, 0.42);
  background: rgba(28, 14, 10, 0.55);
}

.me-heart-status--low {
  border-color: rgba(130, 140, 160, 0.28);
}

.me-heart-status__icon {
  font-size: 1.35rem;
  line-height: 1;
  color: rgba(255, 120, 140, 0.88);
}

.me-heart-status--steady .me-heart-status__icon { color: rgba(100, 210, 150, 0.9); }
.me-heart-status--accumulate .me-heart-status__icon { color: rgba(100, 180, 240, 0.9); }
.me-heart-status--leap .me-heart-status__icon {
  animation: heart-pulse-scale var(--heart-pulse-period) var(--heart-pulse-easing) infinite;
}
.me-heart-status--low .me-heart-status__icon { color: rgba(160, 170, 190, 0.75); }

/* ── Global heart nav · 核心（主入口） ── */
.site-nav__link--primary {
  min-width: 5rem;
  padding: 0.48rem 0.95rem 0.42rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: rgba(255, 248, 240, 0.95);
  background: linear-gradient(145deg, rgba(255, 120, 90, 0.38), rgba(139, 92, 246, 0.45));
  border: 1px solid rgba(255, 160, 120, 0.35);
  box-shadow:
    0 0 18px rgba(255, 120, 90, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.site-nav__link--primary .site-nav__zh {
  font-size: 0.86rem;
  letter-spacing: 0.04em;
}

.site-nav__link--primary .site-nav__en {
  font-size: 0.62rem;
  opacity: 0.88;
}

.site-nav__link--primary:hover:not(.is-active) {
  background: linear-gradient(145deg, rgba(255, 130, 100, 0.48), rgba(159, 112, 255, 0.52));
  color: #fff;
}

.site-nav__link--primary.is-active {
  background: linear-gradient(145deg, rgba(255, 140, 100, 0.55), rgba(159, 112, 255, 0.58));
  border-color: rgba(255, 180, 130, 0.55);
  box-shadow:
    0 0 22px rgba(255, 120, 90, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
  color: #fff;
}

.site-nav__link--heart {
  position: relative;
  min-width: 5rem;
  padding-right: 1.15rem;
}

.site-nav__link--heart .site-nav__heart-dot {
  top: 0.42rem;
  right: 0.5rem;
}
.site-nav__heart-dot {
  position: absolute;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--heart-tone-accumulate);
  box-shadow: var(--heart-glow-accumulate);
}

.site-nav__link--heart-steady .site-nav__heart-dot {
  background: var(--heart-tone-steady);
  box-shadow: var(--heart-glow-steady);
}

.site-nav__link--heart-accumulate .site-nav__heart-dot {
  background: var(--heart-tone-accumulate);
  box-shadow: var(--heart-glow-accumulate);
}

.site-nav__link--heart-leap .site-nav__heart-dot {
  background: var(--heart-tone-leap);
  box-shadow: var(--heart-glow-leap);
}

.site-nav__link--heart-leap .site-nav__heart-dot,
.calendar-mode__btn--heart-leap .site-nav__heart-dot {
  animation: heart-pulse-scale var(--heart-pulse-period) var(--heart-pulse-easing) infinite;
}

.site-nav__link--heart-low .site-nav__heart-dot {
  background: var(--heart-tone-low);
  box-shadow: var(--heart-glow-low);
}

.calendar-mode__btn--heart {
  position: relative;
  padding-left: 1.1rem;
}

.calendar-mode__btn--heart .site-nav__heart-dot {
  top: 50%;
  left: 0.35rem;
  right: auto;
  transform: translateY(-50%);
}

.calendar-mode__btn--heart-leap .site-nav__heart-dot {
  animation: heart-pulse-scale var(--heart-pulse-period) var(--heart-pulse-easing) infinite;
}

.me-heart-status__eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.me-heart-status__tone {
  font-weight: 700;
  color: rgba(190, 210, 245, 0.85);
}

.me-heart-status__pct {
  color: rgba(150, 175, 220, 0.72);
}

.me-heart-status__heart {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(230, 240, 255, 0.95);
}

.me-heart-status__context,
.me-heart-status__singularity {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(180, 200, 235, 0.78);
}

.me-heart-status__singularity {
  color: rgba(255, 190, 140, 0.88);
}

.me-heart-status__actions {
  align-self: stretch;
  display: flex;
  align-items: center;
}

.me-heart-status__cta {
  white-space: nowrap;
  font-size: 0.72rem;
}

@media (max-width: 720px) {
  .me-heart-status {
    grid-template-columns: auto 1fr;
  }

  .me-heart-status__actions {
    grid-column: 1 / -1;
  }

  .me-heart-status__cta {
    width: 100%;
    text-align: center;
  }
}

.me-helix-hover-preview__link {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.68rem;
  color: rgba(150, 200, 255, 0.92);
  text-decoration: underline;
}

.decision-feedback__helix {
  margin: 0.65rem 0 0.35rem;
}

.decision-feedback__helix-link {
  width: 100%;
  text-align: center;
}

.me-heart-bridge {
  margin: 0;
  padding: 0.55rem 0.6rem;
  border-radius: 0.5rem;
  background: rgba(12, 22, 42, 0.72);
  border: 1px solid rgba(120, 160, 220, 0.22);
}

.me-heart-bridge__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(150, 175, 220, 0.62);
}

.me-heart-bridge__heart {
  margin: 0 0 0.3rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(220, 232, 255, 0.92);
}

.me-heart-bridge__bridge {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(185, 205, 240, 0.78);
}

.me-heart-bridge__cta {
  display: inline-block;
  width: 100%;
  text-align: center;
  font-size: 0.72rem;
  padding: 0.4rem 0.55rem;
}

.me-helix-meta--sidebar .me-helix-meta__grid {
  grid-template-columns: 1fr;
  gap: 0.3rem 0;
}

.me-helix-meta--sidebar .me-helix-meta__grid dt {
  font-size: 0.6rem;
}

.me-helix-meta--sidebar .me-helix-meta__grid dd {
  font-size: 0.76rem;
}

.me-helix-meta--sidebar .me-helix-meta__tst,
.me-helix-meta--sidebar .me-helix-meta__env-impact {
  font-size: 0.66rem;
  margin-top: 0.35rem;
}

.me-helix-meta__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.35rem 0.75rem;
  margin: 0;
}

.me-helix-meta__grid div {
  min-width: 0;
}

.me-helix-meta__grid dt {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(150, 170, 210, 0.55);
}

.me-helix-meta__grid dd {
  margin: 0.1rem 0 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(220, 232, 255, 0.92);
  word-break: break-all;
}

.me-helix-meta__tst {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  color: rgba(160, 185, 230, 0.65);
}

.me-helix-stage {
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid rgba(100, 140, 200, 0.14);
}

.me-helix-stage--3d {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: clamp(22rem, calc(100vh - 22rem), 48rem);
  padding: 0;
  background: radial-gradient(
    ellipse 85% 70% at 50% 36%,
    rgba(0, 100, 160, 0.28),
    var(--helix-mid) 55%,
    rgba(4, 16, 36, 0.99)
  );
  border-color: var(--helix-border);
  box-shadow:
    0 0 0 1px var(--helix-cyan-glow),
    inset 0 0 48px rgba(0, 100, 160, 0.12);
}

.me-helix-annotation-chip--live {
  border-color: rgba(140, 220, 180, 0.45);
  color: rgba(220, 255, 235, 0.92);
}

.me-helix-annotation-chip--height {
  border-color: rgba(120, 180, 240, 0.32);
}

.me-helix-annotation-chip--ring {
  border-color: rgba(200, 160, 255, 0.28);
}

.me-helix-hover-preview-host {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  left: auto;
  max-width: min(18rem, 92%);
  z-index: 6;
  pointer-events: none;
}

.me-helix-hover-preview {
  margin: 0;
  padding: 0.5rem 0.6rem;
  background: rgba(8, 16, 36, 0.88);
  border: 1px solid rgba(120, 170, 230, 0.35);
  backdrop-filter: blur(8px);
}

.me-helix-hover-preview__title {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(210, 228, 255, 0.92);
}

.me-helix-hover-preview__channels p {
  margin: 0.25rem 0 0;
  font-size: 0.62rem;
  line-height: 1.45;
  color: rgba(185, 205, 240, 0.88);
}

.me-helix-hover-preview__tag {
  display: inline-block;
  min-width: 2rem;
  font-weight: 700;
  opacity: 0.78;
}

.me-helix-hover-preview__hint {
  margin: 0.35rem 0 0;
  font-size: 0.58rem;
  opacity: 0.65;
}

.me-helix-hover-preview__loading {
  margin: 0;
  font-size: 0.62rem;
  opacity: 0.7;
}

.me-dna-detail__rhythm {
  margin: 0 0 0.65rem;
  padding: 0.55rem 0.65rem;
  background: rgba(12, 22, 44, 0.55);
  border: 1px solid rgba(110, 160, 220, 0.22);
}

.me-dna-detail__rhythm-eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
}

.me-dna-detail__rhythm-row {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.3rem;
}

.me-dna-detail__rhythm-label {
  font-size: 0.62rem;
  font-weight: 700;
}

.me-dna-detail__rhythm-row--body .me-dna-detail__rhythm-label {
  color: rgba(140, 220, 180, 0.9);
}

.me-dna-detail__rhythm-row--think .me-dna-detail__rhythm-label {
  color: rgba(180, 200, 255, 0.9);
}

.me-dna-detail__rhythm-text {
  font-size: 0.78rem;
  line-height: 1.45;
}

.me-dna-detail__rhythm-bridge,
.me-dna-detail__rhythm-hint {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  opacity: 0.85;
}

.me-dna-detail__rhythm-cta {
  display: inline-block;
  margin-top: 0.45rem;
  font-size: 0.68rem;
}

.me-helix-stage__viewport-wrap {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: clamp(22rem, calc(100vh - 22rem), 48rem);
  overflow: hidden;
}

.me-helix-stage__viewport,
#me-helix-root {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* 流年钻入 · toolbar + canvas 纵向排布 */
#me-helix-root.life-helix-3d--liuyue-drill {
  display: flex;
  flex-direction: column;
}

#me-helix-root.life-helix-3d--liuyue-drill .life-helix-3d__toolbar {
  flex: 0 0 auto;
  position: relative;
  z-index: 5;
}

#me-helix-root.life-helix-3d--liuyue-drill .life-helix-3d__canvas {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  height: auto;
  position: relative;
}

#me-helix-root:not(.life-helix-3d--liuyue-drill) .life-helix-3d__canvas {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
}

#me-helix-root .life-helix-3d__labels {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}

.me-helix-annotations-host {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
}

.me-helix-annotations {
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  bottom: 0.55rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
}

.me-helix-annotation-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  font-size: 0.62rem;
  line-height: 1.35;
  color: rgba(210, 228, 255, 0.88);
  background: rgba(6, 14, 32, 0.72);
  border: 1px solid rgba(100, 160, 220, 0.28);
  backdrop-filter: blur(6px);
}

.me-helix-annotation-chip--soon {
  border-color: rgba(220, 160, 200, 0.35);
}

.me-helix-annotation-chip__soon {
  font-style: normal;
  font-size: 0.58rem;
  opacity: 0.72;
  color: rgba(240, 180, 210, 0.9);
}

.me-rhythm-pathway-host {
  margin: 0.55rem 0 0.45rem;
}

.me-stage-summary-host {
  margin: 0.45rem 0 0.65rem;
}

.me-stage-summary-fold {
  margin: 1rem 0 1.25rem;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(120, 170, 220, 0.2);
  background: rgba(12, 22, 40, 0.45);
}

.me-stage-summary-fold__summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(220, 230, 250, 0.92);
}

.me-stage-summary-fold__summary::-webkit-details-marker {
  display: none;
}

.me-stage-summary-fold__hint {
  margin: 0.4rem 0 0.55rem;
  font-size: 0.66rem;
  line-height: 1.45;
  color: rgba(160, 185, 220, 0.68);
}

.me-stage-summary-fold:not([open]) .me-stage-summary-host {
  display: none;
}

.me-stage-summary {
  margin: 0;
  padding: 0.55rem 0 0.15rem;
  border: none;
  background: transparent;
}

.me-stage-summary__loading {
  margin: 0.25rem 0;
  font-size: 0.72rem;
  color: rgba(170, 195, 230, 0.75);
}

.me-stage-summary__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 195, 230, 0.72);
}

.me-stage-summary__title {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
  font-weight: 650;
  color: rgba(235, 240, 255, 0.95);
}

.me-stage-summary__mode {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  color: rgba(180, 210, 255, 0.88);
}

.me-stage-summary__formula {
  margin: 0 0 0.45rem;
  font-size: 0.7rem;
  color: rgba(200, 220, 245, 0.72);
}

.me-stage-summary__inference {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(230, 235, 250, 0.92);
}

.me-stage-summary__clues {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0 0 0.5rem;
}

.me-stage-summary__clue {
  display: inline-flex;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  font-size: 0.62rem;
  border: 1px solid rgba(140, 180, 230, 0.28);
  background: rgba(40, 60, 100, 0.35);
  color: rgba(210, 225, 250, 0.9);
}

.me-stage-summary__meta {
  margin: 0 0 0.45rem;
  font-size: 0.66rem;
  color: rgba(170, 195, 230, 0.7);
}

.me-stage-summary__think-label {
  margin: 0 0 0.2rem;
  font-size: 0.66rem;
  color: rgba(180, 200, 230, 0.75);
}

.me-stage-summary__think {
  margin: 0 0 0.45rem;
  padding-left: 1.1rem;
  font-size: 0.7rem;
  line-height: 1.45;
  color: rgba(210, 220, 245, 0.85);
}

.me-stage-summary__foot {
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.4;
  color: rgba(150, 175, 210, 0.62);
}

.me-singularity-host {
  margin: 0 0 0.55rem;
}

.me-singularity {
  margin: 0;
  padding: 0.65rem 0.75rem;
  background: linear-gradient(145deg, rgba(18, 12, 32, 0.88), rgba(10, 18, 38, 0.82));
  border: 1px solid rgba(180, 120, 220, 0.28);
  box-shadow: 0 0 24px rgba(120, 60, 180, 0.12);
}

.me-singularity__head {
  margin-bottom: 0.55rem;
}

.me-singularity__eyebrow {
  margin: 0;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(220, 170, 255, 0.78);
}

.me-singularity__title {
  margin: 0.2rem 0 0.35rem;
  font-size: clamp(0.88rem, 1.1vw, 1rem);
  line-height: 1.35;
  color: rgba(245, 230, 255, 0.96);
}

.me-singularity__lead,
.me-singularity__hub {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.55;
  color: rgba(195, 210, 240, 0.82);
}

.me-singularity__hub {
  margin-top: 0.35rem;
  color: rgba(180, 200, 235, 0.75);
}

.me-singularity__primary {
  margin: 0.5rem 0 0.65rem;
  padding: 0.65rem 0.7rem;
  background: rgba(40, 18, 60, 0.55);
  border: 1px solid rgba(255, 140, 100, 0.35);
  border-radius: 0.5rem;
}

.me-singularity__primary-eyebrow {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(255, 180, 120, 0.92);
}

.me-singularity__primary-title {
  margin: 0.25rem 0 0.2rem;
  font-size: 0.92rem;
  color: rgba(255, 240, 230, 0.98);
}

.me-singularity__primary-when {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255, 200, 150, 0.9);
}

.me-singularity__primary-sub,
.me-singularity__primary-phase,
.me-singularity__primary-hub {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.55;
  color: rgba(210, 220, 245, 0.88);
}

.me-singularity__primary-phase {
  color: rgba(255, 220, 180, 0.92);
  font-weight: 500;
}

.me-singularity__primary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.45rem;
}

.me-singularity__primary.is-singularity-active,
.me-singularity__key-btn.is-singularity-active {
  border-color: rgba(200, 120, 255, 0.65);
  box-shadow:
    0 0 0 1px rgba(200, 120, 255, 0.35),
    0 0 18px rgba(160, 80, 255, 0.22);
}

.me-singularity__empty,
.me-singularity__near {
  margin: 0.35rem 0;
  font-size: 0.72rem;
  line-height: 1.5;
  color: rgba(195, 210, 235, 0.85);
}

.me-singularity__near {
  padding: 0.35rem 0.5rem;
  border-radius: 0.35rem;
  background: rgba(80, 140, 200, 0.12);
  border: 1px solid rgba(100, 160, 220, 0.22);
}

.me-singularity__keys-title {
  margin: 0 0 0.4rem;
  font-size: 0.74rem;
  font-weight: 700;
  color: rgba(200, 215, 245, 0.9);
}

.me-singularity__key-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.3rem;
}

.me-singularity__key-btn {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 0.1rem 0.55rem;
  padding: 0.4rem 0.5rem;
  text-align: left;
  border: 1px solid rgba(90, 130, 190, 0.2);
  border-radius: 0.4rem;
  background: rgba(8, 16, 34, 0.55);
  color: inherit;
  cursor: pointer;
}

.me-singularity__key-btn:hover {
  border-color: rgba(120, 170, 230, 0.38);
  background: rgba(12, 24, 48, 0.72);
}

.me-singularity__key-type {
  grid-row: span 2;
  align-self: center;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.35rem;
  border-radius: 0.25rem;
  background: rgba(60, 100, 160, 0.25);
  color: rgba(180, 210, 255, 0.92);
}

.me-singularity__key-when {
  font-size: 0.62rem;
  opacity: 0.75;
}

.me-singularity__key-title {
  font-size: 0.72rem;
  line-height: 1.4;
}

.me-singularity__key-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.35rem;
}

.me-singularity__key-row .me-singularity__key-btn {
  flex: 1 1 12rem;
  min-width: 0;
}

.me-singularity__key-calendar {
  flex: 0 0 auto;
  align-self: center;
  font-size: 0.68rem;
  padding: 0.35rem 0.55rem;
  white-space: nowrap;
}

.me-singularity__l1-compare {
  margin: 0.65rem 0 0;
  padding: 0.55rem 0.65rem;
  background: rgba(6, 22, 44, 0.55);
  border: 1px solid rgba(0, 180, 255, 0.22);
  border-radius: 0.5rem;
}

.me-singularity__l1-compare-line {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(185, 210, 240, 0.88);
}

.me-singularity__calendar-compare {
  font-size: 0.72rem;
}

.me-singularity__year-board {
  margin-top: 0.75rem;
  padding: 0.65rem 0.7rem;
  background: rgba(5, 18, 38, 0.62);
  border: 1px solid rgba(0, 180, 255, 0.2);
  border-radius: 0.55rem;
}

.me-singularity__year-board-title {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(220, 235, 255, 0.95);
}

.me-singularity__year-board-lead {
  margin: 0.35rem 0 0.65rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(170, 195, 230, 0.82);
}

.me-singularity__month-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.35rem;
}

@media (max-width: 820px) {
  .me-singularity__month-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.me-singularity__month-pillar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  padding: 0.35rem 0.2rem;
  text-decoration: none;
  border-radius: 0.4rem;
  border: 1px solid rgba(80, 120, 170, 0.28);
  background: rgba(8, 22, 44, 0.55);
  color: rgba(200, 220, 245, 0.88);
  transition: border-color 0.15s, background 0.15s;
}

.me-singularity__month-pillar:hover {
  border-color: rgba(0, 200, 255, 0.45);
  background: rgba(10, 32, 58, 0.72);
}

.me-singularity__month-pillar--singularity {
  border-color: rgba(255, 170, 80, 0.45);
}

.me-singularity__month-pillar--peak {
  border-color: rgba(255, 120, 120, 0.65);
  background: rgba(60, 18, 28, 0.55);
  box-shadow: 0 0 0 1px rgba(255, 100, 100, 0.15);
}

.me-singularity__month-pillar__label {
  font-size: 0.58rem;
  opacity: 0.75;
}

.me-singularity__month-pillar__gz {
  font-size: 0.78rem;
  font-weight: 600;
}

.me-singularity__month-pillar__badge {
  font-size: 0.55rem;
  color: rgba(255, 180, 180, 0.95);
}

.me-singularity__year-board-actions {
  margin-top: 0.65rem;
}

.me-rhythm-pathway {
  margin: 0;
  padding: 0.55rem 0.65rem;
  background: rgba(8, 16, 34, 0.62);
  border: 1px solid rgba(100, 150, 210, 0.2);
}

.me-rhythm-pathway__tagline {
  margin: 0 0 0.55rem;
  font-size: clamp(0.72rem, 0.95vw, 0.82rem);
  line-height: 1.5;
  color: rgba(195, 215, 245, 0.88);
  font-weight: 600;
}

.me-rhythm-pathway__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.35rem 0.25rem;
  align-items: stretch;
}

.me-rhythm-pathway__step {
  min-width: 0;
  padding: 0.45rem 0.5rem;
  border-radius: 0.45rem;
  background: rgba(12, 22, 44, 0.55);
  border: 1px solid rgba(90, 130, 190, 0.18);
}

.me-rhythm-pathway__step--helix {
  border-color: rgba(80, 180, 220, 0.28);
}

.me-rhythm-pathway__step--body {
  border-color: rgba(120, 200, 160, 0.25);
}

.me-rhythm-pathway__step--today {
  border-color: rgba(220, 170, 120, 0.3);
}

.me-rhythm-pathway__step-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.me-rhythm-pathway__step-link:hover .me-rhythm-pathway__step-cta {
  text-decoration: underline;
}

.me-rhythm-pathway__step-title {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
}

.me-rhythm-pathway__step-sub {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.6rem;
  opacity: 0.72;
}

.me-rhythm-pathway__step-desc {
  margin: 0.35rem 0 0;
  font-size: 0.62rem;
  line-height: 1.45;
  opacity: 0.82;
}

.me-rhythm-pathway__step-cta {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.62rem;
  color: rgba(140, 200, 255, 0.95);
}

.me-rhythm-pathway__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  opacity: 0.45;
  padding: 0;
}

.me-rhythm-pathway__guide-link-wrap {
  margin: 0.5rem 0 0;
  text-align: right;
}

.me-rhythm-pathway__guide-link {
  font-size: 0.68rem;
  color: rgba(150, 190, 240, 0.85);
}

.me-cycle-bridge-host {
  margin: 0 0 0.45rem;
}

.me-cycle-bridge-banner {
  margin: 0;
  padding: 0.55rem 0.65rem;
}

.me-cycle-bridge-banner__eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.me-cycle-bridge-banner__note {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  line-height: 1.5;
}

.me-cycle-bridge-banner__cta {
  font-size: 0.68rem;
}

.me-grounding-bar-host {
  margin: 0.55rem 0 0;
}

.me-grounding-bar {
  margin: 0;
  padding: 0.55rem 0.65rem;
  background: rgba(10, 18, 36, 0.72);
  border: 1px solid rgba(110, 150, 210, 0.22);
}

.me-grounding-bar__row {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 0.45rem;
  align-items: start;
  margin-bottom: 0.35rem;
}

.me-grounding-bar__label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  opacity: 0.75;
  padding-top: 0.1rem;
}

.me-grounding-bar__row--body .me-grounding-bar__label {
  color: rgba(140, 220, 180, 0.9);
}

.me-grounding-bar__row--think .me-grounding-bar__label {
  color: rgba(180, 200, 255, 0.9);
}

.me-grounding-bar__text {
  font-size: clamp(0.72rem, 0.9vw, 0.8rem);
  line-height: 1.45;
}

.me-grounding-bar__cta {
  display: block;
  width: 100%;
  margin-top: 0.45rem;
  text-align: center;
  font-size: 0.72rem;
}

.rhythm-guide-body {
  min-height: 100vh;
}

.rhythm-guide-shell {
  max-width: 52rem;
  margin: 0 auto;
  padding: 0 0.75rem 2rem;
}

.rhythm-guide-main {
  margin-top: 0.75rem;
}

.rhythm-guide-page__hero {
  margin-bottom: 0.75rem;
  padding: 0.85rem 1rem;
}

.rhythm-guide-page__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.72;
}

.rhythm-guide-page__title {
  margin: 0 0 0.45rem;
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
}

.rhythm-guide-page__lead {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.55;
  opacity: 0.9;
}

.rhythm-guide-page__section {
  margin-bottom: 0.75rem;
  padding: 0.75rem 1rem;
}

.rhythm-guide-page__section h2 {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
}

.rhythm-guide-page__section-lead {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  line-height: 1.5;
  opacity: 0.85;
}

.rhythm-guide-page__list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.78rem;
  line-height: 1.55;
}

.rhythm-guide-page__list li + li {
  margin-top: 0.35rem;
}

.rhythm-guide-page__list--numbered {
  list-style: decimal;
}

.rhythm-guide-page__helix-chips {
  margin-top: 0.65rem;
}

.rhythm-guide-page__helix-chips .me-helix-annotations {
  position: static;
  justify-content: flex-start;
}

.rhythm-guide-page__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
}

.rhythm-guide-back {
  color: inherit;
  text-decoration: none;
  font-size: 0.78rem;
}

.rhythm-guide-back:hover {
  text-decoration: underline;
}

/* ── 身体页（与九宫决策分离） ── */
.body-page-shell {
  max-width: 760px;
  margin: 0 auto;
}

.body-page-shell--wide {
  max-width: none;
  width: 100%;
  padding: 0.65rem clamp(0.85rem, 2.5vw, 2rem) 1.5rem;
}

.body-page-main {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0 0 2rem;
}

.module-boot-guard {
  position: relative;
  z-index: 9999;
  margin: 0.75rem;
  padding: 0.85rem 1rem;
  border-color: rgba(255, 120, 120, 0.45);
  background: rgba(60, 16, 24, 0.92);
}

.module-boot-guard__title {
  margin: 0 0 0.35rem;
  font-weight: 600;
}

.module-boot-guard__msg,
.module-boot-guard__hint {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  line-height: 1.5;
  opacity: 0.92;
}

.module-boot-guard__hint code {
  font-size: 0.8em;
}

/* ── 身体页 · 上 2D+解读 / 下后勤+今日 ── */
.body-dashboard {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 1.6vw, 1.35rem);
}

.body-dashboard--stacked {
  gap: clamp(1.1rem, 2vw, 1.5rem);
}

.body-dashboard__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(14rem, 20rem);
  gap: clamp(0.85rem, 1.4vw, 1.25rem);
  align-items: stretch;
  min-height: clamp(24rem, calc(100vh - 14rem), 52rem);
}

.body-dashboard__figure,
.body-dashboard__aside {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.body-dashboard__figure {
  min-height: clamp(22rem, calc(100vh - 16rem), 50rem);
}

.body-dashboard__aside {
  justify-content: flex-start;
}

.body-dashboard__inputs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(0.85rem, 1.4vw, 1.25rem);
  align-items: start;
  padding-top: clamp(0.65rem, 1vw, 0.85rem);
  border-top: 1px solid rgba(120, 160, 220, 0.18);
}

.body-dashboard__inputs--with-cycle {
  grid-template-columns: 1fr;
}

.body-dashboard__inputs--body-first {
  grid-template-columns: 1fr;
  gap: clamp(0.75rem, 1.2vw, 1rem);
}

.body-dashboard__inputs--cycle-first {
  grid-template-columns: 1fr;
}

.body-dashboard__primary-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  gap: clamp(0.85rem, 1.4vw, 1.25rem);
  align-items: start;
}

.body-dashboard__primary-row--with-sleep {
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 0.78fr) minmax(0, 0.92fr) minmax(0, 0.98fr);
}

.body-dashboard__primary-row--with-cycle {
  grid-template-columns: minmax(12rem, 14rem) minmax(0, 0.72fr) minmax(0, 0.68fr) minmax(0, 0.78fr) minmax(0, 0.88fr);
}

/* ── 今日执行 · 四步统一壳层 ── */
.body-execution-flow {
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 1.2vw, 1rem);
}

.body-execution-flow--primary .body-execution-flow__intro,
.body-execution-flow--primary .body-panel--primary {
  border-color: rgba(100, 200, 255, 0.32);
  box-shadow: 0 0 20px rgba(60, 140, 255, 0.08);
}

.body-execution-flow__intro {
  margin: 0;
  padding: clamp(0.85rem, 1.2vw, 1rem) clamp(0.95rem, 1.4vw, 1.15rem);
}

.body-execution-flow__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.68;
}

.body-execution-flow__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

.body-execution-flow__lead {
  margin: 0 0 0.65rem;
  font-size: 0.86rem;
  line-height: 1.5;
  opacity: 0.88;
}

.body-execution-flow__chain {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.78rem;
  opacity: 0.82;
}

.body-execution-flow__chain li {
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(120, 160, 220, 0.22);
  background: rgba(20, 40, 80, 0.18);
}

.body-execution-flow__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.2vw, 1rem);
  align-items: start;
}

.body-panel {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-height: 100%;
  padding: clamp(0.85rem, 1.2vw, 1rem) clamp(0.95rem, 1.4vw, 1.1rem);
}

.body-panel__header {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
}

.body-panel__step {
  flex: 0 0 auto;
  width: 1.65rem;
  height: 1.65rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(180, 220, 255, 0.95);
  border: 1px solid rgba(100, 180, 255, 0.35);
  background: rgba(30, 70, 130, 0.35);
}

.body-panel__titles {
  min-width: 0;
  flex: 1;
}

.body-panel__eyebrow {
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.68;
}

.body-panel__title {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  line-height: 1.3;
}

.body-panel__lead {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  opacity: 0.84;
}

.body-panel__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}

.body-panel__host {
  min-width: 0;
}

.body-panel__empty {
  margin: 0;
  font-size: 0.86rem;
  opacity: 0.85;
}

.body-panel--vitality .cell-vitality--embedded {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
}

.body-panel--vitality .cell-vitality--embedded .cell-vitality__meters {
  margin-top: 0;
}

.body-dashboard__cycle-row {
  margin-top: 0.15rem;
}

.body-dashboard__vitality--primary,
.body-dashboard__behavior--primary,
.body-dashboard__sleep--primary,
.body-dashboard__functional--primary {
  border-color: rgba(100, 200, 255, 0.32);
  box-shadow: 0 0 20px rgba(60, 140, 255, 0.1);
}

.body-priority-banner {
  grid-column: 1 / -1;
  margin: 0;
}

.body-priority-banner__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.68;
}

.body-priority-banner__headline {
  margin: 0.25rem 0 0;
  font-size: 1rem;
  font-weight: 600;
}

.body-priority-banner__lead {
  margin: 0.4rem 0 0;
  font-size: 0.86rem;
  line-height: 1.55;
  opacity: 0.9;
}

.body-priority-banner--body-first {
  border-color: rgba(100, 200, 255, 0.35);
  background: linear-gradient(155deg, rgba(16, 28, 52, 0.92), rgba(10, 18, 36, 0.88));
}

.body-priority-banner--cycle-urgent {
  border-color: rgba(255, 140, 180, 0.4);
}

.body-cycle-fold {
  margin: 0;
}

.body-cycle-fold__summary {
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 600;
  opacity: 0.82;
  list-style: none;
}

.body-cycle-fold__summary::-webkit-details-marker {
  display: none;
}

.body-cycle-fold__summary::before {
  content: '▸ ';
  opacity: 0.65;
}

.body-cycle-fold[open] > .body-cycle-fold__summary::before {
  content: '▾ ';
}

.body-cycle-fold .body-cycle {
  margin-top: 0.65rem;
  border: none;
  box-shadow: none;
  padding: 0;
  background: transparent;
}

.body-cycle--deferred .body-cycle__deferred-note {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  opacity: 0.82;
  line-height: 1.5;
}

.body-cycle--prominent {
  align-self: stretch;
}

.body-page--body-primary .body-dashboard__figure {
  box-shadow: 0 0 24px rgba(80, 180, 255, 0.08);
}

.body-dashboard__vitality,
.body-dashboard__behavior,
.body-dashboard__sleep,
.body-dashboard__cycle,
.body-cycle {
  min-width: 0;
}

.body-dashboard__vitality .cellular-vitality {
  margin: 0;
}

/* ── 身体页 · 睡眠栏 ── */
.body-sleep__readout {
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.5rem;
  background: rgba(12, 22, 42, 0.55);
  border: 1px solid rgba(100, 180, 255, 0.15);
}

.body-sleep__readout-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
}

.body-sleep__score {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
}

.body-sleep__signal {
  margin: 0;
  font-size: 0.78rem;
  opacity: 0.88;
}

.body-sleep__signal--improving {
  color: rgba(120, 230, 180, 0.95);
}

.body-sleep__signal--declining {
  color: rgba(255, 160, 140, 0.95);
}

.body-sleep__delta {
  margin-left: 0.35rem;
  font-weight: 600;
}

.body-sleep__delta--up {
  color: rgba(120, 230, 180, 0.95);
}

.body-sleep__delta--down {
  color: rgba(255, 160, 140, 0.95);
}

.body-sleep__week {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  opacity: 0.75;
}

.body-sleep__hint {
  margin: 0.45rem 0 0;
  font-size: 0.74rem;
  line-height: 1.45;
  opacity: 0.72;
}

.body-sleep__readout-empty {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  opacity: 0.75;
}

.body-sleep__spark {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 36px;
  margin-top: 0.5rem;
}

.body-sleep__spark-bar {
  flex: 1;
  min-width: 3px;
  max-width: 8px;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(180deg, rgba(100, 200, 255, 0.85), rgba(60, 120, 200, 0.45));
}

.body-sleep__form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.body-sleep__import {
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(120, 160, 220, 0.16);
}

.body-sleep__import-btn {
  width: 100%;
}

.body-sleep__import-hint {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  opacity: 0.72;
}

.body-sleep__import-status {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: rgba(120, 230, 180, 0.92);
}

.body-sleep__dream-shift span {
  line-height: 1.45;
}

.body-sleep__group {
  margin: 0;
  padding: 0;
  border: none;
}

.body-sleep__legend {
  font-size: 0.78rem;
  opacity: 0.82;
  margin-bottom: 0.35rem;
}

.body-sleep__tri-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.body-sleep__tri {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.78rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(120, 160, 220, 0.22);
  cursor: pointer;
  opacity: 0.88;
}

.body-sleep__tri:has(input:checked) {
  border-color: rgba(100, 200, 255, 0.45);
  background: rgba(40, 80, 140, 0.25);
}

.body-sleep__tri input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.body-functional__card {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.body-functional__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.body-functional__mode {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
}

.body-functional__score {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.85;
}

.body-functional__headline {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

.body-functional__lead {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  opacity: 0.92;
}

.body-functional__bullets {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.86rem;
  line-height: 1.45;
  opacity: 0.9;
}

.body-functional__regions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.body-functional__chip {
  font-size: 0.76rem;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(120, 180, 255, 0.28);
  background: rgba(30, 60, 110, 0.22);
}

.body-functional__plan {
  margin: 0;
  font-size: 0.84rem;
  opacity: 0.88;
}

.body-functional__apply {
  align-self: flex-start;
  margin-top: 0.15rem;
}

.body-functional__empty {
  margin: 0;
  font-size: 0.88rem;
  opacity: 0.85;
}

.body-functional__internal {
  margin-top: 0.35rem;
  font-size: 0.78rem;
}

.body-functional__gates {
  margin: 0.35rem 0 0;
  padding: 0.5rem;
  border-radius: 0.35rem;
  background: rgba(0, 0, 0, 0.25);
  overflow: auto;
  max-height: 12rem;
  font-size: 0.72rem;
}

.body-page__empty {
  margin: 0;
  font-size: 0.88rem;
  opacity: 0.85;
}

.body-scene-chat-host {
  margin-top: 0.65rem;
}

.body-scene-chat {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--text-muted, #888) 28%, transparent);
  background: color-mix(in srgb, var(--surface-raised, #1a1f2e) 88%, transparent);
}

.body-scene-chat__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.body-scene-chat__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.65;
}

.body-scene-chat__title {
  margin: 0.15rem 0 0;
  font-size: 1rem;
}

.body-scene-chat__hint {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  line-height: 1.45;
  opacity: 0.82;
}

.body-scene-chat__log {
  max-height: 14rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.35rem 0;
}

.body-scene-chat__empty {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.7;
}

.body-scene-chat__msg {
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  font-size: 0.84rem;
  line-height: 1.5;
}

.body-scene-chat__msg--user {
  align-self: flex-end;
  max-width: 92%;
  background: color-mix(in srgb, var(--accent, #6eb5ff) 22%, var(--surface-raised, #1a1f2e));
  color: var(--text-primary, #f5f5f7);
  border: 1px solid color-mix(in srgb, var(--accent, #6eb5ff) 35%, transparent);
}

.body-scene-chat__msg--assistant {
  align-self: flex-start;
  max-width: 96%;
  background: color-mix(in srgb, var(--surface-elevated, #252b3d) 95%, #000);
  color: var(--text-primary, #f5f5f7);
  border: 1px solid color-mix(in srgb, var(--text-muted, #888) 32%, transparent);
}

.body-scene-chat__role {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  opacity: 0.6;
  margin-bottom: 0.15rem;
}

.body-scene-chat__text {
  margin: 0;
}

.body-scene-chat__form {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.body-scene-chat__input {
  width: 100%;
  min-height: 3.2rem;
  resize: vertical;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--text-muted, #888) 35%, transparent);
  background: color-mix(in srgb, var(--surface-raised, #1a1f2e) 92%, #000);
  color: var(--text-primary, #f5f5f7);
  font: inherit;
  line-height: 1.45;
}

.body-scene-chat__disclaimer {
  margin: 0;
  font-size: 0.68rem;
  opacity: 0.58;
  line-height: 1.4;
}

.body-scene-chat__clear {
  flex-shrink: 0;
  font-size: 0.72rem;
  padding: 0.25rem 0.55rem;
}

.body-page__cycle {
  margin: 0;
  font-size: 0.88rem;
}

/* ── 身体页 · 月经 / 周期（仅女性） ── */
.body-cycle {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  align-self: stretch;
}

.body-cycle__head {
  flex-shrink: 0;
}

.body-cycle__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.65;
}

.body-cycle__title {
  margin: 0.2rem 0 0;
  font-size: 0.98rem;
}

.body-cycle__bridge-note {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  line-height: 1.5;
  opacity: 0.92;
}

.body-cycle__lead {
  margin: 0.35rem 0 0.75rem;
  font-size: 0.84rem;
  line-height: 1.55;
  opacity: 0.88;
}

.body-cycle__summary {
  margin: 0;
  display: grid;
  gap: 0.4rem;
  font-size: 0.82rem;
}

.body-cycle__summary-row {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.35rem 0.5rem;
  align-items: baseline;
}

.body-cycle__summary-row dt {
  margin: 0;
  opacity: 0.72;
}

.body-cycle__summary-row dd {
  margin: 0;
  font-weight: 500;
}

.body-cycle__summary-row--prep dd {
  color: rgba(255, 170, 200, 0.92);
}

.body-cycle__length-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.body-cycle__length-input {
  width: 3.5rem;
  padding: 0.25rem 0.35rem;
  font: inherit;
  font-size: 0.82rem;
  border-radius: 0.35rem;
  border: 1px solid rgba(120, 160, 220, 0.35);
  background: rgba(0, 0, 0, 0.25);
  color: inherit;
}

.body-cycle__period {
  margin: 0;
}

.body-cycle__period--urgent {
  border-color: rgba(255, 140, 180, 0.45);
  box-shadow: 0 0 16px rgba(255, 100, 160, 0.12);
}

.body-cycle .cycle-prep-control {
  margin: 0;
}

.body-cycle .cycle-period-update__hint,
.body-cycle .cycle-delay-prompt__lead {
  font-size: 0.8rem;
  line-height: 1.5;
}

.body-cycle .menstrual-prep {
  margin: 0;
  font-size: 0.8rem;
}

.body-cycle .menstrual-prep__title {
  font-size: 0.9rem;
}

.body-cycle--setup {
  justify-content: flex-start;
}

.body-cycle__setup-form {
  display: grid;
  gap: 0.65rem;
}

.body-cycle__setup-field {
  display: grid;
  gap: 0.25rem;
  font-size: 0.82rem;
}

.body-cycle__setup-label {
  opacity: 0.78;
}

.body-cycle__setup-input {
  padding: 0.35rem 0.45rem;
  font: inherit;
  font-size: 0.84rem;
  border-radius: 0.35rem;
  border: 1px solid rgba(120, 160, 220, 0.35);
  background: rgba(0, 0, 0, 0.25);
  color: inherit;
}

.body-cycle__setup-btn {
  align-self: flex-start;
  margin-top: 0.15rem;
}

/* ── 2D 人体主视觉 ── */
.body-figure-stage {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  flex: 1 1 auto;
  height: 100%;
  min-height: clamp(20rem, calc(100vh - 18rem), 48rem);
  background: linear-gradient(165deg, rgba(12, 18, 36, 0.95), rgba(8, 14, 28, 0.92));
  border: 1px solid rgba(100, 180, 255, 0.22);
  box-shadow:
    0 0 40px rgba(60, 140, 255, 0.12),
    inset 0 1px 0 rgba(180, 220, 255, 0.06);
}

.body-figure-stage__head {
  flex-shrink: 0;
}

.body-figure-stage__title {
  margin: 0;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
}

.body-figure-stage__lead {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  opacity: 0.82;
  line-height: 1.45;
}

.body-figure-stage__viewport {
  position: relative;
  flex: 1 1 auto;
  min-height: clamp(18rem, calc(100vh - 22rem), 44rem);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0.65rem;
  background:
    radial-gradient(ellipse 70% 55% at 50% 42%, rgba(80, 180, 255, 0.14), transparent 62%),
    radial-gradient(ellipse 90% 70% at 50% 100%, rgba(40, 100, 200, 0.08), transparent 55%);
}

.body-figure-stage__img {
  display: block;
  max-height: 100%;
  max-width: min(100%, 26rem);
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 24px rgba(80, 180, 255, 0.35));
  pointer-events: none;
  user-select: none;
}

.body-figure-stage__glow {
  position: absolute;
  inset: 8% 18% 12%;
  background: radial-gradient(ellipse at 50% 45%, rgba(100, 200, 255, 0.18), transparent 68%);
  pointer-events: none;
  animation: body-figure-glow 4s ease-in-out infinite alternate;
}

@keyframes body-figure-glow {
  from { opacity: 0.55; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1.02); }
}

.body-figure-stage__hotspots {
  position: absolute;
  inset: 0;
}

.body-figure-hotspot__label {
  position: absolute;
  left: 50%;
  bottom: -1.35rem;
  transform: translateX(-50%);
  font-size: 0.62rem;
  white-space: nowrap;
  color: rgba(210, 230, 255, 0.88);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.65);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s;
  z-index: 1;
}

.body-figure-hotspot {
  position: absolute;
  margin: 0;
  padding: 0;
  border: 1.5px solid transparent;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
  z-index: 2;
}

.body-figure-hotspot__pulse {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0.55;
  animation: body-hotspot-pulse 2.4s ease-in-out infinite;
}

.body-figure-hotspot:hover .body-figure-hotspot__label,
.body-figure-hotspot--selected .body-figure-hotspot__label {
  opacity: 1;
}

.body-figure-hotspot--smooth .body-figure-hotspot__pulse {
  background: rgba(80, 220, 160, 0.22);
  box-shadow: 0 0 16px rgba(80, 220, 160, 0.35);
}

.body-figure-hotspot--active .body-figure-hotspot__pulse {
  background: rgba(255, 180, 80, 0.28);
  box-shadow: 0 0 20px rgba(255, 160, 60, 0.45);
  animation-duration: 1.6s;
}

.body-figure-hotspot--emerging .body-figure-hotspot__pulse {
  background: rgba(180, 140, 255, 0.24);
  box-shadow: 0 0 18px rgba(160, 120, 255, 0.4);
}

.body-figure-hotspot--queued .body-figure-hotspot__pulse {
  background: rgba(140, 160, 200, 0.16);
  box-shadow: 0 0 10px rgba(140, 160, 200, 0.2);
  animation: none;
  opacity: 0.45;
}

.body-figure-hotspot--slow .body-figure-hotspot__pulse {
  background: rgba(255, 120, 120, 0.18);
  box-shadow: 0 0 12px rgba(255, 100, 100, 0.28);
  animation-duration: 3.2s;
}

.body-figure-hotspot:hover,
.body-figure-hotspot--selected {
  border-color: rgba(180, 220, 255, 0.55);
  box-shadow: 0 0 14px rgba(120, 190, 255, 0.35);
}

@keyframes body-hotspot-pulse {
  0%, 100% { transform: scale(1); opacity: 0.45; }
  50% { transform: scale(1.04); opacity: 0.85; }
}

.body-figure-stage__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  font-size: 0.68rem;
  opacity: 0.88;
}

.body-figure-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.body-figure-legend__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
}

.body-figure-legend__item--smooth .body-figure-legend__dot { background: rgba(80, 220, 160, 0.85); }
.body-figure-legend__item--active .body-figure-legend__dot { background: rgba(255, 180, 80, 0.9); }
.body-figure-legend__item--emerging .body-figure-legend__dot { background: rgba(180, 140, 255, 0.85); }
.body-figure-legend__item--queued .body-figure-legend__dot { background: rgba(140, 160, 200, 0.65); }
.body-figure-legend__item--slow .body-figure-legend__dot { background: rgba(255, 120, 120, 0.75); }

.body-figure-stage__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.body-figure-stage__chip {
  font-size: 0.72rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(120, 180, 255, 0.22);
}

/* ── 区域详情（右侧） ── */
.body-region-detail {
  margin: 0;
}

.body-region-detail__empty {
  margin: 0;
  font-size: 0.85rem;
  opacity: 0.82;
  line-height: 1.55;
}

.body-region-detail__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.65;
}

.body-region-detail__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
}

.body-region-detail__status {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
}

.body-region-detail--smooth .body-region-detail__status { color: rgba(100, 230, 170, 0.92); }
.body-region-detail--active .body-region-detail__status { color: rgba(255, 190, 100, 0.95); }
.body-region-detail--emerging .body-region-detail__status { color: rgba(190, 160, 255, 0.92); }
.body-region-detail--queued .body-region-detail__status { color: rgba(160, 180, 210, 0.85); }
.body-region-detail--slow .body-region-detail__status { color: rgba(255, 140, 140, 0.9); }

.body-region-detail__note {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.55;
  opacity: 0.9;
}

@media (max-width: 960px) {
  .body-dashboard__hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .body-dashboard__figure {
    min-height: clamp(18rem, 55vh, 28rem);
  }

  .body-dashboard__inputs {
    grid-template-columns: 1fr;
  }

  .body-dashboard__primary-row--with-sleep,
  .body-dashboard__primary-row--with-cycle,
  .body-execution-flow__grid {
    grid-template-columns: 1fr;
  }

  .body-execution-flow__chain {
    flex-direction: column;
    align-items: flex-start;
  }

  .body-priority-banner {
    margin-bottom: 0.25rem;
  }

  .body-figure-stage {
    min-height: clamp(18rem, 55vh, 28rem);
  }

  .body-figure-stage__viewport {
    min-height: clamp(16rem, 50vh, 24rem);
  }
}

.body-page__subtitle {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  opacity: 0.82;
}

.body-page__date-nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.body-page__date-label {
  flex: 1 1 auto;
  min-width: 8rem;
  text-align: center;
  position: relative;
}

.body-page__date-text {
  font-weight: 600;
}

.body-page__date-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
}

.body-page__meta {
  font-size: 0.85rem;
  opacity: 0.88;
  margin: 0;
}

.body-page__section-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.body-page__section-lead {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  opacity: 0.85;
}

.body-page__forecast-headline {
  margin: 0.35rem 0;
  font-size: 1rem;
  line-height: 1.5;
}

.body-page__forecast-visual,
.body-page__forecast-regions,
.body-page__forecast-sub,
.body-page__forecast-phase {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  opacity: 0.9;
}

.body-page__forecast-internal {
  margin: 0.75rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.85rem;
  line-height: 1.55;
}

.body-page__forecast-internal li + li {
  margin-top: 0.35rem;
}

.body-page__footer-lead {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
  opacity: 0.85;
}

.body-page__footer-layer {
  margin: 0 0 0.75rem;
  font-size: 0.76rem;
  line-height: 1.5;
  opacity: 0.72;
}

.body-page__footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* ── Day Drawer · 身体轻预览 ── */
.body-drawer-preview {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.body-drawer-preview__title {
  margin: 0;
  font-size: 0.92rem;
}

.body-drawer-preview__lead {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  opacity: 0.82;
}

.body-drawer-preview__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.8rem;
  opacity: 0.88;
}

.body-drawer-preview__cta {
  width: 100%;
  margin-top: 0.25rem;
}

.cell-vitality-teaser {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.82rem;
}

.cell-vitality-teaser__score {
  font-weight: 600;
}

.cell-vitality-teaser__dual {
  opacity: 0.78;
  font-size: 0.76rem;
}

.cell-vitality-teaser--empty {
  font-size: 0.78rem;
  opacity: 0.75;
}

.body-page--locked {
  text-align: center;
  padding: 2rem 1rem;
}

.me-grounding-bar__row--link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: baseline;
  text-decoration: none;
  color: inherit;
  border-radius: 0.5rem;
  padding: 0.35rem 0.25rem;
  margin: -0.35rem -0.25rem;
}

.me-grounding-bar__row--link:hover {
  background: rgba(255, 255, 255, 0.04);
}

.me-grounding-bar__row-cta {
  font-size: 0.78rem;
  opacity: 0.75;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .me-rhythm-pathway__steps {
    grid-template-columns: 1fr;
  }

  .me-rhythm-pathway__arrow {
    display: none;
  }
}

.me-helix-stage__viewport .life-helix-3d__canvas {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.me-helix-theater-host {
  flex: 0 0 auto;
}

.life-helix-3d__canvas {
  display: block;
  width: 100%;
  height: clamp(34rem, calc(100vh - 18rem), 56rem);
  min-height: inherit;
  touch-action: none;
  cursor: grab;
}

#me-helix-root:not(.life-helix-3d--liuyue-drill) .life-helix-3d__canvas {
  height: 100%;
  min-height: 0;
}

#me-helix-root.life-helix-3d--liuyue-drill .life-helix-3d__canvas {
  height: auto;
  min-height: 0;
}

.life-helix-3d__canvas:active {
  cursor: grabbing;
}

.life-helix-3d__hint {
  position: absolute;
  bottom: 0.65rem;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  padding: 0.25rem 0.65rem;
  font-size: 0.68rem;
  color: rgba(180, 200, 230, 0.45);
  pointer-events: none;
  background: linear-gradient(
    135deg,
    rgba(0, 100, 170, 0.82) 0%,
    rgba(38, 58, 145, 0.86) 50%,
    rgba(82, 44, 142, 0.88) 100%
  );
  border: 1px solid rgba(130, 160, 255, 0.35);
  border-radius: 999px;
  white-space: nowrap;
}

.life-helix-3d__labels {
  overflow: hidden;
  border-radius: inherit;
}

.life-helix-3d__label {
  padding: 0.2rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(240, 245, 255, 0.92);
  background: linear-gradient(
    135deg,
    rgba(0, 110, 185, 0.9) 0%,
    rgba(32, 52, 138, 0.92) 48%,
    rgba(78, 42, 136, 0.94) 100%
  );
  border: 1px solid rgba(130, 165, 255, 0.42);
  border-radius: 0.35rem;
  white-space: nowrap;
  transform: translate(-50%, -100%);
  pointer-events: none;
  box-shadow: 0 2px 10px rgba(20, 40, 120, 0.35);
}

.life-helix-3d__label--mirror-year {
  font-size: 0.78rem;
  font-weight: 700;
  color: #a8fff8;
  background: linear-gradient(
    135deg,
    rgba(0, 130, 195, 0.9) 0%,
    rgba(28, 62, 150, 0.92) 50%,
    rgba(68, 48, 145, 0.94) 100%
  );
  border: 1px solid rgba(100, 200, 255, 0.55);
  padding: 0.2rem 0.5rem;
  border-radius: 0.35rem;
  white-space: nowrap;
}

.life-helix-3d__label--liuyue-key {
  font-size: 0.8rem;
  font-weight: 700;
  color: #ffe8c8;
  background: linear-gradient(
    135deg,
    rgba(0, 95, 175, 0.9) 0%,
    rgba(45, 48, 135, 0.92) 50%,
    rgba(95, 38, 128, 0.94) 100%
  );
  border: 1px solid rgba(160, 140, 255, 0.48);
  padding: 0.18rem 0.45rem;
  border-radius: 0.3rem;
  white-space: nowrap;
}

.life-helix-3d__strand-tag--mirror {
  color: #b8fff8;
  border-color: rgba(100, 200, 255, 0.55);
  background: linear-gradient(
    135deg,
    rgba(0, 125, 190, 0.9) 0%,
    rgba(30, 58, 145, 0.92) 50%,
    rgba(72, 45, 140, 0.94) 100%
  );
}

.me-liuyue-fold__month-key {
  font-size: 1rem;
  font-weight: 700;
  color: #ffd8a8;
}

.me-liuyue-fold__pair--compact .me-liuyue-fold__side {
  align-items: center;
  text-align: center;
}

.me-jiaxu-year--mirror {
  border-color: rgba(78, 205, 196, 0.55);
  background: rgba(8, 40, 38, 0.55);
}

.me-jiaxu-year--current-year {
  border-color: rgba(244, 162, 97, 0.55);
}

.life-helix-3d__label--compare-year {
  font-size: 0.78rem;
  font-weight: 700;
  color: #ffe8c8;
  background: linear-gradient(
    135deg,
    rgba(0, 105, 180, 0.9) 0%,
    rgba(42, 50, 140, 0.92) 50%,
    rgba(88, 40, 132, 0.94) 100%
  );
  border: 1px solid rgba(150, 130, 255, 0.5);
  padding: 0.2rem 0.5rem;
  border-radius: 0.35rem;
  white-space: nowrap;
}

.life-helix-3d__label--key {
  font-size: 0.8rem;
  color: #fff8f0;
  border-color: rgba(180, 150, 255, 0.55);
  box-shadow: 0 0 12px rgba(80, 60, 180, 0.4), 0 2px 10px rgba(20, 40, 120, 0.35);
}

.me-helix-stage--3d .life-helix-3d__hint {
  z-index: 3;
  bottom: 2.65rem;
}

.me-helix-stage--3d .life-helix-3d__labels {
  z-index: 2;
}

.life-helix-3d--liuyue-drill {
  position: relative;
  width: 100%;
  min-height: clamp(28rem, 62vh, 44rem);
}

.life-helix-3d--liuyue-drill .life-helix-3d__canvas {
  display: block;
  width: 100%;
  height: clamp(28rem, 62vh, 44rem);
}

.life-helix-3d--liuyue-drill .life-helix-3d__labels {
  z-index: 2;
}

.life-helix-3d--liuyue-drill .life-helix-3d__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #e8f8ff;
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.95), 0 0 4px rgba(0, 180, 255, 0.45);
}

.life-helix-3d--liuyue-drill .life-helix-3d__label--liuyue-sub {
  font-size: 0.58rem;
  opacity: 0.92;
}

.life-helix-3d--liuyue-drill .life-helix-3d__label--leap-breakthrough {
  font-size: 0.88rem;
  color: #ffe8c8;
}

.life-helix-3d__strand-tag--liuyue {
  font-size: 0.68rem;
}

.life-helix-3d__toolbar {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  z-index: 4;
  position: absolute;
  top: 0.5rem;
  left: 0.55rem;
  right: 0.55rem;
  margin: 0;
  pointer-events: none;
}

.life-helix-3d__toolbar > * {
  pointer-events: auto;
}

.life-helix-3d__back {
  font-size: 0.72rem;
  padding: 0.28rem 0.65rem;
}

.life-helix-3d__drill-title {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(170, 230, 255, 0.88);
}

.life-helix-3d__label--liuyue-key {
  font-size: 0.68rem;
  font-weight: 700;
  color: #ffd8a0;
  text-shadow: 0 0 8px rgba(255, 140, 40, 0.55);
}

.life-helix-3d__label--compact {
  font-size: 0.62rem;
  padding: 0.1rem 0.35rem;
  opacity: 0.88;
  border-color: rgba(140, 165, 255, 0.38);
}

.life-helix-3d__strand-tag {
  padding: 0.25rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #ffe8d0;
  background: linear-gradient(
    135deg,
    rgba(0, 100, 175, 0.9) 0%,
    rgba(38, 55, 142, 0.92) 50%,
    rgba(80, 42, 135, 0.94) 100%
  );
  border: 1px solid rgba(150, 130, 255, 0.48);
  border-radius: 0.35rem;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 2px 10px rgba(20, 40, 120, 0.35);
}

.me-liuyue-fold__evolution {
  margin-bottom: 0.65rem;
  padding: 0.6rem 0.7rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(255, 180, 100, 0.22);
  background: rgba(30, 18, 8, 0.4);
}

.me-liuyue-fold--breakthrough .me-liuyue-fold__evolution {
  border-color: rgba(255, 120, 60, 0.45);
  background: rgba(50, 20, 8, 0.55);
}

.me-liuyue-fold--elevated .me-liuyue-fold__evolution {
  border-color: rgba(255, 200, 80, 0.38);
}

.me-liuyue-fold__leap {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: #ffc896;
}

.me-liuyue-fold__summary {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(230, 220, 210, 0.92);
}

.me-liuyue-fold__narrative {
  margin: 0.45rem 0 0;
  font-size: 0.68rem;
  line-height: 1.4;
  color: rgba(160, 190, 220, 0.75);
  font-style: italic;
}

.me-liuyue-fold__side-label {
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.7;
}

.me-liuyue-fold__lens {
  font-size: 0.72rem;
  color: rgba(200, 230, 255, 0.88);
}

.me-liuyue-fold__leap-mini {
  font-size: 0.58rem;
  color: #ffc896;
  text-align: center;
  max-width: 4.5rem;
  line-height: 1.25;
}

.me-liuyue-fold__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.55rem 0 0;
}

.me-liuyue-fold__tag {
  font-size: 0.62rem;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  border: 1px solid rgba(136, 221, 255, 0.35);
  color: rgba(180, 220, 255, 0.9);
}

.me-liuyue-fold {
  margin-top: 0.85rem;
  padding: 0.75rem 0.9rem;
  border-radius: 0.55rem;
  border: 1px solid rgba(102, 204, 255, 0.28);
  background: rgba(8, 20, 40, 0.55);
}

.me-liuyue-fold__title {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: rgba(136, 221, 255, 0.85);
  text-transform: uppercase;
}

.me-liuyue-fold__path {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.65rem;
  padding: 0;
  list-style: none;
}

.me-liuyue-fold__path-step {
  flex: 1 1 8.5rem;
  min-width: 7.5rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.4rem;
  border: 1px solid rgba(100, 160, 200, 0.25);
  background: rgba(10, 24, 42, 0.5);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.me-liuyue-fold__path-step--first-liuyue {
  border-color: rgba(78, 205, 196, 0.35);
}

.me-liuyue-fold__path-step--dayun-switch {
  border-color: rgba(180, 140, 255, 0.35);
}

.me-liuyue-fold__path-step--limit-switch {
  border-color: rgba(255, 140, 60, 0.45);
  background: rgba(40, 18, 6, 0.55);
}

.me-liuyue-fold__path-step--same-liuyue-again {
  border-color: rgba(244, 162, 97, 0.4);
}

.me-liuyue-fold__path-title {
  font-size: 0.72rem;
  font-weight: 600;
}

.me-liuyue-fold__path-detail {
  font-size: 0.62rem;
  line-height: 1.35;
  color: rgba(180, 200, 220, 0.78);
}

.me-liuyue-fold__pair {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.65rem;
  align-items: stretch;
}

.me-liuyue-fold__side {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  font-size: 0.78rem;
}

.me-liuyue-fold__side--mirror {
  border: 1px solid rgba(78, 205, 196, 0.35);
  background: rgba(10, 40, 38, 0.45);
}

.me-liuyue-fold__side--current {
  border: 1px solid rgba(244, 162, 97, 0.35);
  background: rgba(50, 28, 10, 0.45);
}

.me-liuyue-fold__dayun {
  font-size: 0.68rem;
  opacity: 0.75;
}

.me-liuyue-fold__year {
  font-weight: 600;
}

.me-liuyue-fold__h {
  font-size: 0.68rem;
  color: rgba(255, 210, 160, 0.85);
  font-variant-numeric: tabular-nums;
}

.me-liuyue-fold__bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 3.2rem;
  color: rgba(136, 221, 255, 0.9);
  font-size: 0.72rem;
}

.me-liuyue-fold__plane {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.me-liuyue-fold__note {
  margin: 0.55rem 0 0;
  font-size: 0.72rem;
  color: rgba(180, 210, 240, 0.78);
}

.life-helix-3d__label--liuyue {
  font-size: 0.62rem;
  color: #aaf0ff;
  white-space: nowrap;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.9);
}

.life-helix-3d__label--leap {
  font-size: 0.72rem;
  font-weight: 700;
  color: #ffd0a0;
  padding: 0.2rem 0.45rem;
  background: linear-gradient(
    135deg,
    rgba(0, 108, 182, 0.9) 0%,
    rgba(48, 46, 138, 0.92) 50%,
    rgba(92, 38, 130, 0.94) 100%
  );
  border: 1px solid rgba(170, 140, 255, 0.5);
  border-radius: 0.35rem;
  white-space: nowrap;
}

.life-helix-3d__label--leap-breakthrough {
  color: #ffe0c0;
  border-color: rgba(190, 120, 255, 0.62);
}

.life-helix-3d__label--accel-edge {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #ffd4f8;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  white-space: nowrap;
  background: linear-gradient(
    125deg,
    rgba(255, 110, 199, 0.42) 0%,
    rgba(155, 92, 255, 0.48) 52%,
    rgba(126, 232, 255, 0.35) 100%
  );
  border: 1px solid rgba(255, 180, 240, 0.55);
  box-shadow:
    0 0 14px rgba(255, 110, 199, 0.45),
    0 0 28px rgba(155, 92, 255, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: helix-accel-edge-pulse 2.4s ease-in-out infinite;
}

@keyframes helix-accel-edge-pulse {
  0%, 100% {
    box-shadow:
      0 0 12px rgba(255, 110, 199, 0.38),
      0 0 22px rgba(155, 92, 255, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.3);
  }
  50% {
    box-shadow:
      0 0 20px rgba(255, 110, 199, 0.62),
      0 0 36px rgba(155, 92, 255, 0.38),
      inset 0 1px 0 rgba(255, 255, 255, 0.48);
  }
}

.life-helix-3d--liuyue-drill .life-helix-3d__label--accel-edge {
  font-size: 0.58rem;
}

.liuyue-spine__accel-edge {
  stroke: url(#liuyue-spine-accel);
  stroke-width: 5;
  stroke-linecap: round;
  filter: url(#liuyue-spine-accel-glow);
  opacity: 0.92;
}

.life-helix-3d__label--leap-elevated {
  color: #ffe8b0;
}

.life-helix-3d__label--path {
  font-size: 0.58rem;
  color: rgba(180, 220, 255, 0.85);
  padding: 0.12rem 0.35rem;
  background: linear-gradient(
    135deg,
    rgba(0, 95, 165, 0.85) 0%,
    rgba(35, 50, 130, 0.88) 50%,
    rgba(70, 40, 125, 0.9) 100%
  );
  border: 1px solid rgba(120, 150, 255, 0.35);
  border-radius: 0.25rem;
}

.me-jiaxu-strip {
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.65rem;
  background: rgba(18, 22, 38, 0.75);
  border: 1px solid rgba(244, 162, 97, 0.25);
}

.me-jiaxu-strip__title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: rgba(255, 210, 170, 0.75);
}

.me-jiaxu-strip__years {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.me-jiaxu-year {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  padding: 0.35rem 0.45rem;
  min-width: 2.6rem;
  border: 1px solid rgba(140, 160, 200, 0.2);
  border-radius: 0.4rem;
  background: rgba(8, 12, 24, 0.6);
  color: rgba(220, 230, 250, 0.85);
  cursor: pointer;
  font-family: inherit;
}

.me-jiaxu-year:hover {
  border-color: rgba(244, 162, 97, 0.45);
}

.me-jiaxu-year--key {
  border-color: rgba(255, 160, 80, 0.55);
  background: rgba(60, 30, 10, 0.45);
}

.me-jiaxu-year--current {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
}

.me-jiaxu-year--selected {
  box-shadow: 0 0 0 2px rgba(244, 162, 97, 0.85);
}

.me-jiaxu-year__gz {
  font-size: 0.82rem;
  font-weight: 600;
}

.me-jiaxu-year__y {
  font-size: 0.62rem;
  opacity: 0.65;
}

.me-jiaxu-year--plateau {
  border-color: rgba(255, 140, 90, 0.4);
}

.me-jiaxu-year__h {
  font-size: 0.58rem;
  color: rgba(255, 200, 150, 0.75);
  font-variant-numeric: tabular-nums;
}

/* ── 流月收入波动 · XY / K 线（科技蓝）── */
.me-income-chart-host {
  margin-top: 0.75rem;
  width: 100%;
  min-height: 12rem;
  overflow: visible;
}

.me-income-chart--compact .me-income-chart__canvas {
  min-height: 11.5rem;
  overflow: visible;
}

.me-income-chart--compact .me-income-chart__svg {
  min-height: 10.5rem;
}

.me-income-chart {
  padding: 0.85rem 0.95rem 0.95rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(80, 150, 230, 0.28);
  background:
    linear-gradient(155deg, rgba(8, 22, 48, 0.92) 0%, rgba(6, 16, 36, 0.96) 55%, rgba(4, 12, 28, 0.98) 100%);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(140, 200, 255, 0.12);
}

.me-income-chart--compact {
  padding: 0.7rem 0.75rem 0.8rem;
}

.me-income-chart--full {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: clamp(1rem, 2vw, 1.5rem);
  min-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.me-income-chart--locked {
  max-width: 28rem;
  margin: 3rem auto;
  text-align: center;
}

.me-income-chart__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.me-income-chart__eyebrow {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(130, 190, 255, 0.72);
}

.me-income-chart__title {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
  font-weight: 650;
  color: rgba(230, 245, 255, 0.96);
  letter-spacing: -0.01em;
}

.me-income-chart--full .me-income-chart__title {
  font-size: 1.15rem;
}

.me-income-chart__lead {
  margin: 0.35rem 0 0;
  font-size: 0.74rem;
  color: rgba(160, 200, 240, 0.78);
}

.me-income-chart__hint {
  margin: 0.45rem 0 0;
  font-size: 0.66rem;
  line-height: 1.45;
  color: rgba(140, 180, 220, 0.68);
}

.me-income-chart__expand,
.me-income-chart__back {
  flex-shrink: 0;
  font-size: 0.72rem;
  padding: 0.35rem 0.65rem;
  border-color: rgba(100, 170, 255, 0.35);
  color: rgba(190, 225, 255, 0.92);
}

.me-income-chart__canvas {
  display: block;
  width: 100%;
  border: none;
  padding: 0;
  background: transparent;
  cursor: default;
}

.me-income-chart--full .me-income-chart__canvas {
  flex: 1;
  min-height: min(72vh, 680px);
  display: flex;
  align-items: stretch;
}

.me-income-chart__axis-x--pick {
  cursor: pointer;
}

.me-income-chart__axis-x--pick.is-current,
.me-income-chart__axis-x--pick:hover {
  fill: rgba(0, 232, 255, 0.95);
}

.me-page--income-focus .me-dashboard__left,
.me-page--income-focus .me-helix-head,
.me-page--income-focus .me-helix-stage,
.me-page--income-focus .me-rhythm-pathway-host,
.me-page--income-focus .me-cycle-bridge-host,
.me-page--income-focus .me-grounding-bar-host,
.me-page--income-focus .me-dna__legend,
.me-page--income-focus .me-jiaxu-strip,
.me-page--income-focus .me-dna__detail,
.me-page--income-focus .me-report-panel {
  display: none !important;
}

.me-page--income-focus .me-dashboard {
  display: block;
}

.me-page--income-focus #me-income-chart-host {
  position: fixed;
  inset: 0;
  z-index: 120;
  margin: 0;
  padding: 0;
  overflow: auto;
  background: radial-gradient(ellipse 120% 80% at 50% 0%, rgba(8, 24, 48, 0.98), rgba(4, 10, 22, 0.99));
}

.me-page--income-focus .me-income-chart--full {
  min-height: 100vh;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.me-income-chart__canvas--link {
  cursor: pointer;
  border-radius: 0.55rem;
  transition: box-shadow 0.18s ease, background 0.18s ease;
}

.me-income-chart__canvas--link:hover {
  background: rgba(0, 120, 200, 0.08);
  box-shadow: inset 0 0 0 1px rgba(0, 210, 255, 0.22);
}

.me-income-chart__svg {
  display: block;
  width: 100%;
  height: auto;
}

.me-income-chart__plot-bg {
  fill: rgba(4, 14, 32, 0.55);
  stroke: rgba(60, 120, 200, 0.18);
  stroke-width: 1;
}

.me-income-chart__grid-line {
  stroke: rgba(80, 140, 220, 0.14);
  stroke-width: 1;
  stroke-dasharray: 3 4;
}

.me-income-chart__axis {
  stroke: rgba(100, 170, 255, 0.45);
  stroke-width: 1.2;
}

.me-income-chart__axis--x,
.me-income-chart__axis--y {
  stroke: rgba(0, 220, 255, 0.88);
  stroke-width: 2;
  stroke-linecap: round;
}

.me-income-chart__axis-cap {
  fill: rgba(0, 230, 255, 0.92);
}

.me-income-chart__axis-origin {
  fill: rgba(0, 230, 255, 0.95);
  stroke: rgba(180, 240, 255, 0.85);
  stroke-width: 1;
}

.me-income-chart__axis-tick {
  stroke: rgba(100, 180, 255, 0.55);
  stroke-width: 1;
}

.me-income-chart__svg--axes-only .me-income-chart__plot-bg {
  stroke: rgba(0, 200, 255, 0.22);
  stroke-width: 1;
}

.me-income-chart__axis-y,
.me-income-chart__axis-x {
  fill: rgba(150, 195, 240, 0.75);
  font-size: 9px;
  font-family: var(--font-apple-zh, system-ui, sans-serif);
}

.me-income-chart__svg--axes-only .me-income-chart__axis-x {
  fill: rgba(170, 215, 255, 0.92);
  font-size: 10px;
  font-weight: 600;
}

.me-income-chart__axis-label {
  fill: rgba(120, 180, 230, 0.65);
  font-size: 8px;
  letter-spacing: 0.06em;
}

.me-income-chart__axis-label--x {
  fill: rgba(130, 200, 255, 0.82);
  font-size: 9px;
  letter-spacing: 0.04em;
}

.me-income-chart__bar-glow {
  pointer-events: none;
}

.me-income-chart__bar-fill {
  stroke: rgba(0, 230, 255, 0.55);
  stroke-width: 0.6;
}

.me-income-chart__bar.is-current .me-income-chart__bar-fill {
  stroke: rgba(180, 240, 255, 0.95);
  stroke-width: 1.2;
}

.me-income-chart__bar.is-compare .me-income-chart__bar-fill {
  stroke: rgba(255, 200, 120, 0.85);
  stroke-width: 1.1;
}

.me-income-chart__bar[role="button"] {
  cursor: pointer;
  outline: none;
}

.me-income-chart__bar[role="button"]:focus-visible .me-income-chart__bar-fill {
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 1.4;
}

.me-income-chart__compare {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 0.6rem;
  background: rgba(6, 18, 40, 0.75);
  border: 1px solid rgba(80, 150, 230, 0.22);
}

.me-income-chart__compare-title {
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  color: rgba(180, 220, 255, 0.9);
}

.me-income-chart__compare-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.me-income-chart__compare-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  background: rgba(0, 80, 160, 0.12);
  border: 1px solid rgba(0, 160, 255, 0.18);
  font-size: 0.74rem;
  color: rgba(210, 235, 255, 0.88);
}

.me-income-chart__compare-item strong {
  font-size: 0.8rem;
  color: rgba(230, 248, 255, 0.96);
}

.me-income-chart__compare-reason {
  font-size: 0.68rem;
  color: rgba(150, 190, 230, 0.72);
}

.me-income-chart__empty {
  margin: 0;
  font-size: 0.78rem;
  color: rgba(160, 190, 230, 0.75);
}

.me-income-chart__readout {
  margin-top: 0.65rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(80, 150, 230, 0.22);
  background: rgba(6, 18, 40, 0.55);
}

.me-income-chart__readout-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.45rem;
  margin-bottom: 0.45rem;
}

.me-income-chart__tag {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  line-height: 1.35;
  color: rgba(180, 215, 255, 0.92);
  background: rgba(0, 120, 200, 0.18);
  border: 1px solid rgba(0, 180, 255, 0.22);
}

.me-income-chart__tag--mode {
  color: rgba(255, 210, 140, 0.95);
  background: rgba(200, 120, 40, 0.16);
  border-color: rgba(255, 180, 80, 0.28);
}

.me-income-chart__tag--chain {
  color: rgba(160, 230, 200, 0.95);
  background: rgba(40, 160, 120, 0.14);
  border-color: rgba(80, 200, 160, 0.25);
}

.me-income-chart__tag--psyche {
  color: rgba(200, 180, 255, 0.95);
  background: rgba(120, 80, 200, 0.14);
  border-color: rgba(160, 120, 255, 0.25);
}

.me-income-chart__tag--temp {
  color: rgba(140, 220, 255, 0.95);
  background: rgba(40, 140, 200, 0.16);
  border-color: rgba(80, 180, 240, 0.28);
}

.me-income-chart__readout-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(170, 200, 235, 0.88);
}

.me-income-chart__readout-list li + li {
  margin-top: 0.2rem;
}

.me-income-chart__readout-note {
  margin: 0.4rem 0 0;
  font-size: 0.62rem;
  color: rgba(130, 160, 200, 0.65);
}

.me-income-chart__phase {
  opacity: 0.22;
  pointer-events: none;
}

.me-income-chart__phase--pre {
  fill: rgba(80, 140, 220, 0.35);
}

.me-income-chart__phase--fire {
  fill: rgba(255, 140, 60, 0.28);
}

.me-income-chart__phase--metal {
  fill: rgba(180, 200, 255, 0.22);
}

.me-income-chart__phase-label {
  font-size: 9px;
  fill: rgba(180, 210, 255, 0.75);
  pointer-events: none;
}

.me-body--income-chart {
  min-height: 100vh;
}

.me-page--income-chart {
  max-width: none;
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: clamp(0.75rem, 2vw, 1.5rem);
  box-sizing: border-box;
}

.me-income-page-root {
  min-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
}

.me-liuyue-fold__path-step--ziwei-decadal-switch {
  border-left-color: rgba(180, 130, 255, 0.85);
}

.me-liuyue-fold__path-step--bazi-breakthrough {
  border-left-color: rgba(255, 160, 90, 0.9);
}

.me-ziwei-dual {
  margin-top: 0.85rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 1px solid rgba(180, 130, 255, 0.28);
  background: linear-gradient(135deg, rgba(40, 28, 58, 0.55) 0%, rgba(28, 36, 52, 0.45) 100%);
}

.me-ziwei-dual__title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  opacity: 0.85;
}

.me-ziwei-dual__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}

.me-ziwei-dual__layer {
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.me-ziwei-dual__layer--bazi {
  background: rgba(244, 162, 97, 0.12);
  border: 1px solid rgba(244, 162, 97, 0.25);
}

.me-ziwei-dual__layer--ziwei {
  background: rgba(180, 130, 255, 0.12);
  border: 1px solid rgba(180, 130, 255, 0.28);
}

.me-ziwei-dual__layer-label {
  font-size: 0.65rem;
  opacity: 0.7;
}

.me-ziwei-dual__layer-value {
  font-size: 1.05rem;
  font-weight: 600;
}

.me-ziwei-dual__layer-hint {
  font-size: 0.62rem;
  opacity: 0.65;
}

.me-ziwei-dual__era {
  margin: 0.65rem 0 0;
  font-size: 0.76rem;
  line-height: 1.55;
  color: rgba(210, 180, 255, 0.92);
}

.me-ziwei-dual__now-flag {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  color: rgba(180, 255, 220, 0.85);
}

.me-ziwei-dual__timeline {
  margin: 0.65rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.me-ziwei-dual__gate {
  display: inline-flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.62rem;
}

.me-ziwei-dual__gate--era {
  border: 1px solid rgba(180, 130, 255, 0.45);
  background: rgba(120, 80, 180, 0.18);
}

.me-ziwei-dual__gate-year {
  font-weight: 600;
}

.me-ziwei-dual__note {
  margin: 0.55rem 0 0;
  font-size: 0.62rem;
  opacity: 0.55;
}

.me-dna-detail__era {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: rgba(200, 155, 255, 0.92);
}

.life-helix-3d__label--flow-year {
  font-size: 0.62rem;
  color: rgba(120, 210, 200, 0.78);
  font-weight: 500;
}

.life-helix-3d__strand-tag--gap {
  color: rgba(255, 170, 100, 0.92);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

  color: #d4b8ff;
  font-weight: 600;
}

  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: rgba(255, 180, 120, 0.9);
}

.life-helix-svg-wrap {
  width: 100%;
  height: 100%;
  min-height: inherit;
}

.life-helix-svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: clamp(24rem, 58vh, 40rem);
}

.life-helix__strand-path {
  animation: helix-strand-pulse 4s ease-in-out infinite;
}

.life-helix__axis {
  animation: helix-axis-flow 6s linear infinite;
}

.life-helix__projection-ring {
  animation: helix-ring-breathe 5s ease-in-out infinite;
}

.life-helix__node-glow {
  animation: helix-node-glow 3s ease-in-out infinite;
}

.life-helix__node--current .life-helix__node-glow {
  animation: helix-node-glow 1.2s ease-in-out infinite;
}

.life-helix__node--burst .life-helix__node-glow {
  fill: rgba(255, 120, 80, 0.45);
}

.life-helix__fold-line {
  animation: helix-fold-flash 2.8s ease-in-out infinite;
}

.life-helix__fold-line--phase {
  animation-duration: 2s;
}

@keyframes helix-strand-pulse {
  0%, 100% { opacity: 0.65; stroke-width: 2.5; }
  50% { opacity: 0.95; stroke-width: 3; }
}

@keyframes helix-axis-flow {
  0% { stroke-dasharray: 8 12; stroke-dashoffset: 0; }
  100% { stroke-dasharray: 8 12; stroke-dashoffset: -40; }
}

@keyframes helix-ring-breathe {
  0%, 100% { stroke-opacity: 0.18; r: 88; }
  50% { stroke-opacity: 0.38; }
}

@keyframes helix-node-glow {
  0%, 100% { opacity: 0.15; }
  50% { opacity: 0.42; }
}

@keyframes helix-fold-flash {
  0%, 100% { opacity: 0.35; }
  50% { opacity: 0.95; }
}

@media (prefers-reduced-motion: reduce) {
  .life-helix__strand-path,
  .life-helix__axis,
  .life-helix__projection-ring,
  .life-helix__node-glow,
  .life-helix__fold-line {
    animation: none !important;
  }
}

/* ── 今日状态 · 行为输入 ── */
.panel--behavior {
  margin-top: 0.75rem;
}

.behavior-interpret {
  margin-top: 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  background: linear-gradient(
    135deg,
    rgba(120, 90, 180, 0.14) 0%,
    rgba(60, 120, 200, 0.1) 100%
  );
  border: 1px solid rgba(180, 150, 255, 0.22);
}

.behavior-interpret--loading .behavior-interpret__text {
  opacity: 0.65;
  font-style: italic;
}

.behavior-interpret__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(200, 170, 255, 0.78);
}

.behavior-interpret__text {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(230, 238, 255, 0.92);
}

.behavior-interpret__tag {
  margin: 0.45rem 0 0;
  font-size: 0.58rem;
  color: rgba(160, 185, 220, 0.62);
}

.day-drawer__panel--natal-yong .behavior-interpret {
  background: linear-gradient(
    135deg,
    rgba(244, 162, 97, 0.1) 0%,
    rgba(120, 90, 180, 0.12) 100%
  );
  border-color: rgba(244, 162, 97, 0.22);
}

.behavior-panel__head {
  margin-bottom: 0.75rem;
}

.panel--behavior--collapsible {
  margin-top: 0;
}

.panel--behavior--collapsible .behavior-panel__head {
  margin-bottom: 0;
}

.behavior-panel__details {
  border: none;
}

.behavior-panel__details > summary {
  list-style: none;
  cursor: pointer;
}

.behavior-panel__details > summary::-webkit-details-marker {
  display: none;
}

.behavior-panel__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.15rem 0;
}

.behavior-panel__head--summary .panel__title {
  margin-bottom: 0.2rem;
  opacity: 0.88;
}

.behavior-panel__teaser {
  margin: 0;
  font-size: clamp(0.82rem, 0.98vw, 0.88rem);
  line-height: 1.5;
  color: rgba(160, 185, 220, 0.82);
}

.behavior-panel__chevron {
  flex: 0 0 1.35rem;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  position: relative;
  transition: transform 0.2s ease, background 0.2s ease;
}

.behavior-panel__chevron::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid rgba(200, 220, 255, 0.85);
  border-bottom: 2px solid rgba(200, 220, 255, 0.85);
  transform: translate(-55%, -65%) rotate(45deg);
}

.behavior-panel__details[open] .behavior-panel__chevron {
  transform: rotate(180deg);
  background: rgba(0, 210, 255, 0.14);
}

.behavior-panel__summary:hover .behavior-panel__chevron {
  background: rgba(255, 255, 255, 0.12);
}

.behavior-panel__body {
  padding-top: 0.65rem;
}

.behavior-panel__head-hint--open {
  margin: 0 0 0.75rem;
}

.behavior-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.behavior-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.88rem;
}

.behavior-field__label {
  color: var(--text-muted, #6b7280);
}

.behavior-field input[type='range'] {
  width: 100%;
  accent-color: #c45c26;
}

/* 饮食 / 饮水 / 睡眠 · 蓝 → 粉渐变滑条 */
.behavior-range--wellness {
  -webkit-appearance: none;
  appearance: none;
  height: 0.45rem;
  border-radius: 999px;
  background: transparent;
  outline: none;
  accent-color: transparent;
}

.behavior-range--wellness::-webkit-slider-runnable-track {
  height: 0.45rem;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(0, 178, 255, 0.28) 0%,
    rgba(107, 140, 255, 0.32) 50%,
    rgba(255, 120, 200, 0.32) 100%
  );
  border: 1px solid rgba(120, 170, 255, 0.22);
}

.behavior-range--wellness::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 1rem;
  height: 1rem;
  margin-top: -0.3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #00b4ff 0%, #6b8cff 48%, #ff78c8 100%);
  border: 2px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 0 10px rgba(0, 180, 255, 0.45),
    0 0 14px rgba(255, 120, 200, 0.35);
  cursor: pointer;
}

.behavior-range--wellness::-moz-range-track {
  height: 0.45rem;
  border-radius: 999px;
  background: rgba(20, 40, 80, 0.28);
  border: 1px solid rgba(120, 170, 255, 0.22);
}

.behavior-range--wellness::-moz-range-progress {
  height: 0.45rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #00b4ff 0%, #6b8cff 52%, #ff78c8 100%);
}

.behavior-range--wellness::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #00b4ff 0%, #ff78c8 100%);
  border: 2px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 0 10px rgba(0, 180, 255, 0.45);
  cursor: pointer;
}

.behavior-field--select select {
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #fff;
}

.behavior-field--check {
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}

.behavior-compare {
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.04);
  font-size: 0.85rem;
}

.behavior-compare--up {
  border-left: 3px solid #2a9d6a;
}

.behavior-compare--down {
  border-left: 3px solid #c45c26;
}

.behavior-compare__title {
  margin: 0 0 0.35rem;
  font-weight: 600;
}

.behavior-compare__scores {
  margin: 0;
  font-size: 1rem;
}

.behavior-compare__before {
  opacity: 0.65;
  text-decoration: line-through;
}

.behavior-compare__arrow {
  margin: 0 0.35rem;
  opacity: 0.5;
}

.behavior-compare__after {
  font-weight: 700;
}

.behavior-compare__diff {
  margin-left: 0.35rem;
  font-size: 0.9rem;
}

.behavior-compare__temp,
.behavior-compare__labels {
  margin: 0.35rem 0 0;
  opacity: 0.85;
  font-size: 0.82rem;
}

.day-drawer__panel--natal-yong .behavior-field__label,
.day-drawer__panel--natal-yong .behavior-compare {
  color: rgba(255, 255, 255, 0.85);
}

.day-drawer__panel--natal-yong .behavior-field--select select {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: inherit;
}

.day-drawer__panel--natal-yong .behavior-compare {
  background: rgba(255, 255, 255, 0.06);
}

.behavior-group {
  margin: 0;
  padding: 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
}

.behavior-group__legend {
  font-size: 0.92rem;
  font-weight: 600;
  padding: 0 0.25rem;
}

.behavior-group__hint {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  opacity: 0.75;
}

.behavior-group--exercise {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.behavior-diet__verdict {
  margin-top: 0.5rem;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  font-size: 0.82rem;
  background: rgba(42, 157, 106, 0.08);
}

.behavior-diet__verdict--mild {
  background: rgba(196, 92, 38, 0.08);
}

.behavior-diet__verdict--skewed {
  background: rgba(196, 50, 38, 0.1);
}

.behavior-diet__verdict-title {
  margin: 0 0 0.25rem;
  font-weight: 600;
}

.behavior-diet__ratio-line {
  margin: 0;
  opacity: 0.85;
}

.behavior-diet__notes {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  opacity: 0.9;
}

.behavior-compare__diet {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}

.day-drawer__panel--natal-yong .behavior-group {
  border-color: rgba(255, 255, 255, 0.15);
}

.day-drawer__panel--natal-yong .behavior-diet__verdict--balanced {
  background: rgba(42, 157, 106, 0.15);
}

/* ── Life Helix · 能量补充方案 ── */
.me-replenish-host {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.me-replenish-entry {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  min-height: 100%;
  text-align: left;
  padding: 1rem 1.05rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(140, 180, 240, 0.22);
  background: rgba(16, 24, 48, 0.55);
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.me-replenish-entry__top {
  flex-shrink: 0;
}

.me-replenish-entry__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0.75rem 0;
  min-height: 0;
  overflow-y: auto;
}

.me-replenish-entry__headline {
  margin: 0.35rem 0 0.55rem;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(230, 238, 255, 0.95);
}

.me-replenish-entry__score {
  margin: 0;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  color: rgba(220, 232, 255, 0.98);
}

.me-replenish-entry__score span {
  font-size: 0.95rem;
  font-weight: 500;
  color: rgba(160, 185, 220, 0.65);
  margin-left: 0.15rem;
}

.me-replenish-entry__focus {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: rgba(180, 200, 230, 0.75);
}

.me-replenish-entry__section-title {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(150, 170, 210, 0.55);
  font-weight: 600;
}

.me-replenish-entry__priorities {
  margin: 0;
  padding: 0;
  list-style: none;
}

.me-replenish-entry__priorities li {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(100, 140, 200, 0.12);
  font-size: 0.76rem;
  line-height: 1.5;
  color: rgba(210, 222, 245, 0.88);
}

.me-replenish-entry__priorities li:first-child {
  margin-top: 0.35rem;
  padding-top: 0;
  border-top: none;
}

.me-replenish-entry__priorities strong {
  display: block;
  font-size: 0.78rem;
  color: rgba(230, 238, 255, 0.95);
  margin-bottom: 0.15rem;
}

.me-replenish-entry__meta {
  margin: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  background: rgba(8, 14, 28, 0.45);
  font-size: 0.72rem;
  line-height: 1.55;
  color: rgba(170, 190, 220, 0.78);
}

.me-replenish-entry__meta dt {
  display: inline;
  font-weight: 600;
  color: rgba(190, 210, 240, 0.65);
}

.me-replenish-entry__meta dt::after {
  content: ' ';
}

.me-replenish-entry__meta dd {
  display: inline;
  margin: 0;
}

.me-replenish-entry__meta dd::after {
  content: '';
  display: block;
  margin-bottom: 0.25rem;
}

.me-replenish-entry__meta dd:last-child::after {
  display: none;
}

.me-replenish-entry--locked {
  border-color: rgba(200, 160, 90, 0.35);
  background: linear-gradient(135deg, rgba(40, 32, 20, 0.65), rgba(16, 24, 48, 0.55));
}

.me-replenish-entry--locked:hover {
  border-color: rgba(230, 190, 120, 0.55);
  background: linear-gradient(135deg, rgba(50, 40, 24, 0.75), rgba(20, 28, 52, 0.6));
}

.me-replenish-entry--unlocked {
  border-color: rgba(80, 200, 150, 0.35);
}

.me-replenish-entry--unlocked:hover {
  border-color: rgba(100, 220, 170, 0.55);
}

.me-replenish-entry__label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(180, 200, 230, 0.7);
  margin-bottom: 0.35rem;
}

.me-replenish-entry--locked .me-replenish-entry__label {
  color: rgba(230, 200, 140, 0.85);
}

.me-replenish-entry--unlocked .me-replenish-entry__label {
  color: rgba(120, 220, 180, 0.9);
}

.me-replenish-entry__teaser {
  display: block;
  font-size: 0.88rem;
  color: rgba(230, 238, 255, 0.88);
  margin-bottom: 0.45rem;
}

@media (max-width: 1100px) {
  .me-dashboard {
    grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
  }

  .me-dashboard--quadrant {
    grid-template-columns: minmax(15rem, 20rem) minmax(0, 1fr);
  }
}

.me-replenish-entry__cta {
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 0.65rem;
  font-size: 0.82rem;
  color: rgba(160, 200, 255, 0.75);
  border-top: 1px solid rgba(100, 140, 200, 0.14);
}

.me-replenish-entry--unlocked .me-replenish-entry__cta {
  color: rgba(120, 220, 180, 0.95);
}

/* ── me 页 · 八字多视角分析 ── */
.me-multiview-panel {
  margin-top: 0.85rem;
}

.me-report-panel {
  flex-shrink: 0;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(100, 140, 190, 0.2);
}

.me-report-panel.me-export-panel--prominent {
  margin-top: 0.85rem;
  padding: 0.75rem 0 0;
  background: transparent;
  border: none;
  border-top: 1px solid rgba(0, 210, 255, 0.16);
  box-shadow: none;
}

.me-report-panel__replenish {
  margin-bottom: 0.75rem;
  display: flex;
  flex-direction: column;
}

.me-report-panel__replenish .me-replenish-entry {
  width: 100%;
  min-height: 0;
  text-align: left;
}

.me-report-panel__export {
  margin-bottom: 0.65rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(100, 140, 190, 0.18);
}

.me-report-panel__title {
  margin-bottom: 0.35rem;
}

.me-report-panel__hint {
  margin: 0 0 0.65rem;
  font-size: clamp(0.72rem, 0.9vw, 0.82rem);
  line-height: 1.45;
  color: rgba(190, 205, 235, 0.78);
}

.me-report-panel__multiview {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(100, 140, 190, 0.22);
}

/* ── me 页 · 原局四柱结构简报 ── */
.me-pillar-brief-summary-host {
  margin-top: 0.65rem;
}

.me-pillar-brief-host {
  margin-top: 1rem;
  scroll-margin-top: 4.5rem;
}

.me-pillar-brief__title,
.me-pillar-brief__sub {
  margin: 0 0 0.35rem;
  font-size: clamp(0.82rem, 1vw, 0.95rem);
  font-weight: 650;
  color: rgba(220, 230, 245, 0.95);
}

.me-pillar-brief__lead,
.me-pillar-brief__empty,
.me-pillar-brief__climate,
.me-pillar-brief__line,
.me-pillar-brief__boundary {
  margin: 0 0 0.55rem;
  font-size: clamp(0.72rem, 0.9vw, 0.82rem);
  line-height: 1.5;
  color: rgba(190, 205, 235, 0.78);
}

.me-pillar-brief__headline {
  margin: 0 0 0.65rem;
  font-size: clamp(0.88rem, 1.1vw, 1.02rem);
  line-height: 1.55;
  color: rgba(235, 240, 250, 0.95);
}

.me-pillar-brief__sum-list {
  margin: 0 0 0.45rem;
  padding-left: 1.1rem;
  font-size: clamp(0.74rem, 0.92vw, 0.84rem);
  line-height: 1.55;
  color: rgba(210, 220, 240, 0.9);
}

.me-pillar-brief__sum-link,
.me-pillar-brief__more {
  color: rgba(170, 210, 255, 0.95);
  text-decoration: none;
}

.me-pillar-brief__sum-link:hover,
.me-pillar-brief__more:hover {
  text-decoration: underline;
}

.me-pillar-brief__more {
  display: inline-block;
  margin-top: 0.15rem;
  font-size: 0.78rem;
}

.me-pillar-brief__grid {
  display: grid;
  gap: 0.65rem;
  margin: 0.75rem 0 1rem;
}

@media (min-width: 720px) {
  .me-pillar-brief__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.me-pillar-brief__card {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(100, 140, 190, 0.22);
  border-radius: 12px;
  background: rgba(8, 14, 28, 0.35);
  scroll-margin-top: 4.5rem;
}

.me-pillar-brief__card-title {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
  font-weight: 650;
}

.me-pillar-brief__gods {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 0.4rem;
  font-size: 0.74rem;
  color: rgba(160, 195, 230, 0.9);
}

.me-pillar-brief__layer {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  color: rgba(170, 180, 210, 0.75);
}

.me-pillar-brief__personal {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(220, 230, 245, 0.92);
}

.me-pillar-brief__watch {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(180, 200, 170, 0.85);
}

.me-pillar-brief__structures ul,
.me-pillar-brief__window ul {
  margin: 0 0 0.75rem;
  padding-left: 1.1rem;
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(210, 220, 240, 0.9);
}

.me-pillar-brief__struct-client {
  display: block;
  margin-top: 0.15rem;
  color: rgba(190, 205, 235, 0.78);
}

.me-multiview-panel__lead {
  margin: 0 0 0.65rem;
  font-size: clamp(0.72rem, 0.9vw, 0.82rem);
  line-height: 1.45;
  color: rgba(190, 205, 235, 0.78);
}

.me-multiview {
  position: relative;
  border-radius: 10px;
  border: 1px solid rgba(100, 140, 190, 0.28);
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.me-multiview--unlocked {
  padding: 0.65rem 0.75rem 0.55rem;
}

.me-multiview__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}

.me-multiview__badge {
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: rgba(120, 220, 180, 0.92);
}

.me-multiview__pdf {
  font-size: 0.72rem;
  padding: 0.28rem 0.55rem;
}

.me-multiview--locked .me-multiview__preview {
  max-height: 8rem;
  overflow: hidden;
  filter: blur(4px);
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
  padding: 0.55rem 0.65rem;
}

.me-multiview__lock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1rem 1.1rem;
  text-align: center;
  background: linear-gradient(
    180deg,
    rgba(12, 24, 42, 0.55) 0%,
    rgba(12, 24, 42, 0.88) 45%,
    rgba(12, 24, 42, 0.95) 100%
  );
}

.me-multiview__lock-title {
  margin: 0;
  font-size: clamp(0.78rem, 0.95vw, 0.86rem);
  font-weight: 650;
  color: rgba(200, 225, 255, 0.96);
}

.me-multiview__lock-lead {
  margin: 0;
  font-size: clamp(0.68rem, 0.85vw, 0.76rem);
  line-height: 1.4;
  color: rgba(170, 200, 235, 0.82);
  max-width: 28rem;
}

.me-multiview__unlock-btn {
  margin-top: 0.15rem;
}

.me-multiview__lock-note {
  margin: 0;
  font-size: 0.65rem;
  color: rgba(140, 170, 210, 0.65);
}

.me-multiview .bazi-multi-view__scope {
  color: rgba(160, 210, 255, 0.75);
}

.me-multiview .bazi-multi-view__step {
  border-color: rgba(80, 120, 180, 0.28);
  background: rgba(255, 255, 255, 0.06);
}

.me-multiview .bazi-multi-view__step-title {
  color: rgba(200, 225, 255, 0.92);
}

.me-multiview .bazi-multi-view__list,
.me-multiview .bazi-multi-view__list li {
  color: rgba(180, 210, 240, 0.88);
}

.me-page--replenish {
  max-width: 42rem;
}

.replenish-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.replenish-hero__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(120, 220, 180, 0.75);
}

.replenish-hero__title {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  color: #f2f6ff;
}

.replenish-hero__meta,
.replenish-hero__context,
.replenish-hero__note {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  color: rgba(190, 205, 235, 0.72);
  line-height: 1.5;
}

.replenish-section__title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(180, 200, 230, 0.55);
  font-weight: 600;
}

.replenish-priority {
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(140, 180, 240, 0.1);
}

.replenish-priority:last-child {
  border-bottom: none;
}

.replenish-priority__title {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  color: #eef4ff;
}

.replenish-priority__why {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  color: rgba(190, 205, 235, 0.65);
}

.replenish-priority__actions {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  color: rgba(230, 238, 255, 0.88);
  line-height: 1.55;
}

.replenish-daily__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.65rem;
}

@media (max-width: 640px) {
  .replenish-daily__grid {
    grid-template-columns: 1fr;
  }
}

.replenish-daily__grid h4 {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  color: rgba(180, 200, 230, 0.7);
}

.replenish-daily__grid ul {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(220, 228, 245, 0.85);
}

.replenish-elements__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.replenish-elements__row {
  display: grid;
  grid-template-columns: 2rem 3rem 1fr;
  gap: 0.5rem;
  padding: 0.4rem 0;
  font-size: 0.82rem;
  border-bottom: 1px solid rgba(140, 180, 240, 0.08);
}

.replenish-elements__row--yong .replenish-elements__cn {
  color: #eef4ff;
}

.replenish-elements__row--ji .replenish-elements__cn,
.replenish-elements__row--ji .replenish-elements__hint {
  color: rgba(160, 170, 190, 0.55);
}

.replenish-elements__row--ji .replenish-elements__pct {
  opacity: 0.45;
}

.replenish-elements__pct {
  color: rgba(180, 200, 230, 0.65);
  font-variant-numeric: tabular-nums;
}

.replenish-elements__hint {
  color: rgba(200, 210, 235, 0.75);
}

.replenish-behavior ul,
.replenish-climate ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: rgba(230, 238, 255, 0.88);
}

.replenish-history__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.replenish-history__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 0.65rem 0.75rem;
  margin-bottom: 0.35rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(140, 180, 240, 0.12);
  background: rgba(12, 18, 36, 0.45);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: border-color 0.2s ease;
}

.replenish-history__item:hover {
  border-color: rgba(140, 180, 240, 0.35);
}

.replenish-history__date {
  font-size: 0.72rem;
  color: rgba(160, 180, 210, 0.65);
}

.replenish-history__headline {
  font-size: 0.88rem;
  color: rgba(230, 238, 255, 0.9);
}

.replenish-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: rgba(210, 220, 240, 0.75);
}

.replenish-empty .btn {
  margin-top: 1rem;
}

/* 火日主 · 现实映射链 */
.replenish-bridge__chain {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

@media (min-width: 640px) {
  .replenish-bridge__chain {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.5rem;
  }
}

.replenish-bridge__step {
  flex: 1;
  position: relative;
  padding: 0.75rem 0.85rem;
  border-radius: 0.55rem;
  background: rgba(20, 28, 52, 0.55);
  border: 1px solid rgba(140, 180, 240, 0.14);
}

.replenish-bridge__node {
  display: inline-block;
  font-size: 1.1rem;
  font-weight: 700;
  color: rgba(255, 220, 160, 0.95);
  margin-bottom: 0.35rem;
}

.replenish-bridge__step:nth-child(3) .replenish-bridge__node {
  color: rgba(200, 220, 255, 0.95);
}

.replenish-bridge__step:nth-child(2) .replenish-bridge__node {
  color: rgba(210, 190, 150, 0.95);
}

.replenish-bridge__note {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(210, 220, 240, 0.82);
}

.replenish-bridge__arrow {
  display: none;
}

@media (min-width: 640px) {
  .replenish-bridge__arrow {
    display: block;
    position: absolute;
    right: -0.65rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.1rem;
    color: rgba(160, 180, 220, 0.45);
    z-index: 1;
  }
}

.replenish-bridge__para {
  margin: 0 0 0.55rem;
  font-size: 0.86rem;
  line-height: 1.6;
  color: rgba(220, 228, 245, 0.88);
}

.replenish-bridge__prompts {
  margin-top: 0.85rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.55rem;
  background: rgba(30, 50, 80, 0.35);
  border: 1px dashed rgba(140, 180, 240, 0.22);
}

.replenish-bridge__prompt {
  margin: 0 0 0.5rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: rgba(230, 238, 255, 0.9);
}

.replenish-bridge__prompt:last-child {
  margin-bottom: 0;
}

/* ── Lucky Charm · 幸运签盒 (Helix UI) ── */

.charm-body {
  min-height: 100vh;
  background: radial-gradient(
    ellipse 120% 80% at 50% 0%,
    rgba(0, 100, 160, 0.32),
    rgba(6, 24, 48, 0.98) 55%,
    rgba(4, 16, 36, 0.99)
  );
}

.charm-page {
  max-width: 32rem;
  margin: 0 auto;
  padding: 1.25rem 1rem 2.5rem;
}

.charm-header {
  text-align: center;
  margin-bottom: 1.25rem;
}

.charm-header__back {
  display: inline-block;
  margin-bottom: 0.85rem;
  font-size: 0.78rem;
  color: rgba(160, 210, 255, 0.75);
  text-decoration: none;
}

.charm-header__back:hover {
  color: rgba(200, 240, 255, 0.95);
}

.charm-header__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(140, 190, 230, 0.65);
}

.charm-header__title {
  margin: 0 0 0.5rem;
  font-size: 1.65rem;
  font-weight: 600;
  color: rgba(240, 248, 255, 0.96);
}

.charm-header__lead {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(180, 200, 230, 0.78);
}

.day-board-charm-glyph {
  display: inline-block;
  margin-right: 0.25rem;
  font-size: 0.85em;
  color: rgba(0, 210, 255, 0.75);
  vertical-align: -0.05em;
}

.day-board-charm-teaser {
  position: relative;
  width: 3.1rem;
  height: 3.1rem;
  margin: 0 auto 0.12rem;
  flex-shrink: 0;
}

.day-board-charm-teaser__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(0, 210, 255, 0.38);
  box-shadow: 0 0 10px rgba(0, 210, 255, 0.22);
  animation: day-board-charm-spin 10s linear infinite;
}

.day-board-charm-teaser__ring::after {
  content: '';
  position: absolute;
  inset: 0.32rem;
  border-radius: 50%;
  border: 1px dashed rgba(180, 100, 255, 0.32);
}

.day-board-charm-teaser__core {
  position: absolute;
  inset: 0.52rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.72rem;
  color: rgba(225, 245, 255, 0.96);
  background: radial-gradient(circle at 38% 32%, rgba(0, 230, 255, 0.42), rgba(0, 78, 146, 0.88));
  box-shadow:
    0 0 14px rgba(0, 210, 255, 0.48),
    inset 0 0 8px rgba(0, 210, 255, 0.25);
}

@keyframes day-board-charm-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .day-board-charm-teaser__ring {
    animation: none;
  }
}

.day-board-cell__action--charm {
  letter-spacing: 0.02em;
  color: rgba(200, 235, 255, 0.92) !important;
}

.day-board-cell__preview .day-board-charm-teaser + .day-board-cell__action--charm {
  font-size: clamp(0.58rem, 2.1cqw, 0.66rem);
  -webkit-line-clamp: 1;
}

.day-board-charm-host {
  width: 100%;
}

.day-drawer-board__overlay-body .day-board-charm-host .charm-mount {
  max-width: 28rem;
  margin: 0 auto;
}

.day-drawer-board__overlay-body .day-board-charm-host .charm-mount--compact .charm-node {
  width: 9.5rem;
  height: 9.5rem;
}

.day-drawer-board__overlay-body .day-board-charm-host .charm-mount__head {
  margin-bottom: 0.65rem;
}

.charm-mount__head {
  text-align: center;
  margin-bottom: 0.85rem;
}

.charm-mount__eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(140, 190, 230, 0.62);
}

.charm-mount__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: rgba(235, 242, 255, 0.94);
}

.charm-mount__sub {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.5;
  color: rgba(160, 185, 220, 0.65);
}

.charm-mount--compact .charm-mount__title {
  font-size: 0.9rem;
}

.charm-mount--compact .charm-mount__sub {
  font-size: 0.68rem;
}

.charm-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  position: relative;
  padding: clamp(1.1rem, 2.5vh, 1.5rem) clamp(0.85rem, 2vw, 1.15rem);
  border-radius: 0.75rem;
  border: 1px solid rgba(100, 140, 200, 0.14);
  background: radial-gradient(
    ellipse 85% 70% at 50% 36%,
    rgba(0, 100, 160, 0.28),
    rgba(6, 24, 48, 0.96) 55%,
    rgba(4, 16, 36, 0.99)
  );
  overflow: hidden;
}

.charm-stage::before {
  content: '';
  position: absolute;
  inset: -30% -20% auto;
  height: 80%;
  background: radial-gradient(
    ellipse 70% 55% at 50% 0%,
    rgba(0, 210, 255, 0.12),
    rgba(180, 100, 255, 0.06) 45%,
    transparent 70%
  );
  pointer-events: none;
}

.charm-stage > * {
  position: relative;
  z-index: 1;
}

/* Helix node · 抽签核心 */

.charm-node {
  position: relative;
  width: 9.5rem;
  height: 9.5rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  transition: transform 0.28s ease;
}

.charm-mount--compact .charm-node {
  width: 8rem;
  height: 8rem;
}

.charm-node:hover:not(:disabled) {
  transform: scale(1.04);
}

.charm-node:focus-visible {
  outline: 2px solid rgba(0, 210, 255, 0.55);
  outline-offset: 6px;
  border-radius: 50%;
}

.charm-node--pulse {
  animation: charm-node-pulse 0.52s ease-in-out;
}

.charm-node--open .charm-node__core {
  box-shadow:
    0 0 0 1px rgba(0, 210, 255, 0.65),
    0 0 28px rgba(0, 210, 255, 0.45),
    0 0 48px rgba(180, 100, 255, 0.25);
}

@keyframes charm-node-pulse {
  0%, 100% { transform: scale(1); }
  20% { transform: scale(0.94) rotate(-3deg); }
  40% { transform: scale(1.06) rotate(3deg); }
  60% { transform: scale(0.97) rotate(-2deg); }
  80% { transform: scale(1.03) rotate(1deg); }
}

.charm-node__halo {
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(0, 210, 255, 0.22) 0%,
    rgba(180, 100, 255, 0.12) 38%,
    transparent 68%
  );
  animation: charm-halo-breathe 3.2s ease-in-out infinite;
  pointer-events: none;
}

@keyframes charm-halo-breathe {
  0%, 100% { opacity: 0.75; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}

.charm-node__ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(130, 165, 255, 0.35);
  pointer-events: none;
}

.charm-node__ring--a {
  inset: 6%;
  border-color: rgba(0, 210, 255, 0.42);
  box-shadow: 0 0 16px rgba(0, 210, 255, 0.15);
  animation: charm-ring-spin 14s linear infinite;
}

.charm-node__ring--b {
  inset: 16%;
  border-style: dashed;
  border-color: rgba(200, 120, 255, 0.35);
  animation: charm-ring-spin 9s linear infinite reverse;
}

@keyframes charm-ring-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.charm-node__core {
  position: absolute;
  inset: 26%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  border-radius: 50%;
  background: linear-gradient(
    145deg,
    rgba(0, 110, 185, 0.88) 0%,
    rgba(32, 52, 138, 0.9) 48%,
    rgba(120, 60, 180, 0.92) 100%
  );
  border: 1px solid rgba(130, 165, 255, 0.48);
  box-shadow:
    0 0 0 1px rgba(0, 210, 255, 0.25),
    0 0 20px rgba(0, 210, 255, 0.28),
    inset 0 1px 0 rgba(200, 230, 255, 0.2);
  transition: box-shadow 0.35s ease;
}

.charm-node__glyph {
  font-size: 0.95rem;
  line-height: 1;
  color: rgba(168, 255, 248, 0.92);
  text-shadow: 0 0 12px rgba(0, 210, 255, 0.65);
}

.charm-node__label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: rgba(240, 248, 255, 0.92);
}

.charm-mount--compact .charm-node__label {
  font-size: 0.52rem;
}

.charm-node__hint {
  font-size: 0.5rem;
  letter-spacing: 0.04em;
  color: rgba(160, 210, 255, 0.72);
}

.charm-node__scan {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(0, 210, 255, 0.08) 48%,
    rgba(255, 120, 200, 0.12) 52%,
    transparent 100%
  );
  background-size: 100% 200%;
  animation: charm-scan 2.8s linear infinite;
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.65;
}

@keyframes charm-scan {
  0% { background-position: 0 -100%; }
  100% { background-position: 0 100%; }
}

/* Slip · 全息双语签 */

.charm-slip {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  animation: charm-slip-in 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes charm-slip-in {
  from {
    opacity: 0;
    transform: translateY(12px);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.charm-slip__paper {
  width: 100%;
  padding: 1.05rem 1rem 0.9rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(130, 165, 255, 0.38);
  background: linear-gradient(
    145deg,
    rgba(6, 22, 48, 0.94) 0%,
    rgba(12, 28, 62, 0.92) 55%,
    rgba(28, 18, 58, 0.9) 100%
  );
  box-shadow:
    0 0 0 1px rgba(0, 210, 255, 0.08) inset,
    0 8px 28px rgba(0, 20, 60, 0.45);
  position: relative;
  overflow: hidden;
}

.charm-slip__paper::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(0, 210, 255, 0.06) 0%,
    transparent 40%,
    rgba(200, 100, 255, 0.08) 100%
  );
  pointer-events: none;
}

.charm-slip__paper[data-paper='violet'] {
  border-color: rgba(167, 139, 250, 0.52);
  box-shadow:
    0 0 24px rgba(139, 92, 246, 0.22),
    0 0 0 1px rgba(167, 139, 250, 0.12) inset;
}

.charm-slip__paper[data-paper='lilac'] {
  border-color: rgba(192, 132, 252, 0.5);
  box-shadow:
    0 0 24px rgba(168, 85, 247, 0.2),
    0 0 0 1px rgba(192, 132, 252, 0.1) inset;
}

.charm-slip__paper[data-paper='periwinkle'] {
  border-color: rgba(129, 140, 248, 0.52);
  box-shadow:
    0 0 24px rgba(99, 102, 241, 0.22),
    0 0 0 1px rgba(129, 140, 248, 0.1) inset;
}

.charm-slip__paper[data-paper='sky'] {
  border-color: rgba(56, 189, 248, 0.5);
  box-shadow:
    0 0 24px rgba(0, 210, 255, 0.22),
    0 0 0 1px rgba(56, 189, 248, 0.1) inset;
}

.charm-slip__paper[data-paper='blush'] {
  border-color: rgba(244, 114, 182, 0.48);
  box-shadow:
    0 0 24px rgba(236, 72, 153, 0.2),
    0 0 0 1px rgba(244, 114, 182, 0.1) inset;
}

.charm-slip__paper[data-paper='dawn'] {
  border-color: rgba(160, 140, 255, 0.5);
  box-shadow:
    0 0 28px rgba(0, 210, 255, 0.15),
    0 0 28px rgba(244, 114, 182, 0.12),
    0 0 0 1px rgba(180, 160, 255, 0.1) inset;
}

.charm-slip__paper[data-paper='azure'] {
  border-color: rgba(96, 165, 250, 0.52);
  box-shadow:
    0 0 24px rgba(59, 130, 246, 0.22),
    0 0 0 1px rgba(96, 165, 250, 0.1) inset;
}

.charm-slip__cat,
.charm-slip__text-zh,
.charm-slip__text-en,
.charm-slip__foot {
  position: relative;
  z-index: 1;
}

.charm-slip__cat {
  margin: 0 0 0.55rem;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  color: rgba(160, 210, 255, 0.72);
}

.charm-slip__text-zh {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.65;
  font-weight: 600;
  text-align: center;
  color: rgba(240, 248, 255, 0.95);
  text-shadow: 0 0 20px rgba(0, 210, 255, 0.12);
}

.charm-slip__text-en {
  margin: 0.65rem 0 0;
  padding-top: 0.6rem;
  border-top: 1px dashed rgba(130, 165, 255, 0.28);
  font-size: 0.8rem;
  line-height: 1.55;
  text-align: center;
  color: rgba(160, 210, 255, 0.82);
}

.charm-mount--compact .charm-slip__text-zh {
  font-size: 0.92rem;
}

.charm-mount--compact .charm-slip__text-en {
  font-size: 0.74rem;
}

.charm-slip__foot {
  margin: 0.7rem 0 0;
  padding-top: 0.55rem;
  border-top: 1px dashed rgba(130, 165, 255, 0.22);
  font-size: 0.62rem;
  text-align: center;
  color: rgba(200, 180, 255, 0.72);
}

.charm-slip__foot-zh {
  display: block;
  letter-spacing: 0.06em;
}

.charm-slip__foot-en {
  display: block;
  margin-top: 0.2rem;
  opacity: 0.85;
  color: rgba(160, 210, 255, 0.68);
}

.charm-slip__actions {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.charm-btn {
  padding: 0.45rem 0.85rem;
  font-size: 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(130, 165, 255, 0.42);
  background: linear-gradient(
    135deg,
    rgba(0, 110, 185, 0.75) 0%,
    rgba(32, 52, 138, 0.8) 48%,
    rgba(78, 42, 136, 0.82) 100%
  );
  color: rgba(240, 245, 255, 0.95);
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(20, 40, 120, 0.35);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.charm-btn:hover {
  border-color: rgba(0, 210, 255, 0.55);
  box-shadow: 0 0 16px rgba(0, 210, 255, 0.22);
}

.charm-btn--ghost {
  background: rgba(6, 24, 48, 0.55);
  border-color: rgba(100, 140, 200, 0.28);
  color: rgba(180, 200, 230, 0.85);
  box-shadow: none;
}

.charm-btn--ghost:hover {
  border-color: rgba(0, 210, 255, 0.35);
  color: rgba(200, 230, 255, 0.95);
}

.charm-mount__foot {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0.85rem;
}

.charm-link {
  padding: 0;
  border: none;
  background: none;
  font-size: 0.68rem;
  color: rgba(160, 185, 220, 0.6);
  cursor: pointer;
  text-decoration: none;
}

.charm-link:hover {
  color: rgba(160, 210, 255, 0.92);
  text-decoration: underline;
}

.charm-jar {
  margin-top: 1rem;
  text-align: left;
}

.charm-jar__title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(180, 200, 230, 0.88);
}

.charm-jar__list {
  margin: 0;
  padding: 0;
  list-style: none;
  max-height: 14rem;
  overflow-y: auto;
}

.charm-jar__item {
  padding: 0.55rem 0.65rem;
  margin-bottom: 0.4rem;
  border-radius: 0.45rem;
  background: rgba(6, 24, 48, 0.65);
  border: 1px solid rgba(100, 140, 200, 0.14);
  border-left: 3px solid rgba(0, 210, 255, 0.45);
}

.charm-jar__item[data-paper='sky'] { border-left-color: rgba(56, 189, 248, 0.75); }
.charm-jar__item[data-paper='blush'] { border-left-color: rgba(244, 114, 182, 0.75); }
.charm-jar__item[data-paper='azure'] { border-left-color: rgba(96, 165, 250, 0.75); }
.charm-jar__item[data-paper='violet'] { border-left-color: rgba(167, 139, 250, 0.75); }
.charm-jar__item[data-paper='lilac'] { border-left-color: rgba(192, 132, 252, 0.75); }
.charm-jar__item[data-paper='periwinkle'] { border-left-color: rgba(129, 140, 248, 0.75); }
.charm-jar__item[data-paper='dawn'] { border-left-color: rgba(180, 160, 255, 0.75); }

.charm-jar__cat {
  display: block;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(140, 190, 230, 0.62);
  margin-bottom: 0.2rem;
}

.charm-jar__text {
  display: block;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(220, 230, 245, 0.9);
}

.me-footer__charm {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
}

.me-footer__join {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
}

.me-footer__join a {
  color: rgba(200, 170, 255, 0.85);
  text-decoration: none;
}

.me-footer__join a:hover {
  text-decoration: underline;
}

.me-footer__charm a {
  color: rgba(160, 210, 255, 0.72);
  text-decoration: none;
}

.me-footer__charm a:hover {
  color: rgba(160, 210, 255, 0.95);
  text-decoration: underline;
}

/* ── Day Drawer · 今日能量决策 cockpit ── */

.day-drawer__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  line-height: 1.2;
}

.day-drawer__title-main {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(240, 248, 255, 0.96);
}

.day-drawer__title-sub {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(160, 185, 220, 0.72);
}

.day-drawer__body--decision {
  overflow: hidden;
  flex: 1;
  min-height: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── 日抽屉 · 九宫棋盘格（Helix 全息 · 与 3D 螺旋同 palette） ── */
.day-drawer-board {
  --board-line: rgba(139, 92, 246, 0.08);
  --board-light-a: rgba(78, 42, 136, 0.32);
  --board-light-b: rgba(32, 52, 138, 0.26);
  --board-light-c: rgba(8, 18, 42, 0.92);
  --board-dark-a: rgba(4, 16, 36, 0.98);
  --board-dark-b: var(--helix-deep);
  --board-accent: var(--helix-violet-soft);
  --board-metal-hi: rgba(168, 255, 248, 0.35);
  --board-text-dark: var(--helix-label);
  --board-text-dark-muted: rgba(180, 200, 230, 0.78);
  --board-text-light: var(--helix-label);
  --board-text-light-muted: rgba(160, 185, 230, 0.72);
  --board-frame-top: rgba(130, 200, 255, 0.35);
  --board-frame-edge: var(--helix-border);
  --board-glass-blur: 20px;
  --board-fs-title: clamp(0.68rem, 2.75cqw, 0.76rem);
  --board-fs-body: clamp(0.62rem, 2.45cqw, 0.68rem);
  --board-overlay-ox: 50%;
  --board-overlay-oy: 50%;
  flex: 1;
  min-height: 0;
  width: 100%;
  height: 100%;
  container-type: size;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-family: var(--font-apple-zh);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1;
}

/* 女 · 亮格粉紫渐变（暗格 / 外框仍 Helix 深蓝） */
.day-drawer-board--female {
  --board-light-a: rgba(255, 130, 195, 0.28);
  --board-light-b: rgba(120, 72, 180, 0.24);
  --board-light-c: rgba(10, 22, 48, 0.9);
  --board-accent: rgba(255, 150, 210, 0.55);
}

.day-drawer-board--female .day-board-cell[data-board-row="0"][data-board-col="0"]::after,
.day-drawer-board--female .day-board-cell[data-board-row="0"][data-board-col="2"]::after,
.day-drawer-board--female .day-board-cell[data-board-row="1"][data-board-col="1"]::after,
.day-drawer-board--female .day-board-cell[data-board-row="2"][data-board-col="0"]::after,
.day-drawer-board--female .day-board-cell[data-board-row="2"][data-board-col="2"]::after {
  box-shadow:
    inset 0 1px 0 rgba(255, 160, 210, 0.24),
    inset 0 -3px 8px rgba(0, 0, 0, 0.32),
    inset 0 0 14px rgba(120, 72, 180, 0.12);
}

.day-drawer-board--female .day-board-cell--hero::after,
.day-drawer-board--female .day-board-cell--center::after {
  box-shadow:
    inset 0 1px 0 rgba(255, 160, 210, 0.32),
    inset 0 0 20px rgba(120, 72, 180, 0.14),
    inset 0 -2px 6px rgba(0, 0, 0, 0.35);
}

.day-drawer-board__frame {
  container-type: size;
  position: relative;
  perspective: 860px;
  perspective-origin: 50% 46%;
  width: min(
    100%,
    calc(100vw - 0.2rem),
    calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))
  );
  height: min(
    100%,
    calc(100vw - 0.2rem),
    calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))
  );
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 1;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  gap: 0;
  padding: 0;
  border-radius: clamp(10px, 1.4vw, 16px);
  border: 1px solid var(--helix-border);
  background: radial-gradient(
    ellipse 85% 70% at 50% 36%,
    rgba(78, 42, 136, 0.22),
    rgba(32, 52, 138, 0.18) 38%,
    var(--helix-mid) 58%,
    rgba(4, 16, 36, 0.99)
  );
  backdrop-filter: blur(32px) saturate(1.45);
  -webkit-backdrop-filter: blur(32px) saturate(1.45);
  box-shadow:
    0 0 0 1px var(--helix-cyan-glow),
    inset 0 0 48px rgba(78, 42, 136, 0.1);
  overflow: hidden;
}

.day-drawer-board__frame::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    linear-gradient(
      135deg,
      rgba(0, 210, 255, 0.1) 0%,
      transparent 38%,
      transparent 62%,
      rgba(78, 42, 136, 0.08) 100%
    );
  z-index: 2;
  animation: board-helix-shimmer 8s ease-in-out infinite;
}

@keyframes board-helix-shimmer {
  0%, 100% { opacity: 0.65; }
  50% { opacity: 1; }
}

.day-drawer-board__frame::after {
  content: none;
}

.day-drawer-board__grid {
  grid-column: 1;
  grid-row: 1;
  position: relative;
  z-index: 1;
  transform-origin: 50% 50%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 2px;
  min-height: 0;
  min-width: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  justify-self: stretch;
  align-self: stretch;
  background: var(--board-line);
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

/* 入场 · 平面 3D 落位（慢 · 大角度 · 不裁切） */
.day-drawer-board__frame--entering .day-drawer-board__grid {
  animation: board-grid-enter 1200ms cubic-bezier(0.18, 0.82, 0.22, 1) forwards;
}

@keyframes board-grid-enter {
  0% {
    transform: rotateX(28deg) rotateY(-38deg) scale(0.9);
    opacity: 0.35;
  }
  58% {
    transform: rotateX(-4deg) rotateY(6deg) scale(1.015);
    opacity: 1;
  }
  100% {
    transform: rotateX(0deg) rotateY(0deg) scale(1);
    opacity: 1;
  }
}

.day-drawer-board__frame--entering .day-board-cell {
  animation: board-cell-pop 780ms cubic-bezier(0.18, 0.82, 0.22, 1) both;
}

.day-drawer-board__frame--entering .day-board-cell--hero { animation-delay: 0.14s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="0"][data-board-col="0"] { animation-delay: 0.2s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="0"][data-board-col="2"] { animation-delay: 0.26s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="2"][data-board-col="0"] { animation-delay: 0.32s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="2"][data-board-col="2"] { animation-delay: 0.38s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="0"][data-board-col="1"] { animation-delay: 0.23s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="1"][data-board-col="0"] { animation-delay: 0.29s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="1"][data-board-col="2"] { animation-delay: 0.35s; }
.day-drawer-board__frame--entering .day-board-cell[data-board-row="2"][data-board-col="1"] { animation-delay: 0.41s; }

@keyframes board-cell-pop {
  0% {
    opacity: 0.4;
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.day-board-cell {
  position: relative;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  border-radius: 0;
  transition: transform 0.22s cubic-bezier(0.25, 0.1, 0.25, 1), box-shadow 0.22s ease, z-index 0s;
}

/* 外圈四角略圆，贴齐框线 */
.day-board-cell[data-board-row="0"][data-board-col="0"] { border-radius: clamp(8px, 1.2vw, 13px) 0 0 0; }
.day-board-cell[data-board-row="0"][data-board-col="2"] { border-radius: 0 clamp(8px, 1.2vw, 13px) 0 0; }
.day-board-cell[data-board-row="2"][data-board-col="0"] { border-radius: 0 0 0 clamp(8px, 1.2vw, 13px); }
.day-board-cell[data-board-row="2"][data-board-col="2"] { border-radius: 0 0 clamp(8px, 1.2vw, 13px) 0; }

.day-board-cell::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  z-index: 1;
}

/* 金属冰白 · 钢蓝 · 玻璃亮格（洛书间隔 · 按行列） */
.day-board-cell[data-board-row="0"][data-board-col="0"],
.day-board-cell[data-board-row="0"][data-board-col="2"],
.day-board-cell[data-board-row="1"][data-board-col="1"],
.day-board-cell[data-board-row="2"][data-board-col="0"],
.day-board-cell[data-board-row="2"][data-board-col="2"] {
  background: linear-gradient(
    148deg,
    var(--board-light-a) 0%,
    var(--board-light-b) 32%,
    var(--board-light-c) 100%
  );
  backdrop-filter: blur(var(--board-glass-blur)) saturate(1.35);
  -webkit-backdrop-filter: blur(var(--board-glass-blur)) saturate(1.35);
}

.day-board-cell[data-board-row="0"][data-board-col="0"]::before,
.day-board-cell[data-board-row="0"][data-board-col="2"]::before,
.day-board-cell[data-board-row="1"][data-board-col="1"]::before,
.day-board-cell[data-board-row="2"][data-board-col="0"]::before,
.day-board-cell[data-board-row="2"][data-board-col="2"]::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  z-index: 1;
  background: linear-gradient(
    122deg,
    rgba(139, 92, 246, 0.14) 0%,
    transparent 34%,
    rgba(32, 52, 138, 0.1) 58%,
    rgba(78, 42, 136, 0.08) 72%,
    transparent 100%
  );
}

.day-drawer-board--female .day-board-cell[data-board-row="0"][data-board-col="0"]::before,
.day-drawer-board--female .day-board-cell[data-board-row="0"][data-board-col="2"]::before,
.day-drawer-board--female .day-board-cell[data-board-row="1"][data-board-col="1"]::before,
.day-drawer-board--female .day-board-cell[data-board-row="2"][data-board-col="0"]::before,
.day-drawer-board--female .day-board-cell[data-board-row="2"][data-board-col="2"]::before {
  background: linear-gradient(
    128deg,
    rgba(255, 140, 195, 0.2) 0%,
    transparent 36%,
    rgba(120, 72, 180, 0.14) 64%,
    rgba(78, 42, 136, 0.08) 80%,
    transparent 100%
  );
}

.day-board-cell[data-board-row="0"][data-board-col="0"]::after,
.day-board-cell[data-board-row="0"][data-board-col="2"]::after,
.day-board-cell[data-board-row="1"][data-board-col="1"]::after,
.day-board-cell[data-board-row="2"][data-board-col="0"]::after,
.day-board-cell[data-board-row="2"][data-board-col="2"]::after {
  box-shadow:
    inset 0 1px 0 rgba(139, 92, 246, 0.22),
    inset 0 -3px 8px rgba(0, 0, 0, 0.32),
    inset 0 0 14px rgba(32, 52, 138, 0.12);
}

/* 深钢蓝暗格（洛书间隔 · 按行列） */
.day-board-cell[data-board-row="0"][data-board-col="1"],
.day-board-cell[data-board-row="1"][data-board-col="0"],
.day-board-cell[data-board-row="1"][data-board-col="2"],
.day-board-cell[data-board-row="2"][data-board-col="1"] {
  background: linear-gradient(
    148deg,
    rgba(4, 16, 36, 0.98) 0%,
    var(--board-dark-a) 38%,
    var(--board-dark-b) 100%
  );
}

.day-board-cell[data-board-row="0"][data-board-col="1"]::after,
.day-board-cell[data-board-row="1"][data-board-col="0"]::after,
.day-board-cell[data-board-row="1"][data-board-col="2"]::after,
.day-board-cell[data-board-row="2"][data-board-col="1"]::after {
  box-shadow:
    inset 0 1px 0 rgba(140, 180, 230, 0.14),
    inset 0 -5px 12px rgba(0, 0, 0, 0.72),
    inset 0 0 0 1px rgba(40, 70, 110, 0.38);
}

.day-board-cell--hero,
.day-board-cell--center {
  background: linear-gradient(
    155deg,
    rgba(139, 92, 246, 0.26) 0%,
    rgba(32, 52, 138, 0.2) 40%,
    rgba(8, 22, 48, 0.94) 100%
  ) !important;
  backdrop-filter: blur(var(--board-glass-blur)) saturate(1.35);
  -webkit-backdrop-filter: blur(var(--board-glass-blur)) saturate(1.35);
  box-shadow:
    inset 0 0 28px rgba(78, 42, 136, 0.16),
    inset 0 1px 0 rgba(139, 92, 246, 0.28);
}

.day-drawer-board--female .day-board-cell--hero,
.day-drawer-board--female .day-board-cell--center {
  background: linear-gradient(
    155deg,
    rgba(255, 130, 195, 0.26) 0%,
    rgba(120, 72, 180, 0.2) 42%,
    rgba(8, 22, 48, 0.94) 100%
  ) !important;
  box-shadow:
    inset 0 0 28px rgba(200, 100, 170, 0.12),
    inset 0 1px 0 rgba(255, 160, 210, 0.26);
}

.day-board-cell--hero::after,
.day-board-cell--center::after {
  box-shadow:
    inset 0 1px 0 rgba(0, 210, 255, 0.35),
    inset 0 0 20px rgba(0, 130, 195, 0.15),
    inset 0 -2px 6px rgba(0, 0, 0, 0.35);
}

.day-board-cell.is-open {
  box-shadow:
    inset 0 0 0 2px var(--board-accent),
    0 0 16px rgba(100, 160, 255, 0.25);
}

.day-drawer-board--female .day-board-cell.is-open {
  box-shadow:
    inset 0 0 0 2px var(--board-accent),
    0 0 16px rgba(200, 120, 180, 0.28);
}

/* 鼠标悬停 · 轻微放大暗示可点（仅精细指针设备） */
@media (hover: hover) and (pointer: fine) {
  .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover {
    transform: scale(1.035);
    z-index: 6;
    overflow: visible;
    box-shadow:
      0 8px 24px rgba(0, 100, 160, 0.42),
      0 0 0 1px rgba(0, 210, 255, 0.45),
      inset 0 0 16px rgba(0, 210, 255, 0.08);
  }

  .day-drawer-board--female:not(.has-overlay) .day-board-cell:not(.is-open):hover {
    box-shadow:
      0 8px 24px rgba(100, 50, 120, 0.38),
      0 0 0 1px rgba(255, 160, 210, 0.42),
      inset 0 0 16px rgba(150, 190, 255, 0.12);
  }

  .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):active {
    transform: scale(1.025);
    transition-duration: 0.1s;
  }

  .day-board-cell[data-board-row="0"][data-board-col="0"]:hover { transform-origin: top left; }
  .day-board-cell[data-board-row="0"][data-board-col="1"]:hover { transform-origin: top center; }
  .day-board-cell[data-board-row="0"][data-board-col="2"]:hover { transform-origin: top right; }
  .day-board-cell[data-board-row="1"][data-board-col="0"]:hover { transform-origin: center left; }
  .day-board-cell[data-board-row="1"][data-board-col="1"]:hover { transform-origin: center; }
  .day-board-cell[data-board-row="1"][data-board-col="2"]:hover { transform-origin: center right; }
  .day-board-cell[data-board-row="2"][data-board-col="0"]:hover { transform-origin: bottom left; }
  .day-board-cell[data-board-row="2"][data-board-col="1"]:hover { transform-origin: bottom center; }
  .day-board-cell[data-board-row="2"][data-board-col="2"]:hover { transform-origin: bottom right; }

  .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap {
    background: radial-gradient(
      circle at var(--board-ripple-x, 50%) var(--board-ripple-y, 50%),
      rgba(0, 210, 255, 0.18) 0%,
      rgba(0, 130, 195, 0.08) 38%,
      transparent 68%
    );
  }

  .day-drawer-board--female:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap {
    background: radial-gradient(
      circle at var(--board-ripple-x, 50%) var(--board-ripple-y, 50%),
      rgba(255, 170, 220, 0.2) 0%,
      rgba(150, 190, 255, 0.1) 38%,
      transparent 68%
    );
  }

  .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap::before {
    animation: day-board-water-bloom 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
  }

  .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap::after {
    animation: day-board-water-ring 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
    animation-delay: 0.65s;
  }

  /* 暗格 · 水纹略提亮 */
  .day-drawer-board:not(.has-overlay) .day-board-cell:is(
    [data-board-row="0"][data-board-col="1"],
    [data-board-row="1"][data-board-col="0"],
    [data-board-row="1"][data-board-col="2"],
    [data-board-row="2"][data-board-col="1"]
  ):not(.is-open):hover .day-board-cell__tap::before {
    background: radial-gradient(
      circle,
      rgba(190, 230, 255, 0.32) 0%,
      rgba(140, 200, 255, 0.12) 26%,
      rgba(100, 170, 230, 0.05) 46%,
      transparent 68%
    );
    mix-blend-mode: screen;
  }
}

/* 减弱动效 · 保留静态 hover 高亮，关闭放大与水纹动画 */
@media (prefers-reduced-motion: reduce) {
  .day-drawer-board__frame::before {
    animation: none;
  }

  .day-drawer-board__frame--entering .day-drawer-board__grid,
  .day-drawer-board__frame--entering .day-board-cell {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .day-board-cell {
    transition: box-shadow 0.01ms ease, z-index 0s;
  }

  @media (hover: hover) and (pointer: fine) {
    .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover {
      transform: none;
      overflow: hidden;
      box-shadow:
        inset 0 0 0 2px rgba(130, 190, 255, 0.52),
        0 0 14px rgba(40, 90, 160, 0.3);
    }

    .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):active {
      transform: none;
    }

    .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap {
      background: radial-gradient(
        circle at 50% 50%,
        rgba(205, 238, 255, 0.14) 0%,
        rgba(160, 210, 255, 0.05) 44%,
        transparent 72%
      );
    }

    .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap::before,
    .day-drawer-board:not(.has-overlay) .day-board-cell:not(.is-open):hover .day-board-cell__tap::after {
      animation: none;
      opacity: 0;
    }
  }

  .day-drawer-board--focus-hero:not(.has-overlay) .day-board-cell:not(.day-board-cell--hero) {
    transition: none;
  }

  .day-board-cell--hero.is-hero-focus {
    animation: none;
    box-shadow:
      inset 0 0 0 2px rgba(0, 190, 255, 0.55),
      inset 0 1px 0 rgba(255, 255, 255, 0.85);
  }

  .day-board-cell--coach-target .day-board-cell__tap {
    animation: none;
    box-shadow: inset 0 0 0 2px rgba(196, 181, 253, 0.55);
  }

  .day-drawer-board.has-overlay .day-drawer-board__grid {
    transition: none;
    transform: none;
    filter: none;
    opacity: 0.45;
  }

  .day-drawer-board__overlay,
  .day-drawer-board__overlay.is-closing {
    animation: none !important;
    transition: opacity 0.15s ease;
    filter: none !important;
  }

  .day-drawer-board__overlay-body > .day-board-cell__content,
  .day-drawer-board__overlay-footer {
    animation: none !important;
  }
}

@keyframes day-board-water-bloom {
  0% {
    transform: translate(-50%, -50%) scale(0.18);
    opacity: 0;
  }
  14% {
    opacity: 0.92;
  }
  100% {
    transform: translate(-50%, -50%) scale(1.08);
    opacity: 0;
  }
}

@keyframes day-board-water-ring {
  0% {
    transform: translate(-50%, -50%) scale(0.12);
    opacity: 0;
    border-color: rgba(195, 230, 255, 0.5);
    box-shadow:
      0 0 0 0 rgba(170, 220, 255, 0.38),
      0 0 0 0 rgba(140, 200, 255, 0.16);
  }
  18% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) scale(1.35);
    opacity: 0;
    border-color: rgba(195, 230, 255, 0);
    box-shadow:
      0 0 0 14px rgba(170, 220, 255, 0),
      0 0 0 32px rgba(140, 200, 255, 0);
  }
}

/* 打开 Drawer · 中宫 hero 短暂聚焦 */
.day-drawer-board--focus-hero:not(.has-overlay) .day-board-cell:not(.day-board-cell--hero) {
  opacity: 0.84;
  transition: opacity 0.35s ease;
}

.day-board-cell--hero.is-hero-focus {
  animation: heart-pulse-glow var(--heart-pulse-period-fast) var(--heart-pulse-easing) 2;
  z-index: 3;
}

/* legacy alias — drawer hero 仍引用 day-board-hero-pulse 处可删 */
@keyframes day-board-hero-pulse {
  0%, 100% {
    box-shadow:
      inset 0 0 0 1px rgba(0, 210, 255, 0.35),
      inset 0 0 16px rgba(0, 130, 195, 0.1);
  }
  50% {
    box-shadow:
      inset 0 0 0 2px rgba(0, 210, 255, 0.62),
      0 0 24px rgba(0, 210, 255, 0.28),
      inset 0 0 24px rgba(0, 130, 195, 0.18);
  }
}

.day-board-cell__action {
  margin: 0.1rem 0 0.22rem;
  font-size: clamp(0.62rem, 2.35cqw, 0.7rem);
  font-weight: 650;
  line-height: 1.32;
  letter-spacing: -0.01em;
  color: inherit;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  position: relative;
  z-index: 2;
}

.day-board-cell--hero .day-board-cell__action {
  margin: 0.08rem 0 0;
  padding: 0 0.35rem;
  font-size: clamp(0.64rem, 2.5cqw, 0.72rem);
  -webkit-line-clamp: 2;
}

.day-board-cell__hero-one-label {
  display: block;
  margin: 0.08rem 0 0.06rem;
  padding: 0 0.35rem;
  font-size: clamp(0.54rem, 1.95cqw, 0.6rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--helix-label);
  position: relative;
  z-index: 2;
}

.day-board-cell__action--hero-one {
  margin-top: 0.04rem;
  font-size: clamp(0.72rem, 2.85cqw, 0.82rem);
  font-weight: 700;
  color: var(--helix-label) !important;
  letter-spacing: -0.015em;
  line-height: 1.28;
  -webkit-line-clamp: 3;
}

.day-board-cell__hero-tap {
  display: block;
  margin: 0.14rem 0 0;
  padding: 0 0.35rem;
  font-size: clamp(0.54rem, 1.95cqw, 0.6rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--helix-cyan-soft);
  position: relative;
  z-index: 2;
}

.day-board-cell--hero.is-hero-focus .day-board-cell__hero-tap {
  color: var(--helix-label);
}

.day-board-chip--hint {
  display: inline-block;
  margin-top: 0.2rem;
  font-size: clamp(0.56rem, 2cqw, 0.62rem);
  font-weight: 600;
  color: rgba(0, 130, 200, 0.88);
  background: rgba(0, 130, 200, 0.1);
  border: 1px solid rgba(0, 130, 200, 0.22);
  border-radius: 999px;
  padding: 0.12rem 0.38rem;
}

.decision-capture__note {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  color: rgba(160, 185, 220, 0.62);
  line-height: 1.45;
}

.calendar-boot-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 0 0 0.45rem;
  padding: 0.45rem 0.65rem;
  font-size: 0.72rem;
  line-height: 1.4;
  color: rgba(180, 220, 255, 0.92);
  background: rgba(6, 24, 48, 0.72);
  border: 1px solid var(--helix-border);
  border-radius: 8px;
  text-align: center;
}

.calendar-boot-hint[aria-busy='true']::before {
  content: '';
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  border: 2px solid rgba(0, 210, 255, 0.25);
  border-top-color: var(--helix-cyan);
  animation: ui-spin 0.75s linear infinite;
}

.calendar-boot-hint[hidden] {
  display: none !important;
}

.decision-feedback-host:not([hidden]) {
  margin-top: 0.55rem;
  margin-bottom: 0.35rem;
}

.record-aha-host:not([hidden]) {
  margin-top: 0.55rem;
}

.record-aha-host--visible {
  animation: record-aha-host-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.record-aha {
  position: relative;
  overflow: hidden;
  padding: 0.72rem 0.78rem 0.75rem;
  border-radius: 0.62rem;
  border: 1px solid rgba(160, 200, 255, 0.42);
  background: linear-gradient(
    148deg,
    rgba(32, 56, 98, 0.78) 0%,
    rgba(16, 28, 52, 0.92) 55%,
    rgba(22, 38, 68, 0.88) 100%
  );
  box-shadow:
    0 0 0 1px rgba(120, 170, 255, 0.1) inset,
    0 8px 24px rgba(8, 16, 40, 0.35);
}

.record-aha--enter {
  animation: record-aha-card-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.record-aha--enter.record-aha--settled .record-aha__glow {
  opacity: 0;
}

.record-aha__glow {
  position: absolute;
  inset: -40% -20%;
  background: radial-gradient(
    circle at 30% 20%,
    rgba(140, 200, 255, 0.28) 0%,
    rgba(100, 160, 255, 0.08) 35%,
    transparent 62%
  );
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.8s ease;
  animation: record-aha-glow-pulse 1.2s ease-in-out 2;
}

.record-aha__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.55rem 0.65rem;
  align-items: start;
  margin-bottom: 0.5rem;
}

.record-aha__ring {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  border: 1px solid rgba(150, 195, 255, 0.45);
  background: rgba(20, 40, 72, 0.65);
  animation: record-aha-ring-spin 4s linear infinite;
}

.record-aha__ring-core {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: rgba(190, 225, 255, 0.95);
  box-shadow: 0 0 10px rgba(150, 210, 255, 0.75);
  animation: record-aha-core-pulse 1.4s ease-in-out infinite;
}

.record-aha__head-text {
  min-width: 0;
}

.record-aha__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(185, 220, 255, 0.9);
}

.record-aha__lead {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.38;
  color: rgba(230, 242, 255, 0.96);
}

.record-aha__date {
  flex-shrink: 0;
  padding: 0.12rem 0.38rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(170, 200, 235, 0.88);
  border: 1px solid rgba(130, 165, 210, 0.35);
  background: rgba(12, 24, 44, 0.55);
}

.record-aha__quote {
  margin: 0 0 0.45rem;
  padding: 0.4rem 0.55rem;
  border-left: 2px solid rgba(150, 200, 255, 0.5);
  font-size: 0.8rem;
  line-height: 1.45;
  font-style: normal;
  color: rgba(200, 218, 245, 0.9);
  animation: record-aha-quote-in 0.5s ease 0.18s both;
}

.record-aha__meta {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: rgba(160, 185, 220, 0.78);
  animation: record-aha-quote-in 0.45s ease 0.28s both;
}

.record-aha__foot {
  margin: 0 0 0.55rem;
  font-size: 0.64rem;
  line-height: 1.35;
  color: rgba(140, 165, 200, 0.72);
  animation: record-aha-quote-in 0.45s ease 0.34s both;
}

.record-aha__cta {
  width: 100%;
  font-size: 0.78rem;
  animation: record-aha-quote-in 0.45s ease 0.4s both;
}

@keyframes record-aha-host-in {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes record-aha-card-in {
  0% {
    opacity: 0;
    transform: translateY(8px) scale(0.97);
    filter: brightness(1.15);
  }
  55% {
    opacity: 1;
    transform: translateY(-2px) scale(1.01);
    filter: brightness(1.08);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: brightness(1);
  }
}

@keyframes record-aha-glow-pulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.04); }
}

@keyframes record-aha-ring-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes record-aha-core-pulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.18); opacity: 1; }
}

@keyframes record-aha-quote-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .record-aha-host--visible,
  .record-aha--enter,
  .record-aha__quote,
  .record-aha__meta,
  .record-aha__foot,
  .record-aha__cta,
  .record-aha__glow,
  .record-aha__ring,
  .record-aha__ring-core {
    animation: none !important;
    transition: none !important;
  }
}

.decision-feedback-host[data-state='loading'] {
  animation: decision-feedback-host-in 0.25s ease;
}

@keyframes decision-feedback-host-in {
  from {
    opacity: 0.4;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.decision-feedback {
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  background: rgba(8, 16, 32, 0.55);
  border: 1px solid rgba(100, 150, 220, 0.22);
}

/* 决策面板 · 养生区块（深色主题，与 decision-feedback 一致） */
.decision-feedback__season {
  margin-bottom: 0.55rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(80, 120, 180, 0.22);
}

.decision-feedback .season-care-banner {
  margin: 0;
  padding: 0.5rem 0.6rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(80, 120, 180, 0.28);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  color: rgba(230, 240, 255, 0.92);
}

.decision-feedback .season-care-banner--inline {
  margin-bottom: 0;
}

.decision-feedback .season-care-banner__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 210, 255, 0.75);
  opacity: 1;
}

.decision-feedback .season-care-banner__body {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.45;
  font-weight: 600;
  color: rgba(230, 242, 255, 0.96);
}

.decision-feedback .season-care-banner__detail {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: rgba(180, 210, 240, 0.88);
  opacity: 1;
}

.decision-feedback .season-care-banner__scope {
  margin: 0.2rem 0 0;
  font-size: 0.66rem;
  line-height: 1.35;
  color: rgba(160, 210, 255, 0.72);
  opacity: 1;
}

.decision-feedback .element-lifestyle {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(80, 120, 180, 0.22);
}

.decision-feedback .element-lifestyle__corr {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  line-height: 1.4;
  color: rgba(180, 210, 240, 0.85);
  opacity: 1;
}

.decision-feedback .element-lifestyle__section-title {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.03em;
  color: rgba(200, 225, 255, 0.92);
}

.decision-feedback .element-lifestyle__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.72rem;
  line-height: 1.42;
  color: rgba(180, 210, 240, 0.88);
}

.decision-feedback .element-lifestyle__section + .element-lifestyle__section {
  margin-top: 0.4rem;
}

.decision-feedback__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: rgba(140, 190, 255, 0.85);
  text-transform: uppercase;
}

.decision-feedback__mirror,
.decision-feedback__context {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(220, 232, 248, 0.92);
}

.decision-feedback__context {
  color: rgba(190, 210, 235, 0.78);
  font-size: 0.74rem;
}

.decision-feedback__label {
  margin: 0.5rem 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(180, 210, 245, 0.88);
}

.decision-feedback__list {
  margin: 0;
  padding-left: 1.1rem;
}

.decision-feedback__item {
  margin: 0.25rem 0;
  font-size: 0.76rem;
  line-height: 1.42;
  color: rgba(210, 225, 245, 0.9);
}

.decision-feedback__disclaimer {
  margin: 0.55rem 0 0;
  font-size: 0.68rem;
  color: rgba(160, 180, 210, 0.58);
  line-height: 1.4;
}

.decision-feedback__assist-tag {
  display: inline;
  font-size: 0.65rem;
  color: rgba(180, 200, 235, 0.72);
}

.decision-feedback__pending {
  margin: 0;
  padding: 0.55rem 0.7rem;
  font-size: 0.78rem;
  color: rgba(190, 215, 245, 0.92);
  border-radius: 0.5rem;
  background: rgba(12, 24, 48, 0.72);
  border: 1px solid rgba(100, 150, 220, 0.28);
  line-height: 1.45;
}

.decision-feedback__pending--loading {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: rgba(210, 230, 255, 0.98);
  border-color: rgba(120, 180, 255, 0.45);
  background: rgba(16, 32, 64, 0.85);
}

.decision-feedback__pending--loading::before {
  content: '';
  flex-shrink: 0;
  width: 0.85rem;
  height: 0.85rem;
  border: 2px solid rgba(140, 190, 255, 0.35);
  border-top-color: rgba(160, 210, 255, 1);
  border-radius: 50%;
  animation: decision-feedback-spin 0.65s linear infinite;
}

@keyframes decision-feedback-spin {
  to {
    transform: rotate(360deg);
  }
}

.decision-feedback__error {
  color: rgba(255, 140, 140, 0.95);
  background: rgba(40, 12, 12, 0.35);
}

.decision-feedback__local-hint {
  margin: 0 0 0.45rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(167, 139, 250, 0.92);
}

.decision-feedback__skeleton {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.55rem;
}

.decision-feedback__skeleton span {
  display: block;
  height: 0.55rem;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(80, 120, 180, 0.18) 0%,
    rgba(140, 180, 240, 0.32) 50%,
    rgba(80, 120, 180, 0.18) 100%
  );
  background-size: 200% 100%;
  animation: decision-feedback-skeleton 1.2s ease-in-out infinite;
}

.decision-feedback__skeleton span:nth-child(1) { width: 88%; }
.decision-feedback__skeleton span:nth-child(2) { width: 72%; animation-delay: 0.1s; }
.decision-feedback__skeleton span:nth-child(3) { width: 56%; animation-delay: 0.2s; }

@keyframes decision-feedback-skeleton {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

.decision-feedback__retry {
  margin-top: 0.55rem;
  width: 100%;
}

.decision-feedback-host--ready {
  animation: decision-feedback-host-in 0.32s ease;
}

.decision-feedback--ready .decision-feedback__mirror {
  animation: decision-feedback-reveal 0.38s ease both;
}

.decision-feedback--ready .decision-feedback__item:first-child {
  animation: decision-feedback-reveal 0.42s ease 0.08s both;
}

@keyframes decision-feedback-reveal {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.journal-input--coach-focus {
  box-shadow:
    0 0 0 2px rgba(0, 210, 255, 0.45),
    0 0 18px rgba(139, 92, 246, 0.25);
}

.decision-feedback__jade {
  margin-top: 0.85rem;
}

.decision-feedback__ask {
  font-size: 0.74rem;
}

.decision-feedback__refine {
  margin-top: 0.85rem;
}

.decision-feedback__refine-lead {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(220, 230, 245, 0.82);
}

.decision-feedback__refine-input {
  width: 100%;
  min-height: 4.2rem;
  margin: 0 0 0.55rem;
  padding: 0.55rem 0.65rem;
  font: inherit;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(245, 248, 255, 0.95);
  background: rgba(8, 14, 24, 0.45);
  border: 1px solid rgba(120, 160, 210, 0.22);
  border-radius: 8px;
  resize: vertical;
}

.decision-feedback__refine-input:focus {
  outline: none;
  border-color: rgba(100, 180, 255, 0.45);
}

.decision-feedback__refine-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
}

.decision-feedback__refine-submit {
  font-size: 0.72rem;
  padding: 0.35rem 0.75rem;
}

.decision-feedback__refine-jade {
  font-size: 0.72rem;
}

.decision-feedback__refine-hint {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  color: rgba(255, 180, 120, 0.9);
}

.decision-feedback__refine-summary {
  cursor: pointer;
  font-size: 0.74rem;
  font-weight: 600;
  color: rgba(180, 210, 255, 0.92);
  list-style: none;
}

.decision-feedback__refine-summary::-webkit-details-marker {
  display: none;
}

.decision-feedback__refine-body {
  margin-top: 0.55rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.decision-feedback__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.55rem;
}

.decision-feedback__chip {
  font: inherit;
  font-size: 0.68rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(120, 170, 230, 0.28);
  background: rgba(12, 22, 38, 0.55);
  color: rgba(220, 235, 255, 0.92);
  cursor: pointer;
}

.decision-feedback__chip:hover {
  border-color: rgba(140, 200, 255, 0.5);
}

.decision-feedback__expand {
  display: block;
  margin: 0.15rem 0 0.35rem;
  padding: 0;
  font: inherit;
  font-size: 0.68rem;
  color: rgba(150, 190, 255, 0.88);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
}

.decision-feedback__list--more {
  margin-top: 0.15rem;
}

.ask-jade-btn--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.55rem 0.85rem;
  font-size: 0.76rem;
  font-weight: 600;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(60, 120, 200, 0.55), rgba(40, 90, 160, 0.65));
  border: 1px solid rgba(140, 190, 255, 0.35);
  color: rgba(245, 250, 255, 0.98);
  text-decoration: none;
}

.ask-jade-btn--primary:hover {
  border-color: rgba(160, 210, 255, 0.55);
}

.onboarding-coach {
  position: fixed;
  z-index: 125;
  max-width: min(20rem, calc(100vw - 2rem));
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  pointer-events: auto;
  /* 右侧浮层 · 不占月历 flex 空间 */
  top: auto;
  right: clamp(0.75rem, 2.5vw, 1.25rem);
  bottom: clamp(4.5rem, 12vh, 6rem);
  left: auto;
  transform: none;
}

.onboarding-coach__zone {
  margin: 0 0 0.45rem;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.45;
  color: rgba(170, 200, 255, 0.72);
}

@media (max-width: 640px) {
  .onboarding-coach {
    right: 0.75rem;
    left: 0.75rem;
    bottom: clamp(4rem, 10vh, 5.5rem);
    max-width: none;
  }
}

body.day-drawer-open .onboarding-coach {
  bottom: clamp(1rem, 4vh, 1.75rem);
  z-index: 120;
}

.onboarding-coach__actions {
  display: flex;
  gap: 0.45rem;
  margin-top: 0.55rem;
  justify-content: flex-end;
}

.onboarding-coach__actions .btn {
  font-size: 0.72rem;
  padding: 0.35rem 0.65rem;
}

.onboarding-coach__lead--nudge {
  color: rgba(255, 200, 140, 0.95);
}

.onboarding-coach-toast {
  position: fixed;
  z-index: 130;
  left: 50%;
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  transform: translate(-50%, 12px);
  max-width: min(22rem, calc(100vw - 2rem));
  margin: 0;
  padding: 0.65rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 210, 255, 0.35);
  background: rgba(4, 16, 36, 0.92);
  color: rgba(230, 240, 255, 0.95);
  font-size: 0.78rem;
  line-height: 1.45;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.onboarding-coach-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

.month-cell--coach-target {
  animation: month-cell-coach-pulse 1.4s ease infinite;
  z-index: 2;
}

.day-board-cell--coach-target .day-board-cell__tap {
  animation: day-board-coach-pulse 1.6s ease-in-out infinite;
  box-shadow: inset 0 0 0 1px rgba(196, 181, 253, 0.45);
}

@keyframes day-board-coach-pulse {
  0%, 100% {
    box-shadow: inset 0 0 0 1px rgba(196, 181, 253, 0.35);
  }
  50% {
    box-shadow:
      inset 0 0 0 2px rgba(196, 181, 253, 0.55),
      0 0 12px rgba(196, 181, 253, 0.28);
  }
}

.decision-capture__actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.decision-feedback-trigger {
  width: 100%;
  padding: 0.65rem 1rem;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 0.55rem;
  box-shadow:
    0 2px 10px rgba(40, 100, 200, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.decision-feedback-trigger__label {
  line-height: 1.2;
}

.decision-feedback-trigger--ready:not(.decision-feedback-trigger--busy) {
  animation: decision-feedback-btn-pulse 2.2s ease-in-out infinite;
}

.decision-feedback-trigger--busy {
  opacity: 0.72;
  cursor: wait;
}

@keyframes decision-feedback-btn-pulse {
  0%, 100% {
    box-shadow:
      0 2px 10px rgba(40, 100, 200, 0.35),
      0 0 0 0 rgba(100, 170, 255, 0);
  }
  50% {
    box-shadow:
      0 4px 16px rgba(60, 130, 240, 0.5),
      0 0 0 4px rgba(100, 170, 255, 0.18);
  }
}

.decision-capture__actions .btn--compact {
  font-size: 0.72rem;
  padding: 0.35rem 0.75rem;
}

@keyframes month-cell-coach-pulse {
  0%, 100% {
    box-shadow:
      inset 0 0 0 1px rgba(196, 181, 253, 0.35),
      0 0 0 0 rgba(196, 181, 253, 0);
  }
  50% {
    box-shadow:
      inset 0 0 0 2px rgba(196, 181, 253, 0.65),
      0 0 14px rgba(196, 181, 253, 0.35);
  }
}

.day-drawer-board.has-overlay .day-drawer-board__grid {
  pointer-events: none;
  opacity: 0.28;
  filter: saturate(0.85) blur(1px);
  transform: scale(0.94);
  transition:
    opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.38s ease;
}

.day-drawer-board__overlay {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 5;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: min(100cqw, 100cqh);
  aspect-ratio: 1;
  height: auto;
  max-height: 100cqh;
  transform: translate(-50%, -50%);
  transform-origin: var(--board-overlay-ox) var(--board-overlay-oy);
  border-radius: clamp(10px, 1.4vw, 16px);
  border: 1px solid rgba(0, 210, 255, 0.32);
  border-top-color: rgba(130, 200, 255, 0.42);
  background:
    radial-gradient(
      ellipse 90% 70% at 50% 28%,
      rgba(0, 100, 160, 0.22) 0%,
      transparent 55%
    ),
    linear-gradient(
      168deg,
      rgba(6, 28, 52, 0.98) 0%,
      rgba(4, 16, 32, 0.99) 42%,
      rgba(2, 8, 20, 0.995) 100%
    );
  backdrop-filter: blur(40px) saturate(1.45);
  -webkit-backdrop-filter: blur(40px) saturate(1.45);
  box-shadow:
    0 32px 72px rgba(0, 0, 0, 0.72),
    0 0 0 1px var(--helix-cyan-glow),
    inset 0 1px 0 rgba(0, 210, 255, 0.12),
    inset 0 -6px 16px rgba(0, 0, 0, 0.55);
  color: rgba(230, 240, 255, 0.94);
  font-family: var(--font-apple-zh);
  will-change: transform, opacity;
}

.day-drawer-board__overlay:not([hidden]) {
  animation: day-board-overlay-in 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.day-drawer-board__overlay.is-closing {
  animation: day-board-overlay-out 0.32s cubic-bezier(0.4, 0, 0.6, 1) forwards;
  pointer-events: none;
}

@keyframes day-board-overlay-in {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.82);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
}

@keyframes day-board-overlay-out {
  from {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
  to {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.88);
    filter: blur(3px);
  }
}

.day-drawer-board__overlay-body > .day-board-cell__content {
  animation: day-board-overlay-content-in 0.48s cubic-bezier(0.22, 1, 0.36, 1) 0.06s both;
}

@keyframes day-board-overlay-content-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.day-drawer-board__overlay-footer {
  flex-shrink: 0;
  padding: 0.65rem 0.85rem 0.75rem;
  border-top: 1px solid rgba(0, 210, 255, 0.14);
  background: linear-gradient(180deg, transparent 0%, rgba(0, 100, 160, 0.08) 100%);
  animation: day-board-overlay-content-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.day-drawer-board__overlay-footer[hidden] {
  display: none !important;
}

.day-drawer-board__overlay-next {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(180, 200, 230, 0.82);
}

.day-drawer-board__overlay-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.day-board-overlay-cta {
  appearance: none;
  flex: 1 1 8rem;
  min-width: 0;
  padding: 0.55rem 0.75rem;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: 10px;
  cursor: pointer;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    background 0.18s ease;
  -webkit-tap-highlight-color: transparent;
}

.day-board-overlay-cta:active {
  transform: scale(0.98);
}

.day-board-overlay-cta--primary {
  border: 1px solid rgba(0, 210, 255, 0.45);
  background: var(--helix-gradient-label);
  color: rgba(245, 250, 255, 0.98);
  box-shadow:
    0 4px 16px rgba(0, 100, 160, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.day-board-overlay-cta--primary:hover {
  border-color: rgba(0, 210, 255, 0.65);
  box-shadow:
    0 6px 22px rgba(0, 130, 195, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.day-board-overlay-cta--ghost {
  border: 1px solid rgba(0, 210, 255, 0.22);
  background: rgba(0, 100, 160, 0.12);
  color: rgba(200, 220, 245, 0.92);
}

.day-board-overlay-cta--ghost:hover {
  border-color: rgba(0, 210, 255, 0.38);
  background: rgba(0, 100, 160, 0.22);
}

.day-drawer-board__overlay[hidden] {
  display: none !important;
}

.day-drawer-board__overlay-header {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-shrink: 0;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid rgba(80, 120, 180, 0.22);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.07) 0%, transparent 100%);
}

.day-drawer-board__overlay-back {
  appearance: none;
  border: 1px solid rgba(0, 210, 255, 0.28);
  border-top-color: rgba(130, 200, 255, 0.35);
  border-radius: 10px;
  width: 2.15rem;
  height: 2.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(0, 100, 160, 0.35) 0%, rgba(4, 16, 32, 0.85) 100%);
  color: rgba(230, 240, 255, 0.95);
  font-size: 1rem;
  cursor: pointer;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(0, 210, 255, 0.12);
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.day-drawer-board__overlay-back:hover {
  background: rgba(0, 130, 195, 0.35);
  border-color: rgba(0, 210, 255, 0.45);
}

.day-drawer-board__overlay-back:active {
  transform: scale(0.96);
}

.day-drawer-board__overlay-title {
  margin: 0;
  font-size: clamp(0.88rem, 1.05rem, 0.94rem);
  font-weight: 600;
  color: rgba(230, 242, 255, 0.96);
  letter-spacing: -0.01em;
}

.day-drawer-board__overlay-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: clamp(0.75rem, 1.2vw, 1rem);
  border-radius: 0 0 clamp(10px, 1.4vw, 16px) clamp(10px, 1.4vw, 16px);
  font-size: clamp(0.84rem, 1rem, 0.9rem);
  font-weight: 500;
  line-height: 1.55;
  color: rgba(210, 225, 245, 0.92);
}

.day-drawer-board__overlay-body--hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.day-board-cell__palace {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.65rem 0;
}

.day-board-cell__coord {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--helix-label);
  border: 1px solid rgba(130, 165, 255, 0.42);
  border-radius: 6px;
  background: var(--helix-gradient-label);
  box-shadow:
    0 2px 8px rgba(20, 40, 120, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  font-family: var(--font-apple-zh);
  position: relative;
  z-index: 2;
}

.day-board-cell__palace-label {
  font-size: clamp(0.72rem, 1.1cqw, 0.82rem);
  font-weight: 600;
  color: rgba(160, 190, 230, 0.78);
  letter-spacing: -0.01em;
}

.day-board-cell__tap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0.38rem 0.42rem 0.42rem;
  border: none;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  position: relative;
  z-index: 2;
  overflow: hidden;
  border-radius: inherit;
  isolation: isolate;
  --board-ripple-x: 50%;
  --board-ripple-y: 50%;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease;
}

/* 悬停水纹 · 伪元素层（仅桌面指针） */
.day-board-cell__tap::before,
.day-board-cell__tap::after {
  content: '';
  position: absolute;
  left: var(--board-ripple-x, 50%);
  top: var(--board-ripple-y, 50%);
  pointer-events: none;
  border-radius: 50%;
  z-index: 0;
  opacity: 0;
}

.day-board-cell__tap::before {
  width: 130%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(0.2);
  background: radial-gradient(
    circle,
    rgba(215, 245, 255, 0.38) 0%,
    rgba(165, 215, 255, 0.14) 26%,
    rgba(130, 190, 245, 0.06) 46%,
    transparent 68%
  );
}

.day-board-cell__tap::after {
  width: 36%;
  height: 36%;
  transform: translate(-50%, -50%) scale(0.15);
  border: 1.5px solid rgba(185, 225, 255, 0.42);
  box-shadow:
    0 0 0 0 rgba(160, 210, 255, 0.28),
    0 0 18px rgba(120, 190, 255, 0.12);
}

.day-board-cell__tap > * {
  position: relative;
  z-index: 1;
}

.day-board-cell__tap--hero {
  flex-shrink: 0;
  height: auto;
  min-height: 0;
  padding-bottom: 0.2rem;
}

.day-board-cell__tap:focus-visible {
  outline: 2px solid rgba(130, 200, 255, 0.55);
  outline-offset: -2px;
}

.day-board-cell.is-open .day-board-cell__hint,
.day-board-cell.is-open .day-board-cell__preview {
  display: none;
}

.day-board-cell__label {
  font-size: clamp(0.74rem, 1.12cqw, 0.84rem);
  font-weight: 600;
  color: rgba(220, 235, 255, 0.92);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.day-board-cell__label-en {
  display: block;
  font-size: clamp(0.58rem, 0.82cqw, 0.65rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: rgba(170, 195, 230, 0.75);
  opacity: 0.75;
}

.day-board-cell__label-en--hero {
  margin-top: 0.04rem;
}

.board-overlay {
  padding: 0.5rem 0.25rem 0.75rem;
}

.board-overlay__lead {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(190, 210, 240, 0.88);
}

.board-overlay__liuyue {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 650;
  color: rgba(220, 235, 255, 0.95);
}

.board-overlay__phase {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.4;
  color: rgba(170, 195, 230, 0.82);
}

.board-overlay__empty {
  margin: 0.25rem 0;
  font-size: 0.84rem;
  color: rgba(170, 195, 230, 0.78);
  text-align: center;
}

.board-overlay__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.board-overlay__list-item {
  display: grid;
  grid-template-columns: 5.2rem 1fr;
  gap: 0.45rem 0.65rem;
  align-items: start;
  padding: 0.45rem 0.55rem;
  border-radius: 0.45rem;
  background: rgba(18, 32, 58, 0.55);
  border: 1px solid rgba(120, 155, 210, 0.22);
}

.board-overlay__list-date {
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(160, 190, 235, 0.85);
  font-variant-numeric: tabular-nums;
}

.board-overlay__list-text {
  font-size: 0.8rem;
  line-height: 1.4;
  color: rgba(210, 225, 245, 0.92);
}

.board-overlay__verdict {
  margin: 0 0 0.55rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(200, 220, 250, 0.9);
}

.board-overlay__macro-list {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
}

.board-overlay__macro-row {
  display: grid;
  grid-template-columns: 3.6rem 2.4rem 1fr auto;
  gap: 0.35rem 0.5rem;
  align-items: center;
  padding: 0.38rem 0.5rem;
  border-radius: 0.4rem;
  background: rgba(14, 26, 48, 0.5);
  border: 1px solid rgba(110, 145, 200, 0.2);
  font-size: 0.76rem;
}

.board-overlay__macro-label {
  font-weight: 600;
  color: rgba(210, 225, 245, 0.92);
}

.board-overlay__macro-value {
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: rgba(180, 215, 255, 0.95);
}

.board-overlay__macro-range {
  color: rgba(150, 175, 210, 0.72);
  font-size: 0.7rem;
}

.board-overlay__macro-hint {
  font-size: 0.68rem;
  font-weight: 600;
  white-space: nowrap;
}

.board-overlay__macro-hint--ok {
  color: rgba(130, 210, 170, 0.9);
}

.board-overlay__macro-hint--low,
.board-overlay__macro-hint--high {
  color: rgba(240, 180, 140, 0.92);
}

@media (max-width: 420px) {
  .board-overlay__macro-row {
    grid-template-columns: 3.2rem 2.2rem 1fr;
  }

  .board-overlay__macro-hint {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

.board-overlay__section {
  margin-top: 0.85rem;
}

.board-overlay__section--compact {
  margin-top: 0.65rem;
}

.board-overlay__section-title {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(190, 210, 235, 0.9);
}

.board-overlay__chain,
.board-overlay__current,
.board-overlay__primary {
  margin: 0 0 0.45rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(165, 185, 215, 0.82);
}

.board-overlay__shichen-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.board-overlay__shichen-row {
  display: grid;
  grid-template-columns: 3.2rem 4.2rem 2rem 1fr;
  gap: 0.35rem 0.5rem;
  align-items: start;
  padding: 0.35rem 0.45rem;
  border-radius: 0.45rem;
  background: rgba(20, 30, 48, 0.35);
}

.board-overlay__shichen-row--body {
  grid-template-columns: 3.2rem 3.6rem 1fr;
}

.board-overlay__shichen-row.is-current,
.board-overlay__shichen-row.is-primary {
  outline: 1px solid rgba(120, 175, 255, 0.45);
  background: rgba(35, 55, 90, 0.42);
}

.board-overlay__shichen-slot {
  font-weight: 600;
  color: rgba(210, 225, 245, 0.95);
}

.board-overlay__shichen-tier,
.board-overlay__shichen-mode {
  font-size: 0.72rem;
  color: rgba(150, 190, 230, 0.85);
}

.board-overlay__shichen-score {
  font-size: 0.72rem;
  color: rgba(140, 175, 220, 0.75);
}

.board-overlay__shichen-regions,
.board-overlay__shichen-reason {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: rgba(155, 175, 205, 0.82);
}

.board-overlay__macro-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.board-overlay__macro-chip {
  font-size: 0.72rem;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  background: rgba(25, 38, 58, 0.55);
  color: rgba(170, 190, 220, 0.88);
}

.board-overlay__macro-chip--low,
.board-overlay__macro-chip--high {
  background: rgba(70, 45, 35, 0.45);
  color: rgba(240, 190, 150, 0.92);
}

.body-shichen {
  margin-top: 0.75rem;
}

.body-shichen__list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.body-shichen__row {
  display: grid;
  grid-template-columns: 3rem 5.5rem 3.5rem 1fr;
  gap: 0.35rem 0.55rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.5rem;
  background: rgba(18, 28, 44, 0.4);
}

.body-shichen__row--current,
.body-shichen__row--primary {
  outline: 1px solid rgba(110, 165, 245, 0.42);
  background: rgba(32, 50, 78, 0.45);
}

.body-shichen__slot {
  font-weight: 600;
}

.body-shichen__time,
.body-shichen__mode {
  font-size: 0.78rem;
  color: rgba(155, 180, 215, 0.85);
}

.body-shichen__regions,
.body-shichen__reason {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(150, 170, 200, 0.82);
}

.body-shichen__current,
.body-shichen__primary {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  color: rgba(165, 190, 225, 0.88);
}

.day-board-cell__hint {
  font-size: clamp(0.64rem, 0.92cqw, 0.72rem);
  font-weight: 500;
  color: rgba(150, 175, 210, 0.62);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 100%;
}

.day-board-cell.is-open .day-board-cell__hint,
.day-board-cell.is-open .day-board-cell__preview {
  display: none;
}

.day-board-cell__preview {
  width: 100%;
  margin-top: 0.12rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
}

.day-board-cell__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.22rem;
}

.day-board-prep-dot {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: rgba(244, 114, 182, 0.38);
  pointer-events: none;
  z-index: 3;
}

.day-board-prep-dot.is-active {
  background: rgba(244, 114, 182, 0.72);
}

.day-board-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.16rem 0.42rem;
  font-size: clamp(0.62rem, 0.88cqw, 0.7rem);
  font-weight: 500;
  line-height: 1.2;
  border-radius: 999px;
  border: 1px solid rgba(160, 190, 255, 0.35);
  border-top-color: rgba(220, 235, 255, 0.4);
  background: linear-gradient(180deg, rgba(50, 80, 140, 0.45) 0%, rgba(12, 22, 48, 0.65) 100%);
  color: rgba(220, 235, 255, 0.95);
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  position: relative;
  z-index: 2;
}

.day-board-chip--score {
  border-color: rgba(130, 200, 255, 0.42);
  color: rgba(180, 220, 255, 0.95);
  font-weight: 650;
}

.day-board-chip--yi {
  border-color: rgba(100, 200, 140, 0.35);
  color: rgba(160, 230, 190, 0.92);
}

.day-board-chip--ji {
  border-color: rgba(220, 140, 120, 0.32);
  color: rgba(240, 190, 170, 0.9);
}

.day-board-chip--accent {
  border-color: rgba(220, 160, 200, 0.38);
  color: rgba(240, 200, 225, 0.92);
}

/* ── 九宫格 · 精简居中（含 tools）── */
.day-board-cell .day-board-cell__tap {
  position: relative;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.1rem;
  padding: 0.34rem 0.38rem 0.38rem;
}

.day-board-cell .day-board-cell__hint {
  display: none;
}

.day-board-cell .day-board-cell__preview {
  align-items: center;
  justify-content: center;
  margin-top: 0;
  flex: 1;
  width: 100%;
}

.day-board-cell__action--center,
.day-board-cell__empty.day-board-cell__action--center,
.day-board-cell__teaser.day-board-cell__action--center {
  text-align: center;
  width: 100%;
  margin: 0;
  -webkit-line-clamp: 2;
}

.day-board-cell--hero .day-board-cell__tap--hero {
  align-items: center;
  text-align: center;
}

.day-board-cell--hero .day-board-cell__coord {
  position: absolute;
  top: 0.26rem;
  left: 0.26rem;
  color: var(--helix-label) !important;
  border-color: rgba(130, 165, 255, 0.42);
  border-top-color: rgba(255, 255, 255, 0.12);
  background: var(--helix-gradient-label);
}

.day-board-cell--hero .day-board-cell__hero-one-label,
.day-board-cell--hero .day-board-cell__action--hero-one,
.day-board-cell--hero .day-board-cell__hero-tap {
  text-align: center;
  padding-left: 0.2rem;
  padding-right: 0.2rem;
}

.day-board-cell--hero .day-board-cell__action--hero-one {
  -webkit-line-clamp: 2;
}

/* ── 棋盘预览 · 统一字号 ── */
.day-drawer-board__grid .day-board-cell__label,
.day-drawer-board__grid .day-board-cell__palace-label,
.day-drawer-board__grid .day-decision-hero__title {
  font-size: var(--board-fs-title) !important;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.day-drawer-board__grid .day-board-cell__hint,
.day-drawer-board__grid .day-board-cell__teaser,
.day-drawer-board__grid .day-board-cell__empty,
.day-drawer-board__grid .day-board-cell__snippet,
.day-drawer-board__grid .day-board-chip,
.day-drawer-board__grid .day-board-tile__text,
.day-drawer-board__grid .day-decision-hero__item,
.day-drawer-board__grid .day-decision-hero.panel,
.day-drawer-board__grid .season-care-banner__body,
.day-drawer-board__grid .season-care-banner__detail,
.day-drawer-board__grid .element-lifestyle__corr,
.day-drawer-board__grid .element-lifestyle__list,
.day-drawer-board__grid .element-lifestyle__section-title {
  font-size: var(--board-fs-body) !important;
  font-weight: 500;
  line-height: 1.32;
}

.day-drawer-board__grid .season-care-banner__eyebrow {
  font-size: clamp(0.58rem, 2.2cqw, 0.64rem) !important;
  font-weight: 650;
}

/* ── 亮格 · 洛书浅位 · Helix 青辉 + 浅色字 ── */
:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) {
  color: var(--board-text-light) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) :is(
  .day-board-cell__tap,
  .day-board-cell__content--hero,
  .day-board-cell__label,
  .day-board-cell__palace-label,
  .day-board-cell__action,
  .day-board-cell__hero-one-label,
  .day-board-cell__action--hero-one,
  .day-board-cell__hero-tap,
  .day-board-cell__coord,
  .day-board-chip,
  .day-board-tile,
  .day-decision-hero__title
) {
  color: var(--board-text-light) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) :is(
  .day-board-cell__hint,
  .day-board-cell__empty,
  .day-board-cell__snippet,
  .day-board-cell__teaser,
  .day-board-tile__text,
  .day-decision-hero__item,
  .day-decision-hero__eyebrow,
  .day-decision-hero__foot
) {
  color: var(--board-text-light-muted) !important;
  font-style: normal;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) :is(
  .day-decision-hero__score,
  .day-decision-hero__climate,
  .day-decision-hero__badge
) {
  color: var(--helix-label) !important;
  border-color: rgba(130, 165, 255, 0.42) !important;
  border-top-color: rgba(255, 255, 255, 0.12) !important;
  background: var(--helix-gradient-label) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-decision-hero__assist-tag {
  color: var(--helix-cyan-soft) !important;
  font-weight: 600;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-decision-hero__link {
  color: var(--helix-cyan-soft) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-cell__coord {
  border-color: rgba(130, 165, 255, 0.42);
  border-top-color: rgba(255, 255, 255, 0.12);
  background: var(--helix-gradient-label);
  color: var(--helix-label) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-chip {
  border-color: rgba(130, 165, 255, 0.35);
  border-top-color: rgba(255, 255, 255, 0.14);
  background: linear-gradient(180deg, rgba(50, 80, 140, 0.45) 0%, rgba(12, 22, 48, 0.65) 100%);
  color: var(--helix-label) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-chip--score {
  color: rgba(180, 220, 255, 0.95) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-chip--yi {
  color: rgba(160, 230, 190, 0.92) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-chip--ji {
  color: rgba(240, 190, 170, 0.9) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-board-chip--accent {
  color: rgba(180, 220, 255, 0.92) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="0"],
  .day-board-cell[data-board-row="0"][data-board-col="2"],
  .day-board-cell[data-board-row="1"][data-board-col="1"],
  .day-board-cell[data-board-row="2"][data-board-col="0"],
  .day-board-cell[data-board-row="2"][data-board-col="2"]
) .day-decision-hero.panel {
  border-color: rgba(130, 165, 255, 0.32) !important;
  background: linear-gradient(
    145deg,
    rgba(0, 130, 195, 0.18) 0%,
    rgba(8, 28, 52, 0.72) 100%
  ) !important;
  box-shadow:
    inset 0 1px 0 rgba(0, 210, 255, 0.18),
    inset 0 0 12px rgba(0, 100, 160, 0.12) !important;
  color: var(--helix-label) !important;
}

/* ── 暗格 · 按棋盘位置 · 统一浅色 UI ── */
:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) {
  color: var(--board-text-light) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) :is(
  .day-board-cell__tap,
  .day-board-cell__label,
  .day-board-cell__palace-label,
  .day-board-cell__action,
  .day-board-cell__coord,
  .day-board-chip,
  .day-board-tile,
  .day-board-tile__text,
  .day-decision-hero__title,
  .day-decision-hero__score,
  .day-decision-hero__climate,
  .day-decision-hero__badge
) {
  color: var(--board-text-light) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) :is(
  .day-board-cell__hint,
  .day-board-cell__empty,
  .day-board-cell__snippet,
  .day-board-cell__teaser,
  .day-decision-hero__item,
  .day-decision-hero__eyebrow,
  .day-decision-hero__foot
) {
  color: var(--board-text-light-muted) !important;
  font-style: normal;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) .day-board-chip {
  border-color: rgba(160, 190, 255, 0.35) !important;
  border-top-color: rgba(220, 235, 255, 0.4) !important;
  background: linear-gradient(180deg, rgba(50, 80, 140, 0.45) 0%, rgba(12, 22, 48, 0.65) 100%) !important;
  color: var(--board-text-light) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) .day-board-chip--score {
  color: rgba(180, 220, 255, 0.95) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) .day-board-chip--yi {
  color: rgba(160, 230, 190, 0.92) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) .day-board-chip--ji {
  color: rgba(240, 190, 170, 0.9) !important;
}

:is(
  .day-board-cell[data-board-row="0"][data-board-col="1"],
  .day-board-cell[data-board-row="1"][data-board-col="0"],
  .day-board-cell[data-board-row="1"][data-board-col="2"],
  .day-board-cell[data-board-row="2"][data-board-col="1"]
) .day-board-chip--accent {
  color: rgba(240, 200, 225, 0.92) !important;
}

.day-board-cell__teaser {
  margin: 0;
  font-size: clamp(0.64rem, 0.9cqw, 0.72rem);
  font-weight: 500;
  line-height: 1.35;
  color: rgba(140, 165, 200, 0.62);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.day-board-cell__tiles {
  display: flex;
  gap: 0.35rem;
  width: 100%;
}

.day-board-tile {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  min-height: 2.6rem;
  padding: 0.32rem 0.22rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-top-color: rgba(255, 255, 255, 0.55);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.28) 0%,
    rgba(255, 255, 255, 0.08) 100%
  );
  backdrop-filter: blur(10px) saturate(1.15);
  -webkit-backdrop-filter: blur(10px) saturate(1.15);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 1px 4px rgba(0, 0, 0, 0.12);
  position: relative;
  z-index: 2;
}

.day-board-tile__icon {
  font-size: 1rem;
  line-height: 1;
}

.day-board-tile__text {
  font-size: clamp(0.62rem, 0.88cqw, 0.7rem);
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
  color: rgba(170, 195, 230, 0.82);
}

.day-board-cell__empty,
.day-board-cell__snippet {
  margin: 0;
  font-size: clamp(0.64rem, 0.92cqw, 0.72rem);
  font-weight: 500;
  line-height: 1.4;
  color: rgba(150, 175, 210, 0.68);
}

.day-board-cell__snippet {
  color: rgba(190, 210, 240, 0.82);
  font-style: italic;
}

.day-board-cell__content {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0;
}

.day-board-cell__content--hero {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 0 0.35rem 0.35rem;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.day-board-cell__content--hero:hover {
  filter: brightness(1.04);
}

.day-board-cell--hero {
  display: flex;
  flex-direction: column;
}

.day-board-cell--hero .day-board-cell__content--hero {
  display: flex !important;
}

.day-board-cell--hero .day-decision-hero.panel {
  margin: 0;
  border: 1px solid rgba(100, 140, 190, 0.42);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.72) 0%,
    rgba(230, 242, 252, 0.58) 100%
  );
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 0 14px rgba(140, 180, 220, 0.1);
  padding: clamp(0.45rem, 0.9vw, 0.65rem);
  border-radius: 8px;
  font-size: clamp(0.74rem, 1cqw, 0.8rem);
  color: var(--board-text-dark);
}

.day-board-cell--hero .day-decision-hero__title {
  font-size: clamp(0.78rem, 1.05cqw, 0.86rem);
  font-weight: 600;
  color: var(--board-text-dark) !important;
}

.day-board-cell--hero .day-decision-hero__item {
  font-size: clamp(0.68rem, 0.95cqw, 0.76rem);
  font-weight: 500;
  color: var(--board-text-dark-muted) !important;
}

.day-board-cell--hero .day-decision-hero__eyebrow,
.day-board-cell--hero .day-decision-hero__foot {
  color: var(--board-text-dark-muted) !important;
}

.day-board-cell--hero .day-decision-hero__score,
.day-board-cell--hero .day-decision-hero__climate,
.day-board-cell--hero .day-decision-hero__badge {
  color: var(--board-text-dark) !important;
  border-color: rgba(100, 140, 180, 0.42) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(220, 235, 250, 0.78) 100%) !important;
}

.day-board-cell--hero .day-decision-hero__foot,
.day-board-cell--hero .ask-jade-btn--inline {
  display: none;
}

.day-board-cell--hero .day-decision-hero__season {
  border-top-color: rgba(100, 140, 190, 0.32);
}

.day-board-cell--hero .day-decision-hero__season .season-care-banner {
  border-color: rgba(100, 140, 190, 0.42);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(225, 238, 252, 0.78) 100%
  );
}

.day-board-cell--hero .day-decision-hero__season .season-care-banner__body,
.day-board-cell--hero .day-decision-hero__season .season-care-banner__eyebrow {
  color: var(--board-text-dark) !important;
}

.day-board-cell--hero .day-decision-hero__season .season-care-banner__detail,
.day-board-cell--hero .day-decision-hero__season .element-lifestyle__corr,
.day-board-cell--hero .day-decision-hero__season .element-lifestyle__list {
  color: var(--board-text-dark-muted) !important;
}

.day-board-cell--hero .day-decision-hero__season .element-lifestyle__section-title {
  color: rgba(15, 60, 105, 0.92) !important;
}

.day-board-cell:not(.day-board-cell--hero) .day-board-cell__content {
  display: none !important;
}

.day-drawer-board__overlay-body .day-board-cell__content {
  display: flex !important;
}

/* ── Overlay · 深色面板内全部浅色字 ── */
.day-drawer-board__overlay-body .panel,
.day-drawer-board__overlay-body .day-decision-hero.panel,
.day-drawer-board__overlay-body .panel--behavior-wrap,
.day-drawer-board__overlay-body .panel--journal,
.day-drawer-board__overlay-body .panel--almanac,
.day-drawer-board__overlay-body .panel--key-path,
.day-drawer-board__overlay-body .panel--contact--compact,
.day-drawer-board__overlay-body .fem-rhythm-panel,
.day-drawer-board__overlay-body .cycle-prep-control {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(80, 120, 180, 0.28) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
  color: rgba(230, 240, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .panel__title,
.day-drawer-board__overlay-body .day-decision-hero__title,
.day-drawer-board__overlay-body .almanac__date-main,
.day-drawer-board__overlay-body .behavior__title,
.day-drawer-board__overlay-body .contact__lead,
.day-drawer-board__overlay-body .key-path__title {
  color: rgba(230, 242, 255, 0.96) !important;
  font-size: clamp(0.88rem, 1rem, 0.94rem) !important;
  font-weight: 600 !important;
}

.day-drawer-board__overlay-body .day-decision-hero__item,
.day-drawer-board__overlay-body .panel__hint,
.day-drawer-board__overlay-body .almanac__meta,
.day-drawer-board__overlay-body .almanac__date-sub,
.day-drawer-board__overlay-body .almanac__date-lunar,
.day-drawer-board__overlay-body .almanac__ganzhi,
.day-drawer-board__overlay-body .almanac__wx-health-meta,
.day-drawer-board__overlay-body .almanac__rhythm-meta,
.day-drawer-board__overlay-body .decision-capture__note,
.day-drawer-board__overlay-body .journal-input,
.day-drawer-board__overlay-body p,
.day-drawer-board__overlay-body li,
.day-drawer-board__overlay-body label {
  color: rgba(180, 210, 240, 0.88) !important;
  font-size: clamp(0.84rem, 0.96rem, 0.9rem) !important;
  font-weight: 500;
}

.day-drawer-board__overlay-body .day-decision-hero__foot,
.day-drawer-board__overlay-body .ask-jade-btn--inline {
  display: block !important;
}

/* Overlay 展开 · 养生区块跟随深色面板 */
.day-drawer-board__overlay-body .day-decision-hero__season {
  border-top-color: rgba(80, 120, 180, 0.28);
}

.day-drawer-board__overlay-body .day-decision-hero__season .season-care-banner {
  border-color: rgba(80, 120, 180, 0.28) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
  color: rgba(230, 240, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .day-decision-hero__season .season-care-banner__eyebrow {
  color: rgba(160, 210, 255, 0.75) !important;
  opacity: 1 !important;
}

.day-drawer-board__overlay-body .day-decision-hero__season .season-care-banner__body {
  color: rgba(230, 242, 255, 0.96) !important;
  font-weight: 600 !important;
}

.day-drawer-board__overlay-body .day-decision-hero__season .season-care-banner__detail,
.day-drawer-board__overlay-body .day-decision-hero__season .element-lifestyle__corr,
.day-drawer-board__overlay-body .day-decision-hero__season .element-lifestyle__list {
  color: rgba(180, 210, 240, 0.88) !important;
  opacity: 1 !important;
}

.day-drawer-board__overlay-body .day-decision-hero__season .element-lifestyle__section-title {
  color: rgba(200, 225, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .day-decision-hero__season .element-lifestyle {
  border-top-color: rgba(80, 120, 180, 0.22);
}

/* Overlay · 决策面板养生（覆盖通用 p/li 浅色字） */
.day-drawer-board__overlay-body .decision-feedback .season-care-banner {
  border-color: rgba(80, 120, 180, 0.28) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(230, 240, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .decision-feedback .season-care-banner__eyebrow {
  color: rgba(160, 210, 255, 0.75) !important;
  opacity: 1 !important;
}

.day-drawer-board__overlay-body .decision-feedback .season-care-banner__body {
  color: rgba(230, 242, 255, 0.96) !important;
}

.day-drawer-board__overlay-body .decision-feedback .season-care-banner__detail,
.day-drawer-board__overlay-body .decision-feedback .element-lifestyle__corr,
.day-drawer-board__overlay-body .decision-feedback .element-lifestyle__list,
.day-drawer-board__overlay-body .decision-feedback .element-lifestyle__list li {
  color: rgba(180, 210, 240, 0.88) !important;
  opacity: 1 !important;
}

.day-drawer-board__overlay-body .decision-feedback .element-lifestyle__section-title {
  color: rgba(200, 225, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .almanac__wx-health-score,
.day-drawer-board__overlay-body .almanac__wx-yong {
  color: rgba(200, 220, 255, 0.95) !important;
}

.day-drawer-board__overlay-body .journal-input,
.day-drawer-board__overlay-body .decision-input,
.day-drawer-board__overlay-body select,
.day-drawer-board__overlay-body textarea {
  background: rgba(0, 0, 0, 0.28) !important;
  border-color: rgba(80, 120, 180, 0.35) !important;
  color: rgba(230, 242, 255, 0.95) !important;
}

.day-drawer-board__overlay-body .day-board-cell__content .panel--behavior-wrap {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.day-drawer-board__overlay-body .panel--behavior-wrap .panel--behavior {
  background: rgba(255, 255, 255, 0.05) !important;
}

/* 折叠分区 B+（legacy · 保留以防其它页引用） */
.day-drawer-zone {
  border: 1px solid rgba(100, 130, 180, 0.22);
  border-radius: 12px;
  background: rgba(8, 14, 32, 0.45);
  overflow: hidden;
}

.day-drawer-zone__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 0.7rem;
  min-height: 2.35rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.day-drawer-zone__summary::-webkit-details-marker {
  display: none;
}

.day-drawer-zone__summary-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1;
}

.day-drawer-zone:not([open]) .day-drawer-zone__label {
  font-size: clamp(0.72rem, 0.84vw, 0.78rem);
  font-weight: 600;
  line-height: 1.25;
}

.day-drawer-zone:not([open]) .day-drawer-zone__hint {
  font-size: clamp(0.62rem, 0.72vw, 0.66rem);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.day-drawer-zone[open] .day-drawer-zone__label {
  font-size: clamp(0.78rem, 0.92vw, 0.84rem);
  font-weight: 650;
  color: rgba(220, 235, 255, 0.94);
}

.day-drawer-zone[open] .day-drawer-zone__hint {
  font-size: clamp(0.66rem, 0.78vw, 0.72rem);
  color: rgba(150, 175, 210, 0.72);
  line-height: 1.4;
}

.day-drawer-zone__label {
  color: rgba(220, 235, 255, 0.92);
}

.day-drawer-zone__hint {
  color: rgba(150, 175, 210, 0.68);
}

.day-drawer-zone__chevron {
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid rgba(160, 185, 220, 0.65);
  border-bottom: 2px solid rgba(160, 185, 220, 0.65);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  margin-top: -0.1rem;
  padding: 0.35rem;
  box-sizing: content-box;
}

.day-drawer-zone[open] > .day-drawer-zone__summary .day-drawer-zone__chevron {
  transform: rotate(225deg);
  margin-top: 0.15rem;
}

.day-drawer-zone__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0 0.85rem 0.85rem;
  border-top: 1px solid rgba(100, 130, 180, 0.14);
}

.day-drawer-zone--tools .day-drawer-zone__body,
.day-drawer-zone--deep .day-drawer-zone__body {
  padding-top: 0.65rem;
}

.day-drawer-zone--deep .panel--key-path,
.day-drawer-zone--deep .panel--almanac {
  margin: 0;
  padding: clamp(0.85rem, 1.4vw, 1.1rem);
}

.day-drawer-zone--journal .day-drawer-zone__body.panel--journal {
  margin: 0;
  padding-top: 0.65rem;
  border-top: none;
}

.day-drawer__body--decision > .panel,
.day-drawer__body--decision .panel--behavior-wrap,
.day-drawer__body--decision #cycle-delay-host .panel,
.day-drawer__body--decision .day-board-cell--hero .panel,
.day-drawer__body--decision .day-board-cell__content .panel {
  padding: clamp(0.85rem, 1.4vw, 1.15rem);
}

.day-drawer__body--decision .day-board-cell__content .panel--behavior-wrap {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

.day-drawer__body--decision .day-board-cell__content.panel--journal {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.day-drawer__body--decision .day-board-cell[data-board-cell="think"] .panel--key-path,
.day-drawer__body--decision .day-board-cell[data-board-cell="review"] .panel--almanac {
  margin: 0;
}

.day-drawer__body--decision .panel--contact--compact {
  padding: 0.55rem 0.75rem;
}

.day-drawer__body--decision .panel--contact--compact .panel__title {
  font-size: clamp(0.72rem, 0.84vw, 0.78rem);
  margin-bottom: 0.35rem;
}

.day-drawer__body--decision .panel--contact--compact .contact__lead {
  font-size: clamp(0.62rem, 0.72vw, 0.66rem);
  line-height: 1.4;
}

.almanac__meta--lead {
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(100, 130, 180, 0.12);
}

.almanac__meta--lead .almanac__date-lunar {
  font-weight: 600;
  color: rgba(210, 225, 255, 0.9);
}

.day-drawer__body--decision p,
.day-drawer__body--decision li,
.day-drawer__body--decision .panel__hint,
.day-drawer__body--decision .contact__lead {
  line-height: 1.65;
}

.panel--behavior-wrap .panel--behavior {
  margin: 0;
  border: 1px solid rgba(0, 210, 255, 0.22);
  box-shadow: 0 0 24px rgba(0, 210, 255, 0.08);
}

.panel--key-path--prominent .key-path {
  border: 1px solid rgba(130, 165, 255, 0.28);
  background: linear-gradient(
    145deg,
    rgba(6, 24, 48, 0.85) 0%,
    rgba(28, 18, 58, 0.75) 100%
  );
}

.key-path__action-note {
  margin: 0.55rem 0 0;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(160, 185, 220, 0.72);
}

.day-decision-hero {
  padding: 0.95rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(0, 210, 255, 0.28);
  background: linear-gradient(
    145deg,
    rgba(0, 110, 185, 0.22) 0%,
    rgba(32, 52, 138, 0.28) 50%,
    rgba(78, 42, 136, 0.24) 100%
  );
  box-shadow: 0 0 28px rgba(0, 210, 255, 0.1);
}

.day-decision-hero__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(160, 210, 255, 0.75);
}

.day-decision-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}

.day-decision-hero__score,
.day-decision-hero__climate,
.day-decision-hero__badge {
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  border: 1px solid rgba(130, 165, 255, 0.35);
  background: rgba(6, 24, 48, 0.55);
  color: rgba(220, 235, 255, 0.92);
}

.day-decision-hero__title {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(235, 242, 255, 0.94);
}

.day-decision-hero__list {
  margin: 0;
  padding-left: 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.day-decision-hero__item {
  font-size: 0.8rem;
  line-height: 1.45;
  color: rgba(230, 238, 255, 0.92);
}

.day-decision-hero__season {
  margin-top: 0.55rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(100, 140, 190, 0.28);
}

/* 中宫养生 · 与 day-decision-hero 玻璃面板一致（深色可读字） */
.day-decision-hero__season .season-care-banner {
  margin: 0;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  border: 1px solid rgba(100, 140, 190, 0.38);
  border-top-color: rgba(255, 255, 255, 0.65);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.82) 0%,
    rgba(220, 235, 250, 0.68) 100%
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  color: var(--board-text-dark, #0a1628);
  text-align: left;
}

.day-decision-hero__season .season-care-banner--inline {
  margin-bottom: 0;
}

.day-decision-hero__season .season-care-banner__eyebrow {
  margin: 0 0 0.2rem;
  font-size: clamp(0.62rem, 0.9cqw, 0.68rem);
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(20, 80, 130, 0.88);
  opacity: 1;
}

.day-decision-hero__season .season-care-banner__body {
  margin: 0;
  font-size: clamp(0.68rem, 0.95cqw, 0.76rem);
  line-height: 1.4;
  font-weight: 600;
  color: var(--board-text-dark, #0a1628);
}

.day-decision-hero__season .season-care-banner__detail {
  margin: 0.3rem 0 0;
  font-size: clamp(0.64rem, 0.9cqw, 0.72rem);
  line-height: 1.38;
  color: var(--board-text-dark-muted, rgba(40, 65, 95, 0.88));
  opacity: 1;
}

.day-decision-hero__season .season-care-banner__scope {
  margin: 0.18rem 0 0;
  font-size: clamp(0.58rem, 0.82cqw, 0.66rem);
  line-height: 1.35;
  color: var(--board-text-dark-muted, rgba(40, 65, 95, 0.88));
  opacity: 1;
}

.day-decision-hero__season .element-lifestyle {
  margin-top: 0.45rem;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(100, 140, 190, 0.22);
}

.day-decision-hero__season .element-lifestyle__corr {
  margin: 0 0 0.35rem;
  font-size: clamp(0.62rem, 0.88cqw, 0.7rem);
  line-height: 1.38;
  color: var(--board-text-dark-muted, rgba(40, 65, 95, 0.88));
  opacity: 1;
}

.day-decision-hero__season .element-lifestyle__section-title {
  margin: 0 0 0.2rem;
  font-size: clamp(0.64rem, 0.9cqw, 0.72rem);
  font-weight: 650;
  letter-spacing: 0.03em;
  color: rgba(20, 70, 115, 0.92);
}

.day-decision-hero__season .element-lifestyle__list {
  margin: 0;
  padding-left: 1rem;
  font-size: clamp(0.62rem, 0.88cqw, 0.7rem);
  line-height: 1.38;
  color: var(--board-text-dark-muted, rgba(40, 65, 95, 0.88));
}

.day-decision-hero__season .element-lifestyle__section + .element-lifestyle__section {
  margin-top: 0.4rem;
}

/* ── 八字多视角分析（日抽屉展开可见） ── */
.day-board-cell--hero .day-decision-hero__multiview,
.day-board-cell--hero .bazi-multi-view {
  display: none;
}

.day-drawer-board__overlay-body .day-decision-hero__multiview,
.day-drawer-board__overlay-body .bazi-multi-view,
.day-board-cell--hero.is-hero-focus .day-decision-hero__multiview,
.day-board-cell--hero.is-hero-focus .bazi-multi-view {
  display: block;
}

.day-decision-hero__multiview {
  margin-top: 0.5rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(100, 140, 190, 0.28);
}

.bazi-multi-view__scope {
  margin: 0 0 0.4rem;
  font-size: clamp(0.58rem, 0.82cqw, 0.66rem);
  letter-spacing: 0.04em;
  color: rgba(20, 80, 130, 0.88);
}

.bazi-multi-view__flow {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.bazi-multi-view__step {
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  border: 1px solid rgba(100, 140, 190, 0.22);
  background: rgba(255, 255, 255, 0.72);
}

.bazi-multi-view__step-title {
  margin: 0 0 0.2rem;
  font-size: clamp(0.62rem, 0.88cqw, 0.7rem);
  font-weight: 650;
  color: rgba(15, 60, 105, 0.92);
}

.bazi-multi-view__list {
  margin: 0;
  padding-left: 0.95rem;
  font-size: clamp(0.6rem, 0.85cqw, 0.68rem);
  line-height: 1.38;
  color: var(--board-text-dark-muted, rgba(40, 65, 95, 0.88));
}

.bazi-multi-view__list li + li {
  margin-top: 0.15rem;
}

.day-board-cell--hero .bazi-multi-view__scope {
  color: var(--board-text-dark-muted);
}

.day-board-cell--hero .bazi-multi-view__step-title {
  color: rgba(15, 60, 105, 0.92);
}

.day-board-cell--hero .bazi-multi-view__list {
  color: var(--board-text-dark-muted);
}

.day-drawer-board__overlay-body .bazi-multi-view__scope {
  color: rgba(160, 210, 255, 0.75) !important;
}

.day-drawer-board__overlay-body .bazi-multi-view__step {
  border-color: rgba(80, 120, 180, 0.28) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

.day-drawer-board__overlay-body .bazi-multi-view__step-title {
  color: rgba(200, 225, 255, 0.92) !important;
}

.day-drawer-board__overlay-body .bazi-multi-view__list,
.day-drawer-board__overlay-body .bazi-multi-view__list li {
  color: rgba(180, 210, 240, 0.88) !important;
}

.day-decision-hero__foot {
  margin: 0.65rem 0 0;
  font-size: 0.65rem;
  line-height: 1.5;
  color: rgba(160, 185, 220, 0.68);
}

.day-decision-hero__assist-tag {
  color: rgba(200, 170, 255, 0.82);
  font-weight: 600;
}

.day-decision-hero__link {
  color: rgba(160, 210, 255, 0.88);
  text-decoration: none;
}

.day-decision-hero__link:hover {
  text-decoration: underline;
}

.day-decision-hero--prep {
  border-color: rgba(255, 120, 180, 0.35);
  background: linear-gradient(
    145deg,
    rgba(120, 40, 110, 0.28) 0%,
    rgba(52, 38, 120, 0.32) 55%,
    rgba(20, 70, 130, 0.26) 100%
  );
  box-shadow: 0 0 28px rgba(255, 120, 180, 0.12);
}

.cycle-prep-control {
  padding: 0.75rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(255, 140, 190, 0.28);
  background: rgba(30, 14, 38, 0.42);
}

.cycle-prep-toggle {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  user-select: none;
}

.cycle-prep-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cycle-prep-toggle__track {
  flex: 0 0 2.6rem;
  height: 1.45rem;
  border-radius: 999px;
  background: rgba(80, 50, 90, 0.65);
  border: 1px solid rgba(200, 140, 210, 0.35);
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.cycle-prep-toggle__track::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: rgba(230, 210, 235, 0.95);
  transition: transform 0.2s ease, background 0.2s ease;
}

.cycle-prep-toggle__input:checked + .cycle-prep-toggle__track {
  background: rgba(180, 60, 120, 0.55);
  border-color: rgba(255, 140, 190, 0.65);
  box-shadow: 0 0 16px rgba(255, 100, 170, 0.25);
}

.cycle-prep-toggle__input:checked + .cycle-prep-toggle__track::after {
  transform: translateX(1.15rem);
  background: #fff;
}

.cycle-prep-toggle__input:focus-visible + .cycle-prep-toggle__track {
  outline: 2px solid rgba(160, 210, 255, 0.75);
  outline-offset: 2px;
}

.cycle-prep-toggle__text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.cycle-prep-toggle__label {
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(255, 230, 245, 0.94);
}

.cycle-prep-toggle__label-en {
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(210, 170, 220, 0.72);
}

.cycle-prep-toggle__hint {
  margin: 0.55rem 0 0 3.35rem;
  font-size: 0.65rem;
  line-height: 1.45;
  color: rgba(180, 160, 190, 0.72);
}

#cycle-delay-host {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* ── 女性节律栏目 · 粉紫交替 + 统一主字号 ── */
.fem-rhythm-panel {
  --fem-main-size: clamp(0.92rem, 1.12vw, 1rem);
  --fem-body-size: clamp(0.86rem, 1.05vw, 0.92rem);
  --fem-accent-size: clamp(1rem, 1.2vw, 1.08rem);
  position: relative;
  animation: fem-theme-shift 10s ease-in-out infinite alternate;
}

@keyframes fem-theme-shift {
  0% { filter: hue-rotate(0deg) saturate(1); }
  100% { filter: hue-rotate(8deg) saturate(1.08); }
}

.fem-rhythm-panel--pink {
  border-color: rgba(255, 130, 190, 0.42) !important;
  background: linear-gradient(
    155deg,
    rgba(95, 28, 72, 0.44) 0%,
    rgba(55, 22, 58, 0.4) 52%,
    rgba(72, 32, 95, 0.36) 100%
  ) !important;
  box-shadow:
    0 0 24px rgba(255, 100, 170, 0.14),
    inset 0 1px 0 rgba(255, 190, 220, 0.1);
}

.fem-rhythm-panel--purple {
  border-color: rgba(175, 130, 255, 0.42) !important;
  background: linear-gradient(
    155deg,
    rgba(48, 32, 98, 0.48) 0%,
    rgba(28, 48, 92, 0.42) 52%,
    rgba(62, 28, 88, 0.38) 100%
  ) !important;
  box-shadow:
    0 0 24px rgba(140, 100, 255, 0.14),
    inset 0 1px 0 rgba(200, 180, 255, 0.1);
}

.fem-rhythm-panel--pink [class$='__eyebrow'],
.fem-rhythm-panel--pink .cycle-prep-toggle__label-en {
  color: rgba(255, 185, 215, 0.92);
}

.fem-rhythm-panel--purple [class$='__eyebrow'] {
  color: rgba(210, 185, 255, 0.92);
}

.fem-rhythm-panel--pink [class$='__lead'],
.fem-rhythm-panel--pink [class$='__title'],
.fem-rhythm-panel--pink .cycle-prep-toggle__label,
.fem-rhythm-panel--pink .month-prep-care__cta-text {
  font-size: var(--fem-main-size);
  line-height: 1.55;
  color: rgba(255, 238, 248, 0.96);
}

.fem-rhythm-panel--purple [class$='__lead'],
.fem-rhythm-panel--purple [class$='__title'] {
  font-size: var(--fem-main-size);
  line-height: 1.55;
  color: rgba(238, 228, 255, 0.96);
}

.fem-rhythm-panel [class$='__line'],
.fem-rhythm-panel [class$='__meta'],
.fem-rhythm-panel [class$='__summary'],
.fem-rhythm-panel [class$='__section-title'],
.fem-rhythm-panel [class$='__list'] li,
.fem-rhythm-panel [class$='__thermal'],
.fem-rhythm-panel .cycle-prep-toggle__hint {
  font-size: var(--fem-body-size);
  line-height: 1.55;
}

.fem-rhythm-panel [class$='__predict'] {
  font-size: var(--fem-accent-size);
  font-weight: 700;
}

.fem-rhythm-panel--pink [class$='__predict'] {
  color: rgba(255, 175, 210, 0.98);
}

.fem-rhythm-panel--purple [class$='__predict'] {
  color: rgba(220, 190, 255, 0.98);
}

.fem-rhythm-panel .meihua-predict__btn,
.fem-rhythm-panel .cycle-delay-prompt__btn {
  font-size: var(--fem-body-size);
}

.fem-rhythm-panel [class$='__disclaimer'],
.fem-rhythm-panel [class$='__foot'],
.fem-rhythm-panel [class$='__hint'] {
  font-size: clamp(0.72rem, 0.9vw, 0.78rem);
}

/* Day Drawer · 同日栏目主字号放大 */
.day-drawer__body--decision .panel__title {
  font-size: clamp(0.88rem, 1vw, 0.94rem);
  opacity: 0.72;
}

.day-drawer__body--decision .almanac__liuyue-main {
  font-size: clamp(0.98rem, 1.15vw, 1.05rem);
}

.day-drawer__body--decision .almanac__wx-health-score {
  font-size: clamp(1.12rem, 1.35vw, 1.2rem);
}

.day-drawer__body--decision .almanac__wx-health-meta,
.day-drawer__body--decision .almanac__wx-yong,
.day-drawer__body--decision .almanac__wx-health-label {
  font-size: clamp(0.82rem, 0.98vw, 0.88rem);
}

.day-drawer__body--decision .day-decision-hero__title {
  font-size: clamp(0.92rem, 1.1vw, 0.98rem);
}

.day-drawer__body--decision .day-decision-hero__item {
  font-size: clamp(0.86rem, 1.02vw, 0.92rem);
}

.day-drawer__body--decision .almanac__rhythm-meta,
.day-drawer__body--decision .almanac__meta--compact {
  font-size: clamp(0.8rem, 0.95vw, 0.86rem);
}

.meihua-predict--compact {
  margin-top: 0;
}

.meihua-quick {
  margin-bottom: 0.65rem;
}

.meihua-quick .meihua-predict__lead {
  margin-bottom: 0.55rem;
}

.meihua-predict__line--free {
  margin: 0.35rem 0 0;
  font-size: clamp(0.68rem, 0.82vw, 0.74rem);
  color: rgba(200, 180, 220, 0.88);
}

.fem-rhythm-panel.meihua-quick .meihua-predict__line--free {
  font-size: var(--fem-body-size);
}

.month-prep-care {
  margin-top: 0.65rem;
}

.month-prep-care__cta {
  padding: 0.75rem 1rem;
  border-radius: 0.65rem;
  border: 1px dashed rgba(255, 140, 190, 0.35);
  background: rgba(30, 14, 38, 0.35);
}

.month-prep-care__cta-text {
  margin: 0 0 0.55rem;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(220, 200, 230, 0.88);
}

.month-prep-care .cycle-prep-control {
  margin: 0;
}

.cycle-prep-control--compact {
  padding: 0.65rem 0.85rem;
  margin-bottom: 0.65rem;
}

.cycle-prep-control--compact .cycle-prep-toggle__hint {
  margin-left: 3.1rem;
}

.cycle-delay-prompt {
  padding: 0.85rem 1rem;
  border-radius: 0.65rem;
  border: 1px dashed rgba(255, 140, 190, 0.45);
  background: rgba(40, 18, 48, 0.45);
}

.cycle-delay-prompt__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 180, 210, 0.78);
}

.cycle-delay-prompt__lead {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: rgba(235, 220, 240, 0.92);
}

.cycle-delay-prompt__btn {
  width: 100%;
}

.cycle-delay-prompt__hint {
  margin: 0.55rem 0 0;
  font-size: 0.62rem;
  color: rgba(180, 160, 190, 0.65);
}

.meihua-predict {
  margin-top: 0.75rem;
  padding: 0.9rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(180, 140, 255, 0.35);
  background: linear-gradient(160deg, rgba(40, 30, 90, 0.45) 0%, rgba(20, 50, 80, 0.4) 100%);
}

.meihua-predict__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(200, 180, 255, 0.85);
}

.meihua-predict__lead {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(220, 210, 240, 0.88);
}

.meihua-predict__btn {
  width: 100%;
}

.meihua-predict__result {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(180, 140, 255, 0.2);
}

.meihua-predict__line,
.meihua-predict__meta {
  margin: 0.35rem 0;
  font-size: 0.76rem;
  line-height: 1.5;
  color: rgba(210, 200, 235, 0.9);
}

.meihua-predict__predict {
  margin: 0.55rem 0 0.35rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: rgba(255, 200, 230, 0.95);
}

.meihua-predict__disclaimer {
  margin: 0.65rem 0 0;
  font-size: 0.62rem;
  color: rgba(180, 160, 190, 0.65);
}

.fem-rhythm-panel.meihua-predict .meihua-predict__eyebrow,
.fem-rhythm-panel.meihua-predict .meihua-predict__lead,
.fem-rhythm-panel.meihua-predict .meihua-predict__line,
.fem-rhythm-panel.meihua-predict .meihua-predict__meta,
.fem-rhythm-panel.meihua-predict .meihua-predict__predict,
.fem-rhythm-panel.meihua-predict .meihua-predict__disclaimer {
  font-size: inherit;
}

.fem-rhythm-panel.meihua-predict .meihua-predict__eyebrow {
  font-size: clamp(0.72rem, 0.88vw, 0.78rem);
}

.fem-rhythm-panel.meihua-predict .meihua-predict__lead {
  font-size: var(--fem-main-size);
}

.fem-rhythm-panel.meihua-predict .meihua-predict__line,
.fem-rhythm-panel.meihua-predict .meihua-predict__meta {
  font-size: var(--fem-body-size);
}

.fem-rhythm-panel.meihua-predict .meihua-predict__predict {
  font-size: var(--fem-accent-size);
}

.fem-rhythm-panel.meihua-predict .meihua-predict__disclaimer {
  font-size: clamp(0.72rem, 0.9vw, 0.78rem);
}

.meihua-predict__predict--free {
  margin-bottom: 0.35rem;
}

.meihua-report {
  position: relative;
  margin-top: 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(200, 140, 210, 0.28);
  background: rgba(40, 18, 48, 0.45);
  overflow: hidden;
}

.meihua-report--unlocked {
  padding: 0.75rem 0.85rem 0.65rem;
}

.meihua-report--locked .meihua-report__preview {
  max-height: 9.5rem;
  overflow: hidden;
  filter: blur(4px);
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
  padding: 0.65rem 0.85rem;
}

.meihua-report__lock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1rem 1.1rem;
  text-align: center;
  background: linear-gradient(
    180deg,
    rgba(28, 12, 36, 0.55) 0%,
    rgba(28, 12, 36, 0.88) 45%,
    rgba(28, 12, 36, 0.95) 100%
  );
}

.meihua-report__lock-title {
  margin: 0;
  font-size: clamp(0.78rem, 0.95vw, 0.86rem);
  font-weight: 650;
  color: rgba(255, 210, 235, 0.96);
  line-height: 1.35;
}

.meihua-report__lock-lead {
  margin: 0;
  max-width: 28rem;
  font-size: clamp(0.68rem, 0.82vw, 0.74rem);
  line-height: 1.45;
  color: rgba(210, 175, 220, 0.88);
}

.meihua-report__lock-note {
  margin: 0.15rem 0 0;
  font-size: 0.62rem;
  color: rgba(180, 150, 195, 0.72);
}

.meihua-report__unlock-btn {
  margin-top: 0.15rem;
}

.meihua-report__steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.meihua-report__step-title {
  margin: 0 0 0.35rem;
  font-size: clamp(0.74rem, 0.9vw, 0.8rem);
  font-weight: 650;
  color: rgba(255, 200, 230, 0.95);
}

.meihua-report__step-lines {
  margin: 0;
  padding-left: 1.05rem;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}

.meihua-report__step-lines li {
  font-size: clamp(0.68rem, 0.82vw, 0.74rem);
  line-height: 1.45;
  color: rgba(210, 185, 225, 0.9);
}

.fem-rhythm-panel.meihua-predict .meihua-report__step-title {
  font-size: var(--fem-accent-size);
}

.fem-rhythm-panel.meihua-predict .meihua-report__step-lines li {
  font-size: var(--fem-body-size);
}

.fem-rhythm-panel.menstrual-prep .menstrual-prep__title {
  font-size: var(--fem-accent-size);
}

.fem-rhythm-panel.menstrual-prep .menstrual-prep__summary,
.fem-rhythm-panel.menstrual-prep .menstrual-prep__section-title,
.fem-rhythm-panel.menstrual-prep .menstrual-prep__list li,
.fem-rhythm-panel.menstrual-prep .menstrual-prep__thermal {
  font-size: var(--fem-body-size);
}

.fem-rhythm-panel.cycle-delay-prompt .cycle-delay-prompt__lead {
  font-size: var(--fem-main-size);
}

.fem-rhythm-panel.cycle-prep-control .cycle-prep-toggle__label {
  font-size: var(--fem-main-size);
}

.fem-rhythm-panel.cycle-prep-control .cycle-prep-toggle__hint {
  font-size: var(--fem-body-size);
}

.menstrual-prep {
  padding: 0.95rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(255, 120, 180, 0.38);
  background: linear-gradient(
    160deg,
    rgba(90, 30, 80, 0.35) 0%,
    rgba(35, 45, 110, 0.38) 100%
  );
  box-shadow: 0 0 32px rgba(255, 100, 170, 0.14);
}

.menstrual-prep__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 190, 220, 0.8);
}

.menstrual-prep__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: rgba(255, 235, 245, 0.96);
}

.menstrual-prep__summary {
  margin: 0 0 0.65rem;
  font-size: 0.76rem;
  line-height: 1.55;
  color: rgba(230, 215, 235, 0.9);
}

.menstrual-prep__thermal {
  margin: 0 0 0.65rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.4rem;
  font-size: 0.72rem;
  line-height: 1.45;
  background: rgba(0, 0, 0, 0.22);
  border-left: 3px solid rgba(255, 160, 120, 0.65);
  color: rgba(255, 220, 200, 0.92);
}

.menstrual-prep__sections {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.menstrual-prep__section-title {
  margin: 0 0 0.35rem;
  font-size: 0.74rem;
  font-weight: 600;
  color: rgba(255, 210, 230, 0.92);
}

.menstrual-prep__section-en {
  font-weight: 400;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(200, 170, 210, 0.65);
}

.menstrual-prep__list {
  margin: 0;
  padding-left: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.menstrual-prep__list li {
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(235, 225, 240, 0.9);
}

.menstrual-prep__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.55rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 140, 190, 0.2);
}

.menstrual-prep__period-start {
  flex: 1 1 10rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.menstrual-prep__period-label {
  font-size: 0.68rem;
  color: rgba(210, 190, 220, 0.8);
}

.menstrual-prep__period-input {
  width: 100%;
  padding: 0.4rem 0.5rem;
  border-radius: 0.35rem;
  border: 1px solid rgba(180, 140, 200, 0.35);
  background: rgba(10, 8, 24, 0.55);
  color: inherit;
  font-size: 0.78rem;
}

.menstrual-prep__confirm-btn {
  flex: 0 0 auto;
}

.menstrual-prep__foot {
  margin: 0.55rem 0 0;
  font-size: 0.62rem;
  line-height: 1.45;
  color: rgba(170, 150, 185, 0.65);
}

.panel--almanac--compact {
  opacity: 0.92;
}

.panel--contact--compact {
  font-size: 0.85rem;
}

.almanac__liuyue-compact {
  margin: 0.55rem 0 0;
  font-size: 0.72rem;
  color: rgba(160, 185, 220, 0.75);
}

.almanac__liuyue-compact a {
  color: rgba(160, 210, 255, 0.82);
}

.almanac__meta--compact {
  font-size: 0.68rem;
}

.me-link-inline {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
}

.me-link-inline a {
  color: rgba(160, 210, 255, 0.78);
}

.user-guide__lead {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(180, 200, 230, 0.88);
}

.me-behavior-trend {
  padding: 0.85rem 0.95rem;
}

.me-behavior-trend__title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 185, 220, 0.72);
}

.me-behavior-trend__lead,
.me-behavior-trend__hint {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(150, 170, 200, 0.72);
}

.me-behavior-trend__cta {
  display: inline-block;
  font-size: 0.72rem;
  color: rgba(160, 210, 255, 0.88);
  text-decoration: none;
}

.me-behavior-trend__cta:hover {
  text-decoration: underline;
}

.me-behavior-trend__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.35rem;
}

.me-behavior-trend__cta--jade {
  color: rgba(200, 180, 255, 0.92);
}

.me-behavior-trend__score {
  font-size: 0.78rem;
  margin: 0.35rem 0 0.5rem;
  color: rgba(180, 220, 255, 0.88);
}

.me-behavior-trend__actions {
  margin: 0.65rem 0;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  background: rgba(0, 40, 80, 0.25);
  border: 1px solid rgba(0, 180, 255, 0.12);
}

.me-behavior-trend__actions-label {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: rgba(160, 200, 240, 0.75);
  margin: 0 0 0.35rem;
}

.me-behavior-trend__actions-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.74rem;
  color: rgba(210, 230, 255, 0.9);
}

.me-behavior-trend__chart {
  margin: 0.75rem 0 0.5rem;
}

.me-behavior-trend__chart-label,
.me-behavior-trend__chart-meta {
  font-size: 0.68rem;
  color: rgba(150, 190, 230, 0.72);
  margin: 0 0 0.35rem;
}

.me-trend-bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 48px;
  padding: 0.25rem 0;
}

.me-trend-bar {
  flex: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-width: 0;
}

.me-trend-bar__fill {
  width: 100%;
  max-width: 6px;
  border-radius: 2px 2px 1px 1px;
  background: rgba(100, 180, 255, 0.35);
}

.me-trend-bar__fill--good { background: rgba(80, 220, 160, 0.75); }
.me-trend-bar__fill--mid { background: rgba(255, 200, 80, 0.7); }
.me-trend-bar__fill--low { background: rgba(255, 120, 120, 0.65); }
.me-trend-bar__fill--empty { background: rgba(120, 140, 180, 0.2); }

.ask-jade-btn {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(180, 140, 255, 0.35);
  background: rgba(80, 40, 120, 0.2);
  color: rgba(220, 200, 255, 0.95);
  text-decoration: none;
  transition: background 0.15s ease;
}

.ask-jade-btn:hover {
  background: rgba(100, 60, 160, 0.35);
}

.ask-jade-btn--inline {
  margin-top: 0.5rem;
}

.day-decision-hero__jade {
  margin-top: 0.35rem;
}

.chat-context-banner {
  margin: 0.5rem 1rem 0;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  background: rgba(60, 40, 100, 0.35);
  border: 1px solid rgba(180, 140, 255, 0.25);
}

.chat-context-banner__label {
  font-size: 0.65rem;
  letter-spacing: 0.05em;
  color: rgba(200, 180, 255, 0.75);
  margin: 0 0 0.2rem;
}

.chat-context-banner__body {
  font-size: 0.75rem;
  margin: 0;
  color: rgba(230, 220, 255, 0.9);
}

.chat-writeback {
  margin: 0.45rem 1rem 0;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(20, 36, 56, 0.45);
  border: 1px solid rgba(120, 170, 230, 0.22);
}

.chat-writeback__lead {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(220, 235, 255, 0.88);
}

.chat-writeback__input {
  width: 100%;
  min-height: 3.6rem;
  margin: 0 0 0.5rem;
  padding: 0.5rem 0.6rem;
  font: inherit;
  font-size: 0.74rem;
  line-height: 1.45;
  color: rgba(245, 248, 255, 0.95);
  background: rgba(8, 14, 24, 0.45);
  border: 1px solid rgba(120, 160, 210, 0.22);
  border-radius: 8px;
  resize: vertical;
}

.chat-writeback__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
}

.chat-writeback__return {
  font-size: 0.72rem;
  color: rgba(150, 190, 255, 0.92);
}

.chat-writeback__done {
  margin: 0.45rem 0 0;
  font-size: 0.68rem;
  color: rgba(140, 220, 170, 0.92);
}

.chat-enlighten-host {
  margin: 0.45rem 1rem 0;
  flex: 0 0 auto;
}

.chat-enlighten {
  border-radius: 12px;
  background: rgba(20, 16, 48, 0.55);
  border: 1px solid rgba(160, 140, 255, 0.22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  overflow: hidden;
}

.chat-enlighten__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.chat-enlighten__head::-webkit-details-marker {
  display: none;
}

.chat-enlighten__title {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: baseline;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: rgba(210, 195, 255, 0.92);
}

.chat-enlighten__title-en {
  font-size: 0.65rem;
  opacity: 0.72;
}

.chat-enlighten__count {
  font-size: 0.65rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: rgba(120, 90, 220, 0.35);
  color: rgba(230, 220, 255, 0.9);
}

.chat-enlighten__list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0 0.55rem 0.55rem;
  max-height: 9.5rem;
  overflow-y: auto;
}

.chat-enlighten__item {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(140, 120, 220, 0.18);
  border-radius: 8px;
  background: rgba(8, 6, 24, 0.45);
  color: rgba(230, 225, 255, 0.92);
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.chat-enlighten__item:hover {
  background: rgba(40, 30, 80, 0.55);
  border-color: rgba(180, 150, 255, 0.35);
}

.chat-enlighten__badge {
  flex: 0 0 auto;
  font-size: 0.85rem;
  line-height: 1.2;
}

.chat-enlighten__badge--kind {
  font-size: 0.62rem;
  padding: 0.15rem 0.35rem;
  border-radius: 4px;
  background: rgba(80, 60, 140, 0.45);
  color: rgba(210, 195, 255, 0.88);
  white-space: nowrap;
}

.chat-enlighten__body {
  min-width: 0;
  flex: 1;
}

.chat-enlighten__date {
  display: block;
  font-size: 0.62rem;
  color: rgba(180, 165, 230, 0.75);
  margin-bottom: 0.1rem;
}

.chat-enlighten__preview {
  display: block;
  font-size: 0.72rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chat-enlighten__item--dream .chat-enlighten__preview {
  color: rgba(220, 210, 255, 0.95);
}

.chat-msg__link {
  color: rgba(160, 220, 255, 0.95);
  text-decoration: underline;
}

.chat-msg__actions {
  margin-top: 0.55rem;
}

.chat-msg__helix-footer {
  margin: 0.65rem 0 0;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.78rem;
  line-height: 1.45;
}

.chat-msg__apply-btn {
  font-size: 0.68rem;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 200, 255, 0.35);
  background: rgba(0, 80, 120, 0.25);
  color: rgba(180, 230, 255, 0.95);
  cursor: pointer;
}

.chat-msg__apply-btn:hover {
  background: rgba(0, 100, 160, 0.35);
}

.me-export-panel--prominent {
  border-color: rgba(0, 210, 255, 0.22);
  box-shadow: 0 0 20px rgba(0, 210, 255, 0.06);
}

.me-dashboard__center > .me-export-panel--prominent {
  border-color: transparent;
  box-shadow: none;
}

.me-export-panel--prominent .me-export-panel__title,
.me-export-panel--prominent .me-report-panel__title {
  color: rgba(200, 230, 255, 0.92);
}

/* ── Chat · Messenger-style · 和 Jade 聊聊 ── */

.chat-body {
  --chat-max: min(56rem, 100%);
  --chat-messenger-blue: #0084ff;
  --chat-messenger-blue-light: #00b2ff;
  --chat-messenger-purple: #7c3aed;
  --chat-messenger-pink: #ec4899;
  --chat-text: #f8f7ff;
  --chat-text-soft: rgba(248, 247, 255, 0.68);
  min-height: 100vh;
  min-height: 100dvh;
  background: #020610;
  color: var(--chat-text);
  font-family: var(--font-system);
  -webkit-font-smoothing: antialiased;
  position: relative;
  overflow-x: hidden;
}

body.chat-body::before,
body.chat-body::after {
  display: block;
  opacity: 0.85;
  z-index: 0;
}

body.chat-body::before {
  background:
    radial-gradient(ellipse 38% 42% at 18% 22%, rgba(20, 80, 180, 0.42), transparent 52%),
    radial-gradient(ellipse 34% 38% at 82% 68%, rgba(8, 40, 110, 0.55), transparent 50%),
    radial-gradient(ellipse 42% 35% at 52% 48%, rgba(12, 55, 130, 0.22), transparent 58%);
}

body.chat-body::after {
  background:
    radial-gradient(ellipse 30% 40% at 72% 18%, rgba(40, 120, 220, 0.12), transparent 55%),
    radial-gradient(ellipse 36% 32% at 8% 82%, rgba(6, 35, 90, 0.38), transparent 52%),
    radial-gradient(ellipse 26% 30% at 92% 52%, rgba(4, 18, 55, 0.65), transparent 48%);
}

/* Deep 3D ambient layer */
.chat-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(ellipse 90% 65% at 50% 38%, rgba(0, 90, 160, 0.22), transparent 62%),
    radial-gradient(ellipse 120% 80% at 50% 100%, rgba(2, 16, 42, 0.95), transparent 55%),
    linear-gradient(180deg, #030818 0%, #020610 45%, #010408 100%);
}

.chat-bg__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.92;
}

.chat-bg__mist {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 30% 40%, rgba(0, 132, 255, 0.08), transparent 45%),
    radial-gradient(circle at 70% 60%, rgba(30, 80, 180, 0.1), transparent 42%);
  animation: chat-mist-drift 28s ease-in-out infinite alternate;
}

.chat-bg__vignette {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 85% 75% at 50% 45%, transparent 35%, rgba(1, 4, 12, 0.55) 100%),
    linear-gradient(180deg, rgba(2, 8, 22, 0.35) 0%, transparent 28%, rgba(0, 0, 0, 0.5) 100%);
}

@keyframes chat-mist-drift {
  from { transform: translate(-2%, -1%) scale(1); }
  to { transform: translate(2%, 2%) scale(1.04); }
}

.chat-app {
  position: relative;
  z-index: 1;
  max-width: var(--chat-max);
  margin: 0 auto;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow:
    0 0 120px rgba(0, 60, 140, 0.18),
    0 0 80px rgba(0, 0, 0, 0.55);
  border-left: 1px solid rgba(60, 140, 255, 0.08);
  border-right: 1px solid rgba(60, 140, 255, 0.08);
  background: rgba(3, 10, 28, 0.42);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.chat-main {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Messenger gradient header */
.chat-top {
  display: grid;
  grid-template-columns: 2.5rem 1fr auto;
  align-items: center;
  gap: 0.65rem;
  padding:
    calc(0.65rem + env(safe-area-inset-top, 0))
    max(0.85rem, env(safe-area-inset-right, 0))
    0.75rem
    max(0.85rem, env(safe-area-inset-left, 0));
  background: linear-gradient(
    125deg,
    #0c2d6b 0%,
    #1e3a8a 28%,
    #3730a3 52%,
    #0084ff 100%
  );
  box-shadow: 0 8px 32px rgba(0, 60, 140, 0.4);
}

.chat-top__back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.16);
  transition: background 0.15s ease, transform 0.12s ease;
}

.chat-top__back:hover {
  background: rgba(255, 255, 255, 0.26);
}

.chat-top__back:active {
  transform: scale(0.94);
}

.chat-top__who {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.chat-top__avatar-wrap {
  position: relative;
  flex: 0 0 auto;
}

.chat-top__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(145deg, #f472b6 0%, #a855f7 100%);
  box-shadow:
    0 0 0 2.5px rgba(255, 255, 255, 0.95),
    0 4px 14px rgba(0, 0, 0, 0.25);
}

.chat-top__online {
  position: absolute;
  right: 0.05rem;
  bottom: 0.05rem;
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 50%;
  background: #31e749;
  box-shadow: 0 0 0 2px #7c3aed;
}

.chat-top__meta {
  min-width: 0;
}

.chat-top__name {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
}

.chat-top__status {
  margin: 0.1rem 0 0;
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
}

.chat-top__clear {
  border: none;
  padding: 0.38rem 0.75rem;
  border-radius: 999px;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px);
  transition: background 0.15s ease;
}

.chat-top__clear:hover {
  background: rgba(255, 255, 255, 0.28);
}

/* Chat stage · transparent over 3D depth */
.chat-stage {
  display: flex;
  flex-direction: column;
  min-height: 0;
  position: relative;
  background: transparent;
}

.chat-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(3, 12, 32, 0.25) 0%,
    transparent 18%,
    transparent 82%,
    rgba(1, 6, 18, 0.35) 100%
  );
  z-index: 0;
}

/* Topic picker · above suggested prompts in footer */
.chat-topic-bar {
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  padding: 0.5rem max(0.85rem, env(safe-area-inset-right, 0)) 0.4rem max(0.85rem, env(safe-area-inset-left, 0));
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.18);
}

.chat-bar .chat-topic-bar {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.chat-topic-bar__label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(200, 210, 255, 0.55);
}

.chat-topic-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.chat-topic-scroll::-webkit-scrollbar {
  display: none;
}

.chat-topics {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.45rem;
  width: max-content;
  min-width: 100%;
  padding-bottom: 0.1rem;
}

.chat-topic-chip {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.05rem;
  padding: 0.38rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(167, 139, 250, 0.32);
  background: rgba(139, 92, 246, 0.16);
  color: rgba(235, 228, 255, 0.95);
  font: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.chat-topic-chip:hover {
  background: rgba(139, 92, 246, 0.28);
  border-color: rgba(167, 139, 250, 0.48);
}

.chat-topic-chip:active {
  transform: scale(0.97);
}

.chat-topic-chip.is-active {
  background: rgba(139, 92, 246, 0.38);
  border-color: rgba(196, 181, 253, 0.65);
  box-shadow: 0 0 0 1px rgba(167, 139, 250, 0.25);
}

.chat-topic-chip__zh {
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.25;
}

.chat-topic-chip__en {
  font-size: 0.62rem;
  line-height: 1.2;
  color: rgba(220, 210, 255, 0.72);
}

.chat-prompts-label {
  flex: 0 0 100%;
  width: 100%;
  margin: 0 0 0.35rem;
  padding: 0 0.15rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(200, 210, 255, 0.55);
}

.chat-prompts-scroll {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  overflow-x: auto;
  padding: 0.55rem max(0.85rem, env(safe-area-inset-right, 0)) 0.4rem max(0.85rem, env(safe-area-inset-left, 0));
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.chat-prompts-scroll,
.chat-thread {
  position: relative;
  z-index: 1;
}

.chat-bar .chat-prompts-scroll {
  background: rgba(0, 0, 0, 0.12);
}

.chat-prompts-scroll::-webkit-scrollbar {
  display: none;
}

.chat-prompts {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.55rem;
  width: max-content;
  min-width: 100%;
}

.chat-prompt-chip {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-width: 9.5rem;
  max-width: 14rem;
  border-radius: 1.1rem;
  overflow: hidden;
  border: none;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
}

.chat-prompt-chip[data-tone='0'] {
  background: linear-gradient(145deg, rgba(124, 58, 237, 0.55), rgba(99, 102, 241, 0.45));
}

.chat-prompt-chip[data-tone='1'] {
  background: linear-gradient(145deg, rgba(0, 132, 255, 0.5), rgba(6, 182, 212, 0.42));
}

.chat-prompt-chip[data-tone='2'] {
  background: linear-gradient(145deg, rgba(236, 72, 153, 0.48), rgba(168, 85, 247, 0.42));
}

.chat-prompt-chip[data-tone='3'] {
  background: linear-gradient(145deg, rgba(251, 146, 60, 0.45), rgba(244, 63, 94, 0.4));
}

.chat-prompt-chip__btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 0.5rem 0.85rem;
  border: none;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease;
}

.chat-prompt-chip__btn:active {
  transform: scale(0.98);
}

.chat-prompt-chip__label {
  display: block;
  width: 100%;
  pointer-events: none;
}

.chat-prompt-chip__label--zh {
  font-size: 0.82rem;
  font-weight: 600;
  color: #fff;
}

.chat-prompt-chip__label--en {
  margin-top: 0.15rem;
  font-size: 0.68rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.82);
}

.chat-prompt-chip__btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.chat-prompt-chip__line {
  display: block;
  width: 100%;
  padding: 0.5rem 0.85rem;
  border: none;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease;
}

.chat-prompt-chip__line:active {
  transform: scale(0.98);
}

.chat-prompt-chip__line--zh {
  font-size: 0.82rem;
  font-weight: 600;
  color: #fff;
}

.chat-prompt-chip__line--zh:hover {
  background: rgba(255, 255, 255, 0.1);
}

.chat-prompt-chip__line--en {
  font-size: 0.68rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.82);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.chat-prompt-chip__line--en:hover {
  background: rgba(255, 255, 255, 0.08);
}

.chat-thread {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.65rem 0.85rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.chat-msg {
  display: flex;
  width: 100%;
  animation: chat-pop-in 0.28s cubic-bezier(0.34, 1.4, 0.64, 1);
}

@keyframes chat-pop-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.chat-msg--user {
  justify-content: flex-end;
}

.chat-msg--assistant {
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0.5rem;
}

.chat-msg__avatar {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  margin-bottom: 0.1rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(145deg, #f472b6, #a855f7);
  box-shadow: 0 2px 10px rgba(168, 85, 247, 0.4);
}

.chat-msg__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  max-width: min(82%, 40rem);
}

.chat-msg__sender {
  margin-left: 0.35rem;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--chat-text-soft);
}

.chat-msg__bubble {
  position: relative;
  padding: 0.65rem 0.95rem;
  border-radius: 1.35rem;
  font-size: 0.98rem;
  line-height: 1.42;
  letter-spacing: -0.01em;
  word-wrap: break-word;
  isolation: isolate;
}

.chat-msg__bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
}

.chat-msg--user .chat-msg__bubble {
  max-width: min(82%, 40rem);
  color: rgba(255, 255, 255, 0.98);
  background: linear-gradient(
    145deg,
    rgba(0, 132, 255, 0.72) 0%,
    rgba(0, 178, 255, 0.58) 42%,
    rgba(56, 120, 255, 0.65) 100%
  );
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(180, 230, 255, 0.38);
  box-shadow:
    0 8px 28px rgba(0, 100, 220, 0.28),
    0 2px 8px rgba(0, 60, 140, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    inset 0 -1px 0 rgba(0, 80, 180, 0.12);
}

.chat-msg--user .chat-msg__bubble::before {
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.22) 0%,
    transparent 38%,
    rgba(0, 90, 200, 0.08) 100%
  );
}

.chat-msg--assistant .chat-msg__bubble {
  color: rgba(248, 250, 255, 0.96);
  background: linear-gradient(
    152deg,
    rgba(255, 255, 255, 0.14) 0%,
    rgba(120, 180, 255, 0.1) 38%,
    rgba(40, 90, 180, 0.22) 100%
  );
  backdrop-filter: blur(20px) saturate(145%);
  -webkit-backdrop-filter: blur(20px) saturate(145%);
  border: 1px solid rgba(160, 210, 255, 0.28);
  box-shadow:
    0 8px 32px rgba(0, 30, 80, 0.22),
    0 2px 10px rgba(0, 20, 60, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 -1px 0 rgba(0, 60, 140, 0.1);
}

.chat-msg--assistant .chat-msg__bubble::before {
  background: linear-gradient(
    168deg,
    rgba(200, 230, 255, 0.18) 0%,
    transparent 45%,
    rgba(100, 60, 200, 0.06) 100%
  );
}

.chat-msg__text {
  margin: 0;
}

/* Messenger-style input bar */
.chat-bar {
  padding:
    0.65rem max(0.85rem, env(safe-area-inset-right, 0))
    calc(0.85rem + env(safe-area-inset-bottom, 0))
    max(0.85rem, env(safe-area-inset-left, 0));
  background: rgba(2, 10, 28, 0.72);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border-top: 1px solid rgba(60, 140, 255, 0.12);
  box-shadow: 0 -8px 32px rgba(0, 20, 60, 0.35);
}

.chat-bar__form {
  display: flex;
  align-items: flex-end;
  gap: 0.55rem;
}

.chat-bar__input-wrap {
  flex: 1;
  min-width: 0;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.chat-bar__input {
  display: block;
  width: 100%;
  min-height: 1.4rem;
  max-height: 6.5rem;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--chat-text);
  font: inherit;
  font-size: 1rem;
  line-height: 1.4;
  resize: none;
  outline: none;
}

.chat-bar__input::placeholder {
  color: rgba(248, 247, 255, 0.38);
  font-weight: 500;
}

.chat-bar__send {
  flex: 0 0 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 0.05rem;
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  background: linear-gradient(135deg, #0084ff 0%, #00b2ff 100%);
  box-shadow:
    0 4px 16px rgba(0, 132, 255, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
  transition: transform 0.12s ease, box-shadow 0.15s ease;
}

.chat-bar__send-icon {
  font-size: 1rem;
  margin-left: 0.1rem;
}

.chat-bar__send:hover {
  box-shadow:
    0 6px 22px rgba(0, 132, 255, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.chat-bar__send:active {
  transform: scale(0.92);
}

.chat-bar__send:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  box-shadow: none;
}

@media (min-width: 768px) {
  .chat-app {
    min-height: calc(100dvh - 1.5rem);
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 1.25rem;
    overflow: hidden;
  }

  .chat-top {
    border-radius: 1.25rem 1.25rem 0 0;
  }

  .chat-thread {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .chat-msg__bubble {
    font-size: 1.02rem;
    padding: 0.72rem 1.05rem;
  }
}

@media (min-width: 1024px) {
  .chat-msg__stack,
  .chat-msg--user .chat-msg__bubble {
    max-width: min(75%, 44rem);
  }
}

/* ── Chat Play · Snapchat × 可爱小伴 (toggle via body.chat-play-body) ── */

.chat-ui-play {
  display: none !important;
}

.chat-play-tagline {
  display: none;
}

.chat-bg--play {
  display: none;
}

.chat-play-bar__hint {
  display: none;
}

/* Theme toggle bar */
.chat-theme-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  padding: 0.45rem 0.85rem 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.2);
}

.chat-theme-bar__label {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(200, 210, 240, 0.55);
  text-transform: uppercase;
}

.chat-theme-switch {
  display: inline-flex;
  padding: 0.2rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
  gap: 0.15rem;
}

.chat-theme-switch__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.38rem 0.85rem;
  border: none;
  border-radius: 999px;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(230, 235, 255, 0.65);
  background: transparent;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, transform 0.12s ease;
}

.chat-theme-switch__btn:hover {
  color: rgba(240, 245, 255, 0.9);
}

.chat-theme-switch__btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, rgba(0, 100, 200, 0.75), rgba(80, 60, 180, 0.7));
  box-shadow: 0 2px 12px rgba(0, 80, 180, 0.35);
}

.chat-theme-switch__btn:active {
  transform: scale(0.96);
}

.chat-theme-switch__icon {
  font-size: 0.85rem;
  line-height: 1;
}

body.chat-play-body {
  background: linear-gradient(165deg, #fff0f8 0%, #fff8ee 38%, #f3ecff 72%, #ffe8f4 100%);
  color: #3d2a45;
}

body.chat-play-body .chat-ui-deep {
  display: none !important;
}

body.chat-play-body .chat-ui-play {
  display: inline !important;
}

body.chat-play-body .chat-play-tagline {
  display: block;
}

body.chat-play-body .chat-bg--deep {
  display: none;
}

body.chat-play-body .chat-bg--play {
  display: block;
}

body.chat-play-body .chat-play-bar__hint {
  display: block;
}

body.chat-play-body .chat-theme-bar {
  background: rgba(255, 255, 255, 0.35);
  border-bottom-color: rgba(255, 180, 220, 0.35);
}

body.chat-play-body .chat-theme-bar__label {
  color: rgba(90, 50, 110, 0.65);
  text-transform: none;
}

body.chat-play-body .chat-theme-switch {
  background: rgba(255, 255, 255, 0.65);
  border-color: rgba(255, 180, 220, 0.45);
}

body.chat-play-body .chat-theme-switch__btn {
  color: rgba(100, 60, 120, 0.65);
}

body.chat-play-body .chat-theme-switch__btn.is-active {
  color: #3d2048;
  background: linear-gradient(135deg, #ffb8d9, #c4b5fd);
  box-shadow: 0 3px 14px rgba(255, 140, 180, 0.35);
}

body.chat-play-body::before,
body.chat-play-body::after {
  display: none;
}

.chat-play-bg {
  background:
    radial-gradient(circle at 20% 15%, rgba(255, 182, 220, 0.55), transparent 42%),
    radial-gradient(circle at 82% 25%, rgba(255, 230, 180, 0.45), transparent 40%),
    radial-gradient(circle at 50% 90%, rgba(210, 180, 255, 0.4), transparent 45%),
    linear-gradient(165deg, #ffe8f4 0%, #fff5eb 50%, #ede4ff 100%);
}

.chat-play-bg__blobs {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.chat-play-bg__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.55;
  animation: chat-play-blob 18s ease-in-out infinite alternate;
}

.chat-play-bg__blob--a {
  width: 55vw;
  height: 55vw;
  top: -10%;
  left: -12%;
  background: rgba(255, 150, 200, 0.45);
}

.chat-play-bg__blob--b {
  width: 45vw;
  height: 45vw;
  top: 35%;
  right: -15%;
  background: rgba(255, 220, 150, 0.4);
  animation-delay: -6s;
}

.chat-play-bg__blob--c {
  width: 50vw;
  height: 50vw;
  bottom: -18%;
  left: 20%;
  background: rgba(200, 160, 255, 0.38);
  animation-delay: -12s;
}

@keyframes chat-play-blob {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(3%, 4%) scale(1.08); }
}

.chat-play-app,
body.chat-play-body .chat-app {
  background: rgba(255, 252, 255, 0.55);
  backdrop-filter: blur(18px) saturate(130%);
  -webkit-backdrop-filter: blur(18px) saturate(130%);
  border-left: 1px solid rgba(255, 180, 220, 0.35);
  border-right: 1px solid rgba(255, 180, 220, 0.35);
  box-shadow:
    0 0 80px rgba(255, 150, 200, 0.2),
    0 16px 48px rgba(180, 120, 180, 0.12);
}

.chat-play-top,
body.chat-play-body .chat-top {
  background: linear-gradient(
    120deg,
    #fffc00 0%,
    #ffe566 35%,
    #ffb8d9 70%,
    #e8b4ff 100%
  );
  box-shadow: 0 6px 28px rgba(255, 200, 100, 0.35);
}

.chat-play-top__back,
body.chat-play-body .chat-top__back {
  color: #2d1a35;
  background: rgba(255, 255, 255, 0.45);
  font-weight: 700;
}

.chat-play-top__avatar,
body.chat-play-body .chat-top__avatar {
  width: 3rem;
  height: 3rem;
  font-size: 1.15rem;
  background: linear-gradient(145deg, #ff8ec7 0%, #c084fc 55%, #fda4af 100%);
  box-shadow:
    0 0 0 3px #fff,
    0 0 0 5px rgba(255, 120, 180, 0.45),
    0 6px 20px rgba(255, 100, 160, 0.35);
  animation: chat-play-wiggle 4s ease-in-out infinite;
}

@keyframes chat-play-wiggle {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) scale(1.03); }
}

.chat-play-top__avatar-wrap {
  position: relative;
}

.chat-play-top__sparkle {
  position: absolute;
  top: -0.35rem;
  right: -0.45rem;
  font-size: 0.85rem;
  animation: chat-play-sparkle 2.2s ease-in-out infinite;
}

@keyframes chat-play-sparkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
  50% { transform: scale(1.2) rotate(15deg); opacity: 0.85; }
}

.chat-play-body .chat-top__name {
  color: #2d1a35;
  font-size: 1.12rem;
  font-weight: 800;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.chat-play-body .chat-top__status {
  color: rgba(60, 30, 70, 0.75);
  font-weight: 600;
}

.chat-play-top__clear,
body.chat-play-body .chat-top__clear {
  color: #5b2d6e;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  font-weight: 700;
}

.chat-play-tagline {
  margin: 0;
  padding: 0.5rem 1rem 0.25rem;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(90, 50, 110, 0.72);
}

.chat-play-stage::before {
  background: linear-gradient(
    180deg,
    rgba(255, 240, 250, 0.4) 0%,
    transparent 20%,
    transparent 100%
  );
}

body.chat-play-body .chat-bar .chat-prompts-scroll {
  background: rgba(255, 255, 255, 0.35);
  border-bottom-color: rgba(255, 180, 220, 0.25);
}

body.chat-play-body .chat-topic-bar {
  background: rgba(255, 255, 255, 0.28);
  border-bottom-color: rgba(255, 180, 220, 0.22);
}

body.chat-play-body .chat-topic-bar__label,
body.chat-play-body .chat-prompts-label {
  color: rgba(90, 50, 110, 0.65);
}

body.chat-play-body .chat-topic-chip {
  border-color: rgba(236, 72, 153, 0.35);
  background: rgba(255, 255, 255, 0.55);
  color: #3d2048;
}

body.chat-play-body .chat-topic-chip__en {
  color: rgba(80, 45, 95, 0.72);
}

body.chat-play-body .chat-prompt-chip__label--zh,
body.chat-play-body .chat-prompt-chip__line--zh {
  color: #3d2048;
}

body.chat-play-body .chat-prompt-chip__label--en,
body.chat-play-body .chat-prompt-chip__line--en {
  color: rgba(80, 45, 95, 0.72);
}

.chat-play-prompts-scroll {
  padding-top: 0.5rem;
}

.chat-play-body .chat-prompt-chip {
  border-radius: 999px;
  min-width: auto;
  max-width: none;
  box-shadow: 0 4px 14px rgba(255, 140, 180, 0.25);
  transform: rotate(-1deg);
}

.chat-play-body .chat-prompt-chip:nth-child(even) {
  transform: rotate(1.5deg);
}

.chat-play-body .chat-prompt-chip[data-tone='0'] {
  background: linear-gradient(135deg, #ffb8d9, #ffc8a8);
}

.chat-play-body .chat-prompt-chip[data-tone='1'] {
  background: linear-gradient(135deg, #c4b5fd, #fbcfe8);
}

.chat-play-body .chat-prompt-chip[data-tone='2'] {
  background: linear-gradient(135deg, #fde68a, #fda4af);
}

.chat-play-body .chat-prompt-chip[data-tone='3'] {
  background: linear-gradient(135deg, #a5f3fc, #ddd6fe);
}

.chat-play-body .chat-prompt-chip__line--zh {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: #3d2048;
  font-weight: 700;
  white-space: nowrap;
  padding: 0.55rem 1rem;
}

.chat-play-body .chat-prompt-chip__line--en {
  display: none;
}

.chat-prompt-chip__emoji {
  font-size: 0.95rem;
}

.chat-play-body .chat-prompt-chip__line:active {
  transform: scale(0.96);
}

.chat-play-body .chat-msg {
  animation: chat-play-pop 0.38s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes chat-play-pop {
  from { opacity: 0; transform: translateY(10px) scale(0.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.chat-play-body .chat-msg__avatar {
  width: 2.35rem;
  height: 2.35rem;
  font-size: 0.95rem;
  background: linear-gradient(145deg, #ff8ec7, #c084fc);
  box-shadow: 0 4px 14px rgba(255, 120, 180, 0.4);
}

.chat-play-body .chat-msg__sender {
  color: rgba(120, 60, 140, 0.85);
  font-weight: 700;
  font-size: 0.68rem;
}

.chat-play-body .chat-msg--user .chat-msg__bubble {
  background: linear-gradient(
    145deg,
    rgba(255, 107, 157, 0.78) 0%,
    rgba(255, 142, 199, 0.62) 45%,
    rgba(255, 179, 71, 0.55) 100%
  );
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  color: #fff;
  border: 1px solid rgba(255, 220, 235, 0.45);
  border-radius: 1.35rem 1.35rem 0.35rem 1.35rem;
  box-shadow:
    0 8px 24px rgba(255, 100, 150, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    inset 0 -1px 0 rgba(220, 80, 120, 0.1);
}

.chat-play-body .chat-msg--user .chat-msg__bubble::before {
  background: linear-gradient(
    160deg,
    rgba(255, 255, 255, 0.28) 0%,
    transparent 42%,
    rgba(255, 120, 160, 0.1) 100%
  );
}

.chat-play-body .chat-msg--assistant .chat-msg__bubble {
  background: linear-gradient(
    152deg,
    rgba(255, 255, 255, 0.82) 0%,
    rgba(255, 245, 252, 0.68) 40%,
    rgba(230, 210, 255, 0.55) 100%
  );
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  color: #3d2a45;
  border: 1px solid rgba(255, 190, 220, 0.55);
  border-radius: 1.35rem 1.35rem 1.35rem 0.35rem;
  box-shadow:
    0 8px 26px rgba(200, 140, 200, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    inset 0 -1px 0 rgba(200, 150, 220, 0.08);
}

.chat-play-body .chat-msg--assistant .chat-msg__bubble::before {
  background: linear-gradient(
    168deg,
    rgba(255, 255, 255, 0.55) 0%,
    transparent 48%,
    rgba(255, 180, 220, 0.12) 100%
  );
}

.chat-play-bar,
body.chat-play-body .chat-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  background: rgba(255, 250, 255, 0.82);
  border-top: 1px solid rgba(255, 180, 220, 0.45);
  box-shadow: 0 -6px 24px rgba(255, 180, 210, 0.15);
}

.chat-play-bar .chat-bar__form {
  width: 100%;
}

body.chat-play-body .chat-bar__input-wrap {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  background: #fff;
  border: 2px solid rgba(255, 180, 220, 0.5);
  box-shadow: 0 4px 16px rgba(255, 160, 200, 0.12);
}

body.chat-play-body .chat-bar__input {
  color: #3d2a45;
}

body.chat-play-body .chat-bar__input::placeholder {
  color: rgba(120, 80, 130, 0.45);
}

body.chat-play-body .chat-bar__send {
  background: linear-gradient(145deg, #ff6b9d, #c084fc);
  box-shadow: 0 4px 18px rgba(255, 100, 160, 0.4);
  font-size: 1.05rem;
}

.chat-play-bar__input-wrap {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  background: #fff;
  border: 2px solid rgba(255, 180, 220, 0.5);
  box-shadow: 0 4px 16px rgba(255, 160, 200, 0.12);
}

.chat-play-bar__hint {
  font-size: 1.1rem;
  flex: 0 0 auto;
  opacity: 0.85;
}

.chat-play-bar__input {
  color: #3d2a45;
}

.chat-play-bar__input::placeholder {
  color: rgba(120, 80, 130, 0.45);
}

.chat-play-bar__send {
  background: linear-gradient(145deg, #ff6b9d, #c084fc);
  box-shadow: 0 4px 18px rgba(255, 100, 160, 0.4);
  font-size: 1.05rem;
}

@media (min-width: 768px) {
  body.chat-play-body .chat-app {
    border-radius: 1.5rem;
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    overflow: hidden;
  }

  body.chat-play-body .chat-top {
    border-radius: 1.5rem 1.5rem 0 0;
  }
}

/* legacy chat markup */
.chat-shell,
.chat-nav,
.chat-lead,
.chat-bottom,
.chat-compose,
.chat-page,
.chat-header,
.chat-footer,
.chat-settings,
.chat-empty {
  display: none;
}

.me-header__chat {
  margin-left: auto;
  align-self: center;
  font-size: 0.72rem;
  color: rgba(200, 180, 255, 0.85);
  text-decoration: none;
  white-space: nowrap;
}

.me-header__chat:hover {
  color: rgba(240, 220, 255, 0.98);
}

.me-header__dream {
  margin-left: 0.75rem;
}

/* ── Site nav · 跨页统一导航（me / dream / chat）── */

.site-header {
  margin-bottom: 1rem;
}

.site-nav-toolbar {
  display: flex;
  justify-content: center;
  margin-bottom: 0.85rem;
}

.site-nav-toolbar--chat {
  padding:
    0.55rem
    max(0.85rem, env(safe-area-inset-right, 0))
    0.65rem
    max(0.85rem, env(safe-area-inset-left, 0));
  background: rgba(3, 10, 28, 0.55);
  border-bottom: 1px solid rgba(60, 140, 255, 0.1);
}

.chat-header-wrap {
  flex-shrink: 0;
}

body.chat-play-body .site-nav-toolbar--chat {
  background: rgba(255, 245, 252, 0.96);
  border-bottom-color: rgba(255, 120, 180, 0.16);
}

.site-nav {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 0.2rem;
  padding: 0.28rem;
  border-radius: 999px;
  background: rgba(15, 10, 40, 0.5);
  border: 1px solid rgba(186, 160, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  max-width: 100%;
}

body.chat-play-body .site-nav-toolbar--chat .site-nav {
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(255, 120, 180, 0.22);
}

.site-nav__link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  min-width: 4.4rem;
  padding: 0.38rem 0.72rem;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  color: rgba(237, 233, 254, 0.68);
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

.site-nav__zh {
  display: block;
  line-height: 1.25;
}

.site-nav__en {
  display: block;
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  opacity: 0.72;
  line-height: 1.2;
}

.site-nav__zone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.05rem;
  height: 1.05rem;
  margin-bottom: 0.06rem;
  border-radius: 999px;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 248, 240, 0.92);
  background: rgba(139, 92, 246, 0.55);
  border: 1px solid rgba(200, 170, 255, 0.35);
}

.site-nav__link--secondary {
  min-width: 3.6rem;
  padding: 0.32rem 0.55rem;
  opacity: 0.72;
  font-size: 0.68rem;
}

.site-nav__link--secondary .site-nav__en {
  font-size: 0.52rem;
}

body.chat-play-body .site-nav-toolbar--chat .site-nav__link--primary {
  color: rgba(120, 40, 90, 0.95);
  background: linear-gradient(145deg, rgba(255, 180, 210, 0.85), rgba(200, 140, 255, 0.75));
  border-color: rgba(255, 120, 180, 0.45);
  box-shadow: 0 0 14px rgba(255, 120, 180, 0.2);
}

body.chat-play-body .site-nav-toolbar--chat .site-nav__link {
  color: rgba(90, 40, 110, 0.72);
}

.site-nav__link.is-active {
  background: rgba(139, 92, 246, 0.42);
  color: #f5f1ff;
}

body.chat-play-body .site-nav-toolbar--chat .site-nav__link.is-active {
  background: linear-gradient(135deg, rgba(255, 120, 180, 0.88), rgba(255, 170, 120, 0.82));
  color: #fff;
}

.site-nav__link:hover:not(.is-active) {
  color: #ede9fe;
  background: rgba(78, 205, 196, 0.14);
}

body.chat-play-body .site-nav-toolbar--chat .site-nav__link:hover:not(.is-active) {
  color: rgba(70, 20, 90, 0.92);
  background: rgba(255, 120, 180, 0.14);
}

.site-header__titles {
  min-width: 0;
}

.site-header__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(180, 200, 230, 0.55);
}

.site-header__title {
  margin: 0;
  font-size: clamp(1.6rem, 4vw, 2rem);
  font-weight: 600;
  color: #f0f4ff;
}

.site-header__lead {
  margin: 0.35rem 0 0;
  color: rgba(210, 220, 245, 0.72);
  font-size: 0.92rem;
  line-height: 1.5;
}

.site-header__meta {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  color: rgba(160, 200, 255, 0.85);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 640px) {
  .site-nav__link {
    min-width: 0;
    flex: 1 1 auto;
    padding-inline: 0.45rem;
    font-size: 0.68rem;
  }

  .site-nav__en {
    font-size: 0.54rem;
  }
}

/* ── Dreamlog · 冥想盆 / Pensieve 风 ── */

.dream-body {
  margin: 0;
  min-height: 100vh;
  background: #0c0a14;
  color: rgba(255, 248, 252, 0.94);
  font-family: inherit;
  font-weight: 400;
  letter-spacing: 0.01em;
  --dream-blur: 44px;
  --dream-radius-xl: 3.25rem;
  --dream-radius-lg: 2.25rem;
  --dream-radius-md: 1.75rem;
  --dream-glass: rgba(255, 255, 255, 0.06);
  --dream-glass-warm: rgba(255, 210, 235, 0.05);
  --dream-glass-border: rgba(255, 255, 255, 0.16);
  --dream-glass-highlight: rgba(255, 255, 255, 0.22);
  --dream-glass-shadow: rgba(120, 80, 160, 0.12);
  --dream-warm-pink: rgba(255, 180, 210, 0.14);
  --dream-soft-lavender: rgba(200, 170, 255, 0.12);
  --dream-ease-soft: cubic-bezier(0.34, 1.25, 0.64, 1);
}

.dream-ambient {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.dream-ambient__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.55;
  animation: dream-orb-drift 18s ease-in-out infinite alternate;
}

.dream-ambient__orb--a {
  top: 8%;
  left: 10%;
  width: min(420px, 55vw);
  height: min(420px, 55vw);
  background: radial-gradient(circle, rgba(220, 160, 255, 0.35), transparent 70%);
}

.dream-ambient__orb--b {
  top: 45%;
  right: -5%;
  width: min(380px, 50vw);
  height: min(380px, 50vw);
  background: radial-gradient(circle, rgba(255, 170, 210, 0.28), transparent 70%);
  animation-delay: -6s;
  animation-duration: 22s;
}

.dream-ambient__orb--c {
  bottom: 5%;
  left: 25%;
  width: min(320px, 45vw);
  height: min(320px, 45vw);
  background: radial-gradient(circle, rgba(160, 180, 255, 0.22), transparent 70%);
  animation-delay: -12s;
  animation-duration: 20s;
}

@keyframes dream-orb-drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(24px, -18px) scale(1.08); }
}

@keyframes dream-jelly-idle {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.008); }
}

.dream-page {
  position: relative;
  z-index: 1;
  max-width: 68rem;
  margin: 0 auto;
  padding: 1rem 1rem 3rem;
}

.dream-page .site-nav {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(28px) saturate(1.4);
  -webkit-backdrop-filter: blur(28px) saturate(1.4);
  box-shadow:
    0 8px 32px var(--dream-glass-shadow),
    inset 0 1px 1px rgba(255, 255, 255, 0.18);
}

.dream-page .site-nav__link {
  border-radius: 999px;
  transition: background 0.25s var(--dream-ease-soft), transform 0.25s var(--dream-ease-soft);
}

.dream-page .site-nav__link.is-active {
  background: rgba(255, 180, 220, 0.28);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.2);
}

.dream-page .site-header__title,
.dream-header__title {
  background: linear-gradient(120deg, #fff8fc 0%, #f0d8ff 30%, #ffd8ec 55%, #d8e4ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.dream-header__eyebrow {
  color: rgba(255, 220, 240, 0.55);
  letter-spacing: 0.16em;
  font-weight: 400;
}

.dream-header__lead {
  color: rgba(255, 235, 248, 0.72);
  font-size: 0.98rem;
  line-height: 1.65;
  max-width: 32rem;
  font-weight: 300;
}

.dream-bg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.dream-pensieve {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 50;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.dream-pensieve.is-active {
  opacity: 1;
}

.dream-depositing .dream-form--dissolving {
  pointer-events: none;
}

.dream-form--dissolving .dream-form__textarea--vaporizing {
  color: transparent;
  caret-color: transparent;
  border-color: rgba(230, 240, 255, 0.28);
  background: rgba(8, 16, 48, 0.12);
  box-shadow:
    inset 0 0 56px rgba(255, 255, 255, 0.14),
    0 0 48px rgba(235, 245, 255, 0.18);
  filter: blur(3px);
  transition: color 0.9s ease, filter 1.2s ease, box-shadow 0.9s ease;
}

.dream-panel {
  position: relative;
  padding: 1.4rem 1.5rem;
  border-radius: var(--dream-radius-xl);
  border: 1px solid var(--dream-glass-border);
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.1) 0%,
    var(--dream-glass-warm) 38%,
    rgba(200, 180, 255, 0.06) 100%
  );
  box-shadow:
    0 16px 56px var(--dream-glass-shadow),
    0 4px 20px rgba(255, 180, 210, 0.06),
    inset 0 2px 3px var(--dream-glass-highlight),
    inset 0 -3px 12px rgba(140, 100, 180, 0.05);
  backdrop-filter: blur(var(--dream-blur)) saturate(1.5);
  -webkit-backdrop-filter: blur(var(--dream-blur)) saturate(1.5);
  animation: dream-jelly-idle 8s ease-in-out infinite;
}

.dream-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.16) 0%,
    transparent 42%,
    rgba(255, 190, 220, 0.05) 100%
  );
  pointer-events: none;
}

.dream-panel > * {
  position: relative;
  z-index: 1;
}

.dream-panel--purple {
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.09) 0%,
    rgba(240, 200, 255, 0.08) 45%,
    rgba(180, 140, 220, 0.06) 100%
  );
  border-color: rgba(255, 220, 245, 0.16);
}

.dream-panel--blue {
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.09) 0%,
    rgba(255, 210, 235, 0.08) 42%,
    rgba(210, 190, 255, 0.07) 100%
  );
  border-color: rgba(255, 225, 245, 0.16);
}

/* Pensieve basin · 圆盆梦册 */
.dream-basin {
  position: relative;
  overflow: hidden;
  margin-top: 0.35rem;
  padding: 1.65rem 1.25rem 2.25rem;
  min-height: 22rem;
  border-radius: 2.8rem 2.8rem 50% 50% / 2.2rem 2.2rem 48% 48%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(220, 190, 255, 0.06) 35%,
    rgba(160, 140, 220, 0.08) 100%
  );
  border-color: rgba(255, 230, 250, 0.18);
  box-shadow:
    0 24px 64px rgba(100, 60, 140, 0.14),
    0 8px 24px rgba(255, 180, 210, 0.08),
    inset 0 3px 4px rgba(255, 255, 255, 0.18),
    inset 0 -28px 52px rgba(255, 220, 240, 0.06);
  animation: dream-jelly-idle 10s ease-in-out infinite;
  animation-delay: -2s;
}

@media (min-width: 900px) {
  .dream-basin {
    border-radius: 2.2rem 2.2rem 48% 48% / 1.6rem 1.6rem 44% 44%;
    min-height: 24rem;
  }
}

.dream-basin__rim {
  position: absolute;
  top: 0.85rem;
  left: 50%;
  transform: translateX(-50%);
  width: 86%;
  height: 0.65rem;
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    rgba(255, 248, 252, 0.38) 0%,
    rgba(255, 220, 240, 0.14) 100%
  );
  box-shadow:
    0 2px 16px rgba(255, 255, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
  pointer-events: none;
  z-index: 3;
}

.dream-basin__pool {
  position: absolute;
  bottom: 4%;
  left: 50%;
  transform: translateX(-50%);
  width: 92%;
  height: 42%;
  border-radius: 50%;
  background: radial-gradient(
    ellipse 100% 100% at 50% 30%,
    rgba(220, 235, 255, 0.12) 0%,
    rgba(160, 190, 255, 0.06) 40%,
    transparent 72%
  );
  pointer-events: none;
  z-index: 0;
  animation: dream-basin-mist 10s ease-in-out infinite alternate;
}

.dream-basin::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(ellipse 95% 60% at 50% 105%, rgba(200, 225, 255, 0.16), transparent 62%);
  pointer-events: none;
  z-index: 0;
}

.dream-basin::after {
  content: '';
  position: absolute;
  bottom: -5%;
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  height: 38%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255, 255, 255, 0.09) 0%, rgba(210, 230, 255, 0.04) 40%, transparent 72%);
  pointer-events: none;
  z-index: 0;
  animation: dream-basin-mist 12s ease-in-out infinite alternate-reverse;
}

@keyframes dream-basin-mist {
  from { opacity: 0.55; transform: translateX(-50%) scale(1); }
  to { opacity: 0.9; transform: translateX(-50%) scale(1.06); }
}

@keyframes dream-basin-glow {
  0% {
    box-shadow:
      0 20px 60px rgba(4, 12, 40, 0.35),
      inset 0 2px 2px rgba(255, 255, 255, 0.1),
      inset 0 -24px 48px rgba(200, 220, 255, 0.06);
  }
  35% {
    box-shadow:
      0 24px 72px rgba(220, 235, 255, 0.28),
      inset 0 4px 4px rgba(255, 255, 255, 0.22),
      inset 0 -36px 64px rgba(255, 255, 255, 0.14);
    border-color: rgba(230, 240, 255, 0.42);
  }
  100% {
    box-shadow:
      0 20px 60px rgba(4, 12, 40, 0.35),
      inset 0 2px 2px rgba(255, 255, 255, 0.1),
      inset 0 -24px 48px rgba(200, 220, 255, 0.06);
  }
}

.dream-basin--received {
  animation: dream-basin-glow 1.8s ease-out;
}

.dream-basin--received .dream-basin__pool {
  animation-duration: 3s;
  opacity: 1.2;
}

.dream-basin > * {
  position: relative;
  z-index: 1;
}

.dream-layout {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 900px) {
  .dream-layout {
    grid-template-columns: 1fr min(17rem, 30vw);
    align-items: start;
  }
}

.dream-layout__primary {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dream-layout__side {
  padding: 1rem 0.95rem;
}

.dream-layout__side-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.dream-layout__side-head h2 {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 500;
  color: rgba(235, 220, 255, 0.88);
}

/* Welcome / trend card */
.dream-trend {
  text-align: center;
}


.dream-trend__icon {
  margin: 0 0 0.35rem;
  font-size: 1.75rem;
  line-height: 1;
}

.dream-trend__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: rgba(220, 200, 255, 0.62);
}

.dream-trend__title {
  margin: 0.35rem 0 0.3rem;
  font-size: 1.15rem;
  font-weight: 500;
  color: rgba(250, 245, 255, 0.95);
}

.dream-trend__sub {
  margin: 0 0 0.65rem;
  font-size: 0.86rem;
  line-height: 1.55;
  color: rgba(220, 210, 255, 0.72);
}

.dream-trend__list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.84rem;
  line-height: 1.6;
  color: rgba(230, 225, 255, 0.82);
}

.dream-trend__list li + li {
  margin-top: 0.35rem;
}

/* Main form */
.dream-form__intro {
  margin: 0 0 1.1rem;
  font-size: 0.98rem;
  line-height: 1.7;
  font-weight: 300;
  color: rgba(255, 240, 250, 0.82);
}

.dream-form__date-row {
  margin-bottom: 1.1rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.dream-form__label--date {
  font-size: 0.84rem;
  font-weight: 400;
  color: rgba(255, 235, 248, 0.85);
}

.dream-form__required {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.08rem 0.45rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  vertical-align: middle;
  color: rgba(255, 230, 245, 0.95);
  background: rgba(255, 160, 200, 0.22);
  border: 1px solid rgba(255, 200, 230, 0.2);
}

.dream-form__date-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
}

.dream-form__input--date {
  width: auto;
  min-width: 10.5rem;
  flex: 0 0 auto;
  color-scheme: dark;
}

.dream-date-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: rgba(255, 248, 252, 0.94);
  background: linear-gradient(135deg, rgba(255, 200, 230, 0.22), rgba(200, 180, 255, 0.2));
  border: 1px solid rgba(255, 230, 250, 0.22);
  box-shadow:
    inset 0 1px 2px rgba(255, 255, 255, 0.16),
    0 4px 16px rgba(180, 120, 180, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.dream-date-badge::before {
  content: '📅';
  font-size: 0.85em;
  opacity: 0.85;
}

.dream-date-badge--form {
  flex: 1 1 auto;
}

.dream-date-badge--list {
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
}

.dream-date-badge--head {
  margin-bottom: 0.45rem;
  font-size: 0.82rem;
}

.dream-date-badge--missing {
  color: rgba(255, 200, 210, 0.95);
  border-color: rgba(255, 140, 160, 0.4);
  background: rgba(120, 40, 60, 0.35);
}

.dream-date-badge--missing::before {
  content: '⚠️';
}

.dream-insight__mood {
  margin: 0 0 0.35rem;
  font-size: 0.84rem;
  font-weight: 300;
  color: rgba(255, 230, 248, 0.78);
}

.dream-form__label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.8rem;
  font-weight: 400;
  color: rgba(255, 230, 248, 0.78);
}

.dream-form__label--hero {
  font-size: 1.05rem;
  font-weight: 400;
  color: rgba(255, 248, 252, 0.92);
  margin-bottom: 0.6rem;
}

.dream-form__hero {
  margin-bottom: 1rem;
}

.dream-form__textarea,
.dream-form__input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.95rem 1.1rem;
  border-radius: var(--dream-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.05);
  color: inherit;
  font: inherit;
  font-size: 0.94rem;
  font-weight: 300;
  line-height: 1.65;
  box-shadow:
    inset 0 2px 4px rgba(255, 255, 255, 0.06),
    inset 0 -2px 8px rgba(140, 100, 180, 0.04);
  transition: border-color 0.3s var(--dream-ease-soft), box-shadow 0.3s var(--dream-ease-soft), background 0.3s ease;
}

.dream-form__textarea--hero {
  min-height: 9.5rem;
  resize: vertical;
  font-size: 1.02rem;
  line-height: 1.75;
  border-radius: var(--dream-radius-xl);
  border-color: rgba(255, 230, 250, 0.16);
  background: rgba(255, 255, 255, 0.04);
  box-shadow:
    inset 0 2px 6px rgba(255, 255, 255, 0.08),
    inset 0 0 36px rgba(255, 190, 220, 0.04);
}

.dream-form__textarea--hero:focus,
.dream-form__textarea:focus,
.dream-form__input:focus {
  outline: none;
  border-color: rgba(255, 220, 240, 0.35);
  background: rgba(255, 255, 255, 0.07);
  box-shadow:
    0 0 0 4px rgba(255, 180, 220, 0.1),
    inset 0 2px 8px rgba(255, 255, 255, 0.1);
}

.dream-form__textarea--short {
  min-height: 3rem;
  resize: vertical;
}

.dream-form__moods {
  margin: 0 0 1rem;
  padding: 0;
  border: none;
}

.dream-form__moods legend {
  padding: 0;
}

.dream-mood-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.dream-mood-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.62rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.1),
    0 4px 12px rgba(120, 80, 160, 0.06);
  cursor: pointer;
  transition:
    background 0.28s var(--dream-ease-soft),
    border-color 0.28s var(--dream-ease-soft),
    transform 0.35s var(--dream-ease-soft),
    box-shadow 0.28s var(--dream-ease-soft);
}

.dream-mood-chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dream-mood-chip__emoji {
  font-size: 1.25rem;
  line-height: 1;
}

.dream-mood-chip__label {
  font-size: 0.68rem;
  color: rgba(255, 230, 248, 0.75);
}

.dream-mood-chip:hover {
  border-color: rgba(255, 220, 240, 0.28);
  background: rgba(255, 200, 230, 0.1);
  transform: translateY(-2px) scale(1.03);
}

.dream-mood-chip.is-selected {
  border-color: rgba(255, 230, 250, 0.35);
  background: rgba(255, 180, 220, 0.18);
  box-shadow:
    inset 0 2px 4px rgba(255, 255, 255, 0.22),
    0 0 28px rgba(255, 180, 220, 0.15);
  transform: translateY(-3px) scale(1.06);
}

.dream-mood-chip.is-selected .dream-mood-chip__label {
  color: rgba(250, 245, 255, 0.95);
}

.dream-form__extras {
  margin-bottom: 1rem;
  border-radius: var(--dream-radius-lg);
  border: 1px dashed rgba(255, 210, 230, 0.2);
  background: rgba(255, 255, 255, 0.03);
  overflow: hidden;
}

.dream-form__extras summary {
  padding: 0.65rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 300;
  color: rgba(255, 230, 248, 0.75);
  cursor: pointer;
  list-style: none;
}

.dream-form__extras summary::-webkit-details-marker {
  display: none;
}

.dream-form__extras summary::before {
  content: '✦ ';
  opacity: 0.55;
}

.dream-form__extras-inner {
  padding: 0 0.85rem 0.85rem;
}

.dream-form__incubation {
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.dream-form__save-incubation {
  margin-top: 0.45rem;
  font-size: 0.72rem;
}

.dream-form__row {
  margin-bottom: 0.75rem;
}

.dream-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.btn--dream {
  padding: 0.78rem 1.65rem;
  border: 1px solid rgba(255, 240, 250, 0.22);
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.94rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(
    135deg,
    rgba(200, 150, 255, 0.65) 0%,
    rgba(255, 160, 200, 0.62) 50%,
    rgba(180, 170, 255, 0.6) 100%
  );
  box-shadow:
    0 10px 36px rgba(180, 100, 180, 0.25),
    inset 0 2px 3px rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: transform 0.35s var(--dream-ease-soft), box-shadow 0.35s var(--dream-ease-soft), opacity 0.15s ease;
}

.btn--dream:hover:not(:disabled) {
  transform: translateY(-3px) scale(1.03);
  box-shadow:
    0 14px 44px rgba(220, 120, 180, 0.32),
    inset 0 2px 4px rgba(255, 255, 255, 0.35);
}

.btn--dream:active:not(:disabled) {
  transform: translateY(-1px) scale(0.98);
  transition-duration: 0.12s;
}

.btn--dream:disabled {
  opacity: 0.75;
  cursor: wait;
}

/* Dream list sidebar */
.dream-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 26rem;
  overflow-y: auto;
}

.dream-list__empty {
  text-align: center;
  padding: 1.25rem 0.5rem;
  font-size: 0.86rem;
  color: rgba(210, 200, 240, 0.65);
}

.dream-list__empty-icon {
  margin: 0 0 0.35rem;
  font-size: 1.6rem;
}

.dream-list__empty-hint {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  opacity: 0.75;
}

.dream-list__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 0.85rem 1rem;
  margin-bottom: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--dream-radius-lg);
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.08);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.28s var(--dream-ease-soft),
    background 0.28s var(--dream-ease-soft),
    transform 0.32s var(--dream-ease-soft);
}

.dream-list__item:hover,
.dream-list__item--active {
  border-color: rgba(255, 220, 240, 0.28);
  background: rgba(255, 190, 220, 0.1);
  transform: translateY(-2px) scale(1.01);
}

.dream-trend--welcome {
  background: linear-gradient(
    160deg,
    rgba(255, 255, 255, 0.07) 0%,
    rgba(240, 200, 255, 0.08) 50%,
    rgba(200, 180, 255, 0.06) 100%
  );
}

.dream-trend__sub {
  color: rgba(255, 235, 248, 0.72);
  font-weight: 300;
}

.dream-footer {
  color: rgba(255, 220, 240, 0.42);
  font-weight: 300;
}

@media (prefers-reduced-motion: reduce) {
  .dream-panel,
  .dream-basin {
    animation: none;
  }

  .dream-ambient__orb {
    animation: none;
  }
}

.dream-list__date {
  font-size: 0.68rem;
  color: rgba(190, 180, 240, 0.6);
}

.dream-list__preview {
  font-size: 0.84rem;
  margin: 0.2rem 0;
  line-height: 1.45;
}

.dream-list__meta {
  font-size: 0.68rem;
  color: rgba(180, 170, 230, 0.62);
}

/* Insight card */
.dream-insight-host {
  margin-top: 1rem;
}

.dream-insight {
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 210, 235, 0.07) 40%,
    rgba(200, 180, 255, 0.06) 100%
  );
  border-color: rgba(255, 225, 245, 0.18);
}

.dream-insight__date {
  margin: 0;
  font-size: 0.72rem;
  color: rgba(190, 180, 240, 0.65);
}

.dream-insight__title {
  margin: 0.3rem 0 0.5rem;
  font-size: 1.08rem;
  font-weight: 400;
  color: rgba(255, 250, 252, 0.95);
}

.dream-insight__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.dream-tag {
  display: inline-block;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 400;
  background: rgba(255, 190, 220, 0.14);
  border: 1px solid rgba(255, 220, 240, 0.22);
  color: rgba(255, 245, 250, 0.92);
}

.dream-insight__incubation {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: var(--dream-radius-md);
  font-size: 0.84rem;
  font-weight: 300;
  line-height: 1.55;
  background: rgba(255, 200, 230, 0.1);
  border: 1px solid rgba(255, 220, 240, 0.12);
  color: rgba(255, 240, 250, 0.88);
}

.dream-insight__incubation em {
  font-style: normal;
  color: rgba(250, 240, 255, 0.95);
}

.dream-insight__block {
  margin-top: 0.85rem;
}

.dream-insight__block h4 {
  margin: 0 0 0.4rem;
  font-size: 0.84rem;
  font-weight: 400;
  color: rgba(255, 230, 248, 0.85);
}

.dream-insight__block ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  font-weight: 300;
  line-height: 1.65;
  color: rgba(255, 245, 252, 0.88);
}

.dream-insight__block--predict h4 {
  color: rgba(255, 220, 200, 0.9);
}

.dream-insight__block--act h4 {
  color: rgba(200, 240, 220, 0.88);
}

.dream-insight__block--read h4 {
  color: rgba(255, 210, 235, 0.88);
}

.dream-insight__whisper {
  margin: 1rem 0 0;
  padding: 0.75rem 0.9rem;
  border-radius: 1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  background: rgba(255, 200, 230, 0.08);
  border: 1px solid rgba(255, 180, 220, 0.14);
  color: rgba(250, 235, 255, 0.9);
}

.dream-insight__reality {
  margin-top: 0.5rem;
  padding: 1.05rem 1.15rem;
  border-radius: var(--dream-radius-lg);
  background: linear-gradient(
    145deg,
    rgba(255, 210, 235, 0.12) 0%,
    rgba(220, 190, 255, 0.1) 55%,
    rgba(255, 200, 220, 0.08) 100%
  );
  border: 1px solid rgba(255, 225, 245, 0.22);
  box-shadow:
    inset 0 2px 4px rgba(255, 255, 255, 0.12),
    0 8px 28px rgba(180, 120, 180, 0.08);
}

.dream-insight__reality-title {
  margin: 0 0 0.35rem;
  font-size: 0.94rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: rgba(255, 245, 252, 0.95);
}

.dream-insight__reality-lead {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  font-weight: 300;
  line-height: 1.6;
  color: rgba(255, 235, 248, 0.78);
}

.dream-insight__rhythm-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}

.dream-rhythm-chip {
  display: inline-block;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 220, 240, 0.2);
  color: rgba(255, 240, 250, 0.9);
}

.dream-insight__reality-list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(255, 248, 252, 0.9);
}

.dream-insight__reality-list li + li {
  margin-top: 0.45rem;
}

.dream-insight__reality-block + .dream-insight__reality-block {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 225, 245, 0.12);
}

.dream-insight__reality-subtitle {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: none;
  color: rgba(255, 230, 248, 0.82);
}

.dream-insight__reality-block--bridge .dream-insight__reality-subtitle {
  color: rgba(255, 210, 235, 0.95);
}

.dream-insight__reality-block--struct .dream-insight__reality-list li {
  color: rgba(255, 248, 252, 0.92);
}

.dream-insight__reality-para {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(255, 248, 252, 0.92);
}

.dream-insight__reality-para:last-child {
  margin-bottom: 0;
}

.dream-insight__reality-question {
  margin: 0.85rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 225, 245, 0.12);
  font-size: 0.86rem;
  font-weight: 300;
  line-height: 1.65;
  color: rgba(255, 230, 248, 0.88);
}

.dream-insight__reality-skeleton {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.35rem;
}

.dream-insight__reality-skeleton span {
  display: block;
  height: 0.72rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 220, 240, 0.08), rgba(255, 240, 250, 0.18), rgba(255, 220, 240, 0.08));
  background-size: 200% 100%;
  animation: dream-skeleton-shimmer 1.4s ease-in-out infinite;
}

.dream-insight__reality-skeleton span:nth-child(2) { width: 92%; animation-delay: 0.12s; }
.dream-insight__reality-skeleton span:nth-child(3) { width: 78%; animation-delay: 0.24s; }

@keyframes dream-skeleton-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

.dream-insight__reality--fallback a {
  color: rgba(255, 220, 245, 0.95);
}

.dream-insight__tech {
  margin-top: 0.85rem;
  font-size: 0.78rem;
  color: rgba(180, 170, 220, 0.62);
}

.dream-insight__tech summary {
  cursor: pointer;
  padding: 0.35rem 0;
}

.dream-insight__tech-line {
  margin: 0.35rem 0 0;
  line-height: 1.5;
}

.dream-insight__tech-line--hint {
  color: rgba(210, 240, 220, 0.72);
}

.dream-delete-btn {
  font-size: 0.68rem;
  padding: 0.25rem 0.5rem;
}

.dream-empty {
  padding: 2rem;
  text-align: center;
}

/* Legacy dream-header aliases (unused in HTML but kept for safety) */
.dream-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
  margin-bottom: 1.25rem;
}

.dream-header__back,
.dream-header__link {
  font-size: 0.78rem;
  color: rgba(180, 200, 255, 0.75);
  text-decoration: none;
}

.dream-header__link {
  margin-left: auto;
}

.dream-header__titles {
  flex: 1 1 100%;
}

.dream-form__title {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
}

.dream-form__grid {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .dream-form__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.dream-form__rhythm-seed {
  display: none;
}

.dream-tag--muted {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
  color: rgba(200, 210, 255, 0.5);
}

.dream-insight__structured,
.dream-insight__impact-grid,
.dream-insight__impact-summary,
.dream-insight__action-primary,
.dream-insight__action-badge,
.dream-insight__rhythm {
  display: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── 营销 · 流月笔记 / 短链落地 ── */
.dashboard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.dashboard-footer__link {
  font-size: 0.82rem;
  color: rgba(200, 190, 255, 0.85);
  text-decoration: none;
}

.dashboard-footer__link:hover {
  color: rgba(230, 220, 255, 0.95);
}

.go-body,
.stories-body {
  min-height: 100vh;
  background: linear-gradient(165deg, #0a0818 0%, #12102a 45%, #0d0b1a 100%);
  color: rgba(245, 240, 255, 0.92);
}

.go-landing,
.stories-page {
  max-width: 42rem;
  margin: 0 auto;
  padding: 2rem 1.25rem 3rem;
}

.go-landing__eyebrow,
.stories-header__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: rgba(200, 180, 255, 0.75);
}

.go-landing__title,
.stories-header h1,
.stories-article h1 {
  margin: 0 0 0.75rem;
  font-size: 1.65rem;
  font-weight: 500;
  line-height: 1.35;
}

.go-landing__tone,
.stories-header__lead {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(235, 225, 255, 0.88);
}

.go-landing__level {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  color: rgba(200, 190, 230, 0.8);
}

.go-landing__tips,
.stories-checklist {
  margin: 0 0 1.25rem;
  padding-left: 1.2rem;
  line-height: 1.7;
  font-size: 0.9rem;
}

.go-landing__actions,
.stories-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.go-landing__btn {
  display: inline-block;
  padding: 0.65rem 1.1rem;
  border-radius: 999px;
  font-size: 0.88rem;
  text-decoration: none;
  border: 1px solid rgba(180, 160, 255, 0.35);
  color: rgba(245, 240, 255, 0.95);
}

.go-landing__btn--primary {
  background: linear-gradient(135deg, rgba(140, 100, 220, 0.55), rgba(100, 80, 180, 0.45));
}

.go-landing__btn--hero {
  flex: 1 1 100%;
  text-align: center;
  padding: 0.85rem 1.25rem;
  font-size: 1rem;
}

.go-landing__shortlink {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  color: rgba(180, 170, 210, 0.75);
  word-break: break-all;
}

.go-landing__shortlink code {
  font-size: 0.76rem;
  color: rgba(210, 195, 255, 0.85);
}

.stories-section__note {
  margin: -0.25rem 0 0.75rem;
  font-size: 0.82rem;
  color: rgba(180, 170, 210, 0.7);
  line-height: 1.5;
}

.stories-list__xun-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem;
}

.stories-list__xun-alt {
  font-size: 0.85rem;
  color: rgba(180, 170, 210, 0.75);
}

.stories-list__xun-alt a {
  color: rgba(210, 195, 255, 0.9);
}

.go-landing__btn--ghost {
  background: transparent;
}

.go-landing__foot,
.stories-article__foot {
  margin-top: 1.5rem;
  font-size: 0.78rem;
  color: rgba(180, 170, 210, 0.65);
}

.stories-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.stories-nav a {
  color: rgba(210, 195, 255, 0.9);
  font-size: 0.85rem;
}

.stories-section {
  margin-top: 2rem;
}

.stories-section h2 {
  font-size: 1.05rem;
  font-weight: 500;
  margin: 0 0 0.75rem;
}

.stories-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.stories-list li + li {
  margin-top: 0.5rem;
}

.stories-list a {
  display: block;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(180, 160, 255, 0.12);
  text-decoration: none;
  color: inherit;
}

.stories-list a strong {
  display: block;
  font-weight: 500;
}

.stories-list a span {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.82rem;
  color: rgba(200, 190, 230, 0.75);
}

.stories-code {
  padding: 0.75rem;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
  font-size: 0.78rem;
  overflow-x: auto;
}

.stories-article__block {
  margin-top: 1.75rem;
}

.stories-article__block h2 {
  font-size: 1.05rem;
  margin: 0 0 0.65rem;
}

.stories-header__meta {
  font-size: 0.82rem;
  color: rgba(180, 170, 210, 0.7);
}

.stories-cta__links {
  font-size: 0.85rem;
}

.stories-cta__links a {
  color: rgba(210, 195, 255, 0.9);
}

.stories-section--muted {
  opacity: 0.85;
}

.stories-header__eyebrow a {
  color: inherit;
}

.blog-list {
  margin-top: 0.25rem;
}

.blog-card__meta {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.78rem;
  color: rgba(180, 170, 210, 0.75);
}

.blog-card__excerpt {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(200, 190, 230, 0.8);
}

/* ── Flow Notes · 流月笔记 deep navy theme ── */

.flow-notes-page {
  position: relative;
  min-height: 100vh;
  background: #060818;
  color: rgba(240, 236, 255, 0.94);
}

.flow-notes-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(80, 60, 180, 0.22) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 85% 75%, rgba(40, 80, 160, 0.14) 0%, transparent 50%),
    radial-gradient(ellipse 50% 35% at 10% 60%, rgba(100, 50, 140, 0.1) 0%, transparent 45%),
    linear-gradient(168deg, #040612 0%, #0a0e28 38%, #080c22 68%, #050818 100%);
}

.flow-notes-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(1px 1px at 12% 18%, rgba(255, 255, 255, 0.35) 0%, transparent 100%),
    radial-gradient(1px 1px at 78% 32%, rgba(255, 255, 255, 0.25) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 45% 8%, rgba(200, 190, 255, 0.4) 0%, transparent 100%),
    radial-gradient(1px 1px at 92% 68%, rgba(255, 255, 255, 0.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 28% 82%, rgba(180, 200, 255, 0.25) 0%, transparent 100%),
    radial-gradient(1px 1px at 62% 55%, rgba(255, 255, 255, 0.18) 0%, transparent 100%);
  opacity: 0.55;
}

.flow-notes-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 45% at 50% 100%, rgba(20, 30, 80, 0.35) 0%, transparent 60%);
}

.flow-notes-shell {
  position: relative;
  z-index: 1;
  max-width: 42rem;
  margin: 0 auto;
  padding: 1rem 1.15rem 3rem;
}

.flow-notes-header {
  margin-bottom: 0.5rem;
}

.flow-notes-page .site-nav {
  background: rgba(12, 16, 40, 0.65);
  border-color: rgba(120, 140, 220, 0.2);
  backdrop-filter: blur(16px) saturate(1.3);
  -webkit-backdrop-filter: blur(16px) saturate(1.3);
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.flow-notes-page .site-nav__link {
  color: rgba(220, 225, 255, 0.68);
}

.flow-notes-page .site-nav__link.is-active {
  background: rgba(80, 100, 200, 0.28);
  color: rgba(245, 242, 255, 0.96);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.flow-notes-page .site-nav__link:hover:not(.is-active) {
  background: rgba(60, 80, 160, 0.18);
  color: rgba(235, 238, 255, 0.9);
}

.flow-notes-hero {
  margin-top: 1.25rem;
  padding: 1.5rem 1.25rem 1.65rem;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(18, 24, 58, 0.72), rgba(10, 14, 38, 0.85));
  border: 1px solid rgba(100, 130, 220, 0.18);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.flow-notes-hero__eyebrow {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(160, 180, 255, 0.78);
}

.flow-notes-hero__title {
  margin: 0 0 0.85rem;
  font-size: clamp(1.75rem, 5vw, 2.1rem);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: rgba(248, 246, 255, 0.98);
}

.flow-notes-hero__lead {
  margin: 0 0 1.1rem;
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(225, 228, 255, 0.9);
}

.flow-notes-hero__lead strong {
  color: rgba(200, 215, 255, 0.98);
  font-weight: 600;
}

.flow-notes-hero__points {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.flow-notes-hero__points li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  font-size: 0.86rem;
  line-height: 1.55;
  color: rgba(200, 208, 240, 0.82);
}

.flow-notes-hero__tag {
  flex-shrink: 0;
  padding: 0.12rem 0.45rem;
  border-radius: 6px;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(60, 80, 160, 0.25);
  color: rgba(180, 200, 255, 0.88);
}

.flow-notes-hero__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.flow-notes-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 44px;
  padding: 0.6rem 1.1rem;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid rgba(120, 150, 230, 0.28);
  color: rgba(245, 242, 255, 0.95);
  transition: background 0.15s ease, border-color 0.15s ease;
}

.flow-notes-btn--primary {
  background: linear-gradient(135deg, rgba(70, 90, 200, 0.55), rgba(50, 70, 160, 0.48));
  border-color: rgba(130, 160, 255, 0.35);
}

.flow-notes-btn--primary:hover {
  background: linear-gradient(135deg, rgba(85, 105, 215, 0.62), rgba(60, 80, 175, 0.55));
}

.flow-notes-btn--ghost {
  background: rgba(255, 255, 255, 0.04);
}

.flow-notes-btn--ghost:hover {
  background: rgba(60, 80, 160, 0.15);
  border-color: rgba(120, 150, 230, 0.38);
}

.flow-notes-main {
  margin-top: 2rem;
}

.flow-notes-section {
  margin-bottom: 2.25rem;
}

.flow-notes-section__title {
  margin: 0 0 0.35rem;
  font-size: 1.08rem;
  font-weight: 500;
  line-height: 1.35;
  color: rgba(245, 242, 255, 0.96);
}

.flow-notes-section__hint {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(170, 185, 230, 0.72);
}

.flow-notes-cards {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.flow-note-card {
  display: block;
  position: relative;
  padding: 0.95rem 1.05rem 0.95rem 1.1rem;
  border-radius: 14px;
  background: rgba(14, 18, 48, 0.55);
  border: 1px solid rgba(90, 120, 200, 0.16);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}

.flow-note-card:hover {
  background: rgba(20, 28, 62, 0.72);
  border-color: rgba(110, 140, 230, 0.28);
}

.flow-note-card:active {
  transform: scale(0.995);
}

.flow-note-card__badge {
  display: inline-block;
  margin-bottom: 0;
  padding: 0.15rem 0.5rem;
  border-radius: 6px;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(60, 80, 170, 0.3);
  color: rgba(180, 200, 255, 0.9);
}

.flow-note-card__title {
  display: block;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(245, 242, 255, 0.96);
}

.flow-note-card__meta {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: rgba(160, 175, 220, 0.75);
}

.flow-note-card__excerpt {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.84rem;
  line-height: 1.65;
  color: rgba(195, 205, 240, 0.78);
}

.flow-note-card__arrow {
  display: block;
  margin-top: 0.55rem;
  font-size: 0.76rem;
  font-weight: 500;
  color: rgba(150, 175, 255, 0.82);
}

.flow-notes-empty {
  margin: 0;
  padding: 1.25rem 1rem;
  border-radius: 12px;
  font-size: 0.88rem;
  line-height: 1.65;
  text-align: center;
  color: rgba(170, 185, 230, 0.65);
  background: rgba(12, 16, 40, 0.4);
  border: 1px dashed rgba(90, 120, 200, 0.18);
}

.flow-notes-admin {
  margin-top: 2.5rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  font-size: 0.82rem;
  line-height: 1.65;
  color: rgba(160, 175, 220, 0.7);
  background: rgba(8, 12, 32, 0.5);
  border: 1px solid rgba(70, 90, 160, 0.12);
}

.flow-notes-admin summary {
  cursor: pointer;
  font-weight: 500;
  color: rgba(180, 195, 240, 0.8);
}

.flow-notes-admin p {
  margin: 0.65rem 0 0;
}

.flow-notes-admin code {
  font-size: 0.78rem;
  color: rgba(190, 205, 255, 0.85);
}

.flow-notes-foot {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(80, 100, 180, 0.12);
}

.flow-notes-foot p {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.65;
  color: rgba(150, 165, 210, 0.6);
  text-align: center;
}

@media (min-width: 480px) {
  .flow-notes-shell {
    padding: 1.25rem 1.5rem 3.5rem;
  }

  .flow-notes-hero {
    padding: 1.75rem 1.5rem 1.85rem;
  }
}

/* Bilingual pairs · 默认仅中文，English 模式仅英文 */
.i18n-pair__primary,
.ui-locale-zh-only {
  display: inline;
}

.i18n-pair__primary {
  display: block;
}

.i18n-pair__secondary,
.ui-locale-en-only {
  display: none;
}

.site-nav__en,
.calendar-mode__en,
.dashboard-top__title-en,
.dashboard-top__status--en,
.flow-notes-hero__tag--en,
.month-nav__title-en,
.month-grid__head-en,
.liuyue-fold__close-en,
.chat-topic-chip__en {
  display: none;
}

.chat-prompt-chip__label--en,
.chat-prompt-chip__line--en {
  display: none;
}

html.ui-locale-en .i18n-pair__primary {
  display: none !important;
}

html.ui-locale-en .i18n-pair__secondary {
  display: block;
  margin-top: 0;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: none;
  opacity: 1;
}

html.ui-locale-en .ui-locale-en-only {
  display: inline;
}

html.ui-locale-en .flow-note-card__badge .i18n-pair__secondary {
  display: inline;
  margin-top: 0;
  font-size: inherit;
}

html.ui-locale-en .site-nav__zh,
html.ui-locale-en .calendar-mode__zh,
html.ui-locale-en .dashboard-top__title-zh,
html.ui-locale-en .dashboard-top__status--zh,
html.ui-locale-en .flow-notes-hero__tag--zh,
html.ui-locale-en .month-nav__title-zh,
html.ui-locale-en .month-grid__head-zh,
html.ui-locale-en .liuyue-fold__close-zh,
html.ui-locale-en .chat-topic-chip__zh,
html.ui-locale-en .chat-prompt-chip__label--zh,
html.ui-locale-en .chat-prompt-chip__line--zh,
html.ui-locale-en .ui-locale-zh-only {
  display: none !important;
}

html.ui-locale-en .site-nav__en,
html.ui-locale-en .calendar-mode__en,
html.ui-locale-en .dashboard-top__title-en,
html.ui-locale-en .dashboard-top__status--en,
html.ui-locale-en .flow-notes-hero__tag--en,
html.ui-locale-en .month-nav__title-en,
html.ui-locale-en .month-grid__head-en,
html.ui-locale-en .liuyue-fold__close-en,
html.ui-locale-en .chat-topic-chip__en {
  display: block;
}

html.ui-locale-en .chat-topic-chip__en {
  display: inline;
}

html.ui-locale-en .chat-prompt-chip__label--en,
html.ui-locale-en .chat-prompt-chip__line--en {
  display: block;
}

html.ui-locale-en .site-nav__en,
html.ui-locale-en .calendar-mode__en {
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 1;
  line-height: 1.25;
}

html.ui-locale-en .dashboard-top__title-en {
  font-size: 1.05rem;
  font-weight: 600;
}

html.ui-locale-en .site-nav__link {
  flex-direction: column;
  align-items: center;
}

html.ui-locale-en .calendar-mode__btn {
  flex-direction: column;
  align-items: center;
}

.flow-note-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.4rem;
}

.flow-note-card__badge--alt {
  background: rgba(40, 55, 100, 0.35);
  color: rgba(150, 170, 230, 0.75);
}

.flow-note-card__title .i18n-pair__secondary,
.flow-note-card__meta .i18n-pair__secondary,
.flow-note-card__excerpt .i18n-pair__secondary {
  margin-top: 0.15rem;
  font-size: 0.88em;
}

.flow-notes-btn .i18n-pair__secondary {
  font-size: inherit;
  font-weight: inherit;
  opacity: 1;
}

html.ui-locale-en .flow-notes-admin summary .i18n-pair__secondary {
  display: inline;
  margin-left: 0;
  font-size: inherit;
}

/* Site-wide language switch · 全站语言切换 */
.almanac__l1-note {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  color: var(--text-muted, #8a8f98);
  opacity: 0.92;
}

html.ui-locale-en .almanac__l1-note {
  display: none;
}

/* Day Drawer EN · hide bagua coords & untranslated arch chrome */
html.ui-locale-en .day-drawer-board .day-board-cell__coord {
  display: none;
}

html.ui-locale-en .day-drawer-board__overlay-body .almanac__fold {
  display: none;
}

/* Site-wide language switch · 全站语言切换（右侧固定标签） */
.site-locale-bar {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 10050;
  transform: translateY(-50%);
  padding-right: max(env(safe-area-inset-right, 0px), 0);
  pointer-events: none;
}

.site-locale-switch {
  display: flex;
  flex-direction: column;
  pointer-events: auto;
  border-radius: 14px 0 0 14px;
  overflow: hidden;
  border: 2px solid rgba(160, 140, 255, 0.45);
  border-right: none;
  box-shadow: -6px 0 28px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.site-locale-bar__link {
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  min-height: 56px;
  padding: 0.5rem 0.65rem;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: rgba(235, 230, 255, 0.88);
  background: rgba(12, 10, 28, 0.92);
  transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.site-locale-switch__tab + .site-locale-switch__tab {
  border-top: 1px solid rgba(160, 140, 255, 0.22);
}

.site-locale-switch__tab:not(.is-active):hover {
  background: rgba(50, 40, 95, 0.96);
  color: #fff;
}

.site-locale-switch__tab.is-active {
  color: #fff;
  background: linear-gradient(
    165deg,
    var(--btn-primary-top, rgba(124, 112, 255, 0.96)) 0%,
    var(--btn-primary-bottom, rgba(79, 70, 229, 0.96)) 100%
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  cursor: default;
}

.site-locale-switch__tab:not(.is-active):active {
  transform: scale(0.97);
}

body.chat-play-body .site-locale-switch {
  border-color: rgba(255, 160, 200, 0.55);
  box-shadow: -4px 0 20px rgba(120, 80, 140, 0.18);
}

body.chat-play-body .site-locale-bar__link {
  color: rgba(70, 45, 95, 0.92);
  background: rgba(255, 255, 255, 0.96);
}

body.chat-play-body .site-locale-switch__tab + .site-locale-switch__tab {
  border-top-color: rgba(255, 160, 200, 0.35);
}

body.chat-play-body .site-locale-switch__tab:not(.is-active):hover {
  background: #fff;
  color: rgba(60, 35, 85, 0.98);
}

body.chat-play-body .site-locale-switch__tab.is-active {
  color: #fff;
  background: linear-gradient(165deg, #e879a8 0%, #c026d3 100%);
}

@media (max-width: 720px) {
  .site-locale-bar {
    top: auto;
    bottom: max(env(safe-area-inset-bottom, 0px), 1rem);
    right: max(env(safe-area-inset-right, 0px), 0.65rem);
    transform: none;
  }

  .site-locale-switch {
    flex-direction: row;
    border-radius: 999px;
    border: 2px solid rgba(160, 140, 255, 0.45);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
  }

  .site-locale-switch__tab + .site-locale-switch__tab {
    border-top: none;
    border-left: 1px solid rgba(160, 140, 255, 0.22);
  }

  .site-locale-bar__link {
    min-width: 64px;
    min-height: 44px;
    font-size: 0.88rem;
  }
}

/* ── join.html · 账户开通 ¥365 ── */
.join-page {
  max-width: 48rem;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 2.5rem;
}

@media (min-width: 480px) {
  .join-page {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.join-hero {
  margin-bottom: 1.75rem;
}

.join-hero__lead {
  margin-bottom: 0.35rem;
}

.join-hero__resonant {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(180, 210, 255, 0.88);
  letter-spacing: 0.02em;
}

.join-hero__price {
  margin: 0 0 1rem;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.1;
  color: rgba(235, 220, 255, 0.98);
}

.join-hero__price span {
  margin-left: 0.35rem;
  font-size: 0.9rem;
  font-weight: 500;
  opacity: 0.72;
}

.join-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 0.25rem;
}

.join-checkout {
  padding: 1.6rem 1.45rem 1.7rem;
  margin-top: 1.5rem;
  border-radius: 14px;
  border: 1px solid rgba(160, 140, 255, 0.35);
  background: linear-gradient(165deg, rgba(45, 32, 90, 0.45), rgba(18, 14, 36, 0.75));
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
  scroll-margin-top: 1.25rem;
}

.join-checkout__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.65;
}

.join-checkout__title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 500;
}

.join-checkout__price {
  margin: 0 0 0.35rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.65rem;
}

.join-checkout__price--intl {
  margin-bottom: 0.55rem;
}

.join-checkout__price-main {
  font-size: 2rem;
  font-weight: 600;
  color: rgba(235, 220, 255, 0.98);
  line-height: 1.1;
}

.join-checkout__price-main--secondary {
  font-size: 1.45rem;
  font-weight: 550;
  color: rgba(210, 200, 235, 0.88);
}

.join-checkout__price-alt {
  font-size: 0.88rem;
  opacity: 0.72;
}

.join-checkout__price-period {
  font-size: 0.95rem;
  font-weight: 500;
  opacity: 0.78;
  margin-left: 0.1rem;
}

.join-checkout__fee-note {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(190, 210, 245, 0.88);
  max-width: 38rem;
}

.join-checkout__value {
  margin: 0 0 0.45rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: rgba(200, 225, 255, 0.9);
}

.join-checkout__summary {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: rgba(175, 195, 235, 0.82);
}

.join-checkout__brand {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(190, 215, 255, 0.88);
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid rgba(140, 180, 255, 0.22);
  background: rgba(15, 22, 40, 0.35);
}

.join-checkout__archive {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(140, 180, 255, 0.28);
  background: rgba(20, 28, 48, 0.45);
}

.join-checkout__archive-title {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(220, 235, 255, 0.95);
}

.join-checkout__archive-list {
  margin: 0 0 0.45rem;
  padding-left: 1.05rem;
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(205, 220, 250, 0.9);
}

.join-checkout__archive-scope,
.join-checkout__archive-note {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.5;
  color: rgba(165, 190, 230, 0.82);
}

.join-checkout__archive-note {
  margin-top: 0.35rem;
  opacity: 0.88;
}

.join-checkout__not-included {
  margin: -0.15rem 0 0.85rem;
  padding: 0.45rem 0.7rem;
  border-radius: 8px;
  border: 1px solid rgba(240, 180, 120, 0.32);
  background: rgba(40, 28, 16, 0.4);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.45;
  color: rgba(245, 220, 190, 0.95);
}

.join-checkout__perks,
.join-checkout__excludes {
  margin: 0 0 0.65rem;
  padding-left: 1.05rem;
  font-size: 0.82rem;
  line-height: 1.6;
}

.join-checkout__perks {
  color: rgba(210, 195, 240, 0.92);
}

.join-checkout__excludes {
  color: rgba(170, 160, 195, 0.75);
  font-size: 0.78rem;
}

.join-pay__steps {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(180, 170, 210, 0.85);
}

.join-merchant-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}

.join-merchant-grid--focus {
  justify-items: center;
  grid-template-columns: 1fr;
}

.join-merchant-grid--focus .join-merchant-qr {
  width: min(100%, 18rem);
}

@media (min-width: 480px) {
  .join-merchant-grid--focus:has(.join-merchant-qr ~ .join-merchant-qr) {
    grid-template-columns: 1fr 1fr;
    justify-items: stretch;
  }

  .join-merchant-grid--focus:has(.join-merchant-qr ~ .join-merchant-qr) .join-merchant-qr {
    width: auto;
  }
}

.join-merchant-qr {
  margin: 0;
  padding: 1rem 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(120, 210, 180, 0.22);
  background: rgba(8, 16, 14, 0.35);
  text-align: center;
}

.join-merchant-qr--pending {
  border-style: dashed;
  opacity: 0.85;
}

.join-merchant-qr__img {
  display: block;
  width: min(200px, 72vw);
  height: auto;
  aspect-ratio: 1;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 10px;
  background: #fff;
  object-fit: contain;
}

.join-merchant-qr__link {
  display: inline-block;
}

.join-merchant-qr__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 168px;
  height: 168px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 10px;
  border: 1px dashed rgba(160, 140, 255, 0.35);
  color: rgba(200, 190, 230, 0.55);
  font-size: 0.78rem;
}

.join-merchant-qr__cap {
  margin-top: 0.55rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.78rem;
  color: rgba(200, 220, 210, 0.9);
}

.join-merchant-qr__cap strong {
  font-weight: 600;
}

.join-claim {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(120, 210, 180, 0.18);
}

.join-claim__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
}

.join-claim__lead {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(190, 200, 230, 0.86);
}

.join-claim__toggle {
  width: 100%;
  margin-bottom: 0.85rem;
}

.join-claim__panel[hidden] {
  display: none;
}

.join-claim__fallback {
  margin: 0.75rem 0 0;
  font-size: 0.76rem;
  line-height: 1.5;
  color: rgba(170, 185, 220, 0.78);
}

.join-claim__form {
  margin-top: 0.25rem;
}

.join-claim__honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.join-pay-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
  margin: 1.15rem 0 1rem;
}

.join-pay-tabs__btn {
  appearance: none;
  border: 1px solid rgba(160, 140, 255, 0.28);
  background: rgba(12, 10, 28, 0.45);
  color: rgba(210, 200, 235, 0.88);
  border-radius: 12px;
  padding: 0.7rem 0.65rem;
  font: inherit;
  font-size: 0.88rem;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.join-pay-tabs__btn.is-active {
  border-color: rgba(120, 210, 180, 0.45);
  background: linear-gradient(160deg, rgba(24, 56, 46, 0.55), rgba(16, 14, 36, 0.5));
  color: rgba(235, 245, 235, 0.98);
}

.join-pay-tabs__panels {
  margin-bottom: 0.35rem;
}

.join-tab-panel__lead {
  margin: 0 0 1rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: rgba(200, 215, 240, 0.9);
}

.join-checkout__includes {
  margin-top: 1.25rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(160, 140, 255, 0.18);
}

.join-checkout__includes > summary {
  cursor: pointer;
  font-size: 0.88rem;
  color: rgba(210, 200, 240, 0.92);
  list-style: none;
}

.join-checkout__includes > summary::-webkit-details-marker {
  display: none;
}

.join-checkout__includes > summary::after {
  content: ' ▾';
  opacity: 0.55;
}

.join-checkout__includes[open] > summary {
  margin-bottom: 0.75rem;
}

.join-scope__summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.85rem;
  margin-bottom: 0;
}

.join-scope__summary::-webkit-details-marker {
  display: none;
}

.join-scope__summary-title {
  font-size: 1.05rem;
  font-weight: 500;
}

.join-scope__summary-hint {
  font-size: 0.78rem;
  opacity: 0.65;
}

.join-section--scope:not([open]) {
  padding-bottom: 0.25rem;
}

.join-section--scope[open] .join-scope__summary {
  margin-bottom: 0.85rem;
}

.join-pay {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.join-pay__btn-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.join-pay__btn {
  width: 100%;
  text-align: center;
  justify-content: center;
}

.join-pay__btn--primary {
  font-size: 1rem;
  padding: 0.75rem 1.25rem;
}

.join-pay__btn--disabled {
  display: block;
  padding: 0.75rem 1.25rem;
  border-radius: 999px;
  border: 1px dashed rgba(160, 140, 255, 0.35);
  color: rgba(200, 190, 230, 0.55);
  font-size: 0.9rem;
  text-align: center;
}

.join-pay__btn-sub {
  font-size: 0.72rem;
  opacity: 0.65;
  padding-left: 0.35rem;
}

.join-pay__pending {
  margin: 0.75rem 0 0;
  font-size: 0.78rem;
  line-height: 1.5;
  color: rgba(220, 180, 140, 0.9);
}

.join-error {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 10px;
  border: 1px solid rgba(252, 165, 165, 0.35);
  background: rgba(80, 30, 30, 0.25);
}

.join-error__title {
  margin: 0 0 0.25rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #fca5a5;
}

.join-error__text {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(254, 202, 202, 0.95);
}

.join-section__phase {
  margin: 0 0 0.65rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: rgba(175, 205, 255, 0.9);
}

.join-section--scope {
  margin-top: 0.35rem;
  margin-bottom: 0.5rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(140, 120, 200, 0.16);
}

.join-audience {
  display: grid;
  gap: 1.15rem;
}

.join-audience__label {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 165, 230, 0.85);
}

.join-audience__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.84rem;
  line-height: 1.65;
  color: rgba(210, 195, 240, 0.9);
}

.join-audience__list--not {
  color: rgba(190, 180, 215, 0.78);
}

.join-audience__disclaimer {
  margin: 1rem 0 0;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(170, 160, 200, 0.72);
}

.join-section--consult {
  margin-top: 1.75rem;
  padding: 1.25rem 1.15rem 1.35rem;
  border-radius: 14px;
  border: 1px solid rgba(140, 120, 200, 0.22);
  background: rgba(16, 12, 32, 0.35);
  scroll-margin-top: 1.25rem;
}

.join-wechat {
  display: flex;
  flex-wrap: wrap;
  gap: 1.15rem;
  align-items: flex-start;
}

.join-wechat__figure {
  margin: 0;
  text-align: center;
}

.join-wechat__qr {
  display: block;
  width: min(200px, 56vw);
  height: auto;
  aspect-ratio: 1;
  border-radius: 12px;
  background: #fff;
  padding: 0.4rem;
}

.join-wechat__cap {
  margin-top: 0.45rem;
  font-size: 0.78rem;
  color: rgba(200, 190, 230, 0.85);
}

.join-wechat__offers {
  margin: 0 0 0.85rem;
  padding-left: 1.15rem;
  font-size: 0.88rem;
  line-height: 1.6;
  color: rgba(215, 205, 240, 0.92);
}

.join-wechat__offers li {
  margin-bottom: 0.35rem;
}

.join-wechat__boundary {
  margin: 0 0 1rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  border: 1px solid rgba(240, 180, 120, 0.28);
  background: rgba(40, 28, 16, 0.35);
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(235, 210, 180, 0.92);
}

.join-wechat__more {
  display: inline-block;
  margin-left: 0.35rem;
  color: rgba(220, 200, 255, 0.95);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* ── custom.html · 私人定制说明 ── */
.custom-page__hero {
  margin-bottom: 1.25rem;
}

.custom-panel {
  margin: 0 0 1rem;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 14px;
  border: 1px solid rgba(160, 140, 255, 0.22);
  background: rgba(16, 12, 32, 0.4);
}

.custom-panel--sku {
  border-color: rgba(120, 210, 180, 0.32);
}

.custom-panel__price {
  margin: 0 0 0.55rem;
  font-size: 1.85rem;
  font-weight: 600;
  line-height: 1.15;
  color: rgba(235, 220, 255, 0.98);
}

.custom-panel__price span {
  margin-left: 0.35rem;
  font-size: 0.88rem;
  font-weight: 500;
  opacity: 0.72;
}

.custom-panel__sub {
  margin: 0.85rem 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 165, 230, 0.85);
}

.custom-panel__list--not {
  color: rgba(230, 185, 170, 0.9);
}

.custom-panel__title {
  margin: 0 0 0.65rem;
  font-size: 1.02rem;
  font-weight: 500;
}

.custom-panel__text {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  line-height: 1.65;
  color: rgba(215, 205, 240, 0.92);
}

.custom-panel__text--muted {
  color: rgba(175, 185, 220, 0.8);
  font-size: 0.82rem;
}

.custom-panel__list {
  margin: 0 0 0.65rem;
  padding-left: 1.15rem;
  font-size: 0.86rem;
  line-height: 1.65;
  color: rgba(215, 205, 240, 0.92);
}

.custom-panel__list li {
  margin-bottom: 0.35rem;
}

.custom-panel__steps {
  margin: 0 0 0.85rem;
  padding-left: 1.2rem;
  font-size: 0.86rem;
  line-height: 1.65;
  color: rgba(215, 205, 240, 0.92);
}

.custom-panel__steps li {
  margin-bottom: 0.65rem;
}

.custom-fit {
  display: grid;
  gap: 1rem;
}

@media (min-width: 560px) {
  .custom-fit {
    grid-template-columns: 1fr 1fr;
  }
}

.custom-fit__label {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 165, 230, 0.85);
}

.custom-fit__col--not .custom-fit__label {
  color: rgba(230, 170, 150, 0.88);
}

.custom-page__qr {
  margin: 0.85rem 0 1rem;
}

.custom-inline-contact {
  margin: 0.85rem 0 1.1rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(160, 140, 255, 0.22);
  background: rgba(12, 10, 28, 0.45);
}

.custom-inline-contact__line {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
}

.custom-page__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.join-wechat__id {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}

/* Contact email · mailto — light text + gradient underline (readable on dark) */
a.contact-mail {
  display: inline-block;
  font-weight: 700;
  letter-spacing: 0.015em;
  line-height: 1.35;
  text-decoration: none;
  color: #f4efff;
  -webkit-text-fill-color: #f4efff;
  background-image: linear-gradient(
    90deg,
    #ffffff 0%,
    #d9c8ff 45%,
    #9ae8ff 100%
  );
  background-size: 100% 2px;
  background-repeat: no-repeat;
  background-position: 0 100%;
  padding-bottom: 0.12em;
  transition: color 0.15s ease, filter 0.15s ease, background-size 0.15s ease;
}

a.contact-mail strong {
  font-weight: 700;
  color: inherit;
  -webkit-text-fill-color: inherit;
}

a.contact-mail:hover,
a.contact-mail:focus-visible {
  color: #ffffff;
  -webkit-text-fill-color: #ffffff;
  filter: brightness(1.06);
  background-size: 100% 2.5px;
}

a.contact-mail:focus-visible {
  outline: 2px solid rgba(200, 185, 255, 0.6);
  outline-offset: 3px;
}

.join-wechat__note {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(190, 180, 220, 0.8);
}

.join-nav {
  margin-top: 1.25rem;
}

.join-boot {
  min-height: 40vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.join-tier__price-alt {
  font-size: 0.78rem;
  opacity: 0.7;
  font-weight: 400;
}

.join-tier__perks--muted {
  opacity: 0.72;
  font-size: 0.78rem;
}

/* ── 免费档 · 仅月历网格 ── */
body.is-free-tier .requires-paid {
  display: none !important;
}

/* 免费档保留「身体 / 核心」入口作为升级引导（点击由 paidAccess 跳转 join） */
body.is-free-tier .requires-paid.calendar-mode__btn--peek {
  display: inline-flex !important;
  opacity: 1;
  color: rgba(230, 235, 255, 0.88);
}

body.is-free-tier .requires-paid.rhythm-hero__card--peek {
  display: block !important;
  opacity: 0.88;
}

body.is-free-tier .requires-paid.rhythm-task-strip__item--peek {
  display: inline-flex !important;
  opacity: 0.88;
}

/* 悬浮提示 · 不占月历文档流，避免挤压网格 */
.free-tier-banner {
  position: fixed;
  z-index: 240;
  left: 50%;
  bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(22rem, calc(100vw - 1.5rem));
  margin: 0;
  padding: 0;
  pointer-events: none;
  animation: free-tier-banner-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes free-tier-banner-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(0.75rem);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

.free-tier-banner__glass {
  pointer-events: auto;
  padding: 0.85rem 1rem 0.95rem;
  border-radius: 16px;
  text-align: center;
  border: 1px solid rgba(180, 160, 255, 0.32);
  background:
    linear-gradient(145deg, rgba(52, 38, 96, 0.88), rgba(22, 18, 44, 0.92));
  box-shadow:
    0 16px 48px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset,
    0 1px 0 rgba(255, 255, 255, 0.08) inset;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.free-tier-banner__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(190, 175, 230, 0.72);
}

.free-tier-banner__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: rgba(245, 240, 255, 0.98);
  line-height: 1.35;
}

.free-tier-banner__text {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(210, 200, 235, 0.82);
}

.free-tier-banner__cta {
  display: inline-flex;
  width: 100%;
  justify-content: center;
  padding: 0.62rem 1rem;
  font-size: 0.88rem;
  border-radius: 999px;
}

body.is-free-tier.is-dashboard .next__inner--calendar {
  padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 640px) {
  .free-tier-banner {
    bottom: calc(1.35rem + env(safe-area-inset-bottom, 0px));
  }
}

.join-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.85rem;
  margin: 1.25rem 0 1.5rem;
}

.join-tier {
  padding: 1rem 1.1rem;
  border-radius: 12px;
  border: 1px solid rgba(160, 140, 255, 0.28);
  background: rgba(20, 16, 40, 0.55);
}

.join-tier--plus {
  border-color: rgba(220, 170, 255, 0.45);
  background: linear-gradient(145deg, rgba(80, 50, 140, 0.35), rgba(30, 24, 55, 0.6));
}

.join-tier__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 500;
}

.join-tier__price {
  margin: 0 0 0.65rem;
  font-size: 1.35rem;
  color: rgba(230, 210, 255, 0.95);
}

.join-tier__perks {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.82rem;
  line-height: 1.65;
  color: rgba(210, 195, 240, 0.88);
}

.join-section {
  margin: 1.75rem 0;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(140, 120, 200, 0.2);
}

.join-section--active {
  border-color: rgba(120, 200, 160, 0.35);
}

.join-section__title {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 500;
}

.join-section__lead {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.65;
  color: rgba(220, 210, 245, 0.88);
}

.join-code-form__label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.82rem;
  color: rgba(200, 190, 230, 0.85);
}

.join-code-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.join-code-form__input {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.65rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(160, 140, 255, 0.35);
  background: rgba(10, 8, 24, 0.65);
  color: rgba(245, 240, 255, 0.95);
  font-size: 0.9rem;
}

.join-code-form__input:focus {
  outline: 2px solid rgba(160, 140, 255, 0.45);
  outline-offset: 2px;
}

.join-code-form__status {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  line-height: 1.5;
}

.join-code-form__status--ok {
  color: rgba(140, 220, 170, 0.95);
}

.join-code-form__status--warn {
  color: rgba(240, 200, 120, 0.95);
}

.join-code-form__status--err {
  color: rgba(255, 150, 150, 0.95);
}

.join-pay-group {
  margin-top: 1.5rem;
  padding: 1.35rem 1.15rem;
  border-radius: 16px;
  border: 1px solid rgba(186, 160, 255, 0.18);
  background: rgba(10, 8, 24, 0.28);
}

.join-pay-group--recommended {
  border-color: rgba(120, 210, 180, 0.28);
  background: linear-gradient(160deg, rgba(20, 48, 40, 0.45), rgba(10, 8, 24, 0.3));
}

.join-pay-group--intl {
  opacity: 0.96;
}

.join-pay-group__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.join-pay-group__lead {
  margin: 0 0 0.85rem;
  color: rgba(200, 190, 230, 0.84);
  font-size: 0.82rem;
  line-height: 1.55;
}

.join-lemon-activate {
  margin-top: 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(186, 160, 255, 0.18);
  border-radius: 14px;
  background: rgba(10, 8, 24, 0.28);
}

.join-lemon-activate__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}

.join-lemon-activate__lead {
  margin: 0 0 0.75rem;
  color: rgba(200, 190, 230, 0.82);
  font-size: 0.78rem;
  line-height: 1.55;
}

.join-lemon-activate__key-label {
  margin-top: 0.75rem;
}

.join-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.me-helix-meta__kui-gang {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  line-height: 1.55;
  color: rgba(140, 190, 255, 0.88);
}

.me-helix-meta__kui-internal {
  margin: 0.45rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(160, 180, 210, 0.82);
  word-break: break-word;
}

.life-helix-3d__kui-gang-tag {
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  font-size: 0.68rem;
  letter-spacing: 0.02em;
  color: rgba(180, 220, 255, 0.95);
  background: rgba(20, 40, 80, 0.72);
  border: 1px solid rgba(80, 140, 220, 0.45);
  white-space: nowrap;
}

.me-helix-meta__pillar-activation {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.76rem;
  line-height: 1.55;
  color: rgba(150, 200, 255, 0.9);
}

.me-helix-meta__pillar-arc-hint {
  margin: 0.45rem 0 0;
  font-size: 0.74rem;
  line-height: 1.5;
  color: rgba(140, 185, 230, 0.85);
}

.me-helix-meta__pillar-arc {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  line-height: 1.45;
  color: rgba(150, 170, 200, 0.82);
  word-break: break-word;
}

/* ── Helix 本运能量运转动画条 ── */
.helix-energy-theater {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid rgba(80, 140, 200, 0.2);
  background: linear-gradient(180deg, rgba(6, 24, 48, 0.92), rgba(4, 16, 36, 0.98));
}

.helix-energy-theater__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.helix-energy-theater__caption {
  flex: 1 1 12rem;
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(200, 225, 255, 0.92);
}

.helix-energy-theater__play {
  flex: 0 0 auto;
  font-size: 0.76rem;
  padding: 0.35rem 0.75rem;
}

.helix-energy-theater__meters {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}

.helix-energy-theater__meter {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.helix-energy-theater__meter-label {
  flex: 0 0 1.1rem;
  font-size: 0.72rem;
  color: rgba(160, 190, 230, 0.85);
}

.helix-energy-theater__meter-track {
  flex: 1;
  height: 0.35rem;
  border-radius: 999px;
  background: rgba(30, 50, 80, 0.65);
  overflow: hidden;
}

.helix-energy-theater__meter-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  transition: width 0.45s ease;
}

.helix-energy-theater__meter-fill--fire {
  background: linear-gradient(90deg, #ff6622, #ffaa44);
  box-shadow: 0 0 8px rgba(255, 100, 40, 0.55);
}

.helix-energy-theater__meter-fill--clash {
  background: linear-gradient(90deg, #ff8844, #ffcc66);
  box-shadow: 0 0 6px rgba(255, 140, 60, 0.45);
}

.helix-energy-theater__meter-fill--audit {
  background: linear-gradient(90deg, #2266aa, #44aaff);
  box-shadow: 0 0 8px rgba(60, 140, 255, 0.45);
}

.helix-energy-theater__scrub-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.helix-energy-theater__year {
  font-size: 0.78rem;
  color: rgba(170, 200, 240, 0.9);
  letter-spacing: 0.03em;
}

.helix-energy-theater__scrub {
  width: 100%;
  accent-color: #44aaff;
}

.helix-energy-theater__internal {
  margin: 0.45rem 0 0;
  font-size: 0.65rem;
  line-height: 1.4;
  color: rgba(140, 165, 200, 0.75);
  word-break: break-word;
}

/* ── App Dock · 左侧文字方块（Beta） ── */
:root {
  --app-dock-width: 5.5rem;
  --app-dock-rail: 0.55rem;
}

body.has-app-dock {
  padding-left: var(--app-dock-width);
  transition: padding-left 0.22s ease;
}

body.has-app-dock.is-app-dock-collapsed {
  padding-left: var(--app-dock-rail);
}

.app-dock {
  position: fixed;
  z-index: 220;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--app-dock-width);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 0.4rem;
  border-right: 1px solid rgba(80, 160, 255, 0.22);
  backdrop-filter: blur(16px) saturate(1.35);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
  box-shadow: 4px 0 28px rgba(0, 0, 0, 0.32);
  transition: transform 0.22s ease;
  overflow: visible;
}

.app-dock.is-collapsed {
  transform: translateX(calc(var(--app-dock-rail) - var(--app-dock-width)));
}

.app-dock__expand {
  display: none;
  position: absolute;
  top: 50%;
  right: -0.35rem;
  z-index: 6;
  width: 1.55rem;
  height: 3.1rem;
  margin-top: -1.55rem;
  padding: 0;
  border: 1px solid rgba(167, 139, 250, 0.62);
  border-left: 2px solid rgba(196, 181, 253, 0.9);
  border-radius: 0 0.55rem 0.55rem 0;
  background: linear-gradient(160deg, rgba(109, 40, 217, 0.94) 0%, rgba(55, 48, 163, 0.96) 100%);
  color: #faf5ff;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow:
    2px 0 18px rgba(0, 0, 0, 0.38),
    0 0 14px rgba(139, 92, 246, 0.42);
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.app-dock__expand:hover {
  background: linear-gradient(160deg, rgba(139, 92, 246, 0.98) 0%, rgba(99, 102, 241, 0.98) 100%);
  color: #fff;
  border-color: rgba(221, 214, 254, 0.85);
  box-shadow:
    3px 0 22px rgba(0, 0, 0, 0.42),
    0 0 20px rgba(167, 139, 250, 0.55);
  transform: translateX(2px);
}

.app-dock.is-collapsed .app-dock__expand {
  display: grid;
  place-items: center;
}

.app-dock.is-collapsed::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: var(--app-dock-rail);
  height: 100%;
  background: linear-gradient(
    180deg,
    rgba(139, 92, 246, 0.28) 0%,
    rgba(139, 92, 246, 0.14) 50%,
    rgba(139, 92, 246, 0.28) 100%
  );
  border-right: 1px solid rgba(167, 139, 250, 0.5);
  pointer-events: none;
  z-index: 1;
}

.app-dock__nav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  flex: 1;
  min-height: 0;
}

.app-dock__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.2rem 0.15rem;
  border-radius: 0.65rem;
  text-decoration: none;
  color: rgba(220, 215, 245, 0.68);
  transition: background 0.15s ease, transform 0.12s ease;
}

.app-dock__item:hover {
  transform: translateX(2px);
}

.app-dock__item:hover .app-dock__tile.liuyue-pillar__body {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.28),
    0 0 20px rgba(186, 160, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.app-dock__item.is-active .app-dock__tile.liuyue-pillar__body {
  background: linear-gradient(
    165deg,
    rgba(253, 230, 138, 0.22) 0%,
    rgba(251, 191, 36, 0.1) 55%,
    rgba(255, 255, 255, 0.06) 100%
  );
  border-color: rgba(253, 230, 138, 0.42);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.26),
    0 0 0 1px rgba(251, 191, 36, 0.18),
    0 0 24px rgba(251, 191, 36, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.32);
}

.app-dock__item.is-active .app-dock__zh,
.app-dock__item.is-active .app-dock__en {
  color: #fff;
}

.app-dock__item.is-open:not(.is-active) .app-dock__tile.liuyue-pillar__body {
  border-color: rgba(186, 230, 253, 0.28);
}

.app-dock__tile.liuyue-pillar__body {
  position: relative;
  width: 3rem;
  min-height: 3.55rem;
  border-radius: 14px;
  gap: 0.18rem;
  padding: 0.32rem 0.22rem;
}

.app-dock__freq {
  display: block;
  font-size: 0.48rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  color: rgba(186, 230, 253, 0.72);
  text-transform: uppercase;
  opacity: 0.85;
}

.app-dock__freq-en {
  display: none;
}

.app-dock__zh,
.app-dock__en {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
}

.app-dock__en {
  font-size: 0.58rem;
  font-weight: 500;
  opacity: 0.82;
}

.app-dock__dot {
  position: absolute;
  left: 0.18rem;
  top: 50%;
  width: 0.22rem;
  height: 0.22rem;
  margin-top: -0.11rem;
  border-radius: 999px;
  background: rgba(120, 220, 180, 0.95);
  box-shadow: 0 0 8px rgba(120, 220, 180, 0.55);
}

.app-dock__icon.liuyue-pillar__stem {
  width: 100%;
  min-height: 1.38rem;
  font-size: clamp(0.92rem, 2.2vw, 1.05rem);
  margin: 0;
}

.app-dock__badge {
  position: absolute;
  top: 0.12rem;
  right: 0.1rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
}

.app-dock__badge.is-done {
  background: rgba(74, 222, 128, 0.95);
  border-color: rgba(187, 247, 208, 0.8);
  box-shadow: 0 0 8px rgba(74, 222, 128, 0.45);
}

.app-dock__meter {
  flex-shrink: 0;
  width: 100%;
  margin-bottom: 0.55rem;
  padding: 0.35rem 0.25rem;
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(186, 160, 255, 0.16);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.25rem 0.35rem;
  font-size: 0.52rem;
  color: rgba(200, 195, 230, 0.8);
}

.app-dock__meter-score {
  font-weight: 700;
  color: rgba(180, 230, 200, 0.95);
}

.app-dock__meter-dots {
  display: inline-flex;
  gap: 0.18rem;
}

.app-dock__meter-dot {
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.app-dock__meter-dot.is-done {
  background: rgba(74, 222, 128, 0.9);
  border-color: rgba(187, 247, 208, 0.7);
}

.app-dock__minimize {
  flex-shrink: 0;
  width: 100%;
  margin-top: 0.75rem;
  border: 1px solid rgba(186, 160, 255, 0.18);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(200, 195, 230, 0.75);
  font: inherit;
  font-size: 0.58rem;
  padding: 0.35rem 0.2rem;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.app-dock__minimize:hover {
  background: rgba(139, 92, 246, 0.2);
  color: #f5f1ff;
}

body.has-app-dock .site-nav-toolbar {
  display: none;
}

body.has-app-dock.is-dashboard .calendar-mode__secondary {
  display: none;
}

@media (max-width: 860px) {
  body.has-app-dock,
  body.has-app-dock.is-app-dock-collapsed {
    padding-left: 0;
    padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0));
  }

  .app-dock,
  .app-dock.is-collapsed {
    transform: none;
  }

  .app-dock__expand {
    display: none !important;
  }

  .app-dock {
    top: auto;
    right: 0;
    left: 0;
    bottom: 0;
    width: auto;
    height: auto;
    flex-direction: row;
    padding: 0.35rem 0.5rem calc(0.35rem + env(safe-area-inset-bottom, 0));
    border-right: none;
    border-top: 1px solid rgba(186, 160, 255, 0.14);
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.28);
  }

  .app-dock__brand,
  .app-dock__minimize {
    display: none;
  }

  .app-dock__nav {
    flex-direction: row;
    justify-content: space-around;
  }

  .app-dock__item {
    flex: 1;
    min-width: 0;
    transform: none !important;
  }

  .app-dock__tile.liuyue-pillar__body {
    width: auto;
    min-width: 2.75rem;
    min-height: 2.5rem;
  }

  .app-dock__dot {
    left: 50%;
    top: auto;
    bottom: 0.12rem;
    margin-top: 0;
    margin-left: -0.11rem;
  }

  .app-dock__meter {
    display: none;
  }

  body.has-app-dock .site-nav-toolbar {
    display: none !important;
  }
}

body.has-app-dock.is-app-dock-collapsed {
  padding-left: 0;
}

.app-dock--minimal {
  background: rgba(12, 10, 22, 0.92);
}

.app-dock--minimal .app-dock__nav {
  gap: 0.25rem;
}

.app-dock--minimal .app-dock__item {
  padding: 0.35rem 0.5rem;
  font-size: 0.75rem;
}

.me-zone4-error-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
}

.me-zone4-retry {
  appearance: none;
  border: 1px solid rgba(186, 160, 255, 0.35);
  border-radius: 0.5rem;
  background: rgba(120, 90, 200, 0.18);
  color: #f0e8ff;
  font-size: 0.85rem;
  padding: 0.4rem 0.85rem;
  cursor: pointer;
}

.me-zone4-retry:hover {
  background: rgba(140, 110, 220, 0.28);
}

html.ui-locale-en .app-dock__zh,
html.ui-locale-en .app-dock__minimize-zh,
html.ui-locale-en .app-dock__freq-zh {
  display: none !important;
}

html.ui-locale-en .app-dock__freq-en {
  display: block !important;
}

html.ui-locale-zh .app-dock__en,
html.ui-locale-zh .app-dock__minimize-en,
html.ui-locale-zh .app-dock__freq-en {
  display: none !important;
}

/* ── 月历 Hero + 今日任务条 ── */
.rhythm-hero-wrap,
.rhythm-task-strip-wrap {
  margin: 0.65rem 0 0.85rem;
}

.rhythm-hero {
  text-align: center;
  margin-bottom: 0.75rem;
}

.rhythm-hero__title {
  margin: 0 0 0.35rem;
  font-size: clamp(0.92rem, 2.2vw, 1.12rem);
  font-weight: 650;
  line-height: 1.35;
  color: rgba(235, 240, 255, 0.96);
  letter-spacing: 0.02em;
}

.rhythm-hero__title span {
  opacity: 0.55;
  font-weight: 500;
}

.rhythm-hero__lead {
  margin: 0;
  font-size: 0.68rem;
  color: rgba(165, 190, 230, 0.78);
}

.rhythm-hero__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.65rem;
}

.rhythm-hero__card {
  display: block;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  text-align: center;
}

.rhythm-hero__card:hover .liuyue-pillar__body,
.rhythm-hero__card:focus-visible .liuyue-pillar__body {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.28),
    0 0 20px rgba(186, 160, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
}

.rhythm-hero__card:hover .liuyue-pillar__stem,
.rhythm-hero__card:focus-visible .liuyue-pillar__stem {
  filter: brightness(1.06);
}

.rhythm-hero__pillar-body {
  width: 100%;
  min-height: clamp(4.5rem, 12vh, 5.75rem);
  padding: 0.45rem 0.35rem;
  gap: 0.28rem;
  border-radius: 14px;
}

.rhythm-hero__glyph.liuyue-pillar__stem {
  width: 100%;
  min-height: clamp(1.5rem, 4.5vh, 1.85rem);
  font-size: clamp(1rem, 2.4vw, 1.35rem);
}

.rhythm-hero__card-title {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(235, 245, 255, 0.94);
}

.rhythm-hero__card-desc {
  font-size: 0.58rem;
  line-height: 1.35;
  color: rgba(155, 180, 220, 0.78);
  opacity: 0.92;
}

.rhythm-task-strip__guide {
  margin: 0 0 0.45rem;
  padding: 0 0.15rem;
  font-size: 0.62rem;
  line-height: 1.45;
  color: rgba(170, 195, 235, 0.72);
  text-align: center;
}

.rhythm-task-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border-radius: 14px;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 255, 255, 0.03) 48%,
    rgba(255, 255, 255, 0.01) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.rhythm-task-strip__item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  border: 1px solid rgba(186, 160, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(220, 215, 245, 0.88);
  font: inherit;
  font-size: 0.62rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.rhythm-task-strip__item:hover {
  background: rgba(139, 92, 246, 0.2);
  border-color: rgba(200, 170, 255, 0.32);
  color: #fff;
}

.rhythm-task-strip__item.is-done {
  border-color: rgba(120, 220, 180, 0.35);
  color: rgba(180, 235, 210, 0.92);
}

.rhythm-task-strip__check {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 999px;
  border: 1.5px solid rgba(186, 160, 255, 0.45);
  flex-shrink: 0;
  position: relative;
}

.rhythm-task-strip__item.is-done .rhythm-task-strip__check {
  border-color: rgba(120, 220, 180, 0.85);
  background: rgba(120, 220, 180, 0.25);
}

.rhythm-task-strip__item.is-done .rhythm-task-strip__check::after {
  content: '';
  position: absolute;
  left: 0.22rem;
  top: 0.1rem;
  width: 0.28rem;
  height: 0.45rem;
  border: solid rgba(160, 255, 210, 0.95);
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
}

html.ui-locale-en .rhythm-task-strip__zh,
html.ui-locale-en .rhythm-task-strip__guide-zh {
  display: none;
}

html.ui-locale-zh .rhythm-task-strip__en,
html.ui-locale-zh .rhythm-task-strip__guide-en {
  display: none;
}

/* ── 核心 · 本季关键信号 ── */
.me-zone4-signal {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: 0.35rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  background: rgba(255, 90, 90, 0.12);
  border: 1px solid rgba(255, 120, 120, 0.28);
  font-size: 0.58rem;
  font-weight: 600;
  color: rgba(255, 190, 190, 0.95);
  vertical-align: middle;
}

.me-zone4-signal__dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: #ff6b6b;
  box-shadow: 0 0 8px rgba(255, 90, 90, 0.65);
  flex-shrink: 0;
}

#me-zone4-fold.has-quarter-signal > .me-dashboard__fold-summary--longterm {
  color: rgba(255, 220, 220, 0.95);
}

html.ui-locale-en .me-zone4-signal__zh {
  display: none;
}

html.ui-locale-zh .me-zone4-signal__en {
  display: none;
}

/* ── 三区方向条 ── */
.zone-breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  margin: 1rem auto 0.75rem;
  padding: 0.55rem 0.75rem;
  max-width: 36rem;
  border-radius: 999px;
  background: rgba(8, 12, 28, 0.72);
  border: 1px solid rgba(120, 160, 255, 0.16);
}

.zone-breadcrumb__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.08rem;
  padding: 0.25rem 0.55rem;
  border-radius: 0.55rem;
  text-decoration: none;
  color: rgba(175, 195, 235, 0.78);
  transition: background 0.15s ease, color 0.15s ease;
}

.zone-breadcrumb__link:hover {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(230, 238, 255, 0.95);
}

.zone-breadcrumb__link.is-current {
  background: rgba(99, 102, 241, 0.28);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(165, 180, 255, 0.22);
}

.zone-breadcrumb__main {
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.2;
}

.zone-breadcrumb__sub {
  font-size: 0.52rem;
  opacity: 0.72;
}

.zone-breadcrumb__sep {
  font-size: 0.72rem;
  opacity: 0.35;
  color: rgba(180, 200, 240, 0.7);
  user-select: none;
}

/* ── 身体 · 流月训练目标 ── */
.body-liuyue-goals {
  margin-bottom: 0.85rem;
}

.body-liuyue-goals__head {
  margin-bottom: 0.55rem;
}

.body-liuyue-goals__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  color: rgba(160, 210, 180, 0.88);
  letter-spacing: 0.04em;
}

.body-liuyue-goals__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: rgba(240, 248, 255, 0.96);
}

.body-liuyue-goals__tags {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}

.body-liuyue-goals__tag-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}

.body-liuyue-goals__tag-label {
  font-size: 0.58rem;
  font-weight: 700;
  opacity: 0.65;
  min-width: 2rem;
}

.body-liuyue-goals__tag {
  font-size: 0.58rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
}

.body-liuyue-goals__tag--focus {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(52, 211, 153, 0.28);
  color: rgba(190, 250, 220, 0.95);
}

.body-liuyue-goals__tag--avoid {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(248, 113, 113, 0.22);
  color: rgba(255, 200, 200, 0.9);
}

.body-liuyue-goals__weeks {
  list-style: none;
  margin: 0 0 0.65rem;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.body-liuyue-goals__week {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0.15rem 0.55rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.62rem;
}

.body-liuyue-goals__week.is-current {
  background: rgba(99, 102, 241, 0.14);
  border-color: rgba(129, 140, 248, 0.32);
}

.body-liuyue-goals__week-label {
  font-weight: 700;
  color: rgba(190, 210, 255, 0.9);
}

.body-liuyue-goals__week-goal {
  grid-column: 2;
  font-weight: 600;
  color: rgba(230, 238, 255, 0.92);
}

.body-liuyue-goals__week-sessions {
  grid-column: 2;
  opacity: 0.72;
}

.body-liuyue-goals__today {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.55rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(52, 211, 153, 0.22);
  font-size: 0.65rem;
}

.body-liuyue-goals__today-label {
  font-weight: 700;
  color: rgba(160, 240, 200, 0.95);
}

.body-liuyue-goals__today-text {
  color: rgba(240, 255, 250, 0.96);
}

.body-liuyue-goals__today-week {
  opacity: 0.75;
  font-size: 0.58rem;
}

@media (max-width: 860px) {
  .rhythm-hero__cards {
    grid-template-columns: 1fr;
  }

  .app-dock__meter {
    display: none;
  }

  .zone-breadcrumb {
    position: fixed;
    z-index: 215;
    left: 50%;
    bottom: calc(4.35rem + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    width: min(22rem, calc(100vw - 1rem));
    margin: 0;
    padding: 0.4rem 0.55rem;
    font-size: 0.92em;
  }

  body.has-app-dock {
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 520px) {
  .zone-breadcrumb__main { font-size: 0.6rem; }
  .zone-breadcrumb__sub { display: none; }
}

/* ── Shell 玻璃 · 色彩流动（Dock / Hero 卡片） ── */
@keyframes shell-wx-flow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes shell-glass-shimmer {
  0%, 100% { background-position: -120% 0; opacity: 0.35; }
  50% { background-position: 220% 0; opacity: 0.85; }
}

.shell-glass-tile {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.shell-glass-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(
    105deg,
    transparent 0%,
    rgba(255, 255, 255, 0.03) 35%,
    rgba(186, 230, 253, 0.14) 48%,
    rgba(255, 255, 255, 0.08) 58%,
    transparent 72%
  );
  background-size: 220% 100%;
  animation: shell-glass-shimmer 7s ease-in-out infinite;
}

.shell-glass-glyph.liuyue-pillar__wx--水 {
  background: linear-gradient(
    135deg,
    rgba(186, 230, 253, 0.72) 0%,
    rgba(56, 189, 248, 0.38) 38%,
    rgba(125, 211, 252, 0.52) 62%,
    rgba(186, 230, 253, 0.65) 100%
  ) !important;
  background-size: 240% 240% !important;
  animation: shell-wx-flow 9s ease-in-out infinite;
}

.shell-glass-glyph.liuyue-pillar__wx--木 {
  background: linear-gradient(
    135deg,
    rgba(187, 247, 208, 0.7) 0%,
    rgba(52, 211, 153, 0.36) 40%,
    rgba(110, 231, 183, 0.48) 65%,
    rgba(167, 243, 208, 0.62) 100%
  ) !important;
  background-size: 240% 240% !important;
  animation: shell-wx-flow 10s ease-in-out infinite;
}

.shell-glass-glyph.liuyue-pillar__wx--土 {
  background: linear-gradient(
    135deg,
    rgba(253, 230, 138, 0.68) 0%,
    rgba(212, 165, 116, 0.38) 42%,
    rgba(250, 204, 21, 0.45) 68%,
    rgba(232, 196, 140, 0.6) 100%
  ) !important;
  background-size: 240% 240% !important;
  animation: shell-wx-flow 11s ease-in-out infinite;
}

.shell-glass-glyph.liuyue-pillar__wx--金 {
  background: linear-gradient(
    135deg,
    rgba(254, 249, 195, 0.7) 0%,
    rgba(250, 204, 21, 0.4) 40%,
    rgba(253, 230, 138, 0.5) 65%,
    rgba(254, 240, 138, 0.62) 100%
  ) !important;
  background-size: 240% 240% !important;
  animation: shell-wx-flow 12s ease-in-out infinite;
}

.app-dock {
  background: linear-gradient(
    168deg,
    rgba(10, 28, 62, 0.94) 0%,
    rgba(6, 16, 42, 0.96) 45%,
    rgba(12, 32, 72, 0.92) 100%
  );
}

.app-dock::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(56, 189, 248, 0.08) 0%,
    transparent 35%,
    rgba(139, 92, 246, 0.06) 70%,
    transparent 100%
  );
  animation: shell-wx-flow 16s ease-in-out infinite;
  background-size: 100% 220%;
}

.shell-glass-tile > * {
  position: relative;
  z-index: 1;
}

.app-dock__meter,
.app-dock__nav,
.app-dock__minimize {
  position: relative;
  z-index: 1;
}

.app-dock__expand {
  position: absolute;
  z-index: 6;
}

@media (prefers-reduced-motion: reduce) {
  .shell-glass-tile::after,
  .shell-glass-glyph,
  .app-dock::before {
    animation: none !important;
  }
}

/* ── 身体页 · 积累感 + 保存反馈 ── */
.body-accum {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin-bottom: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: rgba(120, 90, 200, 0.08);
  border: 1px solid rgba(186, 160, 255, 0.14);
}

.body-accum__streak {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.body-accum__ring {
  --ring-pct: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(
    rgba(167, 139, 250, 0.85) calc(var(--ring-pct) * 1%),
    rgba(186, 160, 255, 0.12) 0
  );
}

.body-accum__ring-num {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.95rem;
  font-weight: 700;
  background: rgba(12, 10, 22, 0.92);
  color: #f0e8ff;
}

.body-accum__streak-label {
  margin: 0;
  font-size: 0.82rem;
  color: #d8ccf5;
}

.body-accum__month {
  margin: 0;
  flex: 1;
  min-width: 12rem;
  font-size: 0.8rem;
  color: #b8a8e8;
  line-height: 1.45;
}

.body-save-feedback {
  margin: 0 0 0.65rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.82rem;
  color: #e8deff;
  background: rgba(120, 90, 200, 0.16);
  border: 1px solid rgba(186, 160, 255, 0.2);
  animation: journal-save-toast-in 0.28s ease both;
}

.body-save-feedback--out {
  opacity: 0;
  transition: opacity 0.28s ease;
}

.decision-capture__total {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  color: #b8a8e8;
}

.app-dock__guide {
  position: absolute;
  top: 0.45rem;
  right: 0.45rem;
  width: 1.35rem;
  height: 1.35rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  color: #e8deff;
  border: 1px solid rgba(186, 160, 255, 0.28);
  background: rgba(80, 60, 140, 0.35);
}

.app-dock__guide:hover {
  background: rgba(120, 90, 200, 0.45);
}

.month-rhythm-summary {
  margin: 0.75rem 0 1rem;
  padding: 0.85rem 1rem;
}

.month-rhythm-summary__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  color: #b8a8e8;
}

.month-rhythm-summary__title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}

.month-rhythm-summary__line {
  margin: 0.2rem 0;
  font-size: 0.82rem;
  color: #d8ccf5;
}

.month-rhythm-summary__highlights {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
  color: #c4b5f0;
}

.rhythm-milestone-toast {
  position: fixed;
  left: 50%;
  bottom: calc(5.5rem + env(safe-area-inset-bottom, 0));
  transform: translateX(-50%) translateY(0.5rem);
  z-index: 120;
  padding: 0.55rem 0.9rem;
  border-radius: 0.6rem;
  background: rgba(30, 20, 55, 0.94);
  border: 1px solid rgba(186, 160, 255, 0.3);
  color: #f0e8ff;
  font-size: 0.85rem;
  opacity: 0;
  transition: opacity 0.28s ease, transform 0.28s ease;
}

.rhythm-milestone-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

@media (max-width: 860px) {
  .app-dock__guide {
    top: auto;
    bottom: calc(100% + 0.35rem);
    right: 0.5rem;
  }
}

