.liuren-diagram { margin: 20px 0 24px; padding: 20px 14px 16px; border: 1px solid #e4d9f3; border-radius: 20px; background: linear-gradient(155deg,#fff 15%,#f6f2fc 100%); color: #30243f; }
.liuren-diagram-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 0 4px; }
.liuren-diagram-heading h3 { margin: 0; font-size: 18px; font-weight: 600; }
.liuren-diagram-heading > span { color: #78658d; font-size: 11px; }
.liuren-diagram-board { position: relative; width: 100%; max-width: 420px; aspect-ratio: 1; margin: 12px auto; isolation: isolate; }
.liuren-diagram-orbit { position: absolute; inset: 14%; border: 1px solid #e4d9f3; border-radius: 50%; }
.liuren-diagram-orbit::after { content: ''; position: absolute; inset: 15%; border: 1px dashed #e4d9f3; border-radius: 50%; }
.liuren-diagram-edge { position: absolute; height: 1px; color: #d9cbed; transform-origin: left center; }
.liuren-diagram-node { position: absolute; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; box-sizing: border-box; width: 26%; height: 22%; margin: 0; padding: 4px 0; transform: translate(-50%,-50%); border: 1px solid var(--element-border,#e4d9f3); border-radius: 16px; background: var(--element-soft,#fff); color: #78658d; cursor: pointer; line-height: 1.3; }
.liuren-diagram-element { padding: 0 6px; border-radius: 6px; background: var(--element-soft,transparent); color: var(--element-ink,#78658d); font-size: 10px; }
.liuren-diagram-palace { color: var(--element-ink,#51405f); font-family: 'Songti SC','STSong',serif; font-size: clamp(18px,5.2vw,25px); font-weight: 600; letter-spacing: 2px; }
.liuren-diagram-role { min-height: 14px; font-size: 10px; white-space: nowrap; }
.liuren-diagram-node.is-stage { border-color: var(--element-border,#bea4df); background: var(--element-soft,#f5effd); color: #673acb; box-shadow: inset 0 -2px 0 #cbb7e3; }
.liuren-diagram-node.is-final { border-color: #673acb; background: #673acb; color: #f4eaff; box-shadow: 0 5px 15px #673acb26; }
.liuren-diagram-node.is-final .liuren-diagram-palace { color: #fff; }
.liuren-diagram-node[aria-pressed="true"] { outline: 2px solid #a58bc7; outline-offset: 3px; }
.liuren-diagram-center { position: absolute; top: 50%; left: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 32%; height: 32%; transform: translate(-50%,-50%); border: 1px solid #e4d9f3; border-radius: 50%; background: #faf7fe; text-align: center; }
.liuren-diagram-center-label { color: #78658d; font-size: 10px; letter-spacing: 2px; }
.liuren-diagram-final-name { color: #673acb; font-family: 'Songti SC','STSong',serif; font-size: clamp(22px,6vw,30px); font-weight: 600; letter-spacing: 3px; }
.liuren-diagram-relation { color: #78658d; font-size: 11px; }
.liuren-diagram-journey { display: flex; align-items: center; gap: 6px; }
.liuren-diagram-step { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; align-items: center; padding: 10px 3px; border: 1px solid #e4d9f3; border-radius: 12px; background: #fff; color: #51405f; line-height: 1.5; }
.liuren-diagram-step span { color: #78658d; font-size: 11px; }
.liuren-diagram-step strong { font-size: 15px; font-weight: 600; }
.liuren-diagram-step.is-final { border-color: #bea4df; background: #f0e7fb; color: #673acb; }
.liuren-diagram-arrow { color: #a58bc7; font-size: 15px; }
.liuren-diagram-overview { margin: 16px 4px; font-size: 14px; line-height: 1.85; }
.liuren-diagram-detail { padding: 14px 4px 0; border-top: 1px solid #e4d9f3; }
.liuren-diagram-detail h4 { margin: 0 0 5px; color: #673acb; font-size: 15px; font-weight: 600; }
.liuren-diagram-status { color: #78658d; font-size: 11px; }
.liuren-diagram-detail p { margin: 9px 0 0; font-size: 13px; line-height: 1.85; }
.liuren-diagram-caption { margin: 14px 4px 0; color: #78658d; font-size: 11px; line-height: 1.7; }
.liuren-diagram-node:focus-visible,.liuren-diagram-step:focus-visible { outline: 2px solid #673acb; outline-offset: 4px; }
