/*
 * 修炼主页视觉冻结层。
 * 以下两段直接复用 cultivation.html 的成品 CSS 与 mission-refinement.css，
 * 通过 @scope 只作用于正式项目的修炼主页。
 */
.app.app--sect:has(#view-identity-select.active) { gap: 0 !important; padding: 0 !important; }
#view-identity-select.view-path.active { width: 100%; max-width: none; height: 100dvh; margin: 0; overflow: hidden; }
#view-identity-select #sect-hub-root {
  --ink: #17347a; --ink-soft: #5f70a9; --violet: #6e45df; --violet-deep: #4d25c3;
  --line: rgba(255,255,255,.86); --glass-a: rgba(255,255,255,.38); --glass-b: rgba(240,244,255,.19);
  position: relative !important; isolation: isolate; width: 100% !important; min-width: 1180px;
  height: 100dvh !important; min-height: 100dvh !important; margin: 0 !important; overflow: hidden !important;
  color: var(--ink); background: #e9efff; font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  font-synthesis: none; text-rendering: optimizeLegibility;
}

/* 正式项目旧修炼样式使用了 !important；以下只负责隔离这些旧规则。 */
#view-identity-select #sect-hub-root,
#view-identity-select #sect-hub-root *:not(svg):not(path):not(g):not(circle):not(rect):not(line) {
  font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif !important;
}
#view-identity-select #sect-hub-root { font-size: 16px !important; font-weight: 400 !important; line-height: normal !important; letter-spacing: normal !important; }
#view-identity-select #sect-hub-root .mission-panel h1 { font-family: KaiTi, STKaiti, "Noto Serif SC", serif !important; }
#view-identity-select #sect-hub-root .mission-metadata { font-family: "Microsoft YaHei", sans-serif !important; }
#view-identity-select #sect-hub-root .primary {
  color: #fff !important;
  font-size: clamp(18px, 2.34vh, 25px) !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
}
#view-identity-select #sect-hub-root .secondary { color: #365594 !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: .04em !important; }
#view-identity-select #sect-hub-root .realm-pill { color: #6041d4 !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: .08em !important; }

#view-identity-select #sect-hub-root .identity-panel {
  width: 100% !important;
  height: clamp(420px, 59.9vh, 647px) !important;
  min-height: 0 !important;
  padding: clamp(12px, 1.8vh, 20px) 14px clamp(12px, 1.6vh, 18px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  overflow: visible !important;
}
#view-identity-select #sect-hub-root .avatar-ring {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: clamp(92px, 11.5vh, 128px) !important;
  height: clamp(92px, 11.5vh, 128px) !important;
  margin: clamp(6px, 1.1vh, 12px) auto clamp(4px, 0.7vh, 8px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: visible !important;
  transform: none !important;
}
#view-identity-select #sect-hub-root .stats-grid {
  flex: 1 1 auto !important;
  width: calc(100% - 4px) !important;
  margin: clamp(8px, 1.2vh, 12px) auto 0 !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: 1fr 1fr !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
#view-identity-select #sect-hub-root .stats-grid button,
#view-identity-select #sect-hub-root .stats-grid .stats-cell {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: clamp(64px, 8.2vh, 92px) !important;
  padding: clamp(10px, 1.5vh, 16px) 4px !important;
  box-sizing: border-box !important;
  cursor: default !important;
  pointer-events: none !important;
  user-select: none !important;
}
#view-identity-select #sect-hub-root .stats-grid strong {
  margin-top: 4px !important;
  line-height: 1.1 !important;
  font-size: clamp(20px, 2.5vh, 28px) !important;
}
#view-identity-select #sect-hub-root .stats-grid span {
  font-size: clamp(12px, 1.45vh, 14px) !important;
}
#view-identity-select #sect-hub-root .identity-actions {
  width: 100% !important;
  flex: 0 0 auto !important;
  margin-top: clamp(10px, 1.5vh, 14px) !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  position: relative !important;
  z-index: 3 !important;
  pointer-events: auto !important;
}
#view-identity-select #sect-hub-root .identity-assets-foot {
  flex: 0 0 auto !important;
  width: 100% !important;
  margin: 0 !important;
  min-height: clamp(52px, 7.2vh, 78px) !important;
  height: auto !important;
  padding: clamp(12px, 1.9vh, 20px) 14px !important;
  font-size: clamp(14px, 1.75vh, 17px) !important;
  border-radius: 16px !important;
  box-sizing: border-box !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 4 !important;
}
#view-identity-select #sect-hub-root .identity-assets-foot span {
  font-size: clamp(18px, 2.3vh, 22px) !important;
}
#view-identity-select #sect-hub-root .identity-heading {
  position: relative !important;
  width: 100% !important;
  padding-left: 0 !important;
  justify-content: center !important;
  text-align: center !important;
  font-size: clamp(18px, 1.2vw, 22px) !important;
}
#view-identity-select #sect-hub-root .identity-heading-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
#view-identity-select #sect-hub-root .identity-heading-password {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 5 !important;
  margin: 0 !important;
  padding: 4px 10px !important;
  border: 1px solid rgba(110, 69, 223, 0.28) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.72) !important;
  color: #4d25c3 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}
#view-identity-select #sect-hub-root .identity-heading-password:hover {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: rgba(110, 69, 223, 0.46) !important;
}
#view-identity-select #sect-hub-root .avatar-ring img {
  object-fit: cover !important;
  object-position: center 22% !important;
  transform: none !important;
}
#view-identity-select #sect-hub-root .identity-title-row {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  justify-items: center !important;
  gap: 0 !important;
  margin: 0 0 6px !important;
  width: 100% !important;
  max-width: 100% !important;
}
#view-identity-select #sect-hub-root .identity-title-row > h2 {
  grid-column: 2 !important;
  margin: 0 !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  max-width: min(220px, 42vw) !important;
  width: auto !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#view-identity-select #sect-hub-root .identity-title-row .identity-title-actions {
  grid-column: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  justify-self: start !important;
  margin-left: 8px !important;
}
#view-identity-select #sect-hub-root .identity-title-row .identity-logout-icon {
  grid-column: auto !important;
  margin-left: 0 !important;
}
#view-identity-select #sect-hub-root .identity-realm-row {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 auto !important;
}
#view-identity-select #sect-hub-root .identity-logout-icon {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  padding: 0 !important;
  margin: 0 !important;
}
#view-identity-select #sect-hub-root .orbit {
  inset: -6px !important;
  top: -6px !important;
  right: -6px !important;
  bottom: -6px !important;
  left: -6px !important;
}
#view-identity-select #sect-hub-root .orbit-b {
  inset: -11px !important;
  top: -11px !important;
  right: -11px !important;
  bottom: -11px !important;
  left: -11px !important;
}
#view-identity-select #sect-hub-root .orbit:after {
  top: 0 !important;
  left: 50% !important;
  transform: translate(-50%, -35%) !important;
}
#view-identity-select #sect-hub-root .spirit-panel {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.90) !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.045), rgba(240,245,255,.008)) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.50), 0 4px 12px rgba(68,77,153,.022) !important;
  backdrop-filter: blur(4px) saturate(1.04) !important;
  -webkit-backdrop-filter: blur(4px) saturate(1.04) !important;
}

/* 首页灵泉：满高竖柱（label 上 / 柱中 / 计数下），仅 tube-liquid 随进度变化 */
#view-identity-select #sect-hub-root .main-grid > #hub-spirit-well.spirit-panel {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
#view-identity-select #sect-hub-root #hub-spirit-well .spirit-label {
  flex: 0 0 auto !important;
  margin-top: clamp(20px, 3.18vh, 30px) !important;
}
#view-identity-select #sect-hub-root #hub-spirit-well > .spirit-well-pct {
  flex: 0 0 auto !important;
  margin-top: 10px !important;
}
#view-identity-select #sect-hub-root #hub-spirit-well .spring-count {
  flex: 0 0 auto !important;
}
#view-identity-select #sect-hub-root #hub-spirit-well .spirit-well-caption,
#view-identity-select #sect-hub-root #hub-spirit-well .spirit-well-marks {
  display: none !important;
}
#view-identity-select #sect-hub-root #hub-spirit-well .spirit-column {
  position: relative !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  min-height: 0 !important;
  margin-top: 17px !important;
  overflow: hidden !important;
}

#view-identity-select #sect-hub-root .task-list {
  max-height: calc(100% - 125px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(73, 89, 165, .22) transparent;
}
#view-identity-select #sect-hub-root .task-list::-webkit-scrollbar { width: 4px; }
#view-identity-select #sect-hub-root .task-list::-webkit-scrollbar-track { background: transparent; }
#view-identity-select #sect-hub-root .task-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(73, 89, 165, .22);
}

#view-identity-select #sect-hub-root .feature-art {
  position: static !important;
  inset: auto !important;
  width: clamp(54px, 7.43vh, 80px) !important;
  height: clamp(52px, 7.22vh, 78px) !important;
  margin: 0 !important;
}
#view-identity-select #sect-hub-root .feature-dock > button {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
#view-identity-select #sect-hub-root .stats-grid button,
#view-identity-select #sect-hub-root .stats-grid .stats-cell {
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
@scope (#view-identity-select) {:root{font-family:"Noto Serif SC",Songti SC,STSong,SimSun,serif;color:#163276;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17347a;--ink-soft: #5f70a9;--violet: #6e45df;--violet-deep: #4d25c3;--line: rgba(255, 255, 255, .86);--glass-a: rgba(255, 255, 255, .38);--glass-b: rgba(240, 244, 255, .19)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:1180px;overflow:hidden}button{font:inherit}button:focus-visible{outline:2px solid rgba(92,54,218,.68);outline-offset:3px}.app-shell{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;color:var(--ink);background:#e9efff;transition:color .45s ease,background .45s ease}.scene-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-5;background-image:linear-gradient(105deg,#fcfcff3d,#dae4ff0a 52%,#f7f5ff1f),url(./assets/academy-mountains.png);background-position:center;background-size:cover;filter:saturate(.8) contrast(.88) brightness(1.025);transform:scale(1.01);transition:filter .6s ease}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-4;pointer-events:none;background:radial-gradient(circle at 7% 15%,rgba(255,255,255,.82),transparent 31%),linear-gradient(180deg,#e7ecff1a,#dce6ff3d)}.ambient{position:absolute;z-index:-2;border-radius:50%;filter:blur(68px);pointer-events:none;opacity:.4}.ambient-one{width:420px;height:310px;left:34%;top:-120px;background:#96a3ff57;animation:ambient-drift 13s ease-in-out infinite alternate}.ambient-two{width:380px;height:290px;right:-80px;bottom:-100px;background:#7192ff4f;animation:ambient-drift 16s ease-in-out -4s infinite alternate-reverse}.glass{--mx: 50%;--my: 0%;position:relative;border:1px solid var(--line);background:radial-gradient(300px circle at var(--mx) var(--my),rgba(255,255,255,.34),transparent 44%),linear-gradient(135deg,var(--glass-a),var(--glass-b));box-shadow:inset 0 1px #fffffff0,inset 0 -1px #828bce1f,0 14px 40px #444d991a,0 2px 7px #3f49a014;backdrop-filter:blur(17px) saturate(1.22);-webkit-backdrop-filter:blur(17px) saturate(1.22)}.glass:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 23%,transparent 72%,rgba(155,142,255,.07));opacity:.78}.glass>*{position:relative;z-index:1}.topbar{position:absolute;z-index:15;top:18px;left:1.5vw;right:2.55vw;height:54px;display:flex;align-items:center;justify-content:space-between}.topbar-left,.topbar-right,.breadcrumbs,.profile-button{display:flex;align-items:center}.topbar-left{gap:30px}.back-button,.theme-button,.profile-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:999px;color:var(--ink);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.back-button:hover,.theme-button:hover,.profile-button:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 11px 24px #4438a529}.back-button:active,.theme-button:active,.profile-button:active{transform:translateY(0) scale(.97)}.back-button{height:45px;padding:0 19px 0 15px;display:inline-flex;align-items:center;gap:9px;font-size:17px;font-weight:700}.breadcrumbs{gap:17px;color:#102c6ef0;font-size:17px;letter-spacing:.05em}.breadcrumbs button{border:0;padding:6px 0;color:inherit;background:none;cursor:pointer;font-weight:700}.breadcrumbs button:hover{color:#6a3ed8}.breadcrumbs strong{font-weight:700}.topbar-right{gap:22px}.theme-button{min-width:94px;height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:17px;font-weight:700}.profile-wrap{position:relative}.profile-button{height:50px;padding:0 14px 0 5px;gap:12px;font-size:17px;font-weight:700}.profile-button img{width:42px;height:42px;object-fit:cover;border-radius:50%;border:1px solid rgba(255,255,255,.92);box-shadow:0 3px 12px #38377c2e}.profile-menu{position:absolute;top:60px;right:0;width:178px;padding:8px;border-radius:18px;animation:menu-in .2s ease-out both}.profile-menu button{width:100%;height:43px;display:flex;align-items:center;gap:10px;border:0;border-radius:12px;color:var(--ink);background:transparent;cursor:pointer;text-align:left}.profile-menu button:hover{color:#5c36d7;background:#ffffff85}.main-grid{position:absolute;z-index:2;top:94px;right:1.5vw;bottom:136px;left:1.5vw;display:grid;grid-template-columns:20.8vw 50vw 17.6vw 5.3vw;gap:1.1vw}.task-panel,.mission-panel,.identity-panel{min-width:0;height:100%;border-radius:20px;overflow:hidden}.task-panel{padding:31px 23px 18px}.panel-heading{padding-left:18px}.panel-heading h2,.identity-heading{margin:0;display:flex;align-items:center;gap:8px;font-size:clamp(23px,1.65vw,31px);line-height:1.2;letter-spacing:.03em}.panel-heading h2 .icon,.identity-heading .icon{color:#7569ff}.panel-heading p{margin:17px 0 37px;font-size:17px;font-weight:600}.task-list{display:flex;flex-direction:column;gap:10px}.task-row{position:relative;width:100%;min-height:78px;display:grid;grid-template-columns:53px 1fr 28px;align-items:center;border:1px solid transparent;border-radius:15px;padding:0 12px 0 16px;color:var(--ink);background:transparent;cursor:pointer;text-align:left;transition:transform .24s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease}.task-row:hover{transform:translate(4px);background:#ffffff4a}.task-row.active{min-height:94px;margin-bottom:2px;border-color:#fffffff5;background:radial-gradient(circle at 12% 32%,rgba(151,132,255,.23),transparent 45%),linear-gradient(135deg,#ffffff8a,#e8e4ff4f);box-shadow:inset 0 1px #fff,0 9px 20px #5e44ba24,0 2px 4px #5e44ba1f}.task-row.active:hover{transform:translate(4px) translateY(-1px)}.task-no{font-size:24px;letter-spacing:.05em}.task-row.active .task-no{color:#6742de}.task-copy{min-width:0}.task-copy strong{display:block;overflow:hidden;font-size:17px;line-height:1.35;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.task-copy small{display:block;margin-top:8px;color:#7565e9;font-size:14px;font-weight:700}.task-tail{display:flex;justify-content:flex-end;color:#8c98c6}.task-row.active .task-tail{color:#7955eb}.more-tasks{position:absolute;z-index:2;bottom:12px;left:50%;width:48px;height:34px;border:0;border-radius:50%;color:#6e5fec;background:transparent;cursor:pointer;transform:translate(-50%);transition:transform .2s ease}.more-tasks:hover{transform:translate(-50%) translateY(4px)}.mission-panel{background:linear-gradient(102deg,#ffffff4f,#ffffff0e),radial-gradient(circle at 87% 55%,rgba(180,193,255,.06),transparent 40%);backdrop-filter:blur(7px) saturate(1.12);-webkit-backdrop-filter:blur(7px) saturate(1.12)}.mission-inner{width:min(710px,calc(100% - 80px));height:100%;margin-left:61px;padding-top:35px}.mission-kicker{font-size:17px;font-weight:700;letter-spacing:.05em}.mission-panel h1{margin:25px 0 22px;font-family:KaiTi,STKaiti,"Noto Serif SC",serif;color:#2e177e;font-size:clamp(32px,2.42vw,46px);line-height:1.3;font-weight:700;letter-spacing:.07em;text-shadow:0 2px 8px rgba(255,255,255,.66)}.mission-panel h1 span{display:inline-block;margin-right:2px}.mission-panel h1 em{font-style:normal;letter-spacing:-.1em}.mission-summary{margin:0;color:#263b77;font-size:15px;line-height:1.8;font-weight:500}.mission-tags{margin-top:34px;display:flex;align-items:center;gap:11px}.mission-tags button{height:44px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.89);border-radius:999px;padding:0 14px;color:#39529b;background:#ffffff78;box-shadow:inset 0 1px #fff,0 5px 14px #47429a17;cursor:pointer;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .22s ease,color .22s ease,box-shadow .22s ease}.mission-tags button:hover{color:#5b32d1;transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 9px 18px #5c3eb326}.mission-tags button:active{transform:scale(.97)}.mission-tags .icon{color:#5e56dc}.goal-head{margin-top:52px;display:flex;align-items:baseline;justify-content:space-between;font-size:16px;font-weight:700}.goal-head small{color:#7c80a9;font-family:Microsoft YaHei,sans-serif;font-size:12px;font-weight:500}.goal-flow{margin-top:20px;display:grid;grid-template-columns:1fr 22px 1fr 22px 1fr;align-items:center;gap:5px}.goal-card{min-width:0;height:92px;display:grid;grid-template-columns:43px 1fr;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.92);border-radius:16px;padding:0 10px;color:var(--ink);background:radial-gradient(circle at 18% 22%,rgba(199,189,255,.32),transparent 42%),#ffffff75;box-shadow:inset 0 1px #fff,0 7px 17px #3645971a;cursor:pointer;text-align:left;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.goal-card:hover{transform:translateY(-4px);box-shadow:inset 0 1px #fff,0 13px 24px #463ea429}.goal-card:active{transform:translateY(-1px) scale(.98)}.goal-card.complete{background:radial-gradient(circle at 18% 22%,rgba(115,242,212,.22),transparent 42%),#ffffff8a;box-shadow:inset 0 0 0 1px #5cada830,0 7px 17px #3645971a}.goal-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:12px;color:#6253db;background:linear-gradient(135deg,#ffffffc2,#beb4ff3d);box-shadow:inset 0 1px #fff,0 4px 9px #5846ab21}.complete .goal-icon{color:#248c88}.goal-card strong{display:block;font-size:14px;line-height:1.42;font-weight:700;white-space:nowrap}.goal-card small{display:block;margin-top:3px;color:#7280ab;font-size:11px;line-height:1.25;white-space:nowrap}.flow-arrow{color:#8a79e5;opacity:.6}.mission-actions{margin-top:50px;display:flex;align-items:center;gap:32px}.primary,.secondary{height:52px;border-radius:15px;cursor:pointer;font-size:17px;font-weight:700;letter-spacing:.04em;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.primary{width:231px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(192,180,255,.8);color:#fff;background:linear-gradient(180deg,#9b6efff2,#4a1fc3fa),#6735d3;box-shadow:inset 0 1px #ffffff94,0 7px 16px #532bd357,0 0 22px #8057ff3d}.primary:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:13px;background:linear-gradient(115deg,rgba(255,255,255,.28),transparent 34%,rgba(255,255,255,.09));pointer-events:none}.primary:hover{transform:translateY(-3px);filter:saturate(1.12);box-shadow:inset 0 1px #ffffffab,0 12px 25px #532bd363,0 0 27px #8057ff4a}.primary:active,.secondary:active{transform:translateY(0) scale(.97)}.secondary{width:170px;border:1px solid rgba(255,255,255,.92);color:var(--ink);background:#ffffff78;box-shadow:inset 0 1px #fff,0 6px 13px #464c941a}.secondary:hover{transform:translateY(-3px);color:#582ac8;box-shadow:inset 0 1px #fff,0 10px 21px #5342a129}.identity-panel{padding:29px 21px 24px;text-align:center}.identity-heading{justify-content:flex-start;padding-left:30px}.avatar-ring{position:relative;width:clamp(132px,9.7vw,176px);height:clamp(132px,9.7vw,176px);margin:35px auto 18px;display:block;border:0;border-radius:50%;padding:7px;background:conic-gradient(from 40deg,#fffffff2,#775fe7a6,#ffffffdb,#648eff9e,#fffffff2);box-shadow:0 0 0 1px #ffffffb8,0 0 32px #7966e147,inset 0 0 16px #ffffffc2;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.avatar-ring:hover{transform:scale(1.035);box-shadow:0 0 0 1px #fff,0 0 42px #684fe161,inset 0 0 18px #fff}.avatar-ring img{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 18%;background:#edf1ff;transform:scale(.86);transition:transform .3s ease}.avatar-ring:hover img{transform:scale(.89)}.orbit{position:absolute;z-index:3;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px solid rgba(255,255,255,.62);border-radius:50%;pointer-events:none}.orbit:after{content:"";position:absolute;top:8%;left:14%;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 10px #7161ff}.orbit-a{animation:orbit 9s linear infinite}.orbit-b{top:-12px;right:2px;bottom:2px;left:-12px;border-color:#9da0ff4a;animation:orbit 13s linear infinite reverse}.identity-panel>h2{margin:0 0 12px;font-size:clamp(23px,1.62vw,31px);letter-spacing:.07em}.realm-pill{height:40px;min-width:116px;border:1px solid rgba(255,255,255,.9);border-radius:999px;padding:0 17px;color:#6740db;background:linear-gradient(135deg,#ffffff8a,#e4daff54);box-shadow:inset 0 1px #fff,0 5px 13px #4f3caa21;cursor:pointer;font-size:17px;font-weight:700;letter-spacing:.08em;transition:transform .2s ease,box-shadow .2s ease}.realm-pill:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 9px 18px #4f3caa2e}.stats-grid{width:calc(100% - 8px);margin:36px auto 0;display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.83);border-radius:17px;overflow:hidden;background:#ffffff47;box-shadow:inset 0 1px #fffffff0,0 9px 25px #39469214}.stats-grid button{height:102px;border:0;color:var(--ink);background:transparent;cursor:pointer;transition:background .22s ease,color .22s ease}.stats-grid button:nth-child(odd){border-right:1px solid rgba(123,135,192,.18)}.stats-grid button:nth-child(-n+2){border-bottom:1px solid rgba(123,135,192,.18)}.stats-grid button:hover{color:#5c34d0;background:#ffffff70}.stats-grid span{display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px}.stats-grid strong{display:block;margin-top:10px;font-size:25px;font-weight:500}.spirit-panel{height:100%;display:flex;flex-direction:column;align-items:center;color:#294181}.spirit-label{margin-top:43px;font-size:14px;font-weight:700;letter-spacing:.12em}.spirit-panel>strong{margin-top:10px;font-size:22px;font-weight:500}#hub-spirit-well .spirit-column{position:relative;width:100%;flex:1 1 0;min-height:0;margin-top:17px;border:0;padding:0;color:inherit;background:transparent;cursor:pointer}.spirit-panel:not(#hub-spirit-well) .spirit-column{position:relative;width:100%;flex:1;min-height:390px;margin-top:17px;border:0;padding:0;color:inherit;background:transparent;cursor:pointer}.tube-glass{position:absolute;z-index:2;top:0;bottom:38px;left:50%;width:23px;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:13px;background:linear-gradient(90deg,#ffffffd1,#8a8af21f 34%,#5346c433 70%,#ffffffbf);box-shadow:inset 4px 0 6px #ffffffeb,inset -3px 0 6px #5b47ca30,0 0 17px #6658e24f}.tube-liquid{position:absolute;right:2px;bottom:2px;left:2px;min-height:14px;border-radius:9px 9px 5px 5px;background:linear-gradient(180deg,#a49cff,#6448e4 50%,#3d20bd);box-shadow:0 0 16px #7257ff;transition:height .8s cubic-bezier(.2,.8,.2,1)}.tube-liquid:before,.tube-liquid i{content:"";position:absolute;top:-5px;left:50%;width:30px;height:10px;border-radius:50%;background:#c6cbffe6;transform:translate(-50%);animation:water-wave 2.2s ease-in-out infinite}.tube-liquid i{top:-3px;opacity:.45;animation-delay:-1.1s}.tube-shine{position:absolute;z-index:3;top:27px;bottom:62px;left:7px;width:3px;border-radius:10px;background:linear-gradient(180deg,#ffffff2e,#fff 42%,#fff3);opacity:.75}.spirit-ripple{position:absolute;z-index:1;bottom:18px;left:50%;width:76px;height:21px;border:1px solid rgba(120,105,234,.5);border-radius:50%;transform:translate(-50%);animation:ripple 2.7s ease-out infinite}.ripple-two{animation-delay:-1.35s}.spring-count{min-width:100%;height:33px;margin-bottom:-2px;border:0;border-radius:11px;color:var(--ink);background:#fff3;cursor:pointer;font-size:13px;white-space:nowrap;transition:color .2s ease,background .2s ease}.spring-count:hover{color:#5c31cb;background:#ffffff6b}.dock-wrap{position:absolute;z-index:9;right:19.25vw;bottom:25px;left:19.25vw;height:88px}.feature-dock{width:100%;height:100%;display:grid;grid-template-columns:repeat(4,1fr);border-radius:17px;padding:8px 18px}.feature-dock>button{position:relative;min-width:0;display:grid;grid-template-columns:67px 1fr;align-items:center;gap:10px;border:0;padding:0 18px;color:var(--ink);background:transparent;cursor:pointer;text-align:left;transition:color .24s ease,transform .24s ease,background .24s ease}.feature-dock>button:not(:last-child):after{content:"";position:absolute;top:25px;right:0;width:1px;height:28px;background:#5365a440}.feature-dock>button:hover{color:#5630c9;border-radius:13px;background:#ffffff47;transform:translateY(-3px)}.feature-dock>button:active{transform:scale(.98)}.feature-dock strong,.feature-dock small{display:block;white-space:nowrap}.feature-dock strong{font-size:17px;letter-spacing:.05em}.feature-dock small{margin-top:5px;color:#6677a8;font-size:11px}.feature-art{width:62px;height:60px;filter:drop-shadow(0 7px 7px rgba(75,56,151,.25))}.icon-art{display:grid;place-items:center;color:#5c49b8;transform:perspective(120px) rotateY(-13deg) rotateX(5deg)}.icon-art.book{color:#6252bd;border-radius:8px;background:linear-gradient(135deg,#715cc747,#ffffff0d);box-shadow:inset 6px 0 #4a39a454}.icon-art.scroll{color:#876c4e;transform:perspective(120px) rotateY(13deg) rotateX(5deg) rotate(-4deg)}.icon-art.swords{color:#554f55}.copy-popover{position:absolute;bottom:100px;left:0;width:240px;padding:15px;border-radius:18px;animation:menu-in .22s ease-out both}.copy-popover>strong{display:block;margin:0 7px 8px;font-size:16px}.copy-popover button{width:100%;height:41px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:11px;padding:0 11px;color:var(--ink);background:transparent;cursor:pointer}.copy-popover button:hover,.copy-popover button.selected{color:#5c31ce;background:#ffffff73}.toast{position:fixed;z-index:30;top:84px;left:50%;min-width:260px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(255,255,255,.92);border-radius:999px;padding:10px 22px;color:#49249f;background:#faf9ffba;box-shadow:inset 0 1px #fff,0 14px 38px #45358e33;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font-size:14px;font-weight:700;opacity:0;pointer-events:none;transform:translate(-50%,-13px) scale(.96);transition:opacity .24s ease,transform .24s ease}.toast.show{opacity:1;transform:translate(-50%) scale(1)}.modal-backdrop{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#26285b29;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:fade-in .2s ease-out both}.modal-card{width:min(510px,calc(100vw - 48px));min-height:330px;border-radius:28px;padding:42px 45px 38px;text-align:center;animation:modal-in .3s cubic-bezier(.2,.8,.2,1) both}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.85);border-radius:50%;color:var(--ink);background:#ffffff54;cursor:pointer}.modal-close{position:absolute;z-index:3;top:18px;right:18px}.modal-emblem{width:62px;height:62px;margin:0 auto;display:grid;place-items:center;border-radius:20px;color:#6943d8;background:linear-gradient(135deg,#ffffffbf,#baadff52);box-shadow:inset 0 1px #fff,0 9px 23px #5a40b829}.modal-card h2{margin:22px 0 12px;font-size:27px}.modal-card p{margin:0 auto;color:#46588d;font-size:15px;line-height:1.9}.primary.compact{position:relative;width:154px;height:45px;margin-top:26px}.is-night{--ink: #263875;--ink-soft: #6675a7;--line: rgba(255, 255, 255, .76);--glass-a: rgba(238, 241, 255, .47);--glass-b: rgba(174, 184, 226, .2);color:var(--ink);background:#aebadd}.is-night .scene-layer{filter:saturate(.68) contrast(.9) brightness(.78) hue-rotate(8deg)}.is-night:before{background:radial-gradient(circle at 8% 13%,rgba(239,242,255,.42),transparent 34%),linear-gradient(180deg,#6974ac26,#3f4c8645)}.is-night .breadcrumbs,.is-night .mission-summary,.is-night .goal-card,.is-night .mission-tags button,.is-night .secondary,.is-night .spring-count,.is-night .stats-grid button,.is-night .copy-popover button,.is-night .profile-menu button{color:#263875}.is-night .mission-panel h1{color:#342078;text-shadow:0 2px 14px rgba(255,255,255,.42)}.is-night .goal-card small,.is-night .feature-dock small,.is-night .goal-head small,.is-night .modal-card p{color:#6675a7}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes ripple{0%{opacity:0;transform:translate(-50%) scale(.38)}25%{opacity:.65}to{opacity:0;transform:translate(-50%) scale(1.24)}}@keyframes water-wave{0%,to{transform:translate(-50%) rotate(0) scaleX(1)}50%{transform:translate(-47%) rotate(3deg) scaleX(.86)}}@keyframes ambient-drift{to{transform:translate3d(60px,35px,0) scale(1.08)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1500px){.task-panel{padding-right:17px;padding-left:17px}.panel-heading{padding-left:12px}.task-row{grid-template-columns:47px 1fr 24px;padding-right:9px;padding-left:12px}.task-copy strong{font-size:15px}.mission-inner{width:calc(100% - 58px);margin-left:43px}.mission-panel h1{font-size:32px}.mission-tags{gap:7px}.mission-tags button{padding:0 10px;font-size:12px}.goal-card{grid-template-columns:37px 1fr;gap:4px;padding:0 6px}.goal-icon{width:35px;height:35px}.goal-card strong{font-size:12px}.identity-panel{padding-right:15px;padding-left:15px}.feature-dock>button{grid-template-columns:56px 1fr;gap:7px;padding:0 10px}.feature-art{width:54px}}@media (min-width: 1850px){.mission-inner{width:min(815px,calc(100% - 110px));margin-left:74px;padding-top:39px}.mission-tags{margin-top:35px}.goal-head{margin-top:48px}.goal-card{height:101px}.mission-actions{margin-top:56px}}@media (max-height: 850px){.main-grid{top:82px;bottom:118px}.topbar{top:12px}.task-panel,.identity-panel{padding-top:21px}.panel-heading p{margin:10px 0 13px}.task-list{gap:3px}.task-row{min-height:60px}.task-row.active{min-height:74px}.mission-inner{padding-top:23px}.mission-panel h1{margin:15px 0 11px}.mission-tags{margin-top:16px}.goal-head{margin-top:24px}.goal-flow{margin-top:12px}.goal-card{height:78px}.mission-actions{margin-top:29px}.avatar-ring{margin-top:20px;margin-bottom:10px}.stats-grid{margin-top:21px}.stats-grid button{height:80px}.dock-wrap{bottom:16px;height:79px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@supports not (backdrop-filter: blur(1px)){.glass{background:#f2f5ffe6}}

/* Final layout refinement for the supplied production bundle. */

/* The fourth grid child is moved out of the identity card by mission-refinement.js. */
.main-grid {
  top: clamp(42px, 6.58vh, 72px);
  right: 1.7vw;
  bottom: clamp(44px, 7.2vh, 78px);
  left: 1.7vw;
  grid-template-columns: minmax(300px, 21.1vw) minmax(660px, 48.2vw) minmax(245px, 16.7vw) minmax(65px, 6vw);
  gap: 1.4vw;
}

.task-panel { grid-column: 1; }
.mission-panel { grid-column: 2; }
.identity-panel { grid-column: 3; }
.main-grid > .spirit-panel { grid-column: 4; }

/* Restore just enough depth behind the right-side status cluster and entrances. */
.app-shell:after {
  content: "";
  position: absolute;
  z-index: -3;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 79% 48%, rgba(101, 128, 183, .085), transparent 27%), radial-gradient(ellipse at 56% 91%, rgba(110, 135, 187, .075), transparent 32%);
}

/* The visual composition keeps the upper sky entirely clear. */
.topbar { display: none; }
.topbar-left { gap: 0; }
.back-button { width: 46px; height: 46px; justify-content: center; padding: 0; }
.back-button .icon { margin: 0; }
.breadcrumbs, .topbar-right, .back-button span { display: none; }

/* Central task: a local mist backing rather than a rectangular glass card. */
.mission-panel {
  width: 100%;
  height: clamp(420px, 59.9vh, 647px);
  min-height: 0;
  margin-left: 0;
  align-self: start;
  justify-self: start;
  overflow: visible;
  border-color: rgba(255, 255, 255, .90);
  background: linear-gradient(135deg, rgba(255, 255, 255, .035), rgba(232, 239, 255, .008));
  box-shadow: inset 0 1px rgba(255, 255, 255, .48), 0 4px 12px rgba(67, 77, 150, .022);
  backdrop-filter: blur(3px) saturate(1.03);
  -webkit-backdrop-filter: blur(3px) saturate(1.03);
}

.mission-panel:after { display: none; }

.mission-inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: auto;
  height: 100%;
  min-height: 0;
  margin-left: 0;
  padding: 34px 44px 28px;
  position: relative;
  top: -10px;
  isolation: isolate;
}

.mission-inner:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -72px;
  left: -92px;
  width: min(760px, calc(100% + 148px));
  height: 500px;
  background: radial-gradient(ellipse at 42% 43%, rgba(255, 255, 255, .055) 0%, rgba(248, 250, 255, .025) 31%, rgba(232, 239, 255, .008) 57%, transparent 80%);
  backdrop-filter: blur(2px) saturate(1.02);
  -webkit-backdrop-filter: blur(2px) saturate(1.02);
  -webkit-mask-image: radial-gradient(ellipse at 42% 43%, #000 4%, rgba(0, 0, 0, .68) 37%, transparent 82%);
  mask-image: radial-gradient(ellipse at 42% 43%, #000 4%, rgba(0, 0, 0, .68) 37%, transparent 82%);
  filter: blur(10px);
  pointer-events: none;
}
.mission-kicker { font-size: 16px; }
.mission-panel h1 { margin: 25px 0 24px; line-height: 1.25; }
.mission-summary { max-width: 550px; }
.mission-tags { margin-top: 23px; }

.mission-metadata { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #53689d; font-family: "Microsoft YaHei", sans-serif; font-size: 14px; font-weight: 600; }
.mission-metadata span { display: inline-flex; align-items: center; gap: 6px; }
.mission-metadata i { color: #6253db; font-family: "Noto Serif SC", serif; font-size: 18px; font-style: normal; line-height: 1; }
.mission-metadata b { color: #9aa5c3; font-weight: 400; }

.mission-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; margin-top: 33px; }
.primary {
  width: clamp(230px, 27.7vh, 300px);
  height: clamp(50px, 7vh, 76px);
  box-shadow: inset 0 1px rgba(255, 255, 255, .68), 0 5px 11px rgba(83, 43, 211, .25), 0 0 9px rgba(128, 87, 255, .14);
}
.primary:hover { box-shadow: inset 0 1px rgba(255, 255, 255, .76), 0 8px 16px rgba(83, 43, 211, .32), 0 0 13px rgba(128, 87, 255, .21); }
.secondary { width: auto; min-height: 42px; height: auto; border: 1px solid rgba(255, 255, 255, .90); border-radius: 12px; padding: 0 17px; color: #365594; background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(229, 235, 255, .055)); box-shadow: inset 0 1px rgba(255, 255, 255, .64), 0 4px 12px rgba(67, 77, 150, .035); font-size: 14px; font-weight: 700; }
.secondary:hover { transform: translateY(-2px); color: #582ac8; background: linear-gradient(135deg, rgba(255, 255, 255, .25), rgba(229, 235, 255, .09)); box-shadow: inset 0 1px rgba(255, 255, 255, .76), 0 7px 15px rgba(67, 77, 150, .065); }

/* The identity card is a small, low-contrast floating information island. */
.task-panel {
  overflow: visible;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.task-panel:before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .90);
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255, 255, 255, .06), rgba(240, 245, 255, .012));
  box-shadow: inset 0 1px rgba(255, 255, 255, .50), 0 4px 12px rgba(68, 77, 153, .022);
  backdrop-filter: blur(8px) saturate(1.05);
  -webkit-backdrop-filter: blur(8px) saturate(1.05);
  pointer-events: none;
}
.task-panel:after { z-index: 0; opacity: .08; -webkit-mask-image: none; mask-image: none; }
.task-row.active { border-color: rgba(255, 255, 255, .92); background: radial-gradient(circle at 12% 32%, rgba(151, 132, 255, .055), transparent 45%), linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(232, 228, 255, .04)); box-shadow: inset 0 1px rgba(255, 255, 255, .58), 0 3px 8px rgba(94, 68, 186, .035); }
.more-tasks { opacity: .28; }

/* Lift the reading scale without changing the established composition. */
.panel-heading h2,
.identity-heading { font-size: clamp(25px, 1.8vw, 33px); }
.task-panel, .mission-panel, .identity-panel, .spirit-panel, .feature-dock { text-shadow: none; }
.panel-heading h2, .identity-heading { color: #153675; }
.panel-heading h2 {
  margin: 0;
  overflow: hidden;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.panel-heading p.panel-heading-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 0;
  color: #5f70a9;
  font-size: 14px;
  font-weight: 650;
}
.panel-heading p { color: #244582; font-size: 18px; }
.task-no { color: #214180; font-size: 25px; }
.task-copy strong { color: #173a7a; font-size: 18px; }
.task-copy small { font-size: 15px; }
.mission-kicker { color: #21417c; font-size: 18px; }
.mission-panel h1 { color: #2d167c; font-size: clamp(36px, 2.7vw, 51px); text-shadow: 0 1px 3px rgba(255, 255, 255, .42); }
.mission-summary { color: #1f3f7e; font-size: 17px; font-weight: 600; }
.mission-metadata { color: #294b8d; font-size: 16px; font-weight: 700; }
.mission-metadata i { font-size: 20px; }
.primary { font-size: clamp(18px, 2.34vh, 25px); }
.secondary { font-size: 17px; }

.identity-panel {
  width: 100%;
  height: clamp(420px, 59.9vh, 647px);
  min-height: 0;
  align-self: start;
  justify-self: start;
  padding: clamp(12px, 1.8vh, 20px) 14px clamp(12px, 1.6vh, 18px);
  position: relative;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
  background: linear-gradient(135deg, rgba(255, 255, 255, .055), rgba(240, 245, 255, .012));
  border-color: rgba(255, 255, 255, .90);
  box-shadow: inset 0 1px rgba(255, 255, 255, .50), 0 4px 12px rgba(68, 77, 153, .022);
  backdrop-filter: blur(9px) saturate(1.06);
  -webkit-backdrop-filter: blur(9px) saturate(1.06);
}
.identity-panel:after { opacity: .08; }
.identity-heading {
  position: relative;
  width: 100%;
  padding-left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: clamp(18px, 1.2vw, 22px);
  text-align: center;
}
.identity-heading-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.identity-heading-password {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 5;
  margin: 0;
  padding: 4px 10px;
  border: 1px solid rgba(110, 69, 223, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #4d25c3;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}
.identity-heading-password:hover {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(110, 69, 223, 0.46);
}
.avatar-ring {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(92px, 11.5vh, 128px);
  height: clamp(92px, 11.5vh, 128px);
  margin: clamp(6px, 1.1vh, 12px) auto clamp(4px, 0.7vh, 8px);
  padding: 6px;
  border: 0;
  border-radius: 50%;
  box-sizing: border-box;
  overflow: visible;
  flex: 0 0 auto;
}
.identity-panel .avatar-ring {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .68), 0 0 21px rgba(121, 102, 225, .25), inset 0 0 12px rgba(255, 255, 255, .62);
}
.identity-panel .avatar-ring img {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 22%;
  transform: none;
  display: block;
}
.identity-panel .orbit {
  position: absolute;
  z-index: 3;
  inset: -6px;
  top: -6px;
  right: -6px;
  bottom: -6px;
  left: -6px;
  border: 1px solid rgba(255, 255, 255, .46);
  border-radius: 50%;
  pointer-events: none;
  box-sizing: border-box;
}
.identity-panel .orbit-b {
  inset: -11px;
  top: -11px;
  right: -11px;
  bottom: -11px;
  left: -11px;
  border-color: rgba(157, 160, 255, .30);
}
.identity-panel .orbit:after {
  top: 0;
  left: 50%;
  width: 6px;
  height: 6px;
  transform: translate(-50%, -35%);
}
.identity-title-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  justify-items: center;
  gap: 0;
  margin: 0 0 6px;
  width: 100%;
  max-width: 100%;
}
.identity-title-row > h2 {
  grid-column: 2;
  margin: 0;
  color: #173878;
  font-size: 18px;
  text-align: center;
  width: auto;
}
.identity-title-row .identity-title-actions {
  grid-column: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-self: start;
  margin-left: 8px;
}
.identity-title-row .identity-logout-icon {
  grid-column: auto;
  margin-left: 0;
}
.identity-panel > h2 {
  margin: 0 0 6px;
  color: #173878;
  font-size: 18px;
  text-align: center;
  width: 100%;
}
.identity-realm-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 auto;
  width: auto;
  max-width: 100%;
}
.realm-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 105px;
  height: 35px;
  padding: 0 14px;
  color: #6041d4;
  font-size: 15px;
  margin: 0;
}
.identity-logout-icon {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  padding: 0;
  border: 1px solid rgba(180, 90, 120, 0.28);
  border-radius: 50%;
  color: #8a3a52;
  background: linear-gradient(135deg, rgba(255, 245, 248, 0.55), rgba(255, 230, 236, 0.18));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.identity-logout-icon:hover {
  color: #a12d4a;
  background: linear-gradient(135deg, rgba(255, 245, 248, 0.72), rgba(255, 220, 228, 0.3));
  transform: translateY(-1px);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.8), 0 4px 10px rgba(138, 58, 82, 0.12);
}
.identity-logout-icon:active {
  transform: translateY(0) scale(.96);
}
.identity-logout-icon svg {
  display: block;
}
.stats-grid {
  flex: 1 1 auto;
  width: calc(100% - 4px);
  margin: clamp(8px, 1.2vh, 12px) auto 0;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  border-color: rgba(255, 255, 255, .84);
  border-radius: 15px;
  overflow: hidden;
  pointer-events: none;
  background: rgba(255, 255, 255, .075);
  box-shadow: inset 0 1px rgba(255, 255, 255, .48), 0 3px 9px rgba(57, 70, 151, .025);
}
.stats-grid button,
.stats-grid .stats-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: clamp(64px, 8.2vh, 92px);
  padding: clamp(10px, 1.5vh, 16px) 4px;
  box-sizing: border-box;
  border: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  background: transparent;
  cursor: default;
  pointer-events: none;
  user-select: none;
}
.stats-grid span { gap: 4px; color: #26457f; font-size: clamp(12px, 1.45vh, 14px); font-weight: 600; }
.stats-grid .icon { width: 14px; height: 14px; }
.stats-grid strong { margin-top: 4px; color: #193a79; font-size: clamp(20px, 2.5vh, 28px); line-height: 1.1; }
.stats-grid button:nth-child(odd), .stats-grid .stats-cell:nth-child(odd), .stats-grid button:nth-child(-n+2), .stats-grid .stats-cell:nth-child(-n+2) { border-color: rgba(255, 255, 255, .38); }

.identity-actions {
  width: 100%;
  flex: 0 0 auto;
  margin-top: clamp(10px, 1.5vh, 14px);
  min-height: 0;
  padding-top: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  position: relative;
  z-index: 3;
  pointer-events: auto;
}
.identity-assets-foot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
  min-height: clamp(52px, 7.2vh, 78px);
  height: auto;
  padding: clamp(12px, 1.9vh, 20px) 14px;
  border-radius: 16px;
  box-sizing: border-box;
  font: inherit;
  font-size: clamp(14px, 1.75vh, 17px);
  font-weight: 700;
  letter-spacing: .04em;
  cursor: pointer;
  pointer-events: auto;
  position: relative;
  z-index: 4;
  border: 1px solid rgba(255, 255, 255, .88);
  color: #365594;
  background: linear-gradient(135deg, rgba(255, 255, 255, .28), rgba(229, 235, 255, .10));
  box-shadow: inset 0 1px rgba(255, 255, 255, .64), 0 4px 12px rgba(67, 77, 150, .04);
}
.identity-assets-foot:hover {
  color: #582ac8;
  background: linear-gradient(135deg, rgba(255, 255, 255, .38), rgba(229, 235, 255, .16));
  transform: translateY(-1px);
}
.identity-assets-foot span { font-size: clamp(18px, 2.3vh, 22px); line-height: 1; }
.identity-assets-foot strong { font-weight: 700; }

/* The spirit becomes a companion to the identity card, not a separate edge plugin. */
.spirit-panel { height: 100%; position: relative; left: 0; overflow: hidden; border: 1px solid rgba(255, 255, 255, .90); border-radius: 20px; background: linear-gradient(135deg, rgba(255, 255, 255, .045), rgba(240, 245, 255, .008)); box-shadow: inset 0 1px rgba(255, 255, 255, .50), 0 4px 12px rgba(68, 77, 153, .022); backdrop-filter: blur(4px) saturate(1.04); -webkit-backdrop-filter: blur(4px) saturate(1.04); opacity: .96; }
.spirit-label { margin-top: clamp(20px, 3.18vh, 30px); color: #294781; font-size: 15px; }
.spirit-panel > strong { color: #26447e; font-size: 23px; }
.tube-glass { width: clamp(22px, 1.45vw, 26px); background: linear-gradient(90deg, rgba(255, 255, 255, .62), rgba(138, 138, 242, .08) 34%, rgba(83, 70, 196, .14) 70%, rgba(255, 255, 255, .54)); box-shadow: inset 3px 0 5px rgba(255, 255, 255, .72), inset -2px 0 5px rgba(91, 71, 202, .15), 0 0 13px rgba(102, 88, 226, .22); }

/* Four independent bottom entrances—each uses the modal's restrained glass language. */
.dock-wrap { right: auto; bottom: clamp(44px, 7.2vh, 78px); left: 55%; width: min(58.5vw, 1125px); height: clamp(168px, 23.35vh, 252px); transform: translateX(-50%); }
.feature-dock { gap: clamp(16px, 1.67vw, 32px); padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.feature-dock:before { display: none; }
.feature-dock .is-hub-locked {
  opacity: 0.72;
  filter: grayscale(0.18);
}
.feature-dock .is-hub-locked small {
  color: #8a6bb8;
  letter-spacing: 0.04em;
}
.feature-dock:after { display: none; }
.feature-dock > button { min-height: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(5px, .85vh, 8px); border: 0; border-radius: 20px; padding: clamp(14px, 2.12vh, 20px) 10px clamp(12px, 1.9vh, 18px); color: var(--ink); text-align: center; isolation: isolate; top: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.feature-dock > button > * { position: relative; z-index: 1; }
.feature-dock > button:not(:last-child):after { display: none; }
.feature-dock > button:after { display: none; }
.feature-dock > button:hover { border-radius: 20px; background: transparent; box-shadow: none; transform: translateY(-2px); }
.feature-dock > button:before { content: ""; position: absolute; z-index: -1; inset: 0; border: 1px solid rgba(255, 255, 255, .92); border-radius: inherit; background: linear-gradient(135deg, rgba(255, 255, 255, .06), rgba(226, 232, 255, .012)); box-shadow: inset 0 1px rgba(255, 255, 255, .50), inset 0 -1px rgba(131, 145, 205, .022), 0 4px 12px rgba(67, 77, 150, .022); backdrop-filter: blur(8px) saturate(1.05); -webkit-backdrop-filter: blur(8px) saturate(1.05); pointer-events: none; }
.feature-dock > button:hover:before { border-color: rgba(255, 255, 255, .98); background: linear-gradient(135deg, rgba(255, 255, 255, .17), rgba(230, 232, 255, .06)); box-shadow: inset 0 1px rgba(255, 255, 255, .70), 0 8px 18px rgba(67, 77, 150, .06); }
.feature-dock > button:nth-child(n) { top: 0; }
.feature-art { width: clamp(54px, 7.43vh, 80px); height: clamp(52px, 7.22vh, 78px); filter: drop-shadow(0 4px 6px rgba(75, 56, 151, .13)); }
.feature-dock > button > span { display: block; }
.feature-dock strong { color: #173878; font-size: clamp(18px, 2.34vh, 25px); font-weight: 700; }
.feature-dock small { margin-top: 2px; color: #536b9f; font-size: clamp(11px, 1.49vh, 16px); opacity: .72; }

/* Detail content remains in the original glass modal. */
.modal-card:has(.mission-detail-content) { width: min(640px, calc(100vw - 48px)); min-height: 0; max-height: min(720px, calc(100vh - 48px)); overflow: auto; padding: 36px 46px 34px; text-align: left; }
.modal-card:has(.mission-detail-content) .modal-emblem, .modal-card:has(.mission-detail-content) > h2 { margin-right: auto; margin-left: auto; text-align: center; }
.mission-detail-content { color: #46588d; }
.mission-detail-intro { max-width: 500px; margin: 0 auto 18px !important; text-align: center; }
.mission-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.mission-detail-grid section { border: 1px solid rgba(255, 255, 255, .78); border-radius: 14px; padding: 13px 15px; background: rgba(255, 255, 255, .28); }
.mission-detail-grid .detail-goals { grid-column: 1 / -1; }
.mission-detail-grid h3 { margin: 0 0 7px; color: #304882; font-size: 14px; }
.mission-detail-grid p, .mission-detail-grid ol { margin: 0; color: #576b9d; font-family: "Microsoft YaHei", sans-serif; font-size: 13px; line-height: 1.7; }
.mission-detail-grid ol { padding-left: 20px; }

@media (max-width: 1500px) {
  .main-grid { grid-template-columns: minmax(280px, 21.1vw) minmax(630px, 48.2vw) minmax(238px, 16.7vw) minmax(58px, 6vw); gap: 1.25vw; }
  .mission-inner { margin-left: 0; padding: 32px 38px 42px; top: -6px; }
  .identity-panel { padding-right: 15px; padding-left: 15px; }
  .identity-panel { top: 0; left: 0; }
  .spirit-panel { left: 0; }
  .dock-wrap { width: min(58.5vw, 1125px); }
}

@media (max-width: 1400px) {
  .main-grid { grid-template-columns: minmax(250px, 20.3vw) minmax(560px, 46.9vw) minmax(210px, 16.7vw) minmax(58px, 5.5vw); gap: 1vw; }
  .mission-inner { padding-right: 32px; padding-left: 32px; }
  .dock-wrap { width: min(68vw, 860px); }
}

@media (max-height: 930px) {
  .mission-panel, .identity-panel, .spirit-panel { min-height: 0; }
  .mission-inner { padding: 31px 44px 40px; }
  .mission-panel h1 { margin: 21px 0 18px; }
  .mission-tags { margin-top: 20px; }
  .mission-actions { margin-top: 29px; }
  .identity-panel { padding-right: 15px; padding-left: 15px; }
}

@media (max-height: 850px) {
  .mission-inner { padding: 26px 40px 30px; }
  .mission-panel h1 { margin: 16px 0 12px; }
  .mission-summary { line-height: 1.65; }
  .mission-tags { margin-top: 15px; }
  .mission-actions { gap: 11px; margin-top: 22px; }
}

@media (max-height: 760px) {
  .mission-inner { padding: 20px 30px; }
  .mission-panel h1 { margin: 12px 0 8px; }
  .mission-summary { line-height: 1.55; }
  .mission-tags { margin-top: 12px; }
  .mission-actions { gap: 8px; margin-top: 16px; }
  .secondary { min-height: 38px; }
}

@media (max-width: 700px) {
  .mission-detail-grid { grid-template-columns: 1fr; }
  .mission-detail-grid .detail-goals { grid-column: auto; }
}

}

/* 藏经阁：允许整页滚动（卡片多时不被视口锁死） */
.app.app--sect:has(#view-dungeon.active) {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  min-height: 100dvh;
}
#view-dungeon.view-path.active,
#view-dungeon #dungeon-hub-root.dungeon-simple {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
}
#view-dungeon.view-path.active { width: 100% !important; max-width: none !important; min-height: 100dvh; height: auto !important; margin: 0 !important; overflow: visible !important; }
#view-dungeon #dungeon-hub-root {
  --d-ink: #17347a; --d-soft: #5f70a9; --d-violet: #6e45df;
  position: relative !important; isolation: isolate; width: 100% !important; min-height: 100dvh !important; height: auto !important;
  border: 0 !important; border-radius: 0 !important; overflow: visible !important; color: var(--d-ink);
  background: linear-gradient(180deg, #edf1ff 0%, #e3e9ff 68%, #dce3fb 100%) !important; font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif !important;
}
#view-dungeon #dungeon-hub-root > .hub-bg-landscape {
  position: absolute !important; inset: 0 !important; z-index: -2 !important; display: block !important;
  /* 长图随内容自然延展；底色会在内容超出图片时无缝兜底。 */
  background-color: #dce3fb !important;
  background-image: linear-gradient(180deg, rgba(248,249,255,.12), rgba(224,231,255,.10) 67%, rgba(220,227,251,.22)), url("assets/cultivation-library-long-bg.png") !important;
  background-position: center top !important; background-repeat: no-repeat !important; background-size: 100% auto !important;
  filter: saturate(.92) contrast(.94) brightness(1.02) !important; opacity: 1 !important;
}
#view-dungeon #dungeon-hub-root::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(245,247,255,.08), rgba(225,232,255,.10) 68%, rgba(220,227,251,.26)); }
#view-dungeon #dungeon-hub-root, #view-dungeon #dungeon-hub-root *:not(svg):not(path):not(circle):not(rect) { font-family: "Noto Serif SC", "Songti SC", STSong, SimSun, serif !important; }
#view-dungeon .dungeon-simple-bar { position: relative !important; z-index: 2; display: flex !important; align-items: center !important; width: min(1450px, calc(100% - 5vw)) !important; margin: 0 auto !important; padding: 22px 0 0 !important; }
#view-dungeon .dungeon-simple-bar .hub-top-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  min-height: 40px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(255, 255, 255, .88) !important;
  border-radius: 999px !important;
  color: #365594 !important;
  background: rgba(255, 255, 255, .48) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, .90), 0 5px 14px rgba(71, 66, 154, .10) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
  text-decoration: none !important;
}
#view-dungeon .dungeon-simple-bar .hub-top-back:hover {
  transform: translateY(-1px);
  color: #5b32d1 !important;
  background: rgba(255, 255, 255, .72) !important;
}
#view-dungeon .dungeon-simple-body { position: relative !important; z-index: 1; display: block !important; width: min(1450px, calc(100% - 5vw)) !important; min-height: 0 !important; margin: 0 auto !important; padding: clamp(68px, 9vh, 108px) 0 88px !important; overflow: visible !important; text-align: center !important; }
#view-dungeon .dungeon-simple-body .hub-kicker, #view-dungeon .dungeon-simple-sub { display: none !important; }
#view-dungeon .dungeon-title-row { position: relative !important; display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; min-height: 84px; margin: 0 !important; }
#view-dungeon .dungeon-title-row h1, #view-dungeon .dungeon-simple-body h1 { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 76px; margin: 0 !important; padding: 9px 42px 12px !important; border: 1px solid rgba(100,113,205,.34) !important; border-radius: 22px 22px 30px 30px !important; color: #352384 !important; background: linear-gradient(135deg, rgba(255,255,255,.34), rgba(234,238,255,.12)) !important; box-shadow: inset 0 1px rgba(255,255,255,.78), inset 0 -1px rgba(113,124,206,.14), 0 6px 20px rgba(70,78,164,.08) !important; font-family: KaiTi, STKaiti, "Noto Serif SC", serif !important; font-size: clamp(46px, 4vw, 64px) !important; font-weight: 700 !important; letter-spacing: .2em !important; line-height: 1.05 !important; text-indent: .2em; text-shadow: 0 2px 0 rgba(255,255,255,.76), 0 4px 12px rgba(56,45,132,.18) !important; }
#view-dungeon .dungeon-title-row h1::after { content: ""; position: absolute; bottom: -7px; left: 50%; width: 9px; height: 9px; border: 1px solid rgba(100,113,205,.38); border-radius: 3px; background: rgba(235,239,255,.76); box-shadow: 0 2px 5px rgba(65,74,154,.12); transform: translateX(-50%) rotate(45deg); }
#view-dungeon .dungeon-simple-lead { margin: 18px 0 34px !important; color: #193f87 !important; font-size: clamp(23px, 1.75vw, 29px) !important; font-weight: 700 !important; letter-spacing: .1em !important; line-height: 1.45 !important; }
#view-dungeon .dungeon-create-btn, #view-dungeon button.dungeon-create-btn { min-height: 42px !important; padding: 0 17px !important; border: 1px solid rgba(255,255,255,.88) !important; border-radius: 999px !important; color: #365594 !important; background: rgba(255,255,255,.46) !important; box-shadow: inset 0 1px rgba(255,255,255,.90), 0 5px 14px rgba(71,66,154,.10) !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: .05em !important; }
#view-dungeon .dungeon-create-btn:hover, #view-dungeon button.dungeon-create-btn:hover { transform: translateY(-2px); color: #5b32d1 !important; background: rgba(255,255,255,.68) !important; box-shadow: inset 0 1px #fff, 0 9px 18px rgba(92,62,179,.16) !important; }
#view-dungeon .dungeon-course-toolbar { display: flex !important; align-items: center; justify-content: center; width: 100% !important; min-height: 38px; margin: -5px 0 21px !important; }
#view-dungeon .dungeon-course-toolbar[hidden] { display: none !important; }
#view-dungeon .dungeon-course-filters { display: inline-flex !important; gap: 3px !important; padding: 3px !important; border: 1px solid rgba(255,255,255,.80) !important; border-radius: 999px !important; background: rgba(255,255,255,.30) !important; box-shadow: inset 0 1px rgba(255,255,255,.75) !important; }
#view-dungeon .dungeon-course-filter { min-height: 31px !important; padding: 0 12px !important; border: 0 !important; border-radius: 999px !important; color: #52649a !important; background: transparent !important; box-shadow: none !important; font-size: 13px !important; font-weight: 700 !important; }
#view-dungeon .dungeon-course-filter:hover { color: #5b32d1 !important; background: rgba(255,255,255,.38) !important; }
#view-dungeon .dungeon-course-filter.is-on { color: #fff !important; background: linear-gradient(135deg, #8b6df0, #5d43cb) !important; box-shadow: 0 4px 10px rgba(83,59,190,.20) !important; }
#view-dungeon .dungeon-course-filter-count { padding: 0 !important; background: transparent !important; color: inherit !important; }
#view-dungeon .dungeon-simple-grid { width: min(1450px, 100%) !important; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 22px 18px !important; align-items: stretch !important; margin: 0 auto !important; }
#view-dungeon #dungeon-library-empty { margin: 22px auto 0 !important; text-align: center; }
#view-dungeon .dungeon-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 0; margin-top: 28px; }
#view-dungeon .dungeon-pagination:not(:empty) { min-height: 38px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; background: rgba(255,255,255,.26); box-shadow: inset 0 1px rgba(255,255,255,.66); }
#view-dungeon .dungeon-pagination button, #view-dungeon .dungeon-pagination a { min-width: 28px; min-height: 28px; padding: 0 7px; border: 0; border-radius: 999px; color: #4a5797; background: transparent; font-size: 13px; font-weight: 700; line-height: 28px; }
#view-dungeon .dungeon-pagination .is-current { color: #fff; background: linear-gradient(135deg, #8d6ff0, #5a41c8); box-shadow: 0 3px 8px rgba(83,59,190,.16); }
#view-dungeon .dungeon-pick-wrap { min-width: 0; height: auto !important; }
#view-dungeon .dungeon-pick-card, #view-dungeon .dungeon-pick-wrap > .dungeon-pick-card { min-height: 292px !important; height: 100% !important; padding: 21px 20px 18px !important; gap: 9px !important; border: 1px solid rgba(255,255,255,.84) !important; border-radius: 20px !important; color: var(--d-ink) !important; background: radial-gradient(250px circle at 0 0, rgba(255,255,255,.34), transparent 48%), linear-gradient(135deg, rgba(255,255,255,.42), rgba(240,244,255,.16)) !important; box-shadow: inset 0 1px rgba(255,255,255,.70), inset 0 -1px rgba(130,139,206,.09), 0 10px 26px rgba(68,77,153,.10) !important; backdrop-filter: blur(13px) saturate(1.12) !important; -webkit-backdrop-filter: blur(13px) saturate(1.12) !important; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease !important; }
#view-dungeon .dungeon-pick-card:hover:not(.is-locked) { transform: translateY(-3px) !important; border-color: rgba(255,255,255,.98) !important; background: radial-gradient(250px circle at 0 0, rgba(255,255,255,.52), transparent 48%), linear-gradient(135deg, rgba(255,255,255,.54), rgba(240,244,255,.22)) !important; box-shadow: inset 0 1px #fff, 0 16px 30px rgba(68,77,153,.15) !important; }
#view-dungeon .dungeon-pick-card.is-current { border-color: rgba(232,227,255,.98) !important; background: radial-gradient(230px circle at 15% 0, rgba(199,189,255,.34), transparent 54%), linear-gradient(135deg, rgba(255,255,255,.54), rgba(232,228,255,.24)) !important; box-shadow: inset 0 1px #fff, 0 0 0 1px rgba(132,104,230,.18), 0 12px 30px rgba(89,63,193,.19), 0 0 26px rgba(122,91,233,.13) !important; }
#view-dungeon .dungeon-pick-card.is-locked { opacity: .56 !important; filter: saturate(.72) !important; }
#view-dungeon .dungeon-pick-source { position: static !important; align-self: flex-start; padding: 4px 9px !important; border-radius: 999px !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .08em !important; }
#view-dungeon .dungeon-pick-source--official { color: #5544b8 !important; background: rgba(118,95,222,.12) !important; border-color: rgba(118,95,222,.22) !important; }
#view-dungeon .dungeon-pick-source--teacher { color: #2b6d8b !important; background: rgba(91,164,210,.12) !important; border-color: rgba(91,164,210,.22) !important; }
#view-dungeon .dungeon-pick-source--draft { color: #68728f !important; background: rgba(111,122,150,.11) !important; border-color: rgba(111,122,150,.23) !important; }
#view-dungeon .dungeon-pick-seal { width: 54px !important; height: 54px !important; margin-top: 2px; border: 1px solid rgba(255,255,255,.75) !important; border-radius: 17px !important; color: #5845bd !important; background: linear-gradient(135deg, rgba(255,255,255,.76), rgba(186,174,255,.28)) !important; box-shadow: inset 0 1px rgba(255,255,255,.94), 0 6px 13px rgba(88,70,171,.12) !important; font-size: 28px !important; }
#view-dungeon .dungeon-pick-card[data-path="hardware"] .dungeon-pick-seal { color: #2c70b5 !important; background: linear-gradient(135deg, rgba(255,255,255,.74), rgba(131,202,255,.30)) !important; }
#view-dungeon .dungeon-pick-card[data-path="business"] .dungeon-pick-seal { color: #9c5d63 !important; background: linear-gradient(135deg, rgba(255,255,255,.74), rgba(243,180,157,.30)) !important; }
#view-dungeon .dungeon-pick-card.is-course .dungeon-pick-seal { color: #397584 !important; background: linear-gradient(135deg, rgba(255,255,255,.74), rgba(143,213,213,.28)) !important; }
#view-dungeon .dungeon-pick-title,
#view-dungeon .dungeon-pick-desc,
#view-dungeon .dungeon-pick-next,
#view-dungeon .dungeon-pick-foot em {
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
}
#view-dungeon .dungeon-pick-title { margin-top: 2px !important; min-height: 0 !important; color: #243879 !important; font-size: clamp(20px, 1.4vw, 24px) !important; font-weight: 700 !important; letter-spacing: .04em !important; line-height: 1.35 !important; }
#view-dungeon .dungeon-pick-desc { min-height: 0 !important; color: #61719e !important; font-size: 13px !important; line-height: 1.45 !important; }
#view-dungeon .dungeon-pick-next { color: #5f55ba !important; font-size: 13px !important; font-weight: 700 !important; line-height: 1.45 !important; }
#view-dungeon .dungeon-pick-bar { height: 5px !important; margin-top: auto !important; background: rgba(104,113,173,.17) !important; }
#view-dungeon .dungeon-pick-bar > i { background: linear-gradient(90deg, #9b83f4, #5c63dd) !important; }
#view-dungeon .dungeon-pick-foot { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 8px !important; margin-top: 4px !important; min-width: 0 !important; }
#view-dungeon .dungeon-pick-foot em { flex: 1 1 auto !important; color: #5d4bc4 !important; font-size: 12px !important; font-weight: 700 !important; font-style: normal !important; }
#view-dungeon .dungeon-pick-card.is-done .dungeon-pick-foot em { color: #25888a !important; }
#view-dungeon .dungeon-pick-foot b { padding: 7px 10px !important; border: 1px solid rgba(255,255,255,.80) !important; border-radius: 10px !important; color: #fff !important; background: linear-gradient(135deg, #8d6ff0, #5a41c8) !important; box-shadow: inset 0 1px rgba(255,255,255,.28), 0 4px 10px rgba(83,59,190,.18) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .04em !important; white-space: nowrap; }
#view-dungeon .dungeon-pick-foot b span { font-size: 14px !important; }
#view-dungeon .dungeon-pick-card.is-locked .dungeon-pick-foot b { color: #64708f !important; background: rgba(255,255,255,.40) !important; box-shadow: none !important; }
#view-dungeon .dungeon-pick-del { top: 14px !important; right: 13px !important; left: auto !important; width: 27px !important; height: 27px !important; padding: 0 !important; border: 1px solid rgba(255,255,255,.78) !important; border-radius: 50% !important; color: #687397 !important; background: rgba(255,255,255,.48) !important; box-shadow: none !important; font-size: 15px !important; line-height: 1 !important; }
#view-dungeon .dungeon-pick-del:hover { color: #b33d55 !important; background: rgba(255,247,249,.82) !important; border-color: rgba(205,102,123,.35) !important; }
#dungeon-switch-modal { background: rgba(38,40,91,.18) !important; backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
#dungeon-switch-modal .dungeon-switch-card { width: min(460px, calc(100vw - 40px)) !important; padding: 34px 38px 30px !important; border: 1px solid rgba(255,255,255,.88) !important; border-radius: 24px !important; color: #17347a !important; background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(237,240,255,.48)) !important; box-shadow: inset 0 1px #fff, 0 22px 54px rgba(61,63,136,.24) !important; backdrop-filter: blur(18px) saturate(1.15); -webkit-backdrop-filter: blur(18px) saturate(1.15); }
#dungeon-switch-modal .dungeon-switch-card h2 { margin: 0 0 18px !important; color: #2e177e !important; font-family: KaiTi, STKaiti, "Noto Serif SC", serif !important; font-size: 28px !important; }
#dungeon-switch-modal #dungeon-switch-desc { margin: 0 !important; color: #526394 !important; font-family: "Noto Serif SC", "Songti SC", serif !important; font-size: 16px !important; line-height: 2.05 !important; }
#dungeon-switch-modal #dungeon-switch-desc strong { display: inline-block; margin-left: 7px; color: #4c36ad; font-size: 18px; }
#dungeon-switch-modal #dungeon-switch-desc small { display: block; margin-top: 13px; color: #6d79a4; font-size: 13px; }
#dungeon-switch-modal .form-actions { justify-content: center !important; gap: 10px !important; margin-top: 23px !important; }
#dungeon-switch-modal .form-actions .btn { min-width: 112px; min-height: 42px; border-radius: 12px; }
@media (max-width: 1100px) { #view-dungeon .dungeon-simple-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 820px) { #view-dungeon .dungeon-simple-body, #view-dungeon .dungeon-simple-bar { width: min(100% - 32px, 640px) !important; } #view-dungeon .dungeon-simple-body { padding-top: 64px !important; } #view-dungeon .dungeon-simple-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px 12px !important; } #view-dungeon .dungeon-pick-card { min-height: 270px !important; padding: 17px 15px !important; } }
@media (max-width: 540px) { #view-dungeon .dungeon-title-row h1, #view-dungeon .dungeon-simple-body h1 { min-height: 64px; padding: 8px 28px 11px !important; font-size: clamp(39px, 12vw, 50px) !important; } #view-dungeon .dungeon-simple-lead { margin-bottom: 27px !important; font-size: 21px !important; } #view-dungeon .dungeon-simple-grid { grid-template-columns: 1fr !important; } }

/* 学生退出修炼系统的统一入口；只在学生修炼区出现。 */
.student-train-forum-exit {
  position: fixed;
  z-index: 10020;
  top: 18px;
  left: max(18px, 1.5vw);
  display: none;
  align-items: center;
  min-height: 32px;
  padding: 0 9px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: rgba(64, 86, 158, .70);
  background: transparent;
  box-shadow: none;
  font: 600 13px/1 "Noto Serif SC", "Songti SC", STSong, SimSun, serif;
  letter-spacing: .04em;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.student-train-forum-exit:hover {
  color: #4d43ae;
  border-color: rgba(255,255,255,.68);
  background: rgba(255,255,255,.28);
}
.student-train-forum-exit:focus-visible { outline: 2px solid rgba(92,54,218,.50); outline-offset: 2px; }
#app.app--train-zone:has(#view-identity-select.active, #view-dungeon.active, #view-dungeon-tier.active, #view-dungeon-map.active, #view-quest.active, #view-quest-work.active, #view-quest-defense.active, #view-quest-result.active, #view-special.active, #view-special-done.active, #view-hackathon.active, #view-hackathon-done.active, #view-village-out.active) .student-train-forum-exit { display: inline-flex; }
body.is-teacher-zone .student-train-forum-exit { display: none !important; }
