/* Minimal mobile-first chat shell for /app (keeps existing JS). */

body[data-ui="app"][data-layout="chat"] {
  /* White base. (User asked for 白底) */
  background: #fff;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] {
  /* Game skin stays white, accents live on controls/cards. */
  background: #fff;
  color-scheme: light;
}

body[data-ui="app"][data-layout="chat"] {
  overflow: hidden;
}

body[data-ui="app"][data-layout="chat"] .app-wrap.app-chat-wrap {
  max-width: 640px;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  gap: var(--app-gap);
  padding-bottom: calc(var(--app-pad) + var(--safe-area-bottom));
  position: relative;
  z-index: 2;
}

body[data-ui="app"][data-layout="chat"] .app-chat-top {
  align-items: center;
}

body[data-ui="app"][data-layout="chat"] .app-hud {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

body[data-ui="app"][data-layout="chat"] .app-hud-lv {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: rgba(255, 255, 255, 0.75);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.2px;
}

body[data-ui="app"][data-layout="chat"] .app-hud-xp {
  width: 140px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: rgba(255, 255, 255, 0.7);
  overflow: hidden;
  box-shadow: 0 2px 0 rgba(29, 26, 22, 0.04) inset;
}

body[data-ui="app"][data-layout="chat"] .app-hud-xp-fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(var(--ui-brand-rgb, 37, 99, 235), 0.9), rgba(var(--ui-accent-rgb, 168, 85, 247), 0.82));
  transition: width 380ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"] .app-hud-quest {
  font-size: 12px;
  font-weight: 900;
  color: rgba(17, 24, 39, 0.62);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-hud-lv,
body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-hud-xp {
  background: rgba(255, 255, 255, 0.86);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-hud-quest {
  color: rgba(17, 24, 39, 0.68);
}

body[data-ui="app"][data-layout="chat"] .app-chat-main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}

body[data-ui="app"][data-layout="chat"] .app-chat-main.app-home-main {
  position: relative;
  flex-direction: column;
  gap: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-card {
  flex: 1 1 auto;
  min-height: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

body[data-ui="app"][data-layout="chat"] .app-chat-card::before {
  content: none;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-chat-card {
  border: 1px solid rgba(17, 24, 39, 0.12);
  background: rgba(255, 255, 255, 0.52);
  box-shadow: 0 22px 72px rgba(29, 26, 22, 0.14);
  backdrop-filter: blur(10px);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-chat-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(500px 240px at 18% 0%, rgba(var(--ui-brand-rgb, 37, 99, 235), 0.08), transparent 60%),
    radial-gradient(420px 240px at 82% 0%, rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.1), transparent 62%);
  opacity: 0.85;
  pointer-events: none;
}

body[data-ui="app"][data-layout="chat"] .app-chat-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-log {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
  scroll-behavior: smooth;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-chat-log {
  padding: 10px 2px 4px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-next {
  flex: 0 0 auto;
}

body[data-ui="app"][data-layout="chat"] .app-chat-status {
  margin-top: 2px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-input {
  flex: 0 0 auto;
  position: sticky;
  bottom: 0;
  z-index: 10;
  padding: var(--app-pad);
  padding-bottom: calc(var(--app-pad) + var(--safe-area-bottom));
  border: 1px solid rgba(17, 24, 39, 0.1);
  border-radius: var(--app-radius);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -6px 22px rgba(17, 24, 39, 0.06);
  backdrop-filter: blur(8px);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-chat-input {
  border-color: rgba(17, 24, 39, 0.12);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 -12px 38px rgba(29, 26, 22, 0.12);
  backdrop-filter: blur(10px);
}

body[data-ui="app"][data-layout="chat"] .app-chat-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-tags .app-chip {
  min-height: 2.25rem;
  padding: 0.45rem 0.75rem;
  font-weight: 900;
}

body[data-ui="app"][data-layout="chat"] .app-chat-textarea.app-input {
  min-height: 3.25rem;
  resize: none;
  border-radius: 16px;
}

body[data-ui="app"][data-layout="chat"] .app-chat-send {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  flex-wrap: wrap;
}

body[data-ui="app"][data-layout="chat"] .app-chat-kbd {
  opacity: 0.8;
}

/* Chat bubbles: hide role labels and align sides. */
body[data-ui="app"][data-layout="chat"] .app-msg-role {
  display: none;
}

body[data-ui="app"][data-layout="chat"] .app-msg {
  max-width: 92%;
  position: relative;
  border-radius: 18px;
}

body[data-ui="app"][data-layout="chat"] .app-msg.user {
  margin-left: auto;
  border-style: solid;
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.22);
  background: linear-gradient(
    180deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.14),
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.1)
  );
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant {
  margin-right: auto;
  border-color: rgba(17, 24, 39, 0.1);
  background: rgba(255, 255, 255, 0.92);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.user {
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.22);
  background: linear-gradient(
    180deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.08)
  );
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.assistant {
  border-color: rgba(17, 24, 39, 0.12);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 34px rgba(29, 26, 22, 0.1);
}

body[data-ui="app"][data-layout="chat"] .app-msg.user::before,
body[data-ui="app"][data-layout="chat"] .app-msg.assistant::before {
  content: '';
  position: absolute;
  top: 14px;
  width: 0;
  height: 0;
  border-style: solid;
  pointer-events: none;
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant::before {
  left: -7px;
  border-width: 7px 8px 7px 0;
  border-color: transparent rgba(255, 255, 255, 0.92) transparent transparent;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.assistant::before {
  border-color: transparent rgba(255, 255, 255, 0.94) transparent transparent;
}

body[data-ui="app"][data-layout="chat"] .app-msg.user::before {
  right: -7px;
  border-width: 7px 0 7px 8px;
  border-color: transparent transparent transparent rgba(var(--ui-brand-rgb, 37, 99, 235), 0.18);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.user::before {
  border-color: transparent transparent transparent rgba(var(--ui-brand-rgb, 37, 99, 235), 0.18);
}

body[data-ui="app"][data-layout="chat"] .app-links {
  display: none !important;
}

/* Answer rendering: cards instead of a big text wall. */
body[data-ui="app"][data-layout="chat"] .app-answer {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  white-space: normal;
}

body[data-ui="app"][data-layout="chat"] .app-answer-head {
  font-weight: 900;
  color: rgba(17, 24, 39, 0.82);
  line-height: 1.35;
}

body[data-ui="app"][data-layout="chat"] .app-answer-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 2px;
}

body[data-ui="app"][data-layout="chat"] .app-answer-badge {
  font-size: 12px;
  font-weight: 900;
  padding: 2px 10px;
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: rgba(255, 255, 255, 0.76);
  color: rgba(17, 24, 39, 0.68);
}

body[data-ui="app"][data-layout="chat"] .app-answer-badge.is-cloud {
  border-color: rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.36);
  background: rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.1);
  color: rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.92);
}

body[data-ui="app"][data-layout="chat"] .app-answer-badge.is-local {
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.28);
  background: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.08);
  color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.92);
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card {
  border-radius: 16px;
  border: 1px solid rgba(17, 24, 39, 0.12);
  background: rgba(255, 255, 255, 0.86);
  padding: 10px 12px;
  box-shadow: 0 10px 22px rgba(29, 26, 22, 0.1);
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card[open] {
  background: rgba(255, 255, 255, 0.92);
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  font-weight: 1000;
  letter-spacing: 0.2px;
  color: rgba(17, 24, 39, 0.86);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card > summary .app-answer-summary-title {
  flex: 0 0 auto;
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card > summary .app-answer-summary-preview {
  flex: 1 1 auto;
  text-align: right;
  font-size: 12px;
  font-weight: 900;
  color: rgba(17, 24, 39, 0.55);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card > summary::-webkit-details-marker {
  display: none;
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card > summary::after {
  content: '▾';
  opacity: 0.55;
  font-weight: 900;
}

body[data-ui="app"][data-layout="chat"] details.app-answer-card[open] > summary::after {
  content: '▴';
  opacity: 0.55;
}

body[data-ui="app"][data-layout="chat"] .app-answer-ol {
  margin: 8px 0 0;
  padding-left: 1.2em;
}

body[data-ui="app"][data-layout="chat"] .app-answer-ol li {
  margin: 8px 0;
  line-height: 1.45;
  color: rgba(17, 24, 39, 0.86);
}

body[data-ui="app"][data-layout="chat"] .app-answer-script {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px dashed rgba(17, 24, 39, 0.18);
  background: rgba(17, 24, 39, 0.03);
  color: rgba(17, 24, 39, 0.82);
  line-height: 1.4;
}

body[data-ui="app"][data-layout="chat"] .app-answer-slots {
  margin-top: 8px;
  display: grid;
  gap: 8px;
}

@media (min-width: 560px) {
  body[data-ui="app"][data-layout="chat"] .app-answer-slots {
    grid-template-columns: 1fr 1fr;
  }
}

body[data-ui="app"][data-layout="chat"] .app-answer-slot {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(17, 24, 39, 0.1);
  background: rgba(255, 255, 255, 0.74);
}

body[data-ui="app"][data-layout="chat"] .app-answer-slot-k {
  flex: 0 0 auto;
  font-weight: 1000;
  color: rgba(17, 24, 39, 0.62);
  letter-spacing: 0.2px;
}

body[data-ui="app"][data-layout="chat"] .app-answer-slot-v {
  flex: 1 1 auto;
  color: rgba(17, 24, 39, 0.86);
  line-height: 1.35;
}

/* Guide-only 极简展示：把槽位塞进同一段里（减少“AI卡片感”）。 */
body[data-ui="app"][data-layout="chat"] .app-answer-guide {
  margin-top: 8px;
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide-text {
  margin: 0;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(17, 24, 39, 0.08);
  background: rgba(255, 255, 255, 0.9);
  color: rgba(17, 24, 39, 0.88);
  line-height: 1.55;
  letter-spacing: 0.15px;
}


body[data-ui="app"][data-layout="chat"] .app-answer-guide-quote {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(17, 24, 39, 0.06);
  background: rgba(255, 255, 255, 0.72);
  color: rgba(17, 24, 39, 0.58);
  font-size: 0.92rem;
  line-height: 1.5;
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide-text .slot-k {
  font-weight: 1000;
  color: rgba(17, 24, 39, 0.62);
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide-text .slot-v {
  font-weight: 820;
  color: rgba(17, 24, 39, 0.88);
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide-text .oracle {
  font-weight: 1000;
  color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.96);
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide-text .oracle.is-verdict {
  display: inline-flex;
  align-items: center;
  padding: 0.08em 0.55em;
  margin: 0 0.1em;
  border-radius: 999px;
  border: 1px solid rgba(var(--ui-accent-rgb, 255, 107, 107), 0.25);
  background: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.1);
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide .oracle.is-focus {
  letter-spacing: 0.15px;
}

/* 每次抽签一个“高亮效果皮肤”（仍然保持红色，但表现不同）。 */
body[data-ui="app"][data-layout="chat"] .app-answer-guide[data-oracle-variant="1"] .oracle.is-focus {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.55);
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide[data-oracle-variant="2"] .oracle.is-focus {
  padding: 0.06em 0.5em;
  border-radius: 12px;
  border: 1px solid rgba(var(--ui-accent-rgb, 255, 107, 107), 0.22);
  background: linear-gradient(
    135deg,
    rgba(var(--ui-accent-rgb, 255, 107, 107), 0.12),
    rgba(var(--ui-accent2-rgb, 45, 212, 191), 0.08)
  );
}

body[data-ui="app"][data-layout="chat"] .app-answer-guide[data-oracle-variant="3"] .oracle.is-focus {
  padding: 0.06em 0.5em;
  border-radius: 12px;
  background: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.1);
  box-shadow: 0 0 0 3px rgba(var(--ui-accent-rgb, 255, 107, 107), 0.08);
  animation: appOraclePulse 1.18s ease-in-out infinite;
}

/* Oracle/卜卦建议：红色高亮（仅在“抽到的签”卡片里）。 */
body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot-v {
  color: rgba(17, 24, 39, 0.88);
  font-weight: 820;
}

body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot.is-verdict {
  border-color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.22);
  background: rgba(255, 255, 255, 0.9);
}

body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot.is-focus {
  border-color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.18);
  background: rgba(255, 255, 255, 0.86);
}

body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot.is-verdict .app-answer-slot-k {
  color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.86);
}

body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot.is-verdict .app-answer-slot-v {
  color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.94);
  font-weight: 1000;
  font-size: 1.04em;
  letter-spacing: 0.1px;
}

body[data-ui="app"][data-layout="chat"] .app-answer-card.is-guide .app-answer-slot.is-focus .app-answer-slot-v {
  color: rgba(var(--ui-accent-rgb, 255, 107, 107), 0.94);
  font-weight: 950;
}

body[data-ui="app"][data-layout="chat"] .app-msg.is-loading {
  min-height: 2.75rem;
}

body[data-ui="app"][data-layout="chat"] .app-msg.is-loading .app-msg-text {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading .app-msg-text {
  justify-content: center;
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading {
  overflow: hidden;
  max-width: 168px;
  min-width: 112px;
  padding: 10px 12px;
  background: rgba(239, 242, 246, 0.98);
  border-color: rgba(17, 24, 39, 0.08);
  box-shadow: 0 14px 28px rgba(17, 24, 39, 0.1);
  transition:
    background-color 220ms var(--ui-ease, ease),
    border-color 220ms var(--ui-ease, ease),
    box-shadow 220ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading[data-thinking-stage="2"] {
  background: linear-gradient(
    135deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.1)
  );
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.16);
  box-shadow: 0 18px 36px rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12);
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading::after {
  content: '';
  position: absolute;
  top: -30%;
  left: -60%;
  width: 120%;
  height: 160%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.72),
    transparent
  );
  transform: translateX(-70%);
  opacity: 0.55;
  z-index: 0;
  pointer-events: none;
  animation: appThinkingSweep 1.05s ease-in-out infinite;
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading::before {
  border-color: transparent rgba(240, 242, 245, 0.98) transparent transparent;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.assistant.is-loading {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(17, 24, 39, 0.1);
  box-shadow: 0 18px 44px rgba(29, 26, 22, 0.12);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.assistant.is-loading[data-thinking-stage="2"] {
  background: linear-gradient(
    135deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.14),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.1)
  );
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.18);
  box-shadow: 0 18px 54px rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-msg.assistant.is-loading::before {
  border-color: transparent rgba(255, 255, 255, 0.92) transparent transparent;
}

body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading[data-thinking-stage="2"]::before {
  border-color: transparent rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12) transparent transparent;
}

@keyframes appThinkingSweep {
  to { transform: translateX(70%); }
}

@keyframes appOraclePulse {
  0%, 100% {
    box-shadow: 0 0 0 3px rgba(var(--ui-accent-rgb, 255, 107, 107), 0.08);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(var(--ui-accent-rgb, 255, 107, 107), 0.12);
  }
}

body[data-ui="app"] .app-thinking {
  width: min(320px, 100%);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

body[data-ui="app"] .app-thinking-status {
  font-size: 12px;
  font-weight: 900;
  color: rgba(17, 24, 39, 0.7);
}

body[data-ui="app"] .app-thinking-desc {
  font-size: 12px;
  color: rgba(17, 24, 39, 0.62);
  line-height: 1.35;
}

body[data-ui="app"] .app-thinking-typing {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.06);
  border: 1px solid rgba(17, 24, 39, 0.08);
}

body[data-ui="app"] .app-thinking-dots {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

body[data-ui="app"] .app-thinking-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.42);
  animation: appThinkingDots 0.88s ease-in-out infinite;
}

body[data-ui="app"] .app-thinking-dot:nth-child(2) { animation-delay: 0.14s; }
body[data-ui="app"] .app-thinking-dot:nth-child(3) { animation-delay: 0.28s; }

@keyframes appThinkingDots {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.35; }
  40% { transform: translateY(-6px); opacity: 0.92; }
}

body[data-ui="app"] .app-thinking-skel {
  display: grid;
  gap: 8px;
}

body[data-ui="app"] .app-thinking-skel-line {
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(17, 24, 39, 0.08), rgba(17, 24, 39, 0.16), rgba(17, 24, 39, 0.08));
  background-size: 220% 100%;
  animation: appSkelShimmer 1.05s linear infinite;
}

body[data-ui="app"] .app-thinking-skel-line.w85 { width: 85%; }
body[data-ui="app"] .app-thinking-skel-line.w55 { width: 55%; }

@keyframes appSkelShimmer {
  to { background-position: 220% 0; }
}

body[data-ui="app"] .app-thinking-stages {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

body[data-ui="app"] .app-thinking-stage {
  font-size: 12px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: rgba(255, 255, 255, 0.8);
  color: rgba(17, 24, 39, 0.55);
}

body[data-ui="app"] .app-thinking-stage.is-on {
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.32);
  background: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.08);
  color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.92);
}

body[data-ui="app"] .app-thinking-progress {
  height: 4px;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.1);
  overflow: hidden;
}

body[data-ui="app"] .app-thinking-progress-fill {
  display: block;
  height: 100%;
  width: 16%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(var(--ui-brand-rgb, 37, 99, 235), 0.74), rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.64));
  transition: width 220ms var(--ui-ease, ease);
}

/* In chat layout, keep the loading bubble as a WeChat-ish typing indicator. */
body[data-ui="app"][data-layout="chat"] .app-thinking {
  width: auto;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
}

body[data-ui="app"][data-layout="chat"] .app-thinking-typing {
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.06);
  border: 1px solid rgba(17, 24, 39, 0.08);
}

body[data-ui="app"][data-layout="chat"] .app-thinking-dot {
  width: 12px;
  height: 12px;
  background: rgba(17, 24, 39, 0.56);
  animation: appWeChatTypingDots 0.88s ease-in-out infinite;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-thinking-dot {
  width: 12px;
  height: 12px;
  background: rgba(17, 24, 39, 0.46);
}

body[data-ui="app"][data-layout="chat"] .app-thinking[data-stage="2"] .app-thinking-dot {
  background: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.72);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-thinking[data-stage="2"] .app-thinking-dot {
  background: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.9);
}

@keyframes appWeChatTypingDots {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.32; }
  40% { transform: scale(1); opacity: 0.92; }
}

/* --- Tag cloud: spherical draggable “icon cloud” (Apple Watch-ish). --- */
body[data-ui="app"][data-layout="chat"] .app-cloud {
  margin-bottom: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-cloud.app-cloud-full {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-roles {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-role {
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  font-weight: 900;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-role.is-on {
  border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.42);
  background: linear-gradient(
    180deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.1),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.06)
  );
}

body[data-ui="app"][data-layout="chat"] .app-cloud-sphere {
  position: relative;
  height: 168px;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background:
    radial-gradient(360px 260px at 22% 18%, rgba(var(--ui-brand-rgb, 37, 99, 235), 0.12), transparent 64%),
    radial-gradient(360px 260px at 80% 16%, rgba(var(--ui-accent-rgb, 168, 85, 247), 0.1), transparent 66%),
    radial-gradient(560px 360px at 50% 118%, rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.1), transparent 68%),
    rgba(255, 255, 255, 0.98);
  overflow: hidden;
  user-select: none;
  touch-action: none;
  cursor: grab;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
  contain: layout paint;
}

body[data-ui="app"][data-layout="chat"] .app-cloud.app-cloud-full .app-cloud-sphere {
  flex: 1 1 auto;
  min-height: clamp(320px, 52vh, 780px);
  height: auto;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-sphere::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 260px at 30% 0%, rgba(255, 255, 255, 0.9), transparent 58%),
    radial-gradient(520px 260px at 90% 0%, rgba(255, 255, 255, 0.6), transparent 62%);
  opacity: 0.5;
  pointer-events: none;
}

/* Center HUD inside the sphere: “获取灵感 / 思考中”. */
@keyframes appCloudHudFloatV1 {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.02); }
}

@keyframes appCloudHudOrbSpinV1 {
  to { transform: rotate(360deg); }
}

@keyframes appCloudHudTextShiftV1 {
  to { background-position: 220% 50%; }
}

@keyframes appCloudHudShineV1 {
  0% { transform: translateX(-120%); opacity: 0; }
  35% { opacity: 0.55; }
  100% { transform: translateX(140%); opacity: 0; }
}

body[data-ui="app"][data-layout="chat"] .app-cloud-center {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 120;
  opacity: 0;
  transform: translateY(10px) scale(0.98);
  transition: opacity 260ms var(--ui-ease, ease), transform 260ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"] #tagCloud[data-hud-show="1"] .app-cloud-center {
  opacity: 1;
  transform: translateY(0) scale(1);
}

body[data-ui="app"][data-layout="chat"] .app-cloud-center-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.72)) padding-box,
    linear-gradient(
      135deg,
      rgba(var(--ui-brand-rgb, 37, 99, 235), 0.62),
      rgba(var(--ui-accent-rgb, 168, 85, 247), 0.48),
      rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.48)
    ) border-box;
  box-shadow: 0 14px 44px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(10px);
  animation: appCloudHudFloatV1 2400ms var(--ui-ease, ease) infinite;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-center-pill::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.72), transparent);
  opacity: 0.42;
  transform: translateX(-120%);
  animation: appCloudHudShineV1 1600ms ease-in-out infinite;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-center-orb {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: conic-gradient(
    from 180deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.8),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.7),
    rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.72),
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.8)
  );
  filter: saturate(1.05);
  box-shadow: 0 0 0 6px rgba(var(--ui-brand-rgb, 37, 99, 235), 0.06);
  animation: appCloudHudOrbSpinV1 1400ms linear infinite;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-center-text {
  font-weight: 1000;
  letter-spacing: 0.1px;
  font-size: 14px;
  background: linear-gradient(
    90deg,
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.92),
    rgba(var(--ui-accent-rgb, 168, 85, 247), 0.92),
    rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.9),
    rgba(var(--ui-brand-rgb, 37, 99, 235), 0.92)
  );
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: appCloudHudTextShiftV1 1600ms linear infinite;
}

body[data-ui="app"][data-layout="chat"] #tagCloud[data-hud="inspire"] .app-thinking-dots {
  display: none;
}

body[data-ui="app"][data-layout="chat"] #tagCloud[data-hud="thinking"] .app-cloud-center-orb {
  animation-duration: 980ms;
  box-shadow: 0 0 0 7px rgba(var(--ui-brand-rgb, 37, 99, 235), 0.08);
}

body[data-ui="app"][data-layout="chat"] .app-cloud-sphere[data-drag="1"] {
  cursor: grabbing;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-hint {
  margin-top: 8px;
  display: flex;
  justify-content: center;
  font-size: clamp(0.85rem, 1.6vw, 1rem);
  font-weight: 900;
  color: rgba(17, 24, 39, 0.62);
  letter-spacing: 0.1px;
  user-select: none;
}

body[data-ui="app"][data-layout="chat"] .app-chat-log.app-chat-overlay {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  width: min(720px, calc(100vw - 24px));
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  max-height: clamp(220px, 46vh, 620px);
  padding: 10px 10px 6px;
  border-radius: 18px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 52px rgba(29, 26, 22, 0.18);
  overflow: auto;
  scroll-behavior: smooth;
}

body[data-ui="app"][data-layout="chat"] .app-chat-log.app-chat-overlay .app-msg {
  max-width: 100%;
}

body[data-ui="app"][data-layout="chat"] .app-chat-log.app-chat-overlay:empty {
  display: none;
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-chat-log.app-chat-overlay {
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(17, 24, 39, 0.16);
}

/* Result page: full-screen “jump” view (no bottom overlay). */
body[data-ui="app"][data-layout="chat"][data-page="home"] .app-chat-log.app-chat-overlay {
  display: none !important;
}

body[data-ui="app"][data-layout="chat"] .app-result-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 2px 0;
}

body[data-ui="app"][data-layout="chat"] .app-result-label {
  flex: 1 1 auto;
  font-weight: 1000;
  color: rgba(15, 23, 42, 0.78);
  letter-spacing: 0.1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-ui="app"][data-layout="chat"][data-page="home"] .app-result-bar {
  display: none;
}

body[data-ui="app"][data-layout="chat"][data-page="result"] .app-cloud {
  display: none;
}

body[data-ui="app"][data-layout="chat"][data-page="result"] .app-chat-log.app-chat-overlay {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: 100%;
  max-height: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

/* Blessing curtain transition: blessing wall + 3D “bread” hero word. */
body[data-ui="app"][data-layout="chat"] #appRoot {
  transition:
    opacity 220ms var(--ui-ease, ease),
    transform 220ms var(--ui-ease, ease),
    filter 220ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"][data-curtain="1"] #appRoot {
  opacity: 0;
  transform: scale(0.985);
  filter: blur(10px) saturate(0.96);
  pointer-events: none;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  opacity: 0;
  overflow: hidden;
  isolation: isolate;
  --app-curtain-bg-alpha: 1;
  background:
    radial-gradient(760px 460px at 18% 12%, rgba(var(--ui-brand-rgb, 37, 99, 235), 0.22), transparent 66%),
    radial-gradient(760px 460px at 86% 18%, rgba(var(--ui-accent-rgb, 168, 85, 247), 0.18), transparent 68%),
    radial-gradient(980px 620px at 50% 118%, rgba(var(--ui-accent2-rgb, 20, 184, 166), 0.16), transparent 70%),
    radial-gradient(680px 520px at 50% 46%, rgba(255, 255, 255, 0.06), transparent 72%),
    rgba(7, 10, 18, var(--app-curtain-bg-alpha));
  transition: opacity 200ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"][data-curtain="1"] .app-curtain-overlay {
  opacity: 1;
  pointer-events: auto;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-hero {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  pointer-events: none;
  transition: opacity 320ms var(--ui-ease, ease), filter 320ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"] .app-wait-toast {
  position: fixed;
  left: 50%;
  bottom: max(18px, calc(env(safe-area-inset-bottom) + 12px));
  z-index: 96;
  pointer-events: none;
  padding: clamp(8px, 2.4vmin, 12px) clamp(12px, 3.2vmin, 18px);
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.42);
  backdrop-filter: blur(10px);
  color: rgba(15, 23, 42, 0.62);
  font-weight: 900;
  font-size: clamp(12px, 3.2vmin, 16px);
  letter-spacing: 0.04em;
  opacity: 0;
  transform: translateX(-50%) translateY(8px);
  transition: opacity 200ms var(--ui-ease, ease), transform 200ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"][data-wait-toast="1"] .app-wait-toast {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-wall {
  position: absolute;
  inset: -18% -10%;
  pointer-events: none;
  opacity: 0.74;
  filter: blur(0.3px);
  transform: translateZ(0);
  transition: opacity 320ms var(--ui-ease, ease), filter 320ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"] .app-curtain-wall-col {
  --x: 50%;
  --dur: 12s;
  --delay: 0s;
  --alpha: 0.22;
  --tilt: 0deg;

  position: absolute;
  top: -12%;
  bottom: -12%;
  left: var(--x);
  width: clamp(32px, 7.6vw, 86px);
  transform: translateX(-50%) rotate(var(--tilt));
  opacity: var(--alpha);
  pointer-events: none;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(transparent, rgba(0, 0, 0, 1) 18%, rgba(0, 0, 0, 1) 82%, transparent);
  mask-image: linear-gradient(transparent, rgba(0, 0, 0, 1) 18%, rgba(0, 0, 0, 1) 82%, transparent);
}

body[data-ui="app"][data-layout="chat"] .app-curtain-wall-track {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 2.8vmin, 20px);
  padding: clamp(20px, 6vmin, 60px) 0;
  animation: appBlessingWallUpV1 var(--dur) linear infinite;
  animation-delay: var(--delay);
  animation-play-state: paused;
  will-change: transform;
}

body[data-ui="app"][data-layout="chat"][data-curtain="1"] .app-curtain-wall-track {
  animation-play-state: running;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-wall-word {
  --k: 1;
  --o: 1;
  --r: 0deg;

  display: inline-block;
  padding: 0.04em 0.08em;
  font-weight: 950;
  font-size: calc(clamp(18px, 4.6vmin, 38px) * var(--k));
  font-family: ui-rounded, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  line-height: 1;
  letter-spacing: 0.06em;
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: rgba(245, 206, 135, 0.32);
  -webkit-text-fill-color: currentColor;
  text-shadow:
    0 10px 40px rgba(0, 0, 0, 0.36),
    0 0 48px rgba(245, 206, 135, 0.08);
  opacity: calc(0.74 * var(--o));
  white-space: nowrap;
  transform: translateZ(0) rotate(var(--r));
  will-change: transform, opacity;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-hero-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(10px, 3vmin, 22px);
  transform-style: preserve-3d;
  will-change: transform, opacity, filter;
  perspective: 1100px;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  padding: 0.04em 0.1em 0.12em;
  font-weight: 1000;
  font-size: var(--app-curtain-hero-font, clamp(64px, 18vmin, 196px));
  font-family: ui-rounded, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  line-height: 1;
  letter-spacing: 0.03em;
  text-align: center;
  white-space: nowrap;
  writing-mode: vertical-rl;
  text-orientation: upright;
  transform-style: preserve-3d;
  will-change: transform, opacity, filter;
  color: rgba(245, 206, 135, 0.98);
  -webkit-text-fill-color: currentColor;
  text-shadow:
    0 2px 0 rgba(176, 105, 44, 0.88),
    0 5px 0 rgba(160, 92, 35, 0.82),
    0 12px 30px rgba(15, 23, 42, 0.16),
    0 40px 140px rgba(15, 23, 42, 0.12);
  filter: saturate(1.06) contrast(1.02);
  opacity: 0.96;
  transform: translateZ(0);
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-hero {
  font-size: var(--app-curtain-hero-font, clamp(64px, 18.5vmin, 206px));
}

body[data-ui="app"][data-layout="chat"][data-curtain="1"] .app-curtain-blessing-word.is-swap {
  animation: appCurtainHeroSwapV1 680ms var(--ui-ease, ease) both;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word::before {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateZ(1px);
}

body[data-ui="app"][data-layout="chat"][data-curtain="1"] .app-curtain-blessing-word::before {
  animation: appBlessingShineV1 1600ms ease-in-out infinite;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateZ(1px);
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word::before {
    opacity: 0.94;
    background:
      linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.88), transparent),
      linear-gradient(180deg, rgba(255, 251, 232, 1), rgba(252, 219, 155, 1) 52%, rgba(241, 169, 90, 1));
    background-size: 240% 100%, 100% 100%;
    background-position: -120% 50%, 0 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }

  body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word::after {
    opacity: 0.16;
    background:
      radial-gradient(18px 14px at 16% 36%, rgba(255, 255, 255, 0.38), transparent 72%),
      radial-gradient(14px 12px at 70% 28%, rgba(255, 255, 255, 0.28), transparent 72%),
      radial-gradient(16px 14px at 64% 76%, rgba(255, 255, 255, 0.24), transparent 72%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    mix-blend-mode: overlay;
  }
}

@keyframes appBlessingShineV1 {
  from { background-position: -120% 50%, 0 0; }
  to { background-position: 220% 50%, 0 0; }
}

@keyframes appBlessingWallUpV1 {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

@keyframes appCurtainHeroSwapV1 {
  0% { opacity: 0; filter: blur(10px) saturate(1.12); }
  45% { opacity: 1; filter: blur(0) saturate(1.06); }
  100% { opacity: 0.96; filter: blur(0) saturate(1.06); }
}

/* Share sheet (card + copy link). */
body[data-ui="app"][data-layout="chat"] .app-share-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 18px 14px max(14px, env(safe-area-inset-bottom));
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"][data-share="1"] .app-share-overlay {
  opacity: 1;
  pointer-events: auto;
}

body[data-ui="app"][data-layout="chat"] .app-share-sheet {
  width: min(520px, calc(100vw - 24px));
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28);
  padding: 14px;
}

body[data-ui="app"][data-layout="chat"] .app-share-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 2px 10px;
}

body[data-ui="app"][data-layout="chat"] .app-share-title {
  font-weight: 1000;
  font-size: 15px;
  color: rgba(15, 23, 42, 0.84);
  letter-spacing: 0.1px;
}

body[data-ui="app"][data-layout="chat"] .app-share-sub {
  font-weight: 800;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.52);
}

body[data-ui="app"][data-layout="chat"] .app-share-card {
  display: block;
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(248, 250, 252, 0.92);
  overflow: hidden;
}

body[data-ui="app"][data-layout="chat"] .app-share-card img {
  display: block;
  width: 100%;
  height: auto;
}

body[data-ui="app"][data-layout="chat"] .app-share-link {
  margin-top: 12px;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.7);
  background: rgba(15, 23, 42, 0.05);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  padding: 10px 10px;
  word-break: break-all;
  white-space: pre-wrap;
}

body[data-ui="app"][data-layout="chat"] .app-share-actions {
  margin-top: 12px;
  display: flex;
  gap: 10px;
}

body[data-ui="app"][data-layout="chat"] .app-share-actions .app-chip {
  flex: 1 1 auto;
  justify-content: center;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-tag {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(0, 0, 0) translate(-50%, -50%) scale(1);
  opacity: 0.9;
  z-index: 1;
  padding: clamp(9px, 1.8vw, 14px) clamp(12px, 2.6vw, 18px);
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.8));
  color: rgba(17, 24, 39, 0.88);
  font-size: clamp(1.12rem, 3.1vw, 1.5rem);
  font-weight: 900;
  letter-spacing: 0.1px;
  box-shadow: 0 8px 18px rgba(29, 26, 22, 0.1);
  -webkit-tap-highlight-color: transparent;
  will-change: transform, opacity;
}

body[data-ui="app"][data-layout="chat"] .app-cloud-tag:active {
  filter: brightness(0.98);
}

@media (hover: hover) and (pointer: fine) {
  body[data-ui="app"][data-layout="chat"] .app-cloud-tag:hover {
    background: rgba(255, 255, 255, 0.96);
    border-color: rgba(var(--ui-brand-rgb, 37, 99, 235), 0.22);
    box-shadow: 0 14px 28px rgba(29, 26, 22, 0.14);
  }
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-cloud-sphere {
  border-color: rgba(15, 23, 42, 0.12);
}

body[data-ui="app"][data-layout="chat"][data-theme="game"] .app-cloud-tag {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(17, 24, 39, 0.14);
}

@media (prefers-reduced-motion: reduce) {
  body[data-ui="app"][data-layout="chat"] .app-chat-log { scroll-behavior: auto; }
  body[data-ui="app"] .app-thinking-dot { animation: none; opacity: 0.55; }
  body[data-ui="app"] .app-thinking-skel-line { animation: none; }
  body[data-ui="app"][data-layout="chat"] .app-msg.assistant.is-loading::after { animation: none; opacity: 0.22; transform: translateX(0); }
  body[data-ui="app"][data-layout="chat"] .app-answer-guide .oracle { animation: none; }
  body[data-ui="app"][data-layout="chat"] .app-cloud-tag { will-change: auto; }
  body[data-ui="app"][data-layout="chat"] .app-cloud-center-pill { animation: none; }
  body[data-ui="app"][data-layout="chat"] .app-cloud-center-orb { animation: none; }
  body[data-ui="app"][data-layout="chat"] .app-cloud-center-text { animation: none; }
  body[data-ui="app"][data-layout="chat"] .app-curtain-overlay { transition: none !important; }
  body[data-ui="app"][data-layout="chat"] .app-curtain-hero-wrap { animation: none !important; }
  body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word { animation: none !important; }
  body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word::before { animation: none !important; }
}


/* Boot intro: game-like glass loading layer. */
body[data-ui="app"][data-layout="chat"][data-booting="1"] #appRoot {
  opacity: 0;
  transform: scale(0.986);
  filter: blur(12px) saturate(0.94);
  pointer-events: none;
}

body[data-ui="app"][data-layout="chat"] .app-boot-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  min-height: 100vh;
  z-index: 98;
  display: block;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms var(--ui-ease, ease), transform 220ms var(--ui-ease, ease);
}

body[data-ui="app"][data-layout="chat"][data-booting="1"] .app-boot-overlay {
  opacity: 1;
}


body[data-ui="app"][data-layout="chat"][data-booting="1"] .app-curtain-overlay,
body[data-ui="app"][data-layout="chat"][data-booting="1"] .app-wait-toast {
  opacity: 0 !important;
  pointer-events: none !important;
}

body[data-ui="app"][data-layout="chat"] .app-boot-panel {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(460px, calc(100vw - 34px));
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)),
    rgba(8, 12, 22, 0.72);
  backdrop-filter: blur(20px) saturate(1.08);
  box-shadow:
    0 28px 100px rgba(0, 0, 0, 0.36),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  padding: clamp(18px, 5vw, 28px);
  text-align: center;
  transform: translate3d(-50%, -50%, 0);
  animation: appBootFloatV2 3.4s ease-in-out infinite;
}

body[data-ui="app"][data-layout="chat"] .app-boot-kicker {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(244, 208, 148, 0.78);
}

body[data-ui="app"][data-layout="chat"] .app-boot-title {
  margin-top: 10px;
  font-size: clamp(26px, 7.2vw, 42px);
  font-weight: 1000;
  line-height: 1.08;
  color: rgba(255, 248, 235, 0.98);
  text-shadow: 0 14px 44px rgba(0, 0, 0, 0.3);
}

body[data-ui="app"][data-layout="chat"] .app-boot-sub {
  margin-top: 10px;
  font-size: clamp(13px, 3.6vw, 16px);
  line-height: 1.72;
  color: rgba(226, 232, 240, 0.86);
}

body[data-ui="app"][data-layout="chat"] .app-boot-progress {
  margin-top: 16px;
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

body[data-ui="app"][data-layout="chat"] .app-boot-progress-fill {
  display: block;
  width: 12%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(252, 211, 77, 0.86), rgba(249, 115, 22, 0.96), rgba(244, 114, 182, 0.88));
  box-shadow: 0 0 22px rgba(249, 115, 22, 0.44);
  transition: width 220ms ease;
}

@keyframes appBootFloatV2 {
  0%, 100% { transform: translate3d(-50%, -50%, 0); }
  50% { transform: translate3d(-50%, calc(-50% - 6px), 0); }
}

body[data-ui="app"][data-layout="chat"] .app-wait-toast {
  width: min(420px, calc(100vw - 28px));
  display: grid;
  gap: 4px;
  text-align: center;
  padding: clamp(10px, 2.8vmin, 14px) clamp(14px, 4vmin, 20px);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06)),
    rgba(9, 13, 24, 0.56);
  box-shadow: 0 18px 56px rgba(0, 0, 0, 0.26);
  backdrop-filter: blur(14px) saturate(1.05);
}

body[data-ui="app"][data-layout="chat"] .app-wait-toast-title {
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: 0.14em;
  color: rgba(244, 208, 148, 0.86);
}

body[data-ui="app"][data-layout="chat"] .app-wait-toast-sub {
  font-size: clamp(12px, 3.2vmin, 14px);
  line-height: 1.55;
  color: rgba(241, 245, 249, 0.88);
}

body[data-ui="app"][data-layout="chat"] .app-cloud-tag.is-launching {
  border-color: rgba(249, 115, 22, 0.42);
  box-shadow:
    0 16px 42px rgba(249, 115, 22, 0.22),
    0 10px 30px rgba(29, 26, 22, 0.18);
  filter: saturate(1.05) brightness(1.02);
}

body[data-ui="app"][data-layout="chat"] #tagCloud[data-role-swap="1"] .app-cloud-tag {
  transition: transform 220ms ease, opacity 220ms ease, filter 220ms ease;
}

body[data-ui="app"][data-layout="chat"] .app-curtain-wall-word {
  font-size: calc(clamp(15px, 3.8vmin, 30px) * var(--k));
  color: rgba(245, 206, 135, 0.26);
  text-shadow:
    0 10px 36px rgba(0, 0, 0, 0.4),
    0 0 44px rgba(245, 206, 135, 0.06);
  opacity: calc(0.58 * var(--o));
}

body[data-ui="app"][data-layout="chat"] .app-curtain-blessing-word {
  text-shadow:
    0 2px 0 rgba(176, 105, 44, 0.9),
    0 6px 0 rgba(160, 92, 35, 0.84),
    0 18px 42px rgba(15, 23, 42, 0.2),
    0 56px 140px rgba(15, 23, 42, 0.16);
}

body[data-ui="app"][data-layout="chat"][data-page-enter="home"] .app-cloud {
  animation: appHomeRevealV1 520ms cubic-bezier(.2,.74,.16,1) both;
}

body[data-ui="app"][data-layout="chat"][data-page-enter="result"] .app-result-bar {
  animation: appResultBarInV1 360ms cubic-bezier(.2,.74,.16,1) both;
}

body[data-ui="app"][data-layout="chat"][data-page-enter="result"] .app-chat-log.app-chat-overlay {
  animation: appResultBodyInV1 440ms cubic-bezier(.18,.78,.18,1) both;
}

@keyframes appHomeRevealV1 {
  0% { opacity: 0; transform: translateY(18px) scale(0.985); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes appResultBarInV1 {
  0% { opacity: 0; transform: translateY(-8px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes appResultBodyInV1 {
  0% { opacity: 0; transform: translateY(14px) scale(0.992); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}


@media (prefers-reduced-motion: reduce) {
  body[data-ui="app"][data-layout="chat"] .app-boot-panel { animation: none !important; }
  body[data-ui="app"][data-layout="chat"][data-page-enter="home"] .app-cloud { animation: none !important; }
  body[data-ui="app"][data-layout="chat"][data-page-enter="result"] .app-result-bar { animation: none !important; }
  body[data-ui="app"][data-layout="chat"][data-page-enter="result"] .app-chat-log.app-chat-overlay { animation: none !important; }
}
