/* The first gate: a route choice before the climb and a clear sword-array cue in combat. */
.realm-dialog .qian-planning {
  margin: 0 0 16px;
  padding: 16px 20px 14px;
  border: 1px solid #c4a264;
  background: linear-gradient(115deg, #142e3cf0, #09202de9 67%, #1b3440e9);
  box-shadow: inset 0 0 0 4px #d8b47513, 0 10px 24px #00111a65;
  color: #efe0bc;
}
.realm-dialog .qian-planning-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.realm-dialog .qian-planning-head small { color: #bdc8bb; font: 11px/1.3 Georgia, serif; letter-spacing: .18em; }
.realm-dialog .qian-planning-head h3 { margin: 3px 0 4px; color: #ffe0a0; font: 700 clamp(21px, 2vw, 29px)/1.3 var(--display); letter-spacing: .11em; }
.realm-dialog .qian-planning-head p { margin: 0; color: #d9d5c4; font-size: 13px; line-height: 1.5; }
.realm-dialog .qian-find-team {
  flex: none; min-height: 42px; padding: 8px 16px; border: 1px solid #d5b779;
  background: #193a47; color: #ffdfa0; font: 700 14px/1.2 var(--display); cursor: pointer;
}
.realm-dialog .qian-find-team:hover, .realm-dialog .qian-find-team:focus-visible { background: #294e58; outline-color: #ffe7a8; }
.realm-dialog .qian-approaches { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.realm-dialog .qian-approaches button {
  position: relative; display: grid; gap: 4px; min-height: 77px; padding: 12px 16px 12px 52px;
  border: 1px solid #b49d6b88; background: #0b2432e0; color: #e3d8bf;
  text-align: left; cursor: pointer;
}
.realm-dialog .qian-approaches button::before { content: '◇'; position: absolute; left: 18px; top: 18px; font-size: 24px; color: #ad9c73; }
.realm-dialog .qian-approaches button[aria-pressed="true"] { border-color: #f2d594; background: linear-gradient(120deg, #514b36, #23424a 85%); box-shadow: 0 0 0 1px #e2bb6b70, inset 0 1px #ffe9a65b; }
.realm-dialog .qian-approaches button[aria-pressed="true"]::before { content: '✦'; color: #ffe3a2; }
.realm-dialog .qian-approaches button:hover, .realm-dialog .qian-approaches button:focus-visible { border-color: #f7d891; outline-color: #f7d891; }
.realm-dialog .qian-approaches strong { color: #ffe2a6; font: 700 17px/1.3 var(--display); letter-spacing: .08em; }
.realm-dialog .qian-approaches span { color: #d4d9cf; font-size: 12px; line-height: 1.45; }
.realm-dialog .qian-cooperation { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #c0a36c5c; color: #c9d8d4; font-size: 12px; line-height: 1.5; }

body.battle-mode .qian-array-board {
  grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 18px;
  padding: 10px 16px; border: 1px solid #d1af6fa8; border-radius: 5px;
  background: linear-gradient(110deg, #0e2937f5, #24404be8); box-shadow: inset 0 1px #ffe4a53c, 0 4px 14px #071824a3;
  color: #eeddb4;
}
body.battle-mode .qian-array-board[hidden] { display: none; }
body.battle-mode .qian-array-board > div { display: grid; gap: 2px; min-width: 0; }
body.battle-mode .qian-array-board small { color: #c1cdbf; font: 11px/1.3 Georgia, serif; letter-spacing: .08em; }
body.battle-mode .qian-array-board strong { color: #ffe0a1; font: 700 16px/1.4 var(--display); }
body.battle-mode .qian-array-board span { color: #dce0d3; font-size: 11px; line-height: 1.4; }
body.battle-mode .qian-array-board ol { display: flex; flex: none; gap: 8px; list-style: none; margin: 0; padding: 0; }
body.battle-mode .qian-array-board li { padding: 6px 10px; border: 1px solid #9b92776e; color: #bfc5ba; background: #0b2430; font-size: 12px; white-space: nowrap; }
body.battle-mode .qian-array-board li.done { border-color: #f0d38d; color: #ffe3a5; background: #73583d; }
@media (max-width: 760px) {
  .realm-dialog .qian-planning { padding: 12px; }
  .realm-dialog .qian-planning-head { align-items: flex-start; gap: 10px; }
  .realm-dialog .qian-planning-head h3 { font-size: 19px; }
  .realm-dialog .qian-planning-head p { font-size: 11px; }
  .realm-dialog .qian-find-team { padding: 7px 10px; font-size: 11px; }
  .realm-dialog .qian-approaches { gap: 6px; }
  .realm-dialog .qian-approaches button { min-height: 90px; padding: 9px 9px 9px 30px; }
  .realm-dialog .qian-approaches button::before { left: 8px; top: 14px; font-size: 18px; }
  .realm-dialog .qian-approaches strong { font-size: 13px; }
  .realm-dialog .qian-approaches span, .realm-dialog .qian-cooperation { font-size: 10px; }
  body.battle-mode .qian-array-board { flex-wrap: wrap; gap: 7px; padding: 8px 10px; }
  body.battle-mode .qian-array-board strong { font-size: 13px; }
  body.battle-mode .qian-array-board li { padding: 4px 7px; font-size: 10px; }
}

/* Qianyuan's opening is visible beside the player's tactical choices. */
body.battle-mode .action-panel:has(>.qian-array-board:not([hidden])){max-height:43%}
body.battle-mode .action-panel>.qian-array-board{grid-column:1/-1;grid-row:1;min-height:55px;margin:0;padding:7px 12px;border-color:#cfaf73a8;background:linear-gradient(115deg,#102f3edc,#243b43eb);box-shadow:inset 0 1px #fff0c939,0 0 22px #dcb76f32}
body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.skills,
body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.action-confirm{grid-row:2}
body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.battle-command{grid-row:3}
body.battle-mode .qian-array-board[data-phase="exposed"]{border-color:#ffdf95;box-shadow:inset 0 1px #fff5cd77,0 0 26px #ffd17c77}
body.battle-mode .qian-array-board[data-phase="broken"]{border-color:#dff6dd;background:linear-gradient(115deg,#173c3c,#284a47)}
body.battle-mode .qian-array-board li.active{border-color:#ffdda0;color:#fff5d9;background:#725538;box-shadow:0 0 10px #ffce6e78}
body.battle-mode .qian-array-board[data-phase="broken"] li.done{background:#426756;border-color:#d7eebd}
body.battle-mode .qian-array-effect{position:absolute;left:70%;top:45%;z-index:4;width:clamp(210px,27vw,430px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;opacity:.48;transition:opacity .28s,filter .28s}
body.battle-mode .qian-array-effect[hidden]{display:none}
body.battle-mode .qian-ring{position:absolute;inset:4%;border:2px solid #e6b973;border-radius:50%;box-shadow:0 0 24px #e6bd6a8f,inset 0 0 24px #ddae6780}
body.battle-mode .qian-ring-outer{background:repeating-conic-gradient(from 14deg,#e8bd6955 0deg 2deg,transparent 2deg 27deg);animation:qian-ring-turn 18s linear infinite}
body.battle-mode .qian-ring-inner{inset:22%;border-style:dashed;border-color:#f7d993;animation:qian-ring-turn 12s linear infinite reverse}
body.battle-mode .qian-sword-ray{position:absolute;inset:45% -8%;height:10%;background:linear-gradient(90deg,transparent,#ffecc28f 49%,#fff4dc 50%,#ffecc28f 51%,transparent);filter:blur(5px);transform:rotate(-35deg);opacity:.55}
body.battle-mode .qian-array-effect[data-phase="exposed"]{opacity:.94;filter:brightness(1.35)}
body.battle-mode .qian-array-effect[data-phase="exposed"] .qian-ring-inner{animation:qian-eye-pulse 1.1s ease-in-out infinite}
body.battle-mode .qian-array-effect[data-phase="broken"]{opacity:.17;filter:saturate(.5)}
body.battle-mode .battlefield.qian-shatter .qian-array-effect{opacity:1;filter:brightness(2)}
body.battle-mode .battlefield.qian-shatter .qian-ring-outer{animation:qian-ring-shatter 1.15s ease-out forwards}
body.battle-mode .battlefield.qian-shatter .qian-ring-inner{animation:qian-ring-shatter .95s ease-out forwards reverse}
body.battle-mode .battlefield.qian-shatter .qian-sword-ray{animation:qian-ray-flash .95s ease-out forwards}
body.battle-mode .battlefield.qian-shatter .battle-cast-banner{background:#7c552b;color:#fff7df;box-shadow:0 0 42px #fff1ab}
@keyframes qian-ring-turn{to{transform:rotate(360deg)}}
@keyframes qian-eye-pulse{50%{transform:scale(1.14);box-shadow:0 0 38px #ffe2a6,inset 0 0 30px #ffe2a6}}
@keyframes qian-ring-shatter{35%{transform:scale(.84) rotate(-15deg);opacity:1}100%{transform:scale(1.8) rotate(38deg);opacity:0}}
@keyframes qian-ray-flash{30%{opacity:1;filter:blur(2px)}100%{opacity:0;transform:rotate(-35deg) scaleX(1.9)}}
@media(max-width:760px){
 body.battle-mode .action-panel:has(>.qian-array-board:not([hidden])){max-height:none}
 body.battle-mode .action-panel>.qian-array-board{grid-row:1;min-height:58px;padding:5px 8px;gap:5px}
 body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.skills{grid-row:2}
 body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.action-confirm{grid-row:3}
 body.battle-mode .action-panel:has(>.qian-array-board:not([hidden]))>.battle-command{grid-row:4}
 body.battle-mode .qian-array-board ol{gap:3px}
 body.battle-mode .qian-array-board li{padding:4px 5px;font-size:9px}
 body.battle-mode .qian-array-board span{font-size:10px}
 body.battle-mode .qian-array-effect{left:75%;top:36%;width:210px}
}
@media(prefers-reduced-motion:reduce){body.battle-mode .qian-ring,body.battle-mode .qian-sword-ray{animation:none!important}}


.battle-result-dialog .qian-result-note{margin:12px 0 16px;padding:13px 15px;border:1px solid #d2ad6e8f;border-radius:5px;background:linear-gradient(120deg,#183a43e8,#20333ded);color:#eadbbb}
.battle-result-dialog .qian-result-note small{display:block;color:#f2cb80;font:700 11px/1.4 var(--display);letter-spacing:.13em}
.battle-result-dialog .qian-result-note p{margin:6px 0;color:#fff1cf;line-height:1.6}
.battle-result-dialog .qian-result-note span{color:#d9d8c5;font-size:12px;line-height:1.5}


/* Solo is the default path; the optional party link stays quiet. */
.realm-dialog .qian-find-team {
  min-height: 30px;
  padding: 4px 2px;
  border: 0;
  border-bottom: 1px solid #aab8aa77;
  background: transparent;
  color: #c8d2c5;
  font-size: 12px;
  box-shadow: none;
}
.realm-dialog .qian-find-team:hover,
.realm-dialog .qian-find-team:focus-visible {
  background: transparent;
  border-bottom-color: #ffe0a0;
  color: #ffe0a0;
}
/* Qianyuan solo: two contextual actions, one click to resolve a turn. */
body.battle-mode #battleScreen.is-qian-simple .action-panel {
  display: block;
  width: min(780px, 84%);
  max-height: none;
  min-height: 0;
  padding: 0;
  overflow: visible;
}
body.battle-mode #battleScreen.is-qian-simple .action-panel > .actor-summary,
body.battle-mode #battleScreen.is-qian-simple .action-panel > .skills,
body.battle-mode #battleScreen.is-qian-simple .action-panel > .action-confirm,
body.battle-mode #battleScreen.is-qian-simple .action-panel > .qian-array-board,
body.battle-mode #battleScreen.is-qian-simple .formation-chip,
body.battle-mode #battleScreen.is-qian-simple .field-callout,
body.battle-mode #battleScreen.is-qian-simple .battle-live-log,
body.battle-mode #battleScreen.is-qian-simple #autoToggle,
body.battle-mode #battleScreen.is-qian-simple #battleCritical > span:nth-child(3),
body.battle-mode #battleScreen.is-qian-simple #battleCritical > span:nth-child(4) {
  display: none !important;
}
body.battle-mode #battleScreen.is-qian-simple .battle-command.is-qian-quick {
  display: block;
  padding: 0;
  border: 0;
  background: none;
}
body.battle-mode #battleScreen.is-qian-simple .qian-quick-story {
  border: 1px solid #cfad6b;
  border-radius: 10px;
  padding: 11px 15px 13px;
  background: linear-gradient(100deg, #081d29ed, #17313de8);
  box-shadow: 0 8px 27px #04131bd1, inset 0 1px #ffe0a52b;
}
.qian-quick-progress { display: flex; gap: 13px; color: #a9b7b2; font-size: 11px; letter-spacing: .1em; }
.qian-quick-progress .is-current, .qian-quick-progress .is-done { color: #f2d391; }
.qian-quick-story p { margin: 6px 0 10px; color: #f5e6c7; font: 600 clamp(14px, 1.15vw, 17px)/1.4 var(--body); }
.qian-quick-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.qian-quick-actions button {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-height: 51px;
  padding: 9px 14px;
  border: 1px solid #c9a96c;
  border-radius: 5px;
  background: linear-gradient(115deg, #765b38, #a17a45);
  color: #fff0c6;
  cursor: pointer;
  text-align: left;
  transition: transform .18s, border-color .18s, filter .18s;
}
.qian-quick-actions button:nth-child(2) { background: #17313c; border-color: #a7b5a27d; }
.qian-quick-actions button:hover:not(:disabled), .qian-quick-actions button:focus-visible { transform: translateY(-2px); border-color: #ffe6a8; filter: brightness(1.12); outline: 2px solid #ffe6a8; outline-offset: 2px; }
.qian-quick-actions button:disabled { opacity: .55; cursor: wait; }
.qian-quick-actions b { font: 700 16px/1.25 var(--display); white-space: nowrap; }
.qian-quick-actions small { color: #e0d4b9; font-size: 11px; line-height: 1.3; }
@media (max-width: 760px) {
  body.battle-mode #battleScreen.is-qian-simple .action-panel { left: 7px; right: 7px; width: auto; bottom: 49px; }
  body.battle-mode #battleScreen.is-qian-simple .qian-quick-story { padding: 9px; }
  .qian-quick-story p { font-size: 13px; }
  .qian-quick-actions button { display: block; min-height: 56px; padding: 7px 8px; }
  .qian-quick-actions b { display: block; font-size: 13px; }
  .qian-quick-actions small { display: block; margin-top: 3px; font-size: 9px; }
}
body.battle-mode #battleScreen.is-qian-simple .action-panel::before { display: none; }
body.battle-mode #battleScreen.is-qian-simple .footer-tips { display: none; }
