html[data-tm-xiaoman="1"] #tmFloatAiBtn {
    display: none !important;
}
html[data-tm-xiaoman="0"] #tmXiaomanFab {
    display: none !important;
}

.tm-xiaoman-fab {
    position: fixed;
    z-index: 10060;
    right: 22px;
    top: 42%;
    bottom: auto;
    left: auto;
    width: 64px;
    height: 64px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: grab;
    touch-action: none;
    user-select: none;
    transform: translateY(-50%);
}
.tm-xiaoman-fab img {
    display: block;
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 50%;
    background: transparent;
    pointer-events: none;
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.45));
}
.tm-xiaoman-fab.is-dragging {
    cursor: grabbing;
}
.tm-xiaoman-fab.has-dot::after {
    content: '';
    position: absolute;
    top: 2px;
    right: 2px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #e8c547;
    box-shadow: 0 0 0 2px #0b1c18;
}
html[data-tm-xiaoman="1"] body.tm-rs-chat-open #tmXiaomanFab,
html[data-tm-xiaoman="1"] body.is-focus-overlay #tmXiaomanFab {
    display: none !important;
}

.tm-xiaoman-layer {
    position: fixed;
    z-index: 10070;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    pointer-events: none;
}
.tm-xiaoman-layer.is-open {
    display: block;
}
.tm-xiaoman-panel {
    pointer-events: auto;
    position: relative;
    margin: 0 16px 24px auto;
    width: min(560px, calc(100vw - 24px));
    height: min(78vh, 540px);
    max-height: min(78vh, 540px);
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    color: #f7efd2;
    border: 2px solid #e4c56a;
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(24, 48, 42, 0.97), rgba(8, 18, 20, 0.98));
    box-shadow:
        0 0 0 1px #6d5220,
        inset 0 0 0 1px rgba(255, 228, 150, 0.18),
        0 18px 40px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}
.tm-xiaoman-panel:before,
.tm-xiaoman-panel:after {
    content: '';
    position: absolute;
    z-index: 3;
    width: 10px;
    height: 10px;
    border: 2px solid #f0d27a;
    pointer-events: none;
}
.tm-xiaoman-panel:before {
    left: 6px;
    top: 6px;
    border-right: 0;
    border-bottom: 0;
}
.tm-xiaoman-panel:after {
    right: 6px;
    bottom: 6px;
    border-left: 0;
    border-top: 0;
}
.tm-xiaoman-hero {
    position: relative;
    z-index: 2;
    min-height: 0;
    background: transparent;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    pointer-events: none;
}
.tm-xiaoman-sprite {
    display: block;
    width: 100%;
    flex: 1 1 auto;
    min-height: 140px;
    height: auto;
    object-fit: contain;
    object-position: bottom center;
    pointer-events: none;
    filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.35));
}
.tm-xiaoman-hero:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 55%;
    background: linear-gradient(90deg, transparent 40%, rgba(12, 24, 22, 0.45) 100%);
    pointer-events: none;
}
.tm-xiaoman-main {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    z-index: 2;
}
.tm-xiaoman-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 14px 0 10px;
    flex-shrink: 0;
}
.tm-xiaoman-nameplate small {
    display: block;
    font-size: 10px;
    letter-spacing: 0.18em;
    color: #d7b45a;
}
.tm-xiaoman-nameplate b {
    font-size: 20px;
    font-weight: 800;
    color: #ffe9a6;
    text-shadow: 0 1px 0 #3a2a10;
}
.tm-xiaoman-tools {
    display: flex;
    gap: 6px;
}
.tm-xiaoman-tools button {
    width: 26px;
    height: 26px;
    border: 1px solid rgba(228, 197, 106, 0.55);
    border-radius: 4px;
    color: #ffe9a6;
    background: rgba(0, 0, 0, 0.25);
    cursor: pointer;
}
.tm-xiaoman-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.tm-xiaoman-log {
    padding: 8px 10px 6px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.tm-xiaoman-msg {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 100%;
}
.tm-xiaoman-msg.is-npc {
    justify-content: flex-start;
}
.tm-xiaoman-msg.is-user {
    justify-content: flex-end;
}
.tm-xiaoman-msg-av {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 4px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.35);
    color: #ffe9a6;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(228, 197, 106, 0.35);
}
.tm-xiaoman-msg-av img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tm-xiaoman-bubble {
    max-width: calc(100% - 48px);
    padding: 8px 10px;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.55;
    white-space: pre-wrap;
    word-break: break-word;
}
.tm-xiaoman-msg.is-npc .tm-xiaoman-bubble {
    background: rgba(255, 255, 255, 0.08);
    color: #f7efd2;
    border: 1px solid rgba(228, 197, 106, 0.18);
    border-top-left-radius: 2px;
}
.tm-xiaoman-msg.is-user .tm-xiaoman-bubble {
    background: #c9a227;
    color: #1e2a12;
    border-top-right-radius: 2px;
}
.tm-xiaoman-hint {
    padding: 0 14px 6px 10px;
    font-size: 11px;
    color: #d7b45a;
    text-align: right;
    letter-spacing: 0.06em;
}
.tm-xiaoman-choices {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 6px 8px;
    flex-shrink: 0;
    position: relative;
    z-index: 4;
    pointer-events: auto;
}
.tm-xiaoman-choices button {
    text-align: left;
    border: 1px solid rgba(228, 197, 106, 0.35);
    background: rgba(0, 0, 0, 0.42);
    color: #f7efd2;
    border-radius: 4px;
    padding: 5px 7px;
    font-size: 11px;
    line-height: 1.35;
    cursor: pointer;
    position: relative;
    z-index: 4;
    pointer-events: auto;
}
.tm-xiaoman-choices button:hover {
    border-color: #e4c56a;
    background: rgba(228, 197, 106, 0.16);
    color: #fff4c8;
}
.tm-xiaoman-input-row {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
    padding: 8px 12px 12px 8px;
    align-items: flex-end;
    border-top: 1px solid rgba(228, 197, 106, 0.22);
    background: rgba(0, 0, 0, 0.18);
    position: relative;
    z-index: 6;
    pointer-events: auto;
}
.tm-xiaoman-input-row.is-ready textarea {
    border-color: #e4c56a;
    box-shadow: 0 0 0 1px rgba(228, 197, 106, 0.45);
}
.tm-xiaoman-input-row textarea {
    flex: 1;
    min-height: 40px;
    max-height: 90px;
    resize: vertical;
    border-radius: 4px;
    border: 1px solid rgba(228, 197, 106, 0.4);
    background: rgba(0, 0, 0, 0.28);
    color: #f7efd2;
    padding: 8px 10px;
    font-size: 14px;
}
.tm-xiaoman-input-row button {
    border: 1px solid #e4c56a;
    border-radius: 4px;
    background: #c9a227;
    color: #1e2a12;
    font-weight: 700;
    padding: 8px 12px;
    cursor: pointer;
}
.tm-xiaoman-layer.is-min .tm-xiaoman-hero,
.tm-xiaoman-layer.is-min .tm-xiaoman-scroll,
.tm-xiaoman-layer.is-min .tm-xiaoman-input-row {
    display: none !important;
}
.tm-xiaoman-layer.is-min .tm-xiaoman-panel {
    grid-template-columns: 1fr;
    max-height: 52px;
}

@media (max-width: 1100px) {
    .tm-xiaoman-fab {
        right: 12px;
        top: 38%;
        width: 56px;
        height: 56px;
    }
    .tm-xiaoman-fab img {
        width: 56px;
        height: 56px;
    }
    .tm-xiaoman-panel {
        margin: 0 10px 16px auto;
        width: auto;
        grid-template-columns: 132px minmax(0, 1fr);
    }
    .tm-xiaoman-sprite {
        min-height: 120px;
    }
}
@media (max-width: 700px) {
    .tm-xiaoman-panel {
        margin: 0 8px 12px;
        grid-template-columns: 118px minmax(0, 1fr);
    }
}

/* 栖湾群岛：用地图站立角色入口，隐藏右下角浮标与经典对话面板 */
body.tm-destiny-body #tmXiaomanFab,
body[data-tm-destiny="1"] #tmXiaomanFab{
  display:none !important;
}
body.tm-destiny-body .tm-xiaoman-layer,
body[data-tm-destiny="1"] .tm-xiaoman-layer{
  display:none !important;
}

/* 栖湾群岛对话皮：奇幻同行者对话框（金边卷轴 + 青绿航区） */
@keyframes tmXmIslandIn{
  from{opacity:0;transform:translateY(18px) scale(.97)}
  to{opacity:1;transform:none}
}
body.tm-destiny-body .tm-xiaoman-layer.is-open,
body[data-tm-destiny="1"] .tm-xiaoman-layer.is-open{
  background:
    radial-gradient(ellipse 55% 70% at 78% 72%, rgba(8,42,58,.38), transparent 68%),
    linear-gradient(90deg, transparent 42%, rgba(6,38,52,.28) 100%);
}
body.tm-destiny-body .tm-xiaoman-panel,
body[data-tm-destiny="1"] .tm-xiaoman-panel{
  --xm-gold:#f3cf75;
  --xm-gold-deep:#c89a3a;
  --xm-mint:#8ce0c1;
  --xm-sea:#0d4a5c;
  --xm-ink:#16343c;
  margin:0 18px max(18px, env(safe-area-inset-bottom)) auto;
  width:min(560px, calc(100vw - 28px));
  height:min(74vh, 540px);
  max-height:min(74vh, 540px);
  border:2px solid var(--xm-gold);
  border-radius:22px;
  color:#f7fff9;
  background:
    linear-gradient(180deg, rgba(255,248,220,.12), transparent 28%),
    radial-gradient(ellipse 90% 55% at 18% 100%, rgba(140,224,193,.18), transparent 55%),
    linear-gradient(165deg, #1a6a7a 0%, #0f4d5c 42%, #0a3648 100%);
  box-shadow:
    0 0 0 1px rgba(255,236,180,.35),
    0 0 0 5px rgba(12,58,72,.55),
    inset 0 1px 0 rgba(255,255,255,.35),
    inset 0 0 40px rgba(8,40,52,.25),
    0 26px 60px rgba(4,28,40,.45);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  animation:tmXmIslandIn .32s ease-out;
  overflow:visible;
}
body.tm-destiny-body .tm-xiaoman-panel:before,
body[data-tm-destiny="1"] .tm-xiaoman-panel:before{
  content:'';
  position:absolute;
  z-index:5;
  inset:7px;
  border:1px solid rgba(243,207,117,.42);
  border-radius:16px;
  width:auto;
  height:auto;
  pointer-events:none;
  box-shadow:
    inset 0 0 0 1px rgba(140,224,193,.12),
    0 0 18px rgba(243,207,117,.08);
}
body.tm-destiny-body .tm-xiaoman-panel:after,
body[data-tm-destiny="1"] .tm-xiaoman-panel:after{
  content:'';
  position:absolute;
  z-index:6;
  inset:0;
  width:auto;
  height:auto;
  border:0;
  pointer-events:none;
  border-radius:22px;
  background:
    /* 四角装饰 */
    linear-gradient(135deg, var(--xm-gold) 0 8px, transparent 8px) 0 0 / 22px 22px no-repeat,
    linear-gradient(225deg, var(--xm-gold) 0 8px, transparent 8px) 100% 0 / 22px 22px no-repeat,
    linear-gradient(45deg, var(--xm-gold) 0 8px, transparent 8px) 0 100% / 22px 22px no-repeat,
    linear-gradient(-45deg, var(--xm-gold) 0 8px, transparent 8px) 100% 100% / 22px 22px no-repeat,
    /* 顶栏细金线 */
    linear-gradient(90deg, transparent, rgba(243,207,117,.65), transparent) 50% 12px / 58% 1px no-repeat;
}
body.tm-destiny-body .tm-xiaoman-hero,
body[data-tm-destiny="1"] .tm-xiaoman-hero{
  margin:10px 0 10px 10px;
  border-radius:16px 6px 6px 16px;
  border:1px solid rgba(243,207,117,.28);
  background:
    radial-gradient(ellipse 70% 45% at 50% 88%, rgba(243,207,117,.28), transparent 62%),
    radial-gradient(circle at 50% 18%, rgba(180,240,255,.35), transparent 48%),
    linear-gradient(180deg, rgba(120,200,210,.35), rgba(18,70,82,.2) 55%, rgba(10,40,52,.55));
  box-shadow:inset 0 0 24px rgba(255,255,255,.08);
  overflow:hidden;
}
body.tm-destiny-body .tm-xiaoman-hero:after,
body[data-tm-destiny="1"] .tm-xiaoman-hero:after{
  height:48%;
  background:
    linear-gradient(180deg, transparent, rgba(8,36,48,.55)),
    linear-gradient(90deg, transparent 20%, rgba(12,48,60,.25) 100%);
}
body.tm-destiny-body .tm-xiaoman-main,
body[data-tm-destiny="1"] .tm-xiaoman-main{
  margin:10px 10px 10px 0;
  border-radius:6px 16px 16px 6px;
  border:1px solid rgba(255,236,180,.22);
  background:
    linear-gradient(180deg, rgba(255,252,240,.16), rgba(255,248,230,.08) 18%, rgba(255,255,255,.04)),
    linear-gradient(180deg, rgba(20,70,82,.55), rgba(10,42,54,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  overflow:hidden;
}
body.tm-destiny-body .tm-xiaoman-head,
body[data-tm-destiny="1"] .tm-xiaoman-head{
  padding:12px 14px 8px 14px;
  border-bottom:1px solid rgba(243,207,117,.22);
  background:linear-gradient(180deg, rgba(243,207,117,.12), transparent);
}
body.tm-destiny-body .tm-xiaoman-nameplate,
body[data-tm-destiny="1"] .tm-xiaoman-nameplate{
  position:relative;
  padding:4px 12px 4px 10px;
  border-left:3px solid var(--xm-gold);
  background:linear-gradient(90deg, rgba(243,207,117,.16), transparent 80%);
}
body.tm-destiny-body .tm-xiaoman-nameplate small,
body[data-tm-destiny="1"] .tm-xiaoman-nameplate small{
  color:var(--xm-mint);
  letter-spacing:.2em;
  font-size:9px;
  font-weight:800;
  text-shadow:0 1px 2px rgba(0,20,30,.35);
}
body.tm-destiny-body .tm-xiaoman-nameplate b,
body[data-tm-destiny="1"] .tm-xiaoman-nameplate b{
  font-family:"Noto Serif SC","Songti SC",serif;
  font-size:22px;
  letter-spacing:.12em;
  color:#fff4c8;
  text-shadow:
    0 1px 0 rgba(80,50,10,.45),
    0 0 12px rgba(243,207,117,.35);
}
body.tm-destiny-body .tm-xiaoman-tools button,
body[data-tm-destiny="1"] .tm-xiaoman-tools button{
  width:28px;
  height:28px;
  border-radius:9px;
  border:1px solid rgba(243,207,117,.55);
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), rgba(0,0,0,.18)),
    rgba(12,48,58,.65);
  color:#fff4c8;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
}
body.tm-destiny-body .tm-xiaoman-tools button:hover,
body[data-tm-destiny="1"] .tm-xiaoman-tools button:hover{
  border-color:#ffe9a6;
  background:rgba(243,207,117,.22);
}
body.tm-destiny-body .tm-xiaoman-choices,
body[data-tm-destiny="1"] .tm-xiaoman-choices{
  gap:6px;
  padding:12px 8px 10px;
}
body.tm-destiny-body .tm-xiaoman-choices button,
body[data-tm-destiny="1"] .tm-xiaoman-choices button{
  position:relative;
  border-radius:10px;
  border:1px solid rgba(243,207,117,.45);
  background:
    linear-gradient(180deg, rgba(255,248,220,.14), rgba(8,40,52,.35)),
    rgba(12,52,64,.72);
  color:#fff8e4;
  padding:8px 12px 8px 12px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 4px 10px rgba(0,20,30,.2);
  text-shadow:0 1px 1px rgba(0,20,30,.35);
}
body.tm-destiny-body .tm-xiaoman-choices button:hover,
body[data-tm-destiny="1"] .tm-xiaoman-choices button:hover{
  border-color:#ffe9a6;
  color:#fffdf0;
  background:
    linear-gradient(180deg, rgba(243,207,117,.32), rgba(200,154,58,.18)),
    rgba(20,70,82,.75);
  box-shadow:0 0 0 1px rgba(243,207,117,.25), 0 6px 14px rgba(0,20,30,.28);
}
body.tm-destiny-body .tm-xiaoman-log,
body[data-tm-destiny="1"] .tm-xiaoman-log{
  padding:10px 12px 8px;
  gap:12px;
}
body.tm-destiny-body .tm-xiaoman-msg-av,
body[data-tm-destiny="1"] .tm-xiaoman-msg-av{
  border-radius:12px;
  border:1.5px solid rgba(243,207,117,.55);
  background:
    radial-gradient(circle at 50% 30%, rgba(180,240,255,.25), transparent 60%),
    rgba(8,40,52,.55);
  box-shadow:0 2px 6px rgba(0,20,30,.25);
}
body.tm-destiny-body .tm-xiaoman-msg.is-npc .tm-xiaoman-bubble,
body[data-tm-destiny="1"] .tm-xiaoman-msg.is-npc .tm-xiaoman-bubble{
  border-radius:4px 14px 14px 14px;
  background:
    linear-gradient(180deg, rgba(255,252,240,.92), rgba(245,236,210,.88));
  border:1px solid rgba(200,154,58,.35);
  color:#1f3a3c;
  box-shadow:0 4px 12px rgba(0,24,32,.16);
}
body.tm-destiny-body .tm-xiaoman-msg.is-user .tm-xiaoman-bubble,
body[data-tm-destiny="1"] .tm-xiaoman-msg.is-user .tm-xiaoman-bubble{
  border-radius:14px 4px 14px 14px;
  background:linear-gradient(180deg, #f6dfa0, #e0b54a);
  border:1px solid rgba(180,130,40,.45);
  color:#243528;
  box-shadow:0 4px 12px rgba(0,24,32,.16);
  font-weight:600;
}
body.tm-destiny-body .tm-xiaoman-hint,
body[data-tm-destiny="1"] .tm-xiaoman-hint{
  color:rgba(180,235,210,.85);
  letter-spacing:.08em;
}
body.tm-destiny-body .tm-xiaoman-input-row,
body[data-tm-destiny="1"] .tm-xiaoman-input-row{
  border-top:1px solid rgba(243,207,117,.28);
  background:
    linear-gradient(180deg, rgba(243,207,117,.08), transparent),
    rgba(6,32,42,.45);
  padding:10px 12px 12px;
}
body.tm-destiny-body .tm-xiaoman-input-row textarea,
body[data-tm-destiny="1"] .tm-xiaoman-input-row textarea{
  border-radius:12px;
  border:1px solid rgba(243,207,117,.45);
  background:rgba(255,252,240,.12);
  color:#f7fff9;
  box-shadow:inset 0 1px 4px rgba(0,20,30,.2);
}
body.tm-destiny-body .tm-xiaoman-input-row.is-ready textarea,
body[data-tm-destiny="1"] .tm-xiaoman-input-row.is-ready textarea{
  border-color:#ffe9a6;
  box-shadow:0 0 0 1px rgba(243,207,117,.35), inset 0 1px 4px rgba(0,20,30,.2);
}
body.tm-destiny-body .tm-xiaoman-input-row textarea::placeholder,
body[data-tm-destiny="1"] .tm-xiaoman-input-row textarea::placeholder{
  color:rgba(220, 245, 238, 0.5);
}
body.tm-destiny-body .tm-xiaoman-input-row button,
body[data-tm-destiny="1"] .tm-xiaoman-input-row button{
  border-radius:12px;
  border:1px solid #ffe9a6;
  background:
    linear-gradient(180deg, #ffe9a6 0%, #f0c75a 48%, #d4a53a 100%);
  color:#2a2410;
  font-weight:800;
  letter-spacing:.06em;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    0 4px 10px rgba(80,50,10,.28);
}
body.tm-destiny-body .tm-xiaoman-input-row button:hover,
body[data-tm-destiny="1"] .tm-xiaoman-input-row button:hover{
  filter:brightness(1.06);
}
body.tm-destiny-body .tm-xiaoman-sprite,
body[data-tm-destiny="1"] .tm-xiaoman-sprite{
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.35))
    drop-shadow(0 10px 16px rgba(8,40,50,.4));
}
body.tm-destiny-body .tm-xiaoman-layer.is-min .tm-xiaoman-panel,
body[data-tm-destiny="1"] .tm-xiaoman-layer.is-min .tm-xiaoman-panel{
  overflow:hidden;
  height:56px;
  max-height:56px;
}
body.tm-destiny-body .tm-xiaoman-layer.is-min .tm-xiaoman-main,
body[data-tm-destiny="1"] .tm-xiaoman-layer.is-min .tm-xiaoman-main{
  margin:8px;
  border-radius:12px;
}

@media (max-width: 700px) {
  body.tm-destiny-body .tm-xiaoman-panel,
  body[data-tm-destiny="1"] .tm-xiaoman-panel{
    margin:0 10px 12px;
    border-radius:18px;
    grid-template-columns:108px minmax(0, 1fr);
  }
  body.tm-destiny-body .tm-xiaoman-hero,
  body[data-tm-destiny="1"] .tm-xiaoman-hero{
    margin:8px 0 8px 8px;
  }
  body.tm-destiny-body .tm-xiaoman-main,
  body[data-tm-destiny="1"] .tm-xiaoman-main{
    margin:8px 8px 8px 0;
  }
  body.tm-destiny-body .tm-xiaoman-nameplate b,
  body[data-tm-destiny="1"] .tm-xiaoman-nameplate b{
    font-size:18px;
  }
}
