:root{
  --primary:#FF4D17; --primary2:#FF7A00; --accent:#FFB200;
  --bg1:#fff6f0; --bg2:#ffe8db; --ink:#26211e; --muted:#9a8f88;
  --card:#ffffff; --line:#ffe3d2;
  --gold:#FFB300; --silver:#B9C2CC; --bronze:#E08A4B;
  --maxw:430px;
  --bar-clear:112px; /* 底部 composer 实际占高(语音模式约106px) + 余量，保证末行文字不被遮挡 */
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;padding:0;overflow:hidden;height:100%;overscroll-behavior:none}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI",Roboto,sans-serif;
  background:#1c1c22;color:var(--ink);
  display:flex;justify-content:center;
}
/* 桌面端居中手机壳 */
.phone{width:100%;max-width:var(--maxw);position:relative;background:linear-gradient(180deg,var(--bg1),var(--bg2));box-shadow:0 0 60px rgba(0,0,0,.45);overflow:hidden;overscroll-behavior:none}
@media(min-width:520px){
  body{align-items:center;min-height:100vh;padding:24px 0}
  .phone{height:calc(100vh - 48px);max-height:900px;border-radius:38px;border:9px solid #0c0c10}
}
.app{display:flex;flex-direction:column;height:100%;position:relative;overflow:hidden;overscroll-behavior:none}
@media(max-width:519px){
  html,body{position:fixed;inset:0;width:100%;height:100%;height:100dvh}
  body{display:block;min-height:0}
  .phone{position:fixed;inset:0;width:100%;max-width:var(--maxw);left:50%;transform:translateX(-50%);height:100%;height:100dvh}
  .app{height:100%;height:100dvh}
}

/* 顶部：品牌 + 操作 */
.top-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 14px 4px;padding-top:calc(4px + env(safe-area-inset-top,0px));background:linear-gradient(180deg,rgba(255,246,240,.98),rgba(255,246,240,.55))}
.brand-lockup{display:flex;align-items:center;gap:5px;min-width:0}
.brand-bolt{flex-shrink:0;display:block;width:11px;height:11px;filter:drop-shadow(0 1px 2px rgba(255,160,0,.35))}
.brand-name{font-size:11px;font-weight:800;color:#3d2f28;letter-spacing:-.3px;line-height:1}
.top-bar-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}
.toolbar-btn{border:none;background:#fff;border-radius:999px;padding:0;font-size:9px;font-weight:600;color:var(--primary);box-shadow:0 1px 4px rgba(0,0,0,.06);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;line-height:1.2}
.toolbar-btn svg{width:11px;height:11px}
.clear-btn{width:23px;height:23px;color:#6b615b}
.lang-toggle{width:auto;height:21px;padding:0 7px;border-radius:999px;margin-left:0}
.scroll{flex:1;min-height:0;overflow:hidden;padding-bottom:96px;overscroll-behavior:none;touch-action:none;display:flex;flex-direction:column}
body.has-results .scroll,
.scroll:has(.chat-turn){
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  padding-bottom:var(--bar-clear);
  justify-content:flex-start;
  display:block;
}
body.has-results .scroll.scroll-follow-active{
  scroll-behavior:smooth;
}
/* 有结果 / 有对话：折叠主视觉 */
body.has-results .hero{display:none}
.scroll::-webkit-scrollbar{width:0}

/* 对话流：新问题追加在下方，旧问答顶上去可上下滑查看 */
.chat-flow{display:flex;flex-direction:column;gap:14px;padding:6px 12px 10px;width:100%;box-sizing:border-box}
.chat-scroll-anchor{height:1px;flex-shrink:0;pointer-events:none;visibility:hidden}
.chat-turn{display:flex;flex-direction:column;gap:8px}
.chat-q{align-self:flex-end;max-width:90%;min-width:0;background:linear-gradient(135deg,var(--primary2),var(--primary));color:#fff;padding:8px 12px;border-radius:14px 14px 3px 14px;font-size:12px;font-weight:400;line-height:1.3;box-shadow:0 2px 8px rgba(255,77,23,.18)}
.chat-q-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}
.chat-q-time{align-self:flex-end;display:flex;align-items:center;gap:4px;font-size:11px;color:#a89f98;margin-top:-4px;padding-right:2px;line-height:1}
.chat-q-read{display:inline-flex;align-items:center;font-size:10px;line-height:1}
.chat-q-tick{color:#c4b8b0;letter-spacing:-1px}
.chat-q-tick+.chat-q-tick{margin-left:-2px}
.chat-q-tick-on{color:#52b84a}
.chat-a{display:flex;flex-direction:column;gap:6px}
.chat-status-bar{background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.04);overflow:hidden}
.chat-steps{padding:10px 12px 12px 8px}
.step-panel{margin-top:8px}
.step-outcome .step-body{padding-bottom:12px}
.step-stats-wrap .step-body{padding-bottom:4px}
.step-outcome .brands{margin:0}
.step-outcome .board{margin:0}
.step-outcome .chat-stats{margin:0}
.chat-steps .board{margin:0}
.chat-steps .board-card{box-shadow:none;border:none;background:transparent}

/* 步骤 5-7：内容区与步骤 5 品牌卡片左缘对齐 */
.step-outcome .step-panel{max-width:100%;box-sizing:border-box;margin:0;padding:0}
.step-outcome .brands-scroll{padding:2px 0 6px}
.step-outcome .board-card{padding:6px 0 4px;border:none;background:transparent;box-shadow:none}
.step-outcome .board-head{padding:0;margin-bottom:8px;text-align:center}
.step-outcome .board-head .top-title{font-size:14px;color:var(--ink);letter-spacing:-.2px}
.step-outcome .board-sub{font-size:10.5px;margin:4px 0 0;line-height:1.45;text-align:center;color:#9a908a}
/* 8 列（含品牌电话/邮箱/官网）超出手机屏宽，整表横向滑动 */
.step-outcome .consensus-table{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.step-outcome .ct-head,
.step-outcome .consensus-row{grid-template-columns:26px minmax(0,1.1fr) repeat(2,minmax(0,.55fr)) minmax(0,.62fr) repeat(3,minmax(0,1.05fr));column-gap:8px;align-items:center;min-width:600px}
.step-outcome .ct-head{padding:0 0 6px;font-size:9px;letter-spacing:.02em}
.step-outcome .ct-head span{text-align:center}
.step-outcome .ct-head span:nth-child(2){text-align:left}
/* 本地生活（美团）联盟权限未开通：榜单整列隐藏「购买」 */
.step-outcome .consensus-table.no-buy .ct-head span:nth-child(5),
.step-outcome .consensus-table.no-buy .consensus-row .cr-buy{display:none}
.step-outcome .consensus-table.no-buy .ct-head,
.step-outcome .consensus-table.no-buy .consensus-row{grid-template-columns:26px minmax(0,1.1fr) repeat(2,minmax(0,.55fr)) repeat(3,minmax(0,1.05fr));min-width:540px}
.step-outcome .consensus-row{padding:7px 0}
.step-outcome .cr-medal{width:22px;height:26px}
.step-outcome .cr-medal span{width:18px;height:18px;font-size:10px}
.step-outcome .cr-medal::after{top:14px;width:10px;height:7px}
.step-outcome .cr-brand{font-size:12px;line-height:1.3;text-align:left;padding:0 2px 0 0;white-space:normal;overflow:visible;word-break:break-word}
.step-outcome .cr-index{font-size:15px;font-weight:800}
.step-outcome .cr-votes{font-size:9px}
.step-outcome .cr-buy-btn{width:30px;height:30px;border-radius:8px}
.step-outcome .cr-dash{font-size:11px}
.step-outcome .chat-stats{width:100%;box-sizing:border-box;margin:0;border-radius:12px}
body.has-results .chat-steps .step-outcome .brands,
body.has-results .chat-steps .step-outcome .board,
body.has-results .chat-steps .step-outcome .chat-stats{margin:0}
body.has-results .chat-steps .step-outcome .brands-scroll{padding:2px 0 6px}
body.has-results .chat-steps .step-outcome .chat-stats{margin:0}
.step-item{display:flex;gap:10px}
.step-item:last-child .step-line{display:none}
.chat-steps-flow .step-flow:last-child .step-line{display:block}
.step-item:last-child .step-body{padding-bottom:0}
.step-track{display:flex;flex-direction:column;align-items:center;width:16px;flex-shrink:0}
.step-dot{width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-dot-done{background:#22c55e}
.step-dot-active{background:var(--primary);color:#fff}
.step-dot-pending{background:#ece4de;color:#a89f98}
.step-line{width:2px;flex:1;min-height:12px;margin:3px 0;background:repeating-linear-gradient(to bottom,#86efac 0,#86efac 3px,transparent 3px,transparent 6px)}
.step-body{flex:1;min-width:0;padding-bottom:14px}
.chat-steps-flow .step-flow[data-step="1"] .step-body{padding-bottom:7px}
.chat-steps-flow .step-flow .step-line{min-height:6px;margin:2px 0}
.step-title{font-size:13px;font-weight:700;color:var(--ink);line-height:1.35}
.step-title-done{font-size:13px;font-weight:700;color:var(--ink);line-height:1.4}
.step-pending-hint{font-size:12px;color:#8a807a;line-height:1.4;font-weight:500;margin-top:1px}
.step-pending-hint .step-ring{display:inline-block;margin-right:2px}
.step-hint-blink{animation:stepHintBlink 1s ease-in-out 2}
.step-hint-zone:not([hidden]) + .step-main-zone:not([hidden]){margin-top:2px}
.step-count{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:800}
@keyframes stepHintBlink{0%,100%{opacity:1}50%{opacity:.22}}
.step-board-hint .step-pending-hint + .step-pending-hint{margin-top:4px}
.stats-disclaimer{font-size:10px;line-height:1.45;color:#c8beb6;margin:4px 0 8px;font-weight:400}
.consensus-row.board-row-pending{opacity:0;transform:translateY(6px)}
.consensus-row.board-row-visible{opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}
.cr-medal-emoji{font-size:17px;line-height:1;display:block;text-align:center}
.cr-index-val,.cr-vote-val{font-variant-numeric:tabular-nums}
.step-pending .step-title{color:#8a807a}
.step-sub{font-size:12px;color:var(--primary);margin-top:4px;line-height:1.35;font-weight:600}
.step-hint{font-size:12px;color:#8a807a;margin-top:5px;line-height:1.4;font-weight:500;animation:stepHintIn .35s ease}
.step-hint.step-hint-swap{animation:stepHintSwap .35s ease}
@keyframes stepHintIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes stepHintSwap{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.step-progress-wrap{margin-top:6px}
.step-consult-label{margin-top:6px}
.step-brands-wrap.step-chrome-hidden{gap:0;align-items:stretch}
.step-brands-wrap.step-chrome-hidden .step-track{display:flex;flex-direction:column;align-items:center;align-self:stretch;padding-top:0}
.step-brands-wrap.step-chrome-hidden .step-track .step-line{flex:1;min-height:20px;margin:0}
.step-brands-wrap.step-chrome-hidden .step5-title{display:none}
.step-progress-label{display:block;font-size:11px;color:#8a807a;margin-bottom:5px;line-height:1.35}
.step-progress-row{display:flex;align-items:center;gap:8px}
.step-progress-bar{flex:1;height:6px;background:#f3ebe4;border-radius:999px;overflow:hidden}
.step-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary2),var(--primary));border-radius:999px;transition:width .35s ease}
.step-progress-pct{font-size:11px;font-weight:700;color:var(--primary);flex-shrink:0;min-width:32px;text-align:right}
.chat-status-progress{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;color:#6b615b}
.chat-status-progress .spinner{width:14px;height:14px;border-width:2px}
.chat-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.04);overflow:hidden;margin:0 12px 6px}
body.has-results .chat-stats{margin:0 12px 4px}
.stat-cell{padding:6px 3px 7px;text-align:center;border-right:1px solid #f3ebe4;min-width:0}
.stat-cell:last-child{border-right:none}
.stat-head{font-size:9px;color:#8a807a;line-height:1.1;margin-bottom:3px}
.stat-val{font-size:12px;font-weight:800;color:var(--ink);line-height:1.15;word-break:break-word;padding:0 1px}
.stat-val.compact{font-size:10px;font-weight:700;line-height:1.2}
.chat-a .brands{margin:0}
.chat-a .empty{padding:24px 16px;margin:0}

/* 底部 composer 内的 AI 模型图标 */
.models-row{display:flex;align-items:center;gap:5px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.models-row::-webkit-scrollbar{display:none}
.model-ic{flex:0 0 auto;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:transparent;padding:0;margin:0}
.model-ic .ic-wrap{position:relative;width:28px;height:28px;border-radius:8px;padding:1px;background:#fff;border:1.5px solid transparent;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:.15s;display:block;box-sizing:border-box}
.model-ic .nm,.model-ic .check{display:none}
.model-ic img{width:100%;height:100%;border-radius:6px;display:block;object-fit:contain}
.model-ic.on .ic-wrap{border-color:#E86A2C;box-shadow:0 0 0 1px rgba(232,106,44,.18)}
.model-ic:not(.on) img{filter:grayscale(.35);opacity:.78}
.model-ic.maint{opacity:.4;pointer-events:none}

/* 主视觉 */
.hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 28px 128px;min-height:min(100%,420px)}
.hero-bag{width:50px;margin:0 auto 13px;display:flex;align-items:center;justify-content:center;opacity:.95}
.hero-bag svg{width:50px;height:auto;display:block}
.hero-title{font-size:15px;font-weight:700;line-height:1.25;margin:0 0 7px;letter-spacing:-.2px;color:#B87840;max-width:196px}
.hero-sub{font-size:10px;line-height:1.45;margin:0;color:#9a908a;max-width:210px;font-weight:500}

/* 当前搜索 */
.search-info{margin:4px 14px 10px;background:linear-gradient(90deg,#fff,#fff8f4);border:1px solid var(--line);border-radius:14px;padding:10px 13px;display:flex;flex-direction:column;gap:4px;box-shadow:0 2px 8px rgba(255,120,0,.06)}
body.has-results .search-info{margin:4px 12px 8px;padding:9px 12px;gap:3px;border-radius:12px}
.si-q{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.si-label{background:linear-gradient(135deg,var(--primary2),var(--primary));color:#fff;font-size:11px;padding:3px 9px;border-radius:8px;font-weight:600}
.si-text{font-weight:700;font-size:15px;color:var(--ink)}
body.has-results .si-text{font-size:14.5px;line-height:1.35}
.si-time{font-size:11px;color:var(--muted)}
body.has-results .si-time{font-size:11px}

/* 状态条 */
.status-bar{display:flex;align-items:center;gap:10px;margin:0 14px 12px;background:#fff;border-radius:14px;padding:13px 16px;font-size:14px;color:#6b615b;box-shadow:0 2px 8px rgba(0,0,0,.05)}
body.has-results .status-bar{margin:0 12px 5px;padding:8px 12px;font-size:12px;border-radius:12px}
.spinner{width:18px;height:18px;border:3px solid #ffe1d0;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
body.has-results .spinner{width:14px;height:14px;border-width:2px}
@keyframes spin{to{transform:rotate(360deg)}}

/* AI 品牌共识榜 */
.board{margin:0 14px 14px}
body.has-results .board{margin:0 12px 4px}
.board-card{background:#fffaf5;border-radius:14px;padding:12px 10px 8px;box-shadow:0 1px 8px rgba(0,0,0,.05)}
.board-head{text-align:center;margin-bottom:10px;padding:0 4px}
.board-head .top-title{font-size:16px;margin:0;font-weight:900;color:#e53935;line-height:1.35}
body.has-results .board-head .top-title{font-size:15px}
.board-sub{font-size:11px;color:#8a807a;margin:5px 0 0;line-height:1.45}
.consensus-table{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.ct-head,.consensus-row{display:grid;grid-template-columns:26px minmax(0,1.1fr) repeat(2,minmax(0,.55fr)) minmax(0,.62fr) repeat(3,minmax(0,1.05fr));column-gap:8px;align-items:center;width:100%;min-width:600px}
.ct-head{font-size:9.5px;color:#a89f98;font-weight:700;padding:0 0 7px;border-bottom:1px solid #f0e8e0;text-align:center;letter-spacing:.02em}
.ct-head span{text-align:center;white-space:nowrap;line-height:1.2}
.ct-head span:nth-child(2){text-align:left}
.consensus-row{padding:8px 0;border-bottom:1px solid #f7f0ea}
.consensus-row:last-child{border-bottom:none;padding-bottom:2px}
.cr-rank{display:flex;justify-content:center}
.cr-medal{width:24px;height:28px;position:relative;display:flex;align-items:flex-start;justify-content:center}
.cr-medal span{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:11px;font-style:italic;box-shadow:0 2px 4px rgba(0,0,0,.15);z-index:2}
.cr-medal::after{content:"";position:absolute;top:15px;left:50%;transform:translateX(-50%);width:11px;height:8px;background:inherit;clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);opacity:.9}
.consensus-row.r1 .cr-medal span,.consensus-row.r1 .cr-medal::after{background:linear-gradient(135deg,#FFD24D,#FF9D00)}
.consensus-row.r2 .cr-medal span,.consensus-row.r2 .cr-medal::after{background:linear-gradient(135deg,#CBD5E0,#94A3B8)}
.consensus-row.r3 .cr-medal span,.consensus-row.r3 .cr-medal::after{background:linear-gradient(135deg,#F0A868,#D9763B)}
.cr-brand{font-size:12px;font-weight:800;color:var(--ink);line-height:1.3;word-break:break-word;text-align:left;white-space:normal;overflow:visible;padding:0 2px 0 0}
.cr-brand.placeholder{color:#a89f98;font-weight:600}
.cr-index{font-size:15px;font-weight:800;color:var(--primary);text-align:center;font-style:italic;line-height:1}
.cr-dash{font-size:11px;color:#cfc6c0;font-style:normal;font-weight:600}
.cr-votes{font-size:9px;color:#3d9a62;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1.2;text-align:center}
.cr-vote-txt{white-space:nowrap;font-variant-numeric:tabular-nums}
.cr-buy{display:flex;justify-content:center}
.cr-buy-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--primary2),var(--primary));color:#fff;font-size:13px;font-weight:900;text-decoration:none;box-shadow:0 2px 6px rgba(255,77,23,.2);cursor:pointer;padding:0;font:inherit;line-height:1}
.cr-buy-btn:active:not(.disabled){transform:scale(.93)}
.cr-buy-btn.disabled{opacity:.42;filter:grayscale(1);cursor:not-allowed;box-shadow:none}
.cr-buy-btn.cr-buy-amazon{background:#fff;border:1px solid #e8e0da;box-shadow:0 2px 6px rgba(0,0,0,.08);padding:2px}
.cr-buy-btn .cr-buy-ic{width:100%;height:100%;object-fit:contain;display:block;padding:2px;box-sizing:border-box}
.cr-buy-empty{font-size:13px;color:#cfc6c0}
.board-list{display:flex;flex-direction:column;gap:0}
body.has-results .board-list{gap:0}
/* 旧 TOP3 卡片样式（品牌弹层等仍引用 pc-*） */
.pcard{background:var(--card);border-radius:16px;padding:13px;box-shadow:0 4px 16px rgba(255,90,30,.10);position:relative}
body.has-results .pcard{padding:10px 11px;border-radius:14px;box-shadow:0 2px 10px rgba(255,90,30,.09)}
.pcard .pc-top{display:flex;align-items:center;gap:10px}
body.has-results .pcard .pc-top{gap:9px;align-items:center}
.pcard .pc-medal{flex:0 0 30px;width:30px;height:36px;position:relative;display:flex;align-items:flex-start;justify-content:center}
body.has-results .pcard .pc-medal{flex:0 0 26px;width:26px;height:30px}
.pcard .pc-medal span{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:14px;font-style:italic;box-shadow:0 3px 7px rgba(0,0,0,.2);z-index:2}
body.has-results .pcard .pc-medal span{width:24px;height:24px;font-size:13px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.pcard .pc-medal::after{content:"";position:absolute;top:22px;left:50%;transform:translateX(-50%);width:16px;height:12px;background:inherit;clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);opacity:.9}
body.has-results .pcard .pc-medal::after{top:18px;width:13px;height:10px}
.pcard.r1 .pc-medal span,.pcard.r1 .pc-medal::after{background:linear-gradient(135deg,#FFD24D,#FF9D00)}
.pcard.r2 .pc-medal span,.pcard.r2 .pc-medal::after{background:linear-gradient(135deg,#CBD5E0,#94A3B8)}
.pcard.r3 .pc-medal span,.pcard.r3 .pc-medal::after{background:linear-gradient(135deg,#F0A868,#D9763B)}
.pcard .pc-main{flex:1;min-width:0}
.pcard .pc-title{font-size:14.5px;font-weight:800;line-height:1.32;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.has-results .pcard .pc-title{font-size:14px;line-height:1.28;-webkit-line-clamp:2}
.pcard .pc-scores{flex:0 0 auto;display:flex;gap:14px;padding:0 2px}
body.has-results .pcard .pc-scores{gap:10px;padding:0;flex-shrink:1}
.pcard .pc-score{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:40px}
body.has-results .pcard .pc-score{gap:2px;min-width:34px;align-items:center}
.pcard .pc-score .lbl{font-size:10.5px;color:var(--muted);white-space:nowrap}
body.has-results .pcard .pc-score .lbl{font-size:9.5px;line-height:1.15}
.pcard .pc-score .val{font-size:17px;font-weight:900;color:var(--primary);line-height:1;font-style:italic}
body.has-results .pcard .pc-score .val{font-size:15px;line-height:1.15}
.pcard .pc-score .val i{font-size:10px;font-weight:700;font-style:normal;color:#c7a48f}
body.has-results .pcard .pc-score .val i{font-size:9px}
.pcard .pc-buywrap{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.pcard .pc-items{margin:8px -4px 0;padding-top:8px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
body.has-results .pcard .pc-items{margin:6px -2px 0;padding-top:6px;gap:5px}
.pcard .pc-items-empty{margin:8px 0 0;padding:10px 8px;border-top:1px dashed var(--line);font-size:11px;color:var(--muted);text-align:center}
.pcard .pc-item{display:flex;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:10px;background:#fffaf6;text-decoration:none;color:inherit}
.pcard .pc-item:active{background:#fff1e8}
.pcard .pc-item-img{flex:0 0 52px;width:52px;height:52px;border-radius:8px;overflow:hidden;background:#f5f0ec;display:flex;align-items:center;justify-content:center}
.pcard .pc-item-img img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .pc-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pcard .pc-item-title{font-size:12px;font-weight:700;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard .pc-item-meta{font-size:10px;color:var(--muted);line-height:1.2}
.pcard .pc-item-price{font-size:13px;font-weight:900;color:var(--primary);font-style:italic;line-height:1}
.pcard .pc-item-go{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--primary)}
.pcard .pc-buy{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;overflow:hidden;text-decoration:none;box-shadow:0 4px 10px rgba(255,77,23,.22);transition:transform .15s}
body.has-results .pcard .pc-buy{width:38px;height:38px;border-radius:10px;box-shadow:0 3px 8px rgba(255,77,23,.2)}
.pcard .pc-buy img{width:100%;height:100%;object-fit:cover;display:block}
.pcard .pc-buy:active{transform:scale(.93)}
.pcard .pc-buy.disabled{box-shadow:none;filter:grayscale(1);opacity:.45}
button.pc-buy{border:none;padding:0;cursor:pointer;font:inherit}
.pcard .pc-meta{margin:11px -13px 0;padding:9px 13px 11px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.5}
.pcard .pc-meta b{font-weight:600;color:#8a807a}
.pcard .pc-meta .mp{font-style:normal;color:var(--primary);font-weight:800}
.pcard .pc-meta .dot{margin:0 6px;color:#e3d5cb}
.scorechip{font-size:10px;color:#a06a3a;background:#fff3e3;border-radius:6px;padding:2px 6px;font-weight:600}
.plats{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.plat{display:flex;align-items:center;gap:4px;background:#fff7f2;border:1px solid var(--line);border-radius:9px;padding:3px 4px 3px 5px;cursor:pointer;transition:.15s;text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent}
a.plat:visited{color:inherit}
.plat img{width:18px;height:18px;border-radius:5px}
.plat .go{background:linear-gradient(135deg,var(--primary2),var(--primary));color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:7px}
.plat.disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.6)}
.plat.disabled .go{background:#cfc6c0}
.plat:active:not(.disabled){transform:scale(.94)}

/* 品牌卡片 */
.brands{margin:0 0 10px}
body.has-results .brands{margin:0 0 10px}
.brands-head{display:flex;align-items:center;gap:7px;margin:2px 16px 10px}
body.has-results .brands-head{margin:0 12px 8px;gap:6px}
.brands-head h2{font-size:17px;margin:0;font-weight:800}
body.has-results .brands-head h2{font-size:16px}
.ai-dot{background:linear-gradient(135deg,#3186FF,#7B61FF);color:#fff;font-size:11px;font-weight:800;padding:3px 8px;border-radius:8px}
body.has-results .ai-dot{font-size:11px;padding:3px 7px;border-radius:7px}
/* 品牌卡片：横向翻页；结果页同时允许在该区域上滑以滚动整页 */
.brands-scroll{display:flex;gap:8px;overflow-x:auto;overflow-y:visible;padding:2px 12px 6px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y}
body.has-results .brands-scroll{touch-action:pan-x pan-y;padding:0 12px 4px;gap:8px}
.brands-scroll::-webkit-scrollbar{display:none}
/* 一屏并排 3 张：宽度 = (可视宽 - 2×间距) / 3 */
.bcard{scroll-snap-align:start;flex:0 0 calc((100% - 16px) / 3);min-width:0;background:#fff;border-radius:12px;padding:10px 8px;box-shadow:0 3px 12px rgba(0,0,0,.06);box-sizing:border-box;transition:opacity .28s ease,transform .28s ease}
.bcard.bcard-pending{opacity:0;transform:translateY(5px)}
body.has-results .bcard{flex:0 0 calc((100% - 16px) / 3);padding:10px 8px;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.bcard .bh{display:flex;align-items:flex-start;gap:5px;margin-bottom:7px}
body.has-results .bcard .bh{gap:5px;margin-bottom:6px}
.bcard .bh img{width:24px;height:24px;border-radius:7px;flex:0 0 auto;margin-top:1px}
body.has-results .bcard .bh img{width:22px;height:22px;border-radius:6px}
.bcard .bmeta{flex:1;min-width:0}
.bcard .bno{display:none}
.bcard .bname{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}
body.has-results .bcard .bname{font-size:12px}
.bcard .btime{margin-top:2px;font-size:10px;color:#9a908a;display:flex;align-items:center;gap:4px;line-height:1.2}
body.has-results .bcard .btime{font-size:10px}
.bcard .btime .ok{color:#2bb673}.bcard .btime .fail{color:#e0533b}
.bcard .btime-fail{white-space:normal;word-break:break-word}
.bcard .brow{display:flex;align-items:center;font-size:11px;padding:3px 0;border-top:1px dashed #f0e6df}
body.has-results .bcard .brow{font-size:11.5px;padding:3px 0}
.bcard .brow .rk{color:var(--primary);font-weight:800;font-style:italic;width:14px;flex:0 0 auto}
body.has-results .bcard .brow .rk{width:13px;font-size:11px}
.bcard .brow .bn{flex:1;min-width:0;margin:0 0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bcard.failed{opacity:.65}
.step3-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.step3-head .step-title{flex:1;min-width:0}
.brands-nav{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:4px}
.brands-nav-btn{border:none;background:transparent;padding:0 4px;min-width:22px;height:22px;font-size:16px;font-weight:700;line-height:1;color:var(--primary);cursor:pointer;-webkit-tap-highlight-color:transparent}
.brands-nav-btn:disabled{color:#d8cfc8;cursor:default;opacity:.55}

/* AI 分析流程：文字统一常规字重 */
.chat-steps .step-title,
.chat-steps .step-title-done,
.chat-steps .step-pending-hint,
.chat-steps .step-sub,
.chat-steps .step-hint,
.chat-steps .step-progress-label,
.chat-steps .step-progress-pct,
.chat-steps .step-count,
.chat-steps .bcard .bname,
.chat-steps .bcard .brow,
.chat-steps .bcard .brow .rk,
.chat-steps .bcard .brow .bn,
.chat-steps .brands-nav-btn,
.chat-steps .step-outcome .board-head .top-title,
.chat-steps .step-outcome .board-sub,
.chat-steps .step-outcome .ct-head,
.chat-steps .step-outcome .ct-head span,
.chat-steps .step-outcome .cr-brand,
.chat-steps .step-outcome .cr-index,
.chat-steps .step-outcome .cr-votes,
.chat-steps .step-outcome .cr-dash,
.chat-steps .step-outcome .cr-medal span,
.chat-steps .stat-val,
.chat-steps .stat-val.compact{font-weight:400;font-style:normal}

/* 收紧 AI 结果流程纵向空白（能去则去，其余约 50%） */
body.has-results .chat-flow{padding:6px 12px 5px;gap:7px}
body.has-results .chat-turn{gap:4px}
body.has-results .chat-a{gap:3px}
body.has-results .chat-steps{padding:8px 12px 0 8px}
body.has-results .step-outcome .step-body{padding-bottom:6px}
body.has-results .step-stats-wrap .step-body{padding-bottom:0}
body.has-results .step-outcome .step-panel{margin-top:4px}
body.has-results .step-outcome .brands-scroll{padding:2px 0 3px}
body.has-results .step-brands-wrap.step-chrome-hidden .step-track .step-line{flex:1;min-height:20px;margin:0}
body.has-results .step-outcome .step-item{gap:5px}
body.has-results .step-outcome .board-card{padding:4px 0 2px}
body.has-results .step-outcome .board-head{margin-bottom:4px}
body.has-results .step-outcome .consensus-row{padding:5px 0}
body.has-results .step-outcome .consensus-row:last-child{padding-bottom:2px}
body.has-results .step-board-wrap .step-body{padding-bottom:4px}
body.has-results .stats-disclaimer{margin:2px 0 0}
body.has-results .scroll{padding-bottom:var(--bar-clear)}
.empty{text-align:center;padding:40px 24px;color:var(--muted)}
.empty-icon{font-size:48px;margin-bottom:10px}
/* 第一核心 Prompt：非选择类路由（系统操作/平台咨询/其他问题）的对话式直接回复 */
.direct-reply{margin:2px 0 0;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid rgba(234,216,202,.7);box-shadow:0 6px 18px rgba(40,24,12,.06);color:var(--ink);font-size:14px;line-height:1.62;white-space:pre-wrap;word-break:break-word}
.hd-reply{margin:8px 0 0;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid rgba(234,216,202,.7);color:var(--ink);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.cr-contact-cell{min-width:0;text-align:center}
.cr-contact-link{display:block;font-size:9px;font-weight:500;line-height:1.35;color:#8a6a52;text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.cr-contact-link:active{opacity:.6}

/* 底部输入栏（截图样式 composer） */
.inputbar{position:absolute;left:0;right:0;bottom:calc(6px + var(--kb,0px));padding:0 12px;padding-bottom:env(safe-area-inset-bottom,0);z-index:20}
body.has-results .inputbar{bottom:calc(4px + var(--kb,0px))}
/* 输入法弹出时：键盘已遮住底部安全区，去掉 safe-area 垫高并收紧间距，贴合键盘顶部 */
body.kb-typing .inputbar{padding-bottom:0;bottom:calc(4px + var(--kb,0px))}
.composer{background:#fff;border-radius:22px;padding:12px 12px 10px;box-shadow:0 10px 32px rgba(40,24,12,.1),0 1px 0 rgba(255,255,255,.9) inset;border:1px solid rgba(234,216,202,.55)}
.composer-input{display:flex;align-items:stretch;min-height:28px;margin-bottom:8px}
.composer-input input{flex:1;width:100%;border:none;background:transparent;outline:none;padding:0 2px;font-size:15px;line-height:1.3;color:var(--ink);caret-color:var(--primary)}
.composer-input input::placeholder{color:#B7AFA6}
.composer-toolbar{display:flex;align-items:center;gap:6px}
.composer-actions{flex:0 0 auto;display:flex;align-items:center;gap:7px;margin-left:auto}
.mic-btn,.kbd-btn{flex:0 0 auto;width:34px;height:34px;border:1px solid #E6DDD4;border-radius:50%;background:#F7F2EB;color:#2c2622;display:flex;align-items:center;justify-content:center;box-shadow:none;cursor:pointer}
.send-btn{flex:0 0 auto;width:34px;height:34px;border:none;border-radius:50%;background:#D96B2C;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(217,107,44,.35);cursor:pointer}
.mic-btn:active,.kbd-btn:active,.send-btn:active{transform:scale(.93)}

/* 语音输入模式：输入区变为按住说话，麦克风换成键盘，发送置灰 */
.kbd-btn,.hold-btn{display:none}
.inputbar.voice-mode .mic-btn,.inputbar.voice-mode .composer-input input{display:none}
.inputbar.voice-mode .kbd-btn{display:flex}
.inputbar.voice-mode .hold-btn{display:flex}
.inputbar.voice-mode .send-btn{opacity:.45;pointer-events:none;box-shadow:none}
.hold-btn{flex:1;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px dashed #E6DDD4;border-radius:14px;background:transparent;color:var(--primary);font-size:15px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}
.hold-btn.holding{background:linear-gradient(135deg,#fff3e8,#ffe8db);border-style:solid;color:var(--primary2);box-shadow:inset 0 2px 8px rgba(255,77,23,.12)}

/* 长按录音浮层：底部约 25% 面板，橙色柔光，上下均渐变透明，无明显边界 */
.voice-overlay{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;touch-action:none;-webkit-user-select:none;user-select:none;background:transparent}
.vo-panel{position:relative;width:100%;max-width:var(--maxw);height:25vh;min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:0 22px;
  background:linear-gradient(180deg,rgba(255,122,0,0) 0%,rgba(255,122,0,.28) 30%,rgba(255,77,23,.52) 52%,rgba(255,122,0,.48) 66%,rgba(255,122,0,.2) 84%,rgba(255,122,0,0) 100%)}
.vo-cancel{position:absolute;left:50%;bottom:calc(25vh + 16px);transform:translateX(-50%);width:58px;height:58px;border-radius:50%;display:none;align-items:center;justify-content:center;color:#fff;background:#ff4d5e;border:1.5px solid #ff4d5e;box-shadow:0 6px 22px rgba(255,77,94,.5)}
.voice-overlay.cancel .vo-cancel{display:flex}
.vo-hint{color:#fff;font-size:16px;font-weight:600;letter-spacing:1px;text-shadow:0 1px 8px rgba(180,60,10,.45)}
.vo-wavebox{width:84%;height:60px}
.voice-overlay.cancel .vo-wavebox{opacity:.25}
#voWave{width:100%;height:100%;display:block}

/* toast */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(30,20,14,.9);color:#fff;padding:12px 20px;border-radius:14px;font-size:14px;z-index:60;max-width:80%;text-align:center}

/* 搜索历史面板 */
.history-sheet{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(20,16,14,.45)}
.history-panel{width:100%;max-width:var(--maxw);margin:0 auto;background:#fff;border-radius:20px 20px 0 0;max-height:88vh;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 12px);display:flex;flex-direction:column;box-shadow:0 -8px 32px rgba(0,0,0,.12)}
/* 顶部叠加安全区，避免安卓状态栏/浏览器栏遮挡标题 */
.history-head{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line);flex-shrink:0}
.history-head h2{flex:1;margin:0;font-size:17px;font-weight:800;color:var(--ink)}
.history-back,.history-close{border:none;background:#f5f0ec;width:36px;height:36px;border-radius:50%;font-size:20px;line-height:1;color:#6b615b;cursor:pointer;display:flex;align-items:center;justify-content:center}
.history-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 14px 24px}
.history-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:8px;border:1px solid var(--line);border-radius:14px;background:#fffaf6;cursor:pointer;text-align:left;width:100%}
.history-item:active{background:#fff1e8}
.history-item .hq{font-size:15px;font-weight:700;color:var(--ink);line-height:1.35}
.history-item .hm{font-size:11px;color:var(--muted)}
.history-item .hs{font-size:11px;color:var(--primary);font-weight:600}
.history-empty{text-align:center;color:var(--muted);padding:40px 16px;font-size:14px}
.history-detail .hd-query{font-size:16px;font-weight:800;margin:0 0 4px;color:var(--ink)}
.history-detail .hd-time{font-size:11px;color:var(--muted);margin-bottom:12px}
.history-detail .hpcard{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px;background:#fff}
.history-detail .hptitle{font-size:14px;font-weight:700;margin-bottom:6px;line-height:1.35}
.history-detail .hpmeta{font-size:11px;color:var(--muted);margin-bottom:8px}
.history-detail .hpitems{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.history-detail .hpitem{display:block;font-size:12px;line-height:1.35;color:var(--ink);text-decoration:none;padding:6px 8px;border-radius:8px;background:#fffaf6;border:1px solid var(--line)}
.history-detail .hpitem:active{background:#fff1e8}
.history-detail .hpopen{display:inline-block;margin-top:8px;font-size:12px;color:var(--primary);font-weight:600;border:none;background:none;padding:0;cursor:pointer}
.history-detail .hplats{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.history-detail .hplats .plat{padding:3px 5px}
.history-detail .hplats .plat .go{font-size:10px;padding:2px 6px}

/* 品牌商品列表面板：占屏幕 2/3，上方 1/3 蒙层点击关闭 */
.brand-sheet{position:fixed;inset:0;z-index:85;display:flex;flex-direction:column;justify-content:flex-end;background:transparent}
.brand-backdrop{position:absolute;inset:0;background:rgba(20,16,14,.45)}
.brand-panel{position:relative;z-index:1;width:100%;max-width:var(--maxw);margin:0 auto;background:#fff;border-radius:20px 20px 0 0;height:66.67vh;height:66.67dvh;max-height:66.67vh;max-height:66.67dvh;display:flex;flex-direction:column;box-shadow:0 -8px 32px rgba(0,0,0,.12);flex-shrink:0}
.brand-head{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;border-bottom:1px solid var(--line);flex-shrink:0}
.brand-head h2{flex:1;margin:0;font-size:17px;font-weight:800;color:var(--ink)}
.brand-close{border:none;background:#f5f0ec;width:36px;height:36px;border-radius:50%;font-size:20px;line-height:1;color:#6b615b;cursor:pointer;display:flex;align-items:center;justify-content:center}
.brand-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 14px calc(16px + env(safe-area-inset-bottom,0px))}
.bitem{display:flex;gap:11px;align-items:center;padding:10px;margin-bottom:9px;border:1px solid var(--line);border-radius:14px;background:#fffaf6;text-decoration:none;color:inherit}
.bitem:active{background:#fff1e8}
.bitem-img{flex:0 0 74px;width:74px;height:74px;border-radius:11px;overflow:hidden;background:#f5f0ec;display:flex;align-items:center;justify-content:center}
.bitem-img img{width:100%;height:100%;object-fit:cover;display:block}
.bitem-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.bitem-title{font-size:13.5px;font-weight:700;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bitem-meta{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bitem-price{font-size:16px;font-weight:900;color:var(--primary);font-style:italic;line-height:1}
.bitem-go{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:2px}
.brand-empty{text-align:center;color:var(--muted);padding:40px 16px;font-size:14px}
