/* 小招：气泡、弹窗、整页。样式跟 index.html 里的 Ant Design 令牌一致，类名都以 xz- 开头。
 * 层级：AdminLTE 侧栏 1038、侧栏遮罩 1037、Bootstrap 遮罩 1050、弹窗 1055。
 * 气泡：桌面 1040 可拖到导航上方，手机 1036 在侧栏遮罩下；对话弹窗 1045 低于 Bootstrap 弹窗。 */
.xz-bubble { position: fixed; right: 24px; bottom: 24px; z-index: 1036; width: 48px; height: 48px; border: 0; border-radius: 50%;
  background: var(--pri); color: #fff; font-size: 22px; display: grid; place-items: center; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .08), 0 3px 6px -4px rgba(0, 0, 0, .12), 0 9px 28px 8px rgba(0, 0, 0, .05); transition: background .2s, transform .2s; }
.xz-bubble:hover { background: var(--pri-h); }
.xz-bubble:active { transform: scale(.95); }
.xz-bubble.dragging { cursor: grabbing; transform: none !important; transition: none !important; }
.xz-bubble:focus-visible { outline: 2px solid var(--pri-2); outline-offset: 2px; }
.xz-bubble[hidden] { display: none; }
.xz-bubble > i { grid-area: 1 / 1; line-height: 1; }
@media(min-width:992px) { .xz-bubble { z-index:1040; } }
.xz-bubble .bi-x-lg, .xz-bubble.on .bi-chat-dots-fill { display: none; }
.xz-bubble.on .bi-x-lg { display: block; font-size: 18px; }
/* 页面底部有吸底操作栏（.footer-bar 高 56px）时，气泡往上让开，不挡「保存」之类的按钮 */
body:has(.footer-bar) .xz-bubble { bottom: 80px; }
body:has(.footer-bar) .xz-pop { bottom: 136px; max-height: calc(100vh - 160px); }

/* 弹窗 */
.xz-pop { position: fixed; right: 24px; bottom: 84px; z-index: 1045; width: 400px; height: 600px; max-height: calc(100vh - 108px);
  display: none; flex-direction: column; background: #fff; border-radius: 12px; overflow: hidden;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .08), 0 3px 6px -4px rgba(0, 0, 0, .12), 0 9px 28px 8px rgba(0, 0, 0, .05); }
.xz-pop.open { display: flex; animation: xzin .18s ease; }
@keyframes xzin { from { opacity: 0; transform: translateY(8px); } }
.xz-pop-head { flex: none; display: flex; align-items: center; gap: 8px; height: 52px; padding: 0 8px 0 16px; border-bottom: 1px solid var(--line); }
.xz-pop-head b { font-size: 15px; font-weight: 600; color: var(--t1); white-space: nowrap; }
.xz-sp { flex: 1; }
.xz-hbtn { width: 32px; height: 32px; border: 0; border-radius: 6px; background: transparent; color: var(--t2); display: grid; place-items: center; font-size: 15px; cursor: pointer; }
.xz-hbtn:hover { background: rgba(0, 0, 0, .06); color: var(--t1); }
.xz-pop .xz-thread { flex: 1; min-height: 0; }

/* 整页：卡片撑满一屏，对话在卡片里滚 */
.xz-page { display: flex; flex-direction: column; background: #fff; border-radius: 8px; height: calc(100vh - 160px); min-height: 440px; margin-bottom: 16px; overflow: hidden; }
.xz-page .xz-thread { flex: 1; min-height: 0; padding: 24px max(24px, calc((100% - 860px) / 2)); }
.xz-page .xz-compose { padding: 12px max(24px, calc((100% - 860px) / 2)) 12px; }

/* 对话 */
.xz-thread { overflow-y: auto; padding: 16px; background: #fff; overscroll-behavior: contain; }
.xz-turn + .xz-turn { margin-top: 20px; }
.xz-q { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.xz-q-text { max-width: 85%; background: var(--pri); color: #fff; border-radius: 12px 12px 2px 12px; padding: 8px 12px; line-height: 22px; white-space: pre-wrap; word-break: break-word; }
.xz-a { display: flex; gap: 8px; align-items: flex-start; }
.xz-a-body { flex: 1; min-width: 0; background: var(--fill); border-radius: 2px 12px 12px 12px; padding: 10px 12px; }
.xz-ava { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--pri-0); color: var(--pri); display: grid; place-items: center; font-size: 15px; }
.xz-ava.big { width: 40px; height: 40px; font-size: 22px; }
.xz-muted { color: var(--t3); }
/* 回答正文 */
.xz-md { color: var(--t1); line-height: 24px; word-break: break-word; }
.xz-md p { margin: 0 0 8px; }
.xz-md ul { margin: 0 0 8px; padding-left: 20px; }
.xz-md li { margin: 2px 0; }
.xz-md > :last-child { margin-bottom: 0; }
.xz-md strong { font-weight: 600; }
.xz-cite { display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; margin: 0 1px; vertical-align: super; border: 0; border-radius: 8px;
  background: var(--pri-0); color: var(--pri); font-size: 11px; line-height: 1; font-weight: 600; cursor: pointer; }
.xz-cite:hover { background: var(--pri); color: #fff; }
mark.xz-doubt { background: #fff1b8; color: inherit; padding: 0 2px; border-radius: 2px; border-bottom: 1px dashed var(--warn); }

/* 点 [n] 展开的原文 */
.xz-ref { margin-top: 10px; background: #fff; border: 1px solid var(--pri-2); border-radius: 8px; padding: 8px 12px 10px; }
.xz-ref-head { display: flex; align-items: center; gap: 8px; }
.xz-ref-head b { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; }
.xz-ref-n { flex: none; display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--pri); color: #fff; font-size: 11px; font-weight: 600; }
.xz-x { flex: none; border: 0; background: none; color: var(--t3); width: 22px; height: 22px; border-radius: 4px; font-size: 12px; cursor: pointer; }
.xz-x:hover { background: rgba(0, 0, 0, .06); color: var(--t1); }
.xz-ref-src { color: var(--t3); font-size: 12px; margin: 2px 0 6px 26px; word-break: break-all; }
.xz-ref-text { max-height: 320px; overflow-y: auto; word-break: break-word; font-size: 13px; line-height: 21px; color: var(--t2);
  background: var(--fill-2); border-radius: 6px; padding: 8px 10px; }
.xz-ref-p { white-space: pre-wrap; }
.xz-ref-text strong { font-weight: 600; color: var(--t1); }
.xz-ref-h { font-size: 13px; }
.xz-ref-text > * + * { margin-top: 8px; }
/* 原文里的表格：细边框，表头加粗；表格比框宽时横向滚动 */
.xz-tbl { overflow-x: auto; max-width: 100%; }
/* 表格按内容自然宽度排（不挤成一字一行），比框宽就横向滚动；短表仍铺满 */
.xz-tbl table { border-collapse: collapse; width: max-content; min-width: 100%; background: #fff; font-size: 12px; line-height: 18px; }
.xz-tbl .c { max-width: 24em; white-space: normal; }
/* 数字、英文不从中间断开；中文照常换行；每列至少 5 个字宽，列多时横向滚动而不是挤成一条 */
.xz-tbl th, .xz-tbl td { border: 1px solid var(--line-2); padding: 4px 8px; text-align: left; vertical-align: top; word-break: normal; overflow-wrap: anywhere; }
.xz-tbl th { background: var(--fill); font-weight: 600; color: var(--t1); white-space: nowrap; }
.xz-tbl td { color: var(--t2); }

/* 存疑数字、提醒、错误 */
.xz-warn, .xz-tips, .xz-err { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; border-radius: 8px; padding: 6px 10px; font-size: 13px; line-height: 21px; }
.xz-warn > i, .xz-tips > i, .xz-err > i { line-height: 21px; }
.xz-warn { background: var(--warn-bg); border: 1px solid var(--warn-bd); } .xz-warn > i { color: var(--warn); }
.xz-warn mark.xz-doubt { margin-left: 2px; }
.xz-tips { background: var(--pri-0); border: 1px solid var(--pri-2); } .xz-tips > i { color: var(--pri); }
.xz-err { margin-top: 0; background: var(--bad-bg); border: 1px solid var(--bad-bd); } .xz-err > i { color: var(--bad); }
.xz-link { border: 0; background: none; padding: 0; margin-top: 2px; color: var(--pri); font-size: 13px; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; }
.xz-link:hover { color: var(--pri-h); }

/* 出处清单：默认折叠 */
.xz-src { margin-top: 10px; border-top: 1px dashed var(--line-3); padding-top: 6px; }
.xz-src-toggle { border: 0; background: none; padding: 2px 0; color: var(--t3); font-size: 12px; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.xz-src-toggle:hover { color: var(--pri); }
.xz-chev { transition: transform .2s; font-size: 10px; }
.xz-src.on .xz-chev { transform: rotate(180deg); }
.xz-src-list { list-style: none; margin: 4px 0 0; padding: 0; }
.xz-src-item { display: flex; gap: 8px; align-items: flex-start; width: 100%; text-align: left; border: 0; background: none; border-radius: 6px; padding: 4px 6px; cursor: pointer; }
.xz-src-item:hover, .xz-src-item.on { background: var(--pri-0); }
.xz-src-item .xz-ref-n { margin-top: 2px; }
.xz-src-t { min-width: 0; display: flex; flex-direction: column; }
.xz-src-t b { font-size: 13px; font-weight: 500; color: var(--t1); line-height: 20px; }
.xz-src-t small { font-size: 12px; color: var(--t3); word-break: break-all; line-height: 18px; }
.xz-src-none { margin-top: 8px; font-size: 12px; color: var(--t3); }

/* 回答中 */
.xz-wait { display: flex; align-items: center; gap: 8px; color: var(--t3); line-height: 24px; }
.xz-spin { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--pri-0); border-top-color: var(--pri); border-radius: 50%; animation: xzrot .8s linear infinite; }
@keyframes xzrot { to { transform: rotate(360deg); } }
/* 空对话 */
.xz-hello { display: flex; gap: 12px; align-items: flex-start; background: var(--fill); border-radius: 12px; padding: 12px 14px; }
.xz-hello b { display: block; font-size: 15px; font-weight: 600; margin-bottom: 4px; color: var(--t1); }
.xz-hello p { margin: 0; color: var(--t2); font-size: 13px; line-height: 21px; }
.xz-ex-title { margin: 16px 0 8px; color: var(--t3); font-size: 12px; }
.xz-ex { display: flex; flex-direction: column; gap: 8px; }
.xz-page .xz-ex { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.xz-ex-item { display: flex; gap: 8px; align-items: flex-start; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 8px 12px;
  color: var(--t1); font-size: 13px; line-height: 20px; cursor: pointer; transition: border-color .2s, color .2s; }
.xz-ex-item i { color: var(--pri); margin-top: 1px; }
.xz-ex-item:hover { border-color: var(--pri); color: var(--pri); }

/* 输入区 */
.xz-compose { flex: none; border-top: 1px solid var(--line); padding: 10px 12px 8px; background: #fff; margin: 0; }
.xz-notice .xz-warn { margin: 0 0 8px; }
.xz-input { display: flex; gap: 8px; align-items: flex-end; border: 1px solid var(--line-3); border-radius: 8px; padding: 4px 4px 4px 11px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.xz-input:hover { border-color: var(--pri-h); }
.xz-input:focus-within { border-color: var(--pri); box-shadow: 0 0 0 2px rgba(var(--pri-rgb), .1); }
.xz-input textarea { flex: 1; min-width: 0; border: 0; outline: 0; resize: none; background: transparent; padding: 4px 0; font-size: 14px; line-height: 22px;
  height: 30px; max-height: 140px; color: var(--t1); font-family: inherit; }
.xz-input textarea::placeholder { color: var(--t4); }
.xz-input textarea:disabled { cursor: not-allowed; }
.xz-send { flex: none; width: 32px; height: 32px; border: 0; border-radius: 6px; background: var(--pri); color: #fff; display: grid; place-items: center; font-size: 14px; cursor: pointer; }
.xz-send > * { grid-area: 1 / 1; }
.xz-send:hover:not(:disabled) { background: var(--pri-h); }
.xz-send:disabled { background: rgba(0, 0, 0, .04); color: var(--t4); cursor: not-allowed; }
.xz-send .xz-spin { display: none; border-color: rgba(var(--pri-rgb), .2); border-top-color: var(--pri); }
.xz-compose.busy .xz-send .bi { visibility: hidden; }
.xz-compose.busy .xz-send .xz-spin { display: inline-block; }
.xz-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; color: var(--t3); font-size: 12px; line-height: 18px; }
.xz-count.over { color: var(--bad); }

/* 平板（内容区上下边距变 16px） */
@media (max-width: 991.98px) { .xz-page { height: calc(100vh - 136px); } }
/* 手机：弹窗全屏，弹窗打开时不显示气泡；输入框 16px，iOS 聚焦时不放大页面 */
@media (max-width: 575.98px) {
  .xz-input textarea { font-size: 16px; }
  .xz-bubble { right: 16px; bottom: 16px; }
  body:has(.footer-bar) .xz-bubble { bottom: 72px; }
  .xz-pop, body:has(.footer-bar) .xz-pop { inset: 0; width: auto; height: auto; max-height: none; border-radius: 0; }
  .xz-pop-open .xz-bubble { display: none; }
  .xz-pop .xz-thread { padding: 12px; }
  .xz-q-text { max-width: 90%; }
  .xz-page { height: calc(100vh - 140px); }
  .xz-page .xz-thread { padding: 16px 12px; }
  .xz-page .xz-compose { padding: 10px 12px 8px; }
  .xz-meta-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media print { .xz-bubble, .xz-pop { display: none !important; } }

/* 账号历史工作区：沿用系统的蓝、白和石板灰。 */
.xz-workspace { display:flex; position:relative; height:calc(100dvh - 168px); min-height:480px; margin-bottom:16px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--card,#fff); }
.xz-workspace > .xz-page { flex:1; min-width:0; min-height:0; height:auto; margin:0; border-radius:0; }
.xz-workspace .xz-page .xz-thread { padding:24px max(24px,calc((100% - 800px)/2)); scrollbar-gutter:stable; }
.xz-workspace .xz-page .xz-compose { padding:14px max(24px,calc((100% - 800px)/2)) 12px; }
.xz-history { flex:none; display:flex; flex-direction:column; width:220px; min-width:0; background:var(--fill-2); border-right:1px solid var(--line); }
.xz-history-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:18px 16px 12px; }
.xz-history-head b { display:block; color:var(--t1); font-size:15px; font-weight:600; line-height:22px; }
.xz-history-head span { display:block; font-size:12px; color:var(--t3); margin-top:3px; }
.xz-history-close { display:none; }
.xz-new-chat { display:flex; justify-content:center; align-items:center; gap:8px; min-height:44px; margin:0 12px 10px; padding:10px 12px; border:1px solid var(--pri); border-radius:8px; background:var(--pri); color:#fff; font-size:14px; font-weight:500; cursor:pointer; }
.xz-new-chat:hover:not(:disabled) { background:var(--pri-h); }
.xz-new-chat:disabled { opacity:.5; cursor:not-allowed; }
.xz-history-search { display:flex; align-items:center; gap:8px; margin:0 12px 6px; padding:0 10px; min-height:40px; border:1px solid var(--line-2); border-radius:7px; background:#fff; color:var(--t3); }
.xz-history-search:focus-within { border-color:var(--pri); box-shadow:0 0 0 2px var(--pri-0); }
.xz-history-search > i { font-size:13px; }
.xz-history-search input { width:100%; min-width:0; padding:10px 0; border:0; outline:none; background:transparent; color:var(--t1); font:inherit; font-size:13px; }
.xz-history-search input::placeholder { color:var(--t3); }
.xz-history-results { flex:1; min-height:0; overflow:auto; padding:0 8px 12px; overscroll-behavior:contain; }
.xz-history-group { padding:12px 8px 6px; color:var(--t3); font-size:12px; font-weight:500; }
.xz-history-item { display:flex; flex-direction:column; gap:5px; width:100%; margin:0 0 4px; padding:10px 8px; border:1px solid transparent; border-radius:8px; text-align:left; background:transparent; color:var(--t2); cursor:pointer; }
.xz-history-item:hover:not(:disabled) { background:#fff; border-color:var(--line); }
.xz-history-item.active { background:var(--pri-0); border-color:var(--pri-1); }
.xz-history-item.active .xz-history-name { color:var(--pri); }
.xz-history-item:disabled { cursor:default; }
.xz-history-item:disabled:not(.active) { opacity:.58; }
.xz-history-name { display:flex; gap:8px; align-items:flex-start; max-width:100%; color:var(--t1); font-size:14px; font-weight:500; line-height:21px; }
.xz-history-name > i { flex:none; font-size:13px; margin-top:1px; }
.xz-history-name > span { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.xz-history-preview { display:block; width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:21px; color:var(--t3); font-size:12px; }
.xz-history-meta { display:flex; justify-content:space-between; gap:8px; padding-left:21px; font-size:12px; color:var(--t3); }
.xz-history-empty { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; color:var(--t3); padding:40px 15px; font-size:12px; line-height:21px; }
.xz-history-empty > i { font-size:23px; color:var(--t4); }
.xz-history-empty b { font-size:13px; color:var(--t2); font-weight:500; }
.xz-history-empty p { margin:0; }
.xz-history-foot { display:flex; align-items:center; justify-content:center; gap:6px; flex:none; min-height:42px; padding:10px 8px; border-top:1px solid var(--line); color:var(--t3); font-size:12px; }
.xz-load-more,.xz-text-btn { border:0; border-radius:6px; padding:8px 12px; min-height:40px; background:transparent; color:var(--pri); font:inherit; font-size:13px; cursor:pointer; }
.xz-load-more { width:100%; margin-top:8px; }
.xz-load-more:hover,.xz-text-btn:hover { background:var(--pri-0); }
.xz-load-more:disabled,.xz-text-btn:disabled { color:var(--t3); cursor:default; }
.xz-chat-head { flex:none; display:flex; align-items:center; gap:12px; min-height:73px; padding:12px 24px; border-bottom:1px solid var(--line); background:#fff; }
.xz-chat-heading { display:flex; flex:1; min-width:0; flex-direction:column; gap:4px; }
.xz-chat-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; font-weight:600; color:var(--t1); line-height:22px; }
.xz-save-state { display:flex; align-items:center; gap:5px; font-size:12px; line-height:18px; color:var(--t3); white-space:nowrap; }
.xz-save-state > i { color:var(--ok-t); font-size:13px; }
.xz-save-state.answering > i { color:var(--pri); }
.xz-chat-actions { position:relative; flex:none; }
.xz-chat-head .xz-hbtn,.xz-pop-head .xz-hbtn { width:40px; height:44px; }
.xz-chat-menu { position:absolute; right:0; top:48px; z-index:20; width:174px; padding:6px; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 8px 24px rgba(11,21,51,.1); }
.xz-chat-menu[hidden] { display:none; }
.xz-chat-menu > button { display:flex; align-items:center; gap:9px; width:100%; min-height:44px; padding:10px; border:0; border-radius:5px; background:none; color:var(--t2); font:inherit; font-size:13px; text-align:left; cursor:pointer; }
.xz-chat-menu > button:hover { background:var(--fill-2); }
.xz-chat-menu > button.danger { color:var(--bad-t); }
.xz-mobile-history,.xz-mobile-new { display:none; }
.xz-history-backdrop { display:none; }
.xz-state { display:flex; min-height:240px; height:100%; flex-direction:column; justify-content:center; align-items:center; gap:12px; text-align:center; color:var(--t3); font-size:13px; }
.xz-state > i { font-size:28px; color:var(--t4); }
.xz-state b { font-size:15px; color:var(--t2); }
.xz-state p { margin:0; max-width:420px; line-height:22px; }
.xz-older-row { display:flex; justify-content:center; margin:0 0 18px; }
.xz-workspace .xz-empty { max-width:670px; margin:0 auto; padding:36px 0 20px; }
.xz-workspace .xz-hello { flex-direction:column; align-items:flex-start; padding:0; border:0; border-radius:0; background:transparent; gap:16px; }
.xz-workspace .xz-hello .xz-ava.big { width:48px; height:48px; }
.xz-workspace .xz-hello b { font-size:22px; line-height:32px; margin-bottom:10px; letter-spacing:-.3px; }
.xz-workspace .xz-hello p { font-size:13px; line-height:23px; color:var(--t3); }
.xz-workspace .xz-ex-title { margin-top:30px; margin-bottom:12px; }
.xz-workspace .xz-ex { gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.xz-workspace .xz-ex-item { min-height:62px; padding:12px; background:var(--fill-2); border-color:var(--line); }
.xz-workspace .xz-ex-item:hover { background:var(--pri-00); border-color:var(--pri-1); }
.xz-workspace .xz-send { width:40px; height:40px; }
.xz-workspace .xz-input { padding:6px 6px 6px 14px; border-radius:10px; }
.xz-workspace .xz-input textarea { padding:7px 0; height:36px; }
.xz-workspace .xz-meta { margin-top:8px; }
.xz-dialog-backdrop { display:flex; position:fixed; inset:0; z-index:1060; align-items:center; justify-content:center; padding:20px; background:rgba(11,21,51,.32); }
.xz-dialog { width:420px; max-width:100%; padding:24px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 20px 56px rgba(11,21,51,.18); }
.xz-dialog h2 { margin:0 0 22px; color:var(--t1); font-size:18px; line-height:26px; font-weight:600; }
.xz-dialog label { display:block; margin-bottom:8px; color:var(--t2); font-size:13px; font-weight:500; }
.xz-dialog input { display:block; width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line-3); border-radius:7px; font:inherit; color:var(--t1); }
.xz-dialog input:focus { outline:2px solid var(--pri-0); border-color:var(--pri); }
.xz-dialog-hint { margin:10px 0 0; color:var(--t3); font-size:13px; line-height:22px; }
.xz-dialog-question { padding:12px; margin:0; border:1px solid var(--line); border-radius:7px; background:var(--fill-2); color:var(--t1); font-size:14px; line-height:23px; overflow-wrap:anywhere; }
.xz-dialog-error { margin-top:12px; padding:10px; border-radius:7px; background:var(--bad-bg); color:var(--bad-t); font-size:13px; }
.xz-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
.xz-dialog-actions .btn { min-height:44px; min-width:86px; }
.xz-danger { background:var(--bad-t); color:#fff; border-color:var(--bad-t); }
.xz-danger:hover { background:#b9252a; color:#fff; }
.xz-workspace button:focus-visible,.xz-pop button:focus-visible { outline:2px solid var(--pri); outline-offset:2px; }
@media(max-width:1099.98px) {
  .xz-workspace { height:calc(100dvh - 166px); }
  .xz-history { position:absolute; z-index:40; top:0; bottom:0; left:0; width:260px; max-width:calc(100% - 40px); display:none; box-shadow:8px 0 24px rgba(11,21,51,.08); }
  .xz-history-close { display:grid; width:44px; height:44px; }
  .history-open .xz-history { display:flex; }
  .history-open .xz-history-backdrop { display:block; position:absolute; inset:0; z-index:39; width:100%; border:0; padding:0; background:rgba(11,21,51,.25); }
  .xz-mobile-history { display:grid; flex:none; }
  .xz-mobile-new { display:flex; align-items:center; justify-content:center; gap:6px; padding:9px 12px; min-height:44px; border:1px solid var(--line-2); border-radius:7px; background:#fff; color:var(--pri); font:inherit; font-size:13px; cursor:pointer; }
  .xz-mobile-new:disabled { color:var(--t4); cursor:default; }
  .xz-chat-head { padding:12px 16px; gap:8px; }
}
@media(max-width:575.98px) {
  .xz-workspace { height:calc(100dvh - 178px); min-height:450px; border-radius:10px; }
  .xz-workspace .xz-page .xz-thread { padding:18px 14px; }
  .xz-workspace .xz-page .xz-compose { padding:10px 12px 10px; }
  .xz-chat-head { min-height:70px; padding:10px 8px; gap:4px; }
  .xz-chat-head .xz-hbtn { width:40px; }
  .xz-chat-title { font-size:14px; }
  .xz-save-state { font-size:11px; gap:4px; }
  .xz-mobile-new { width:40px; padding:8px; border:0; }
  .xz-mobile-new span { display:none; }
  .xz-mobile-new i { font-size:17px; }
  .xz-history-search input { font-size:16px; }
  .xz-history-search { min-height:44px; }
  .xz-workspace .xz-empty { padding:14px 2px 8px; }
  .xz-workspace .xz-hello { gap:12px; }
  .xz-workspace .xz-hello b { font-size:20px; line-height:29px; }
  .xz-workspace .xz-ex { grid-template-columns:1fr; gap:8px; }
  .xz-workspace .xz-ex-item { min-height:50px; padding:11px 12px; }
  .xz-workspace .xz-ex-title { margin-top:24px; }
  .xz-meta-t { white-space:normal; font-size:11px; line-height:17px; }
  .xz-pop-head b { font-size:14px; }
  .xz-pop-head { padding-left:12px; gap:5px; }
  .xz-pop-head .xz-hbtn { width:40px; }
  .xz-dialog { padding:22px 20px; }
  .xz-dialog input { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .xz-pop.open { animation:none; } .xz-bubble,.xz-chev { transition:none; } }
@media print { .xz-history,.xz-chat-head,.xz-dialog-slot { display:none !important; } .xz-workspace { height:auto; border:0; } }
