:root{--navy:#0b2545;--navy2:#123459;--gold:#c8a45c;--gold2:#e3c98e;--paper:#f7f5f0;--surface:#fff;--ink:#17263b;--muted:#6c7787;--line:rgba(11,37,69,.12);--soft:#efece5}
*{box-sizing:border-box;min-width:0}html,body{height:100%;margin:0}body{font:15px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}
[hidden]{display:none!important}a{color:var(--navy)}
.app{display:flex;height:100vh;height:100dvh;overflow:hidden}
.rail{flex:0 0 272px;background:var(--navy);color:#eaf0f8;display:flex;flex-direction:column;padding:14px 10px 8px;min-height:0}
.rail-hd{padding:2px 8px 14px}.brand{display:inline-flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.2px}
.brand .logo{position:relative;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(145deg,#16395e,#2b5a8c);color:var(--gold2);font-size:12px;border:1px solid rgba(200,164,92,.35)}
.brand em{display:block;font-style:normal;color:#a9b8cc;font-weight:400;font-size:11px;margin-top:1px}
.newchat{width:100%;min-height:42px;border:1px solid rgba(200,164,92,.35);border-radius:11px;background:rgba(255,255,255,.06);color:#fff;font:inherit;font-size:13.5px;font-weight:600;text-align:left;padding:9px 12px;cursor:pointer}
.newchat:hover{background:rgba(200,164,92,.14)}
.rail-links{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px 4px 2px}.rail-links a{flex:1;text-align:center;color:#c9d6e6;text-decoration:none;font-size:12px;padding:7px 4px;border-radius:8px}
.rail-links a:hover{background:rgba(255,255,255,.08);color:#fff}
.rail-label{font-size:11px;letter-spacing:.12em;color:#8296ae;padding:18px 10px 6px}
.convs{flex:1;min-height:0;overflow:auto;padding-bottom:10px}.conv{display:block;width:100%;text-align:left;border:0;background:transparent;color:#c9d6e6;font:inherit;font-size:13px;padding:8px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv:hover,.conv.on{background:rgba(255,255,255,.09);color:#fff}
.conv-note{padding:10px 10px 2px;font-size:11.5px;line-height:1.6;color:#8296ae}
.conv-note.act{display:block;width:100%;text-align:left;border:0;background:transparent;cursor:pointer;color:#c8a45c;font:inherit;font-size:11.5px;padding:10px 10px 2px;line-height:1.6}
.conv-note.act:hover{color:#f4e6c8}
.rail-foot{display:flex;gap:4px;border-top:1px solid rgba(255,255,255,.1);padding:9px 4px 3px}.rail-foot a{flex:1;text-align:center;color:#8296ae;font-size:11.5px;text-decoration:none;padding:6px}.rail-foot a:hover{color:#fff}
.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:radial-gradient(900px 440px at 70% -10%,rgba(200,164,92,.12),transparent 60%),var(--paper)}
.topbar{display:none}.thread{flex:1;min-height:0;overflow:auto;padding:30px 22px 12px;scroll-behavior:smooth}
.empty{max-width:760px;margin:0 auto;padding:min(8vh,70px) 0 20px}.mark{color:var(--gold);text-align:center;font-size:20px;margin-bottom:10px}
.empty h1{text-align:center;font-size:clamp(25px,3.4vw,36px);line-height:1.3;letter-spacing:-.02em;margin:0 0 12px}
.empty p{text-align:center;color:var(--muted);font-size:14.5px;margin:0 auto;max-width:34em}.empty p b{color:var(--ink)}
.groups{margin-top:30px}.grp{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:#9a8b72;margin:20px 0 9px}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:9px}@media(max-width:620px){.chips{grid-template-columns:1fr}}
.chip{position:relative;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:13px 34px 13px 14px;font:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);cursor:pointer;min-height:50px;transition:.16s}
.chip::after{content:"↗";position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#b3a58c}.chip:hover{border-color:rgba(200,164,92,.7);background:#fffdf8;transform:translateY(-1px)}.chip.big{font-weight:650;border-color:rgba(200,164,92,.55)}
.msg{max-width:820px;margin:0 auto 20px;display:flex;gap:11px}.msg.user{justify-content:flex-end}.msg.user .bub{background:var(--navy);color:#fff;border-radius:16px 16px 4px 16px;max-width:78%}
.av{flex:0 0 30px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:700;background:linear-gradient(145deg,#16395e,#2b5a8c);color:#f4e6c8;margin-top:2px}
.msg.user .av{display:none}.bub{background:var(--surface);border:1px solid var(--line);border-radius:5px 16px 16px 16px;padding:12px 15px;font-size:14.5px;line-height:1.75;box-shadow:0 1px 2px rgba(11,37,69,.04);min-width:0}
.bub p{margin:0 0 9px}.bub p:last-child{margin-bottom:0}.bub h2{font-size:17px;margin:14px 0 7px}.bub h3{font-size:15px;margin:12px 0 6px}.bub h4{font-size:14px;margin:10px 0 5px}
.bub ul{margin:6px 0 10px;padding-left:20px}.bub li{margin:3px 0}.bub strong{font-weight:700}.bub code{background:#f3efe7;border-radius:5px;padding:1px 5px;font-size:12.5px}
.bub a{color:#8a5a24;text-decoration:underline;text-underline-offset:2px}
.bub table{width:100%;border-collapse:collapse;margin:9px 0;font-size:12.8px;display:block;overflow-x:auto}.bub th,.bub td{border:1px solid var(--line);padding:6px 8px;text-align:left;white-space:nowrap}.bub th{background:var(--soft);font-weight:700}
.trace{position:relative;border:1px solid var(--line);background:#fbfaf6;border-radius:11px;margin:0 0 10px;overflow:hidden}
.trace.live::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#c8a45c,transparent);transform:translateX(-100%);animation:qa-scan 1.8s linear infinite;z-index:2}
@keyframes qa-scan{to{transform:translateX(100%)}}
.trace summary{cursor:pointer;list-style:none;padding:8px 11px;font-size:12.5px;color:var(--muted);font-weight:600}.trace summary::-webkit-details-marker{display:none}
.trace summary::before{content:"▸ ";color:var(--gold)}.trace[open] summary::before{content:"▾ "}
.steps{padding:0 10px 6px}.step{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;padding:5px 0;border-top:1px dashed rgba(11,37,69,.09)}.step:first-child{border-top:0}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gold);margin-top:7px;flex:0 0 7px}.step b{font-weight:650;color:var(--ink)}.step code{color:#7b6a4f;background:#f3efe7;border-radius:4px;padding:0 4px;font-size:11.5px}
.toolres{margin:2px 0 4px 14px}.toolres summary{font-size:11.5px;color:#8d7d64;cursor:pointer}.toolres pre{white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.5;background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px;max-height:220px;overflow:auto;color:#4d5664}
.composer{padding:8px 18px 14px;background:linear-gradient(180deg,rgba(247,245,240,0),var(--paper) 30%)}
.box{max-width:820px;margin:0 auto;display:flex;gap:8px;align-items:flex-end;background:#fff;border:1px solid rgba(11,37,69,.2);border-radius:16px;padding:8px 8px 8px 14px;box-shadow:0 8px 26px -18px rgba(11,37,69,.5)}
.box:focus-within{border-color:rgba(200,164,92,.9);box-shadow:0 0 0 3px rgba(200,164,92,.15)}
#input{flex:1;border:0;outline:0;resize:none;font:inherit;font-size:15px;line-height:1.6;padding:8px 0;max-height:160px;background:transparent;color:var(--ink)}
.send,.stop{width:38px;height:38px;border-radius:11px;border:0;background:var(--navy);color:#fff;font-size:17px;cursor:pointer;flex:0 0 38px}.send:hover{background:#173a63}.send[disabled]{opacity:.4;cursor:default}.stop{background:#8f2a1e}
.hint{max-width:820px;margin:7px auto 0;display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:#8a8f98}.hint span:last-child{text-align:right}
.mask{display:none}
@media(max-width:820px){
 .rail{position:fixed;z-index:40;left:0;top:0;bottom:0;transform:translateX(-100%);transition:.2s}.app.side .rail{transform:none}.app.side .mask{display:block;position:fixed;inset:0;background:rgba(11,37,69,.35);z-index:30}
 .topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line);background:rgba(247,245,240,.92);backdrop-filter:blur(8px)}
 .brand.small{font-size:13px;color:var(--navy)}.brand.small .logo{width:23px;height:23px}.icon{width:40px;height:40px;border:0;background:transparent;font-size:19px;color:var(--navy);border-radius:9px}
 .thread{padding:16px 12px 8px}.msg{gap:8px}.bub{padding:11px 12px;font-size:14px}.composer{padding:6px 10px 10px}.hint span:last-child{display:none}
}

/* ================= 2026-10-21 · 视觉与动效（对齐原站：脉冲点 / shimmer / fadeUp / hover 抬升 / 步骤 pulse） ================= */
:root{
  --ease:cubic-bezier(.22,.61,.36,1);
  --gold-soft:rgba(200,164,92,.16);
}
.main{position:relative;isolation:isolate}
.main::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(620px 360px at 78% -8%,rgba(200,164,92,.14),transparent 68%),
    radial-gradient(520px 320px at 8% 110%,rgba(22,57,94,.08),transparent 70%);
  animation:qa-breathe 12s ease-in-out infinite;
}
.main::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.34;
  background-image:radial-gradient(rgba(11,37,69,.16) .6px,transparent .6px);
  background-size:22px 22px;
  mask-image:linear-gradient(180deg,transparent 0,#000 28%,#000 62%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 28%,#000 62%,transparent 100%);
}
@keyframes qa-breathe{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.035)}}
@keyframes qa-fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes qa-fade-in{from{opacity:0}to{opacity:1}}
@keyframes qa-pop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes qa-pulse{0%{box-shadow:0 0 0 0 rgba(200,164,92,.65)}70%{box-shadow:0 0 0 11px rgba(200,164,92,0)}100%{box-shadow:0 0 0 0 rgba(200,164,92,0)}}
@keyframes qa-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes qa-caret{50%{opacity:0}}
@keyframes qa-step{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes qa-glow{0%,100%{box-shadow:0 0 0 0 rgba(200,164,92,.28)}50%{box-shadow:0 0 0 6px rgba(200,164,92,0)}}

/* 品牌与侧栏 */
.rail{background:linear-gradient(180deg,#0b2545 0%,#0a203b 55%,#081a30 100%)}
.rail::after{content:"";position:absolute;left:0;right:0;top:0;height:240px;pointer-events:none;background:radial-gradient(520px 240px at 32% -20%,rgba(200,164,92,.12),transparent 72%)}
.rail-hd{position:relative;z-index:1}
.brand .logo{box-shadow:inset 0 0 18px rgba(200,164,92,.16),0 0 22px rgba(200,164,92,.12);animation:qa-glow 5.5s ease-in-out infinite}
.brand .logo::after{content:"";position:absolute;inset:0;border-radius:8px;background:linear-gradient(120deg,transparent 20%,rgba(227,201,142,.35),transparent 80%);background-size:220% 100%;animation:qa-shimmer 7s ease-in-out infinite;pointer-events:none}
.newchat{position:relative;overflow:hidden;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.newchat::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(227,201,142,.16),transparent 80%);transform:translateX(-120%);transition:transform .55s var(--ease)}
.newchat:hover{background:rgba(200,164,92,.14);border-color:rgba(200,164,92,.7);transform:translateY(-1px)}
.newchat:hover::after{transform:translateX(120%)}
.rail-tip{margin:14px 6px 0;padding:11px 12px;border:1px solid rgba(200,164,92,.22);border-radius:11px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));color:#dbe5f1}
.rail-tip b{display:block;font-size:12px;color:#f4e6c8;font-weight:650;letter-spacing:.02em}
.rail-tip span{display:block;margin-top:2px;font-size:11px;color:#93a7bf}
.conv{transition:background .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}
.conv:hover{transform:translateX(2px)}

/* 首屏 */
.empty{animation:qa-fade-up .65s var(--ease) both}
.empty .mark{position:relative;font-size:22px;animation:qa-fade-in .5s .05s both}
.empty .mark::after{content:"";position:absolute;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(200,164,92,.22);animation:qa-breathe 6s ease-in-out infinite}
.eyebrow{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a7a60;font-weight:650;margin:0 0 12px;animation:qa-fade-up .6s .06s var(--ease) both}
.eyebrow .pulse{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:qa-pulse 2.2s infinite}
.empty h1{letter-spacing:-.035em;font-weight:800;animation:qa-fade-up .65s .1s var(--ease) both}
.empty h1 .grad{background:linear-gradient(100deg,#8a5a24,#c8a45c 45%,#8a5a24);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#8a5a24;animation:qa-shimmer 6s ease-in-out infinite}
.empty p{animation:qa-fade-up .65s .16s var(--ease) both}
.stats{display:flex;justify-content:center;gap:0;margin:18px auto 0;border:1px solid rgba(11,37,69,.10);border-radius:13px;background:rgba(255,255,255,.55);backdrop-filter:blur(6px);max-width:430px;overflow:hidden;animation:qa-fade-up .65s .22s var(--ease) both}
.stats>div{flex:1;padding:9px 6px;text-align:center;border-left:1px solid rgba(11,37,69,.08)}
.stats>div:first-child{border-left:0}
.stats b{display:block;font-size:19px;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stats span{display:block;margin-top:2px;font-size:10.5px;color:#8b8f98}
.groups{animation:qa-fade-up .7s .26s var(--ease) both}
.grp{display:flex;align-items:center;gap:8px}
.grp::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(154,139,114,.25),transparent)}
.chips .chip{opacity:0;animation:qa-pop .45s var(--ease) forwards;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease),background .2s var(--ease)}
.chips .chip:nth-child(1){animation-delay:.28s}
.chips .chip:nth-child(2){animation-delay:.33s}
.chips .chip:nth-child(3){animation-delay:.38s}
.chips .chip:nth-child(4){animation-delay:.43s}
.chips .chip:nth-child(5){animation-delay:.48s}
.chips .chip:nth-child(6){animation-delay:.53s}
.chip:hover{transform:translateY(-2px);box-shadow:0 14px 30px -20px rgba(11,37,69,.55);border-color:rgba(200,164,92,.75)}
.chip::after{transition:transform .2s var(--ease),color .2s var(--ease)}
.chip:hover::after{transform:translateY(-50%) translate(2px,-2px);color:#a8763a}

/* 消息与执行过程 */
.msg{animation:qa-pop .28s var(--ease) both}
.msg .av{box-shadow:inset 0 0 16px rgba(200,164,92,.14);animation:qa-fade-in .3s both}
.bub{transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.msg.bot .bub:hover{border-color:rgba(200,164,92,.28);box-shadow:0 10px 30px -26px rgba(11,37,69,.6)}
.trace summary{transition:color .16s var(--ease),background .16s var(--ease)}
.trace summary:hover{color:#8a5a24;background:rgba(200,164,92,.06)}
.step{animation:qa-step .3s var(--ease) both}
.step .dot{position:relative}
.step .dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid rgba(200,164,92,.28);opacity:0;animation:qa-pulse 2.6s infinite}
.toolres{animation:qa-fade-in .3s var(--ease) both}
.body{animation:qa-fade-in .3s var(--ease) both}
.body h2,.body h3{scroll-margin-top:12px}

/* 输入区 */
.box{transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}
.box:focus-within{transform:translateY(-1px);box-shadow:0 0 0 3px rgba(200,164,92,.14),0 16px 34px -24px rgba(11,37,69,.55)}
.send{transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.send:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px rgba(11,37,69,.65)}
.send:active{transform:none}
#status::after{content:"";display:inline-block;width:1px;height:11px;background:rgba(200,164,92,.65);margin-left:3px;vertical-align:-1px;animation:qa-caret 1s steps(1) infinite}

/* 移动端 */
@media(max-width:820px){
  .rail-tip{display:none}
  .brand.small em{display:inline;font-size:10px;margin-left:2px;color:#8a6532}
  .stats{max-width:none;margin-top:14px}
  .stats b{font-size:17px}
  .eyebrow{font-size:10.5px;letter-spacing:.1em}
  .main::after{opacity:.2}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .chips .chip{opacity:1}
}

/* ================= 2026-10-21 · 评审落地 v2：暖纸侧栏 / 助手去卡片 / 首屏收紧 / 对比度 ================= */
:root{--muted:#5f6b7a;--faint:#64707e;--paper-2:#efece5;--gold-ink:#8a5a24;--label:#7a6a4e}
.rail{position:relative;flex:0 0 260px;background:var(--paper-2);color:var(--ink);border-right:1px solid var(--line);padding:14px 10px 8px}
.rail::after{height:210px;background:radial-gradient(360px 200px at 26% -18%,rgba(200,164,92,.16),transparent 72%)}
.rail-hd{padding:2px 8px 12px}
.brand{color:var(--ink);font-size:15px}
.brand em{display:inline;margin:0 0 0 7px;font-size:12.5px;color:var(--muted);font-weight:500;font-style:normal}
.brand em::before{content:"·";margin-right:7px;color:var(--gold);font-weight:700}
.brand .logo{color:var(--gold2);box-shadow:none;animation:none}
.brand .logo::after{display:none}
.newchat{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:0 1px 2px rgba(11,37,69,.05)}
.newchat:hover{background:#fffdf8;border-color:rgba(200,164,92,.62)}
.rail-links a{color:var(--muted)}
.rail-links a:hover{background:rgba(11,37,69,.05);color:var(--ink)}
.rail-label{color:var(--faint);font-size:11px}
.conv{color:var(--ink);min-height:36px}
.conv:hover{background:rgba(11,37,69,.05);color:var(--ink)}
.conv.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(11,37,69,.06)}
.rail-foot{border-top-color:var(--line)}
.rail-foot a{color:var(--faint)}
.rail-foot a:hover{color:var(--ink)}
.rail-tip{background:var(--surface);border-color:rgba(200,164,92,.35);color:var(--ink)}
.rail-tip b{color:var(--gold-ink)}
.rail-tip span{color:var(--muted)}

.empty,.msg,.box,.hint{max-width:760px}
.empty{padding:min(6vh,54px) 0 16px}
.empty h1{font-size:clamp(24px,3.2vw,34px)}
.empty p{color:var(--muted);font-size:14.5px}
.empty h1 .grad{background:linear-gradient(100deg,#8a5a24,#a8763a 48%,#8a5a24);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#8a5a24}
.eyebrow{color:var(--label)}
.grp{color:var(--label)}
.stats{max-width:420px}
.stats span{color:var(--faint)}
.chips{grid-template-columns:repeat(auto-fit,minmax(224px,1fr));gap:10px}
.chip{transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease),background .2s var(--ease)}
.chip:hover{transform:translateY(-1px);box-shadow:0 10px 22px -14px rgba(11,37,69,.4)}
.msg{gap:12px}
.msg.bot .bub{flex:1 1 auto;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;width:100%}
.msg.user .bub{background:var(--navy);border:0;border-radius:16px 16px 5px 16px;max-width:min(78%,560px);padding:10px 15px}
.bub{font-size:15.5px;line-height:1.85}
.bub h2{font-size:16px;font-weight:650;margin:22px 0 8px;letter-spacing:-.01em}
.bub h3{font-size:15px;font-weight:650;margin:18px 0 6px}
.bub p{margin:0 0 12px}
.bub ul,.bub ol{margin:8px 0 14px;padding-left:21px}
.bub li{margin:5px 0}
.bub table{font-size:13px;border:1px solid var(--line);border-radius:8px;box-shadow:inset -14px 0 12px -12px rgba(11,37,69,.22)}
.bub th,.bub td{padding:8px 10px;border:0;border-bottom:1px solid var(--line)}
.bub th{font-size:12px;font-weight:650;color:var(--muted);background:transparent}
.bub code{white-space:nowrap;background:var(--soft);border-radius:4px;padding:1px 4px;font-size:12.5px}
.body{animation:none}
.body.done{animation:qa-fade-in .3s var(--ease) both}
.trace{border:0;background:transparent;border-radius:0;margin:0 0 14px;overflow:visible}
.trace summary{padding:2px 0;font-size:12.5px;color:var(--faint);font-weight:500;min-height:24px}
.trace summary::before{content:"›";display:inline-block;transition:transform .18s var(--ease);color:var(--gold-ink)}
.trace[open] summary::before{transform:rotate(90deg)}
.steps{padding:10px 0 4px 12px;margin:8px 0 2px 4px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.step{border-top:0;padding:2px 0;font-size:12.5px;color:var(--muted);animation:qa-step .3s var(--ease) both}
.step .dot{width:5px;height:5px;margin-top:7px;background:var(--faint)}
.step .dot::after{display:none}
.step.run .dot{background:var(--gold);animation:qa-pulse 1.1s ease-in-out infinite}
.step.done .dot{background:#2f7a58}
.statusline{padding:0 0 2px 12px;font-size:12px;color:var(--muted)}
/* 构建阶段时间线（2026-10-29）：一次建包要十几分钟，用户得随时看到「走到第几步、花了多久」。
   放在 .trace 折叠区之外 ⇒ 收起执行过程也还看得见。 */
.stageline{margin:0 0 12px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#faf8f3)}
.stageline.live{border-color:rgba(200,164,92,.55)}
.stagerow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12px;color:var(--faint)}
.stg{display:inline-flex;align-items:center;gap:5px;opacity:.55;white-space:nowrap}
.stg i{width:7px;height:7px;border-radius:50%;background:var(--line);display:inline-block;flex:0 0 7px}
.stg.done{opacity:1;color:var(--ink)}
.stg.done i{background:#2f7a58}
.stg.cur{opacity:1;color:var(--navy);font-weight:650}
.stg.cur i{background:var(--gold);animation:qa-pulse 1.4s ease-in-out infinite}
.stgap{color:var(--faint);opacity:.55}
.stagemeta{margin-top:5px;font-size:12px;color:var(--muted)}
.stageline.live .stagemeta{color:var(--navy)}
.msbox{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mschip{font-size:11.5px;border-radius:999px;padding:2px 9px;border:1px solid var(--line);background:#fff;color:var(--muted)}
.mschip.ok{color:#1f5c43;border-color:rgba(47,122,88,.45);background:#eef6f1}
.mschip.late{color:#8a5a24;border-color:rgba(200,164,92,.55);background:#fbf3e4}
.mschip.dir{color:#7a2f24;border-color:rgba(143,42,30,.35);background:#fbeceb}
/* 元信息分三段，桌面端用「 · 」连成一句话（观感与之前一致） */
.stagemeta .sline{display:inline}
.stagemeta .smain+.sline::before,.stagemeta .sdoing+.seta::before{content:" · "}
/* ── 手机端（2026-10-29）：五个阶段名在 390px 下放不下，会把「打包自检」挤成孤立的一行。
   改成五段进度条（文字留在 title/aria-label 里），元信息压成两行：第几步·阶段·已用 ／ 正在做什么。 */
@media (max-width:560px){
 .stageline{padding:8px 10px}
 .stagerow{display:flex;align-items:center;gap:5px}
 .stg{flex:1 1 0;min-width:0;font-size:0;opacity:1;display:block}
 .stg i{display:block;width:100%;height:4px;border-radius:2px;background:rgba(11,37,69,.13);animation:none}
 .stg.done i{background:#2f7a58}
 .stg.cur i{background:var(--gold)}
 .stgap{display:none}
 .stagemeta{display:block;font-size:12px;line-height:1.5;margin-top:6px}
 .stagemeta .smain{display:block;font-weight:600;color:var(--navy)}
 .stagemeta .sline{display:flex;align-items:baseline;gap:8px;margin-top:3px;min-width:0}
 .stagemeta .sdoing{flex:1 1 auto;min-width:0;font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .stagemeta .seta{flex:0 0 auto;font-size:11.5px;color:var(--muted)}
 .stagemeta .smain+.sline::before,.stagemeta .sdoing+.seta::before{content:none}
 .statusline.dup{display:none}
 .msbox{gap:4px;margin-top:5px}
 .mschip{font-size:11px;padding:1px 8px}
}
.toolres pre{background:var(--surface);border:1px solid var(--line)}
.box{border-radius:22px;padding:6px 8px 6px 16px}
.composer{padding:10px 18px 14px;background:linear-gradient(180deg,rgba(247,245,240,0),var(--paper) 55%)}
.hint{color:var(--faint);font-size:12px}
.send{width:40px;height:40px;flex:0 0 40px;border-radius:50%}
#status::after{display:none}
#status.busy::after{display:inline-block;content:"";width:1px;height:11px;background:rgba(200,164,92,.65);margin-left:3px;vertical-align:-1px;animation:qa-caret 1s steps(1) infinite}
.topbar .brand{min-height:44px;display:flex;align-items:center}
@media(max-width:820px){
  .rail{position:fixed;flex-basis:260px}
  .rail-tip{display:none}
  .empty{padding:18px 0 14px}
  .empty .mark{display:none}
  .empty h1{font-size:24px;margin-bottom:8px}
  .empty p{font-size:13.5px;line-height:1.7}
  .stats{margin-top:12px;max-width:none}
  .groups{margin-top:20px}
  .grp{margin:14px 0 7px}
  .chip{min-height:48px;padding:11px 32px 11px 13px}
  .chips{grid-template-columns:1fr}
  .thread{padding:16px 12px 18px}
  .bub{font-size:15px;line-height:1.8}
  .msg.bot .av{display:none}
  .msg{gap:8px}
  #input{font-size:16px}
  .send,.stop,.icon{width:44px;height:44px;flex:0 0 44px}
  .send{border-radius:50%}
  .box{border-radius:23px;padding:6px 6px 6px 15px}
  .brand.small em{display:inline;font-size:11.5px;color:var(--muted)}
  .brand.small{font-size:13px;color:var(--navy)}
  .hint span:last-child{display:inline;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .trace.live::before{display:none}
  .eyebrow .pulse{box-shadow:none}
  .step.run .dot{animation:none}
}

.authbox{display:flex;align-items:center;gap:7px;margin:8px 6px 8px;padding:8px 10px;border:1px solid rgba(11,37,69,.10);border-radius:10px;background:rgba(255,255,255,.45);font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.authbox .authdot{width:6px;height:6px;border-radius:50%;background:#b08a4e;flex:0 0 6px}
.authbox.on .authdot{background:#2f7a58}
.authbox a{margin-left:auto;color:var(--gold-ink);text-decoration:none;font-weight:650}
.authbox a:hover{text-decoration:underline}
.logincta{margin:10px 0;padding:12px 14px;border:1px solid rgba(200,164,92,.45);border-radius:11px;background:#fffdf8;color:#5d4a2d;font-size:13.5px}
.logincta a{display:inline-flex;margin-top:7px;padding:7px 12px;border-radius:8px;background:var(--navy);color:#fff;text-decoration:none;font-weight:650}
@media(max-width:820px){.logincta{font-size:13px}}

/* ================= 登录 / 注册 / 找回密码（首页内） ================= */
.authm{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:rgba(11,37,69,.42);backdrop-filter:blur(5px);animation:qa-fade-in .18s var(--ease) both}
.authm[hidden]{display:none!important}
.authm-card{width:min(430px,100%);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px 22px;box-shadow:0 28px 80px -36px rgba(11,37,69,.65);position:relative;animation:qa-pop .25s var(--ease) both}
.authm-x{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:17px;cursor:pointer}
.authm-x:hover{background:var(--soft);color:var(--ink)}
.authm-brand{display:flex;align-items:center;gap:10px;margin:2px 0 16px;color:var(--navy)}
.authm-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#16395e,#2b5a8c);color:var(--gold2);font-size:15px}
.authm-brand b{display:block;font-size:16px;line-height:1.2}.authm-brand span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.authm-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px}
.authm-tabs button{border:0;background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--muted);padding:9px 4px 10px;margin-right:14px;border-bottom:2px solid transparent;cursor:pointer}
.authm-tabs button.on{color:var(--navy);border-bottom-color:var(--gold)}
.authm-body{display:block}.authm-field{margin:11px 0}.authm-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.authm-field input{width:100%;height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:16px;color:var(--ink);background:#fff;outline:0}
.authm-field input:focus{border-color:rgba(200,164,92,.85);box-shadow:0 0 0 3px rgba(200,164,92,.14)}
.authm-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.authm-submit{width:100%;height:46px;border:0;border-radius:11px;background:var(--navy);color:#fff;font:inherit;font-weight:650;font-size:15px;cursor:pointer;margin-top:6px}
.authm-submit:hover{background:#173a63}.authm-submit[disabled]{opacity:.55;cursor:default}
.authm-forgot{display:block;margin:11px auto 0;border:0;background:transparent;color:var(--gold-ink);font:inherit;font-size:12.5px;cursor:pointer}
.authm-hint{color:var(--muted);font-size:12px;text-align:center;margin:12px 0 0;line-height:1.55}
.authm-tip{color:var(--muted);font-size:11.5px;line-height:1.55;margin:8px 0 0}
.authm-err{min-height:18px;color:#8f2a1e;font-size:12px;margin:7px 0 0;line-height:1.5}
.authm-ok{color:#2f6d52;background:#f2faf5;border:1px solid #cfe8db;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.55}
.authm-warn{color:#8a5a24;font-size:11.5px;line-height:1.55;margin:8px 0 0}
.authm-upload{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px dashed rgba(200,164,92,.7);border-radius:10px;background:#fffdf8;color:var(--gold-ink);font-size:12.5px;cursor:pointer;padding:8px;text-align:center}
.authm-upload input{display:none}.authm-preview{width:100%;max-height:120px;object-fit:contain;border-radius:8px;margin-top:8px;border:1px solid var(--line)}
@media(max-width:480px){.authm-card{padding:20px 16px;border-radius:16px}.authm-row{grid-template-columns:1fr}.authm-field input{font-size:16px}}

/* 2026-10-21 · 左侧栏字号上调一档（用户反馈字体偏小） */
.rail{flex-basis:268px}
.brand{font-size:16px}
.brand em{font-size:13px}
.newchat{font-size:14.5px;min-height:46px;padding:10px 13px}
.rail-links a{font-size:13.5px;padding:9px 4px}
.rail-links a:last-child{grid-column:1/-1;text-align:left;padding-left:4px}
.rail-tip b{font-size:13.5px}
.rail-tip span{font-size:12.5px}
.rail-label{font-size:12px;letter-spacing:.08em;padding-top:20px}
.conv{font-size:14px;min-height:40px;padding:9px 11px}
.rail-foot a{font-size:13px;padding:7px 4px}
.authbox{font-size:12.5px;padding:9px 11px}
@media(max-width:820px){.rail{flex-basis:268px}}

/* ── 成品交付卡（/d/<短码>）── */
.deliv{margin:14px 0 2px;border:1px solid #e2d9c6;border-left:3px solid #c8a45c;border-radius:12px;background:#fffdf7;padding:12px 14px}
.deliv-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.deliv-tag{display:inline-block;background:#0b2545;color:#f3e6c8;font-size:11px;letter-spacing:.08em;padding:2px 8px;border-radius:999px}
.deliv-hd b{font-size:15px;color:#0b2545;line-height:1.4}
.deliv-sub{color:#6b6357;font-size:12.5px;margin-top:4px;word-break:break-all}
.deliv-act{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.deliv-dl,.deliv-open{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:9px;text-decoration:none;font-size:14px}
.deliv-dl{background:#0b2545;color:#fff}
.deliv-dl:hover{background:#123a6b}
.deliv-open{border:1px solid #cfd7e0;color:#0b2545;background:#fff}
.deliv-note{color:#6b6357;font-size:12.5px;line-height:1.6;margin-top:8px}
/* ── 交付样例卡（2026-10-28）──────────────────────────────── */
.samplecard{margin:14px 0 2px;border:1px solid #dfe6ee;border-radius:12px;background:#fbfcfe;padding:12px 14px 14px}
.shd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.stag{display:inline-block;background:#0b2545;color:#f3e6c8;font-size:11px;letter-spacing:.06em;padding:2px 8px;border-radius:999px}
.shd b{font-size:15px;color:#0b2545;line-height:1.4}
.smode{margin-left:auto;font-size:11.5px;color:#5d6b7c;background:#eef3f8;border-radius:999px;padding:2px 9px}
.smode.ok{color:#1f7a4d;background:rgba(31,122,77,.10)}
.smode.warn{color:#7a5a19;background:rgba(200,164,92,.18)}
.skpis{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.skpi{background:#fff;border:1px solid #e6ebf1;border-radius:8px;padding:6px 10px;font-size:11.5px;color:#5d6b7c}
.skpi b{color:#0b2545;font-size:15px;margin-right:6px;font-variant-numeric:tabular-nums}
.sframe{position:relative;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#f6f8fa}
.sframe iframe{display:block;width:100%;height:330px;border:0;background:#fff}
.samplecard.full .sframe iframe{height:78vh}
.sact{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.sopen,.sdl,.sexp{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:9px;font-size:13.5px;text-decoration:none;cursor:pointer}
.sopen{background:#0b2545;color:#fff;border:0}
.sopen:hover{background:#123a6b}
.sdl{background:#fff;color:#0b2545;border:1px solid #cfd7e0}
.sdl:hover{background:#f2f6fb}
.sexp{background:transparent;color:#5d6b7c;border:1px dashed #cfd7e0;font:inherit;font-size:12.5px}
.snote{color:#6b7585;font-size:12px;line-height:1.6;flex:1 1 220px}
@media(max-width:640px){.sframe iframe{height:260px}.samplecard.full .sframe iframe{height:70vh}.smode{margin-left:0}}


/* ── 首页能力卡（本地 / 全球 / 工厂 / 方法论）── */
.caps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 6px}
.cap{background:#fff;border:1px solid #e3e7ec;border-left:3px solid #c8a45c;border-radius:12px;padding:12px 14px}
.cap b{display:block;color:#0b2545;font-size:14.5px;margin-bottom:4px}
.cap span{color:#5c6672;font-size:12.8px;line-height:1.65}
@media(max-width:640px){.caps{grid-template-columns:1fr}}

/* ================= 首页登录入口（2026-10-25） =================
   桌面：左栏顶部品牌行右侧一枚「登录」；手机：顶栏「登录」。
   未登录才显示；登录后由 body.logged-in 收起，左栏底部的账户条接手（显示名字 + 退出）。
   点开都用站内已有的登录/注册/找回密码弹窗（authOpen）。 */
.rail-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rail-login{
  flex:0 0 auto;padding:5px 13px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(200,164,92,.55);background:rgba(200,164,92,.10);
  color:var(--gold-ink);font:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;
  transition:background .16s,color .16s,border-color .16s;
}
.rail-login:hover{background:rgba(200,164,92,.2);color:#6d5316;border-color:rgba(200,164,92,.9)}
.tb-right{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.tblogin{
  padding:7px 13px;border-radius:9px;cursor:pointer;font:inherit;font-size:13px;font-weight:650;
  color:#241a06;background:linear-gradient(135deg,#e0c084,#c8a45c);border:0;
  box-shadow:0 1px 2px rgba(140,106,40,.18);
}
.tblogin:hover{filter:brightness(1.04)}
body.logged-in .rail-login,body.logged-in .tblogin{display:none}
@media(max-width:820px){
  .authbox{display:flex;margin:6px 2px 8px}
}

/* 对话进行中不展示中断/失败细节；只保留关键步骤 */
.step.fail{display:none}
.msg.bot .av{display:none}

/* ================= 对话案例分享（2026-10-28） ================= */
.shareconv{
  width:100%;min-height:34px;margin-top:8px;padding:7px 12px;cursor:pointer;text-align:left;
  border:1px solid rgba(200,164,92,.28);border-radius:10px;background:rgba(200,164,92,.06);
  color:#d9c497;font:inherit;font-size:12.5px;letter-spacing:.02em;transition:background .16s,color .16s;
}
.shareconv:hover{background:rgba(200,164,92,.15);color:#f4e6c8}
.tbshare{
  padding:7px 12px;border-radius:9px;cursor:pointer;font:inherit;font-size:13px;font-weight:650;
  color:var(--navy);background:#fff;border:1px solid rgba(11,37,69,.18);
}
.tbshare:hover{border-color:rgba(200,164,92,.8);background:#fffdf8}

.sharem{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:18px;background:rgba(11,37,69,.46);backdrop-filter:blur(5px);animation:qa-fade-in .18s var(--ease) both}
.sharem[hidden]{display:none!important}
.sharem-card{width:min(470px,100%);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 28px 80px -36px rgba(11,37,69,.7);position:relative;animation:qa-pop .25s var(--ease) both}
.sharem-x{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:17px;cursor:pointer}
.sharem-x:hover{background:var(--soft);color:var(--ink)}
.sharem-brand{display:flex;align-items:center;gap:10px;margin:0 26px 14px 0}
.sharem-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#16395e,#2b5a8c);color:var(--gold2);font-size:16px}
.sharem-brand b{display:block;font-size:16px;line-height:1.25;color:var(--navy)}
.sharem-brand span{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.5}
.sharem-field{display:block;margin:12px 0;font-size:12px;color:var(--muted)}
.sharem-field input[type=text],.sharem-field input:not([type]),.sharem-field textarea{
  display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;font:inherit;font-size:16px;color:var(--ink);background:#fff;outline:0;
}
.sharem-field textarea{resize:vertical;min-height:56px;line-height:1.55;font-size:15px}
.sharem-field input:focus,.sharem-field textarea:focus{border-color:rgba(200,164,92,.85);box-shadow:0 0 0 3px rgba(200,164,92,.14)}
.sharem-radio{display:flex;gap:9px;align-items:flex-start;margin:8px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:11px;cursor:pointer;background:#fbfaf6}
.sharem-radio:has(input:checked){border-color:rgba(200,164,92,.85);background:#fffdf6;box-shadow:0 0 0 2px rgba(200,164,92,.10)}
.sharem-radio input{margin-top:3px;accent-color:#c8a45c}
.sharem-radio span{font-size:13.5px;color:var(--ink);line-height:1.45}
.sharem-radio em{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:2px}
.sharem-check{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:13px;color:var(--ink);cursor:pointer}
.sharem-check input{accent-color:#c8a45c}
.sharem-note{margin:10px 0 0;font-size:11.5px;line-height:1.6;color:#8a7a5f;background:#fbf8f0;border-left:3px solid rgba(200,164,92,.55);border-radius:0 8px 8px 0;padding:8px 10px}
.sharem-act{display:flex;gap:8px;margin-top:14px}
.sharem-go{flex:1;height:46px;border:0;border-radius:11px;background:var(--navy);color:#fff;font:inherit;font-weight:650;font-size:15px;cursor:pointer}
.sharem-go:hover{background:#173a63}.sharem-go[disabled]{opacity:.55;cursor:default}
.sharem-stop{height:46px;padding:0 14px;border:1px solid rgba(143,42,30,.28);border-radius:11px;background:#fff;color:#8f2a1e;font:inherit;font-size:13px;cursor:pointer}
.sharem-stop:hover{background:#fff5f3}
.sharem-err{min-height:16px;margin:8px 0 0;font-size:12px;line-height:1.5;color:#a33a25}
.sharem-out{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.sharem-url{display:flex;gap:6px}
.sharem-url input{flex:1;min-width:0;height:40px;border:1px solid var(--line);border-radius:9px;padding:0 10px;font:inherit;font-size:12.5px;color:#3b4756;background:#fbfaf6}
.sharem-url button{flex:0 0 auto;padding:0 13px;border:0;border-radius:9px;background:var(--navy);color:#fff;font:inherit;font-size:12.5px;cursor:pointer}
.sharem-prev{margin-top:12px;display:flex;justify-content:center}
.sharem-prev img{width:150px;height:150px;border-radius:12px;border:1px solid var(--line);box-shadow:0 10px 26px -18px rgba(11,37,69,.5);background:#0b2545}
.sharem-hint{margin:10px 0 0;font-size:11.5px;line-height:1.6;color:var(--muted);text-align:center}
.sharem-open{display:block;text-align:center;margin-top:8px;font-size:12.5px;color:#8a5a24}
@media(max-width:420px){
  .sharem-card{padding:18px 16px;border-radius:16px}
  .sharem-prev img{width:150px;height:150px}
}

/* `.bub a` 的棕色链接样式权重更高，会盖掉成品卡与样例卡的按钮配色（2026-10-28 实测） */
.bub .deliv-dl,.bub .sopen{color:#fff;text-decoration:none}
.bub .deliv-open,.bub .sdl{color:#0b2545;text-decoration:none}
.bub .sdl:hover,.bub .deliv-open:hover{background:#f2f6fb}
.bub .sexp{color:#5d6b7c;text-decoration:none}

/* 场景切换（2026-10-29） */
.scenes{display:flex;gap:6px;padding:0 18px 8px;flex-wrap:wrap}
.scene{appearance:none;border:1px solid rgba(11,37,69,.14);background:transparent;color:#5a6472;
  border-radius:999px;padding:4px 12px;font-size:12px;line-height:1.6;cursor:pointer}
.scene:hover{border-color:rgba(11,37,69,.3)}
.scene.on{background:#0b2545;border-color:#0b2545;color:#fff}
@media(max-width:640px){.scenes{padding:0 10px 6px}.scene{font-size:12px;padding:3px 10px}}

/* ================= 2026-10-29 · 手机端侧边栏（两个实报症状的修） =================
   症状一：手机上点开侧边栏就回不去。
     根因：宽度 ≤820px 时 `.rail` 变成 position:fixed，而 flex-basis 对固定定位元素不生效，
          宽度退回 auto（按内容撑开，实测 419px > 屏宽 375/390px），把整块遮罩全盖住，
          点屏幕任何位置都点不到遮罩 ⇒ 关不掉。修法：显式给宽度，再加一枚 ✕ 关闭按钮。
   症状二：侧边栏里往下滑看不到历史对话。
     根因：品牌 41 + 新对话 47 + 分享 45 + 10 个导航链接 278 + 「最近」46 先占掉 457px，
          「最近」列表在 375×553 的手机上只剩 10px，且列表外没有可滚区域。
     修法：手机端导航改成一行可横滑的胶囊条（高度 278px → 约 40px），
          把省下来的高度全给「最近」列表；列表本身继续独立滚动，并禁止滚到底后带动整页刷新。
   ⛔ 只改宽度 ≤820px 的手机端，桌面端（左栏 268px）一律不动。
   ⛔ 回滚：把本段整块删掉，再把 agent.html 里的 #railClose 按钮去掉即可（桌面无此按钮）。 */
.rail-hd-acts{display:flex;align-items:center;gap:6px;margin-left:auto}
.rail-close{display:none;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:9px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:15px;
  line-height:1;cursor:pointer;padding:0}
.rail-close:hover{background:#fffdf8;border-color:rgba(200,164,92,.7);color:var(--gold-ink)}

@media(max-width:820px){
  .rail{width:min(84vw,300px);max-width:300px;height:100dvh;overflow-x:hidden;
    padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .rail-close{display:grid}
  /* 历史优先：品牌 → 新对话 → 分享 → 最近 → 导航条 → 账号 → 底部 */
  .rail-hd{order:1}.newchat{order:2}.shareconv{order:3}.rail-label{order:4}
  .convs{order:5;flex:1 1 auto;min-height:88px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .rail-links{order:6}
  .authbox{order:7}.rail-foot{order:8}
  .rail-label{padding:14px 10px 4px}
  /* 只有「最近」列表让步，其余各行不许被压扁（否则导航胶囊会被裁掉半截） */
  .rail-hd,.newchat,.shareconv,.rail-label,.rail-links,.authbox,.rail-foot{flex:0 0 auto}
  .conv{font-size:15px;min-height:44px;padding:10px 11px}
  /* 导航从两列网格改成一行横滑，省下约 240px 全给历史列表 */
  .rail-links{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding:8px 4px 4px;
    border-top:1px solid var(--line);margin-top:8px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .rail-links{min-height:38px;align-items:center}
  .rail-links a{flex:0 0 auto;white-space:nowrap;font-size:12.5px;padding:6px 11px;
    border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted)}
  .rail-links a:last-child{grid-column:auto;text-align:center;padding-left:11px}
  .rail-foot{margin-top:6px}
}

/* 2026-10-29 · 矮屏（横屏手机 / 高度不足的桌面窗）同样看不到历史：
   侧栏内容实测 668px 高，390px 高的横屏里「最近」列表只剩 10px、底部溢出屏幕。
   ≤640px 高时整条侧栏可滚，列表不再单独挤高度（与上面手机端同一思路）。 */
@media(min-width:821px) and (max-height:640px){
  .rail{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .rail-hd,.newchat,.shareconv,.rail-links,.rail-label,.convs,.authbox,.rail-foot{flex:0 0 auto}
  .convs{overflow:visible;min-height:0}
  .rail-tip{display:none}
  .rail-foot{margin-top:6px}
}

/* 能力卡直答（2026-10-30）：卡一出结果先显示，模型长答案随后补上 */
.cardans{border:1px solid rgba(11,37,69,.12);border-left:3px solid #c8a24a;background:rgba(200,162,74,.06);
  border-radius:8px;padding:10px 12px;margin:0 0 10px}
.ca-tag{font-size:11px;color:#8a7a4e;letter-spacing:.02em;margin-bottom:6px}
.ca-body{font-size:14px;line-height:1.75;color:#1c2430}
.ca-meta{font-size:11px;color:#7b8493;margin-top:6px}

/* 表格在窄屏不被裁切（2026-10-30 移动端走查发现最后一列被切） */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:8px 0}
.tw table{margin:0;border-collapse:collapse}
@media(max-width:640px){
  .tw table th,.tw table td{font-size:12.5px;padding:6px 8px;white-space:nowrap}
}
