/* TokenHomie · 一期列表页样式（深色主题，对齐原型 v2） */
:root{
  color-scheme:dark;                          /* 原生控件/滚动条跟随主题（2026-10-12 浅色主题） */
  --bg:#0b1220; --panel:#111a2e; --panel2:#0e1626; --border:#1e2a44;
  --text:#e5e9f0; --dim:#8a94a6; --faint:#5c6677;
  --cyan:#22d3ee; --cyan-dim:#0e7490; --gold:#f5b942;
  --up:#22c55e; --down:#ff4d6d;
  /* 通道变量：把散落各处的 rgba() 字面量主题化（浅色主题引入时加，2026-10-12） */
  --cyan-rgb:34,211,238; --gold-rgb:245,185,66; --up-rgb:34,197,94;
  --down-rgb:255,77,109; --hl-rgb:255,255,255;
  /* 语义变量 */
  --track:#22304e;        /* 进度条轨道 / chips 底 */
  --accent-fill:#22d3ee;  /* 进度条与图表填充（装饰性，可比 --cyan 更亮） */
  --gold-fill:#f5b942;    /* 金色装饰填充（深色主题与 --gold 同值） */
  --up-fill:#22c55e;      /* 绿色装饰填充 */
  --mask:5,8,15;          /* 遮罩基色 */
  --wordmark:#ffffff;     /* 顶栏字标 TokenHomie */
  --hover-fg:#ffffff;     /* 强调浅底上的 hover 文字 */
  --err-text:#ff9db0;
  --pv-bg:rgba(10,15,28,.85);
  --shadow:0 24px 60px rgba(0,0,0,.5);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:-apple-system,"PingFang SC","Helvetica Neue",sans-serif;font-size:14px;line-height:1.5}
a{color:var(--cyan);text-decoration:none}

/* ===== 顶栏 ===== */
.topbar{display:flex;align-items:center;gap:20px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--panel2);position:sticky;top:0;z-index:50;flex-wrap:wrap}
.topbar-left{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:.3px;cursor:pointer;user-select:none;-webkit-user-select:none}
.logo svg,.logo img{display:block;flex-shrink:0}
.logo .tk{color:var(--wordmark)} .logo .hm{color:var(--wordmark)}
/* 品牌字标（2026-09-26 三改指令）：统一英文 TokenHomie，全语言恒显示、不随语言切换；
   颜色：纯白 #FFFFFF（.tk/.hm 同色）；图片 logo 不变 */
.logo .wm-en{display:flex;align-items:center}
/* 品牌 slogan（老板 2026-09-26 二次指令：从 h1 下方移到底部居中，13px 弱色，无装饰）
   footer 放在两个 page 之外 → 两个页面底部都显示；max-width 与 .page 对齐，text-align 居中 */
.brand-foot{max-width:1240px;margin:0 auto;padding:0 24px 34px;text-align:center}
.brand-slogan{color:var(--dim);font-size:13px}
/* ICP 备案号（2026-10-15 备案通过后按规展示）：数字为政府编号原文，中英模式一致；链接指向工信部 */
/* 联系邮箱（2026-10-16）：与备案号同款克制的页脚元信息样式 */
.brand-foot .icp,.brand-foot .mail{color:var(--faint);font-size:12px;margin-left:10px;text-decoration:none;white-space:nowrap}
.brand-foot .icp:hover,.brand-foot .mail:hover{color:var(--cyan);text-decoration:underline}
nav{display:flex;gap:4px;margin-left:8px;flex-wrap:wrap}
nav a{padding:7px 14px;border-radius:8px;color:var(--dim);font-size:13.5px;cursor:pointer;user-select:none}
nav a:hover{color:var(--text)}
nav a.active{background:rgba(var(--cyan-rgb),.12);color:var(--cyan)}
nav a .v{font-size:11px;color:var(--faint);margin-left:2px}
/* T4.23：右上角语言切换器（顶栏最右，margin-left:auto 推到行尾；复用 .fsel 样式，窄宽防挤压）。
   地球图标（.lang-icon）+ 下拉横向排布，图标颜色随 var(--dim)，语言无关、zh/en 恒显示 */
.lang-sw{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:7px}
.lang-icon{display:flex;align-items:center;color:var(--dim);opacity:.9;flex-shrink:0;line-height:0}
.lang-icon svg{display:block;flex-shrink:0}
#langSel{max-width:108px}

.page{max-width:1240px;margin:0 auto;padding:24px 24px 80px}
.page.hidden{display:none}
h1{font-size:21px;font-weight:700;margin-bottom:6px}
.sub{color:var(--dim);font-size:13px;margin-bottom:20px}
.sub b{color:var(--text)}

/* ===== 工具栏 ===== */
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.seg{display:flex;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;flex-wrap:wrap}
.seg button{padding:8px 13px;background:transparent;border:none;color:var(--dim);font-size:12.5px;cursor:pointer;border-right:1px solid var(--border)}
.seg button:last-child{border-right:none}
.seg button.on{background:rgba(var(--cyan-rgb),.14);color:var(--cyan);font-weight:600}
/* T4.9/T4.12：过滤下拉统一样式（一期 modelFilter/sceneFilter/priceSel + 二期 capFilter/priceSel2 共用）——
   深色底、圆角、小号字，toolbar 自动换行不溢出 */
.fsel{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:10px;
  color:var(--text);
  font-size:12.5px;
  font-family:inherit;
  padding:7px 10px;
  cursor:pointer;
  flex-shrink:0;
  max-width:190px;
}
.fsel:hover{border-color:var(--cyan)}
.fsel option{background:var(--track);color:var(--text)}
/* 对比入口（T3.11）：toolbar 右上角，margin-left:auto 把按钮推到 chips 行最右，勾选后金色高亮 */
.cmp-btn{display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border-radius:9px;border:1px solid rgba(var(--cyan-rgb),.4);background:rgba(var(--cyan-rgb),.08);color:var(--cyan);font-size:13px;font-weight:600;cursor:pointer;user-select:none;flex-shrink:0;font-family:inherit;line-height:1.4;margin-left:auto}
.cmp-btn:hover{background:rgba(var(--cyan-rgb),.18);color:var(--hover-fg);border-color:var(--cyan)}
.cmp-btn .cnt{font-size:11px;font-weight:500;color:var(--cyan);font-variant-numeric:tabular-nums}
.cmp-btn.has{border-color:rgba(var(--gold-rgb),.5);background:rgba(var(--gold-rgb),.08)}
.cmp-btn.has .cnt{color:var(--gold);font-weight:700}

/* ===== 加载错误提示 ===== */
.errbar{display:none;background:rgba(var(--down-rgb),.1);border:1px solid rgba(var(--down-rgb),.35);color:var(--err-text);border-radius:10px;padding:12px 16px;font-size:13px;margin-bottom:16px;line-height:1.7}
.errbar.show{display:block}
.errbar code{background:rgba(var(--hl-rgb),.08);padding:2px 6px;border-radius:5px;font-size:12px}

/* ===== 卡片 ===== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
/* T4.9：无命中空态提示（网格内居中占满整行，不白屏） */
.empty-note{
  grid-column:1/-1;
  text-align:center;
  color:var(--dim);
  font-size:14px;
  line-height:1.8;
  padding:56px 20px;
  border:1px dashed var(--border);
  border-radius:14px;
  background:var(--panel2);
}
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;transition:border-color .15s, transform .15s;position:relative;display:flex;flex-direction:column}
.card:hover{border-color:var(--cyan);transform:translateY(-2px)}
.card .row1{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.card .badge{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;flex-shrink:0}
.card .pname{font-weight:700;font-size:15px;min-width:44px;flex:1;overflow:hidden}
.card .pname small{display:block;font-weight:400;color:var(--faint);font-size:11.5px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.card .score{display:flex;align-items:baseline;gap:5px;margin-left:auto;flex-shrink:0}
.card .score:has(.qscore){flex-shrink:1;min-width:0}
.card .score .num{font-size:26px;font-weight:800;color:var(--gold);line-height:1}
.card .score .max{color:var(--faint);font-size:12px}
/* 每月额度模式：双口径上下两行（原单位额度 / ≈token），压缩横向占用，避免挤压 pname；窄卡片时子行 ellipsis（完整值在 title） */
.card .score .qscore{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.15;margin-left:auto;min-width:0;max-width:150px;text-align:right}
.card .score .qscore .num{font-size:17px;font-weight:800;color:var(--gold);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}
.card .score .qscore .max{color:var(--faint);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}
.card .meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.card .meta span{font-size:11.5px;color:var(--dim);background:var(--panel2);border:1px solid var(--border);padding:3px 8px;border-radius:6px}
.card .meta b{color:var(--text);font-weight:600}
.card .free{color:var(--gold);border-color:rgba(var(--gold-rgb),.35);background:rgba(var(--gold-rgb),.08)}
/* 5 小时限额提示（T3.14）：金色描边，与免费/促销徽标同级高亮 */
.card .meta .fiveh{color:var(--gold);border-color:rgba(var(--gold-rgb),.4);background:rgba(var(--gold-rgb),.1);font-weight:600}
/* T4.18：「无 API」小徽标（meta 行末，仅 available:false 档位）——灰色虚边、无底色块，低调不抢眼 */
.card .meta .noapi{color:var(--faint);background:transparent;border:1px dashed var(--border);font-weight:400;white-space:nowrap}
/* T13b：「平台级」小徽标（平台级系数平台，数值不随模型变化）——金色虚边、无底色块，低调不抢眼 */
.card .meta .plat{color:var(--gold);background:transparent;border:1px dashed rgba(var(--gold-rgb),.4);font-weight:400;white-space:nowrap}
/* 底部行：进度条（保持贴底、占满剩余宽度） + 对比勾选框，flex 布局互不遮挡 */
.card .bottom{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:12px}
.card .bar{display:flex;gap:3px;flex:1;min-width:0}
.card .bar i{flex:1;height:4px;border-radius:2px;background:var(--track)}
.card .bar i.on{background:var(--accent-fill)}
.card .bar i.on:last-child{background:var(--gold-fill)}
/* 排名 #N 与「官网 ↗」外链：均为标题行内的普通流元素（不再绝对定位），与进度条物理隔离 */
.card .rank{font-size:11px;color:var(--faint);flex-shrink:0;font-variant-numeric:tabular-nums}
.card .ext{font-size:11px;color:var(--cyan);border:1px solid rgba(var(--cyan-rgb),.3);background:rgba(var(--cyan-rgb),.06);border-radius:6px;padding:4px 8px;text-decoration:none;line-height:1.4;white-space:nowrap;flex-shrink:0}
.card .ext:hover{background:rgba(var(--cyan-rgb),.18);color:var(--hover-fg);border-color:var(--cyan)}
/* 对比勾选框：底部行内、进度条右侧 */
.card .check{width:18px;height:18px;flex-shrink:0;border:1.5px solid var(--border);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;cursor:pointer;user-select:none}
.card .check:hover{border-color:var(--cyan)}
.card .check.on{border-color:var(--cyan);color:var(--cyan);background:rgba(var(--cyan-rgb),.1)}
.card .tier{font-size:10.5px;color:var(--cyan);border:1px solid rgba(var(--cyan-rgb),.3);border-radius:5px;padding:1px 6px;margin-left:6px;vertical-align:1px;flex-shrink:0}

/* ===== 详情抽屉 ===== */
/* T4.12：抽屉全屏半透明遮罩（z-index 90：drawer 100 之下、页面内容之上；cmpMask/chMask 200 更高，互不干扰） */
.drawer-mask{position:fixed;inset:0;background:rgba(var(--mask),.55);z-index:90;display:none}
.drawer-mask.open{display:block}
.drawer{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:94vw;background:var(--panel);border-left:1px solid var(--border);transform:translateX(100%);transition:transform .22s;z-index:100;overflow-y:auto;padding:24px;overscroll-behavior:contain}
.drawer.open{transform:none}
.drawer .close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--dim);font-size:20px;cursor:pointer}
.drawer h2{font-size:18px;margin-bottom:4px;padding-right:28px}
.drawer .dsub{color:var(--faint);font-size:12.5px;margin-bottom:18px}
.drawer .bigscore{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.drawer .bigscore .num{font-size:44px;font-weight:800;color:var(--gold);line-height:1}
.drawer .bigscore .tags{font-size:12px;color:var(--dim);line-height:1.7}
.dims{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.dim{display:grid;grid-template-columns:86px 1fr 30px;align-items:center;gap:10px;font-size:12.5px}
.dim .name{color:var(--dim)}
.dim .track{height:8px;background:var(--track);border-radius:4px;overflow:hidden}
.dim .fill{height:100%;border-radius:4px}
.dim .val{text-align:right;color:var(--text);font-weight:600}
/* T14：抽屉「支持模型数量」口径小字（dims 与 msec 之间） */
.dim-note{color:var(--faint);font-size:11px;line-height:1.6;margin:-12px 0 22px}
table.detail{width:100%;border-collapse:collapse;font-size:12.5px}
table.detail td{padding:7px 4px;border-bottom:1px solid var(--border);color:var(--dim);vertical-align:top}
table.detail td:first-child{color:var(--faint);width:110px;white-space:nowrap}
table.detail td:last-child{color:var(--text);text-align:right;word-break:break-word}
table.detail td ul{list-style:none;text-align:right}
table.detail td ul li{padding:1px 0}
/* T4.5：支持的大模型 chips 区块（详情抽屉内，dims 与 detail 表格之间） */
.msec{margin-bottom:24px}
.msec-title{font-size:12px;color:var(--faint);margin-bottom:8px}
.mchips{display:flex;flex-wrap:wrap;gap:6px}
.mchip{padding:4px 10px;border-radius:999px;font-size:12px;color:var(--text);background:var(--track);line-height:1.4;white-space:nowrap}

/* ===== 对比弹窗 ===== */
.mask{position:fixed;inset:0;background:rgba(var(--mask),.72);backdrop-filter:blur(3px);z-index:200;display:none}
.mask.open{display:block}
.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(960px,94vw);max-height:86vh;background:var(--panel);border:1px solid var(--border);border-radius:16px;z-index:210;display:none;overflow:hidden;box-shadow:var(--shadow)}
.modal.open{display:block}
.modal .mhead{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--border)}
.modal .mhead h3{font-size:16px}
.modal .mhead .msub{color:var(--faint);font-size:12px}
.modal .mclose{margin-left:auto;background:none;border:none;color:var(--dim);font-size:22px;cursor:pointer;line-height:1}
.modal .mbody{padding:20px 22px;overflow:auto;max-height:calc(86vh - 62px)}
table.cmp{border-collapse:collapse;width:100%;min-width:680px;font-size:13px}
table.cmp th,table.cmp td{padding:11px 13px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
table.cmp th{color:var(--faint);font-weight:500;font-size:12px;white-space:nowrap}
table.cmp td.cname{font-weight:700;font-size:14px}
table.cmp .cscore{font-size:19px;font-weight:800;color:var(--gold);white-space:nowrap}
table.cmp td{color:var(--text);word-break:break-word}
.modal .mfoot{padding:12px 22px;border-top:1px solid var(--border);color:var(--faint);font-size:12px;display:flex;gap:16px;flex-wrap:wrap}
.modal .mfoot .add{margin-left:auto;color:var(--cyan);cursor:pointer}
.hidden{display:none}

/* ===== 二期：模型页占位 ===== */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--border);border-radius:14px;padding:60px 24px;text-align:center;color:var(--faint);font-size:13px;margin-top:8px}
.ph .big{font-size:26px;margin-bottom:4px}
.ph .t{font-size:15px;color:var(--dim);font-weight:600}
.ph code{background:rgba(var(--hl-rgb),.08);padding:2px 7px;border-radius:5px;font-size:12px}

/* ===== 二期：模型排名榜（榜单行式） ===== */
.rank-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.rank-head h2{font-size:17px}
.rank-head .note{color:var(--faint);font-size:12px}
.rank-list{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--panel)}
.rank-row{display:grid;grid-template-columns:56px 1.7fr 2.4fr 1fr 1.2fr;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);transition:background .12s}
/* T4.14：性价比模式多一列 score2（分值列）——grid 模板随模式切换（#rankList 加 .xj 类） */
#rankList.xj .rank-row{grid-template-columns:56px 1.7fr 74px 1.2fr 1fr 1.3fr}
.rank-row:last-child{border-bottom:none}
.rank-row:hover{background:rgba(var(--cyan-rgb),.05)}
.rn{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;background:var(--panel2);border:1px solid var(--border);color:var(--faint)}
.rn.top1{background:linear-gradient(135deg,#f5b942,#f59e0b);color:#1a1204;border-color:rgba(var(--gold-rgb),.6);box-shadow:0 2px 10px rgba(var(--gold-rgb),.3)}
.rn.top2{background:linear-gradient(135deg,#e2e8f0,#94a3b8);color:#0f172a;border-color:rgba(203,213,225,.6)}
.rn.top3{background:linear-gradient(135deg,#d97706,#b45309);color:#fff;border-color:rgba(217,119,6,.6)}
.mn{font-weight:700;font-size:14px;min-width:0}
.mn small{display:block;font-weight:400;color:var(--faint);font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.score2{font-size:16px;font-weight:800;color:var(--cyan);white-space:nowrap}
.score2 small{display:block;font-size:10px;color:var(--faint);font-weight:400}
/* T4.14：能力进度条回到老价格条样式——pricetrack = 暗色轨道 + 青色填充条 <i>（能力分/10 归一）+ 能力分标签 <span class=pv> */
.pricetrack{height:7px;background:var(--track);border-radius:4px;position:relative;min-width:0}
.pricetrack i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}
.pricetrack .pv{position:absolute;right:-2px;top:50%;transform:translateY(-50%);font-size:11px;line-height:1;color:var(--dim);white-space:nowrap;background:var(--pv-bg);padding:3px 6px;border-radius:5px;border:1px solid var(--border)}
.pricetrack .pv b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
/* 性价比模式：pricetrack 回归纯文字价格列（无轨道无条） */
#rankList.xj .pricetrack{height:auto;background:none;border-radius:0;display:flex;align-items:center}
#rankList.xj .pricetrack .pv{position:static;transform:none;background:none;border:none;padding:0;font-size:11.5px}
.rank-row .costc{color:var(--dim);font-size:12.5px;white-space:nowrap;line-height:1.35}
.rank-row .costc .pc{display:block;color:var(--text);font-weight:700;font-size:11.5px}
.rank-row .costc small{display:block;color:var(--faint);font-size:10px;margin-top:1px;white-space:nowrap}
.rank-row .tag{font-size:11px;padding:3px 8px;border-radius:6px;background:rgba(var(--gold-rgb),.1);color:var(--gold);border:1px solid rgba(var(--gold-rgb),.25);text-align:center;justify-self:start;white-space:nowrap}
.rank-row .tag.cyan{background:rgba(var(--cyan-rgb),.08);color:var(--cyan);border-color:rgba(var(--cyan-rgb),.22)}
.rank-row .tag.green{background:rgba(var(--up-rgb),.08);color:var(--up);border-color:rgba(var(--up-rgb),.25)}
.rank-row .tag.gray{background:rgba(var(--hl-rgb),.04);color:var(--faint);border-color:var(--border)}

/* ===== 二期：渠道比价弹窗（T4.3 由页面区块改为弹窗，复用 modal/mask 体系） ===== */
#chModal{width:min(760px,94vw)}
#chModal .mhead h3 .chm{color:var(--gold);font-weight:700}
#chModal .note{color:var(--faint);font-size:12px;margin-bottom:14px}
.ch-row{display:grid;grid-template-columns:170px 1fr 180px;align-items:center;gap:14px;margin-bottom:11px;font-size:13px}
.ch-row .name{color:var(--dim);text-align:right;font-size:12.5px}
.ch-row .name.best{color:var(--gold);font-weight:700}
.ch-bar{height:24px;background:var(--panel2);border:1px solid var(--border);border-radius:6px;overflow:hidden;position:relative}
.ch-bar i{display:block;height:100%;border-radius:5px;transition:width .3s}
.ch-bar i.best{background:linear-gradient(90deg,#f5b942,#fbbf24)}
.ch-row .price{color:var(--text);font-weight:600;font-size:12.5px}
.ch-row .price small{display:block;color:var(--faint);font-weight:400;font-size:10.5px}

/* ===== 响应式：二期 ===== */
@media (max-width:640px){
  .rank-row{grid-template-columns:44px 1fr 64px;grid-template-rows:auto auto;gap:6px 10px;padding:12px 14px}
  .rank-row .rn{width:30px;height:30px;font-size:13px}
  .rank-row .score2{grid-column:3;grid-row:1;text-align:right}
  .rank-row .pricetrack{grid-column:2/4;grid-row:2}
  .rank-row .costc{display:none}
  .rank-row .tag{grid-column:2;grid-row:3;justify-self:start}
  /* T4.14：推理能力模式（非 .xj）移动端补显价格文字列，避免价格信息丢失；tag 顺移到第 3 列 */
  #rankList:not(.xj) .rank-row .costc{display:block;grid-column:2;grid-row:3;justify-self:start}
  #rankList:not(.xj) .rank-row .tag{grid-column:3;grid-row:3;justify-self:start}
  .ch-row{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:6px;margin-bottom:16px}
  .ch-row .name{text-align:left}
  .ch-row .price{text-align:left}
  #chModal{width:min(94vw,560px)}
}
@media (max-width:420px){
  .rank-row{grid-template-columns:40px 1fr 60px}
  .rn{width:28px;height:28px;font-size:12px}
  /* T4.14：窄屏压缩能力条标签字号，防 60px 列溢出 */
  .pricetrack .pv{font-size:10px;padding:2px 4px}
}

/* ===== 页脚 ===== */
.foot{margin-top:40px;color:var(--faint);font-size:11.5px;line-height:1.8}
/* T4：口径详情折叠（details/summary） */
.foot-detail{margin-top:6px}
.foot-detail summary{cursor:pointer;color:var(--dim);font-size:11.5px;user-select:none;display:inline-block}
.foot-detail summary:hover{color:var(--text)}
.foot-detail[open] summary{margin-bottom:4px}
/* T4.12：口径详情按句分行（每句一行 <div>，行距舒适） */
.foot-detail > div{margin-top:4px}
/* T4.12：页脚最底部追加的页首副标题说明（全网 N 家… / 模型能力 × 接口价格…） */
.foot-meta{margin-top:12px;color:var(--dim)}
.foot-meta b{color:var(--text)}
/* T4：渠道类型徽标（官方/海外托管/云厂商/国内聚合） */
.ch-row .chtag{display:inline-block;margin-left:6px;font-size:9.5px;padding:1px 6px;border-radius:4px;background:var(--panel2);border:1px solid var(--border);color:var(--faint);vertical-align:1px;font-weight:400}

/* ===== 响应式 ===== */
@media (max-width:640px){
  .topbar{padding:10px 14px;gap:12px}
  .page{padding:18px 14px 60px}
  .brand-foot{padding:0 14px 26px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(100%,1fr))}
  .drawer{width:100%;max-width:100vw}
}

/* ===== T13 对比基准选择器 + 折算值 + 等级 ===== */
/* 基准状态标识（toolbar 内，紧随价格下拉）：青色胶囊，不换行 */
.baseline-tag{font-size:12px;color:var(--cyan);background:rgba(var(--cyan-rgb),.08);border:1px solid rgba(var(--cyan-rgb),.25);border-radius:8px;padding:6px 10px;flex-shrink:0;white-space:nowrap;line-height:1.4}
/* 选定模型视图：不支持的卡片整体置灰（虚边 + 降透明 + 取消 hover 浮起），保留展示可开抽屉 */
.card.unsupported{opacity:.55;border-style:dashed;background:var(--panel2)}
.card.unsupported:hover{transform:none;border-color:var(--border)}
/* 折算值 chip（meta 行末）：等级徽标 A=绿 B=金 C=灰 */
.card .meta .conv{white-space:nowrap}
.card .conv .grade{font-style:normal;font-weight:700;font-size:9.5px;padding:1px 5px;border-radius:4px;margin-left:3px;line-height:1.5}
.card .conv .grade.A{color:var(--up);background:rgba(var(--up-rgb),.12);border:1px solid rgba(var(--up-rgb),.45)}
.card .conv .grade.B{color:var(--gold);background:rgba(var(--gold-rgb),.12);border:1px solid rgba(var(--gold-rgb),.45)}
.card .conv .grade.C{color:var(--faint);background:rgba(var(--hl-rgb),.05);border:1px solid var(--border)}
.card .conv.c{color:var(--faint);background:transparent;border:1px dashed var(--border)}
.card .conv.unsup{color:var(--faint);background:transparent;border:1px dashed var(--border)}
/* 性价比模式 headline 内的等级徽标（与 meta chip 同级样式） */
.card .score .grade{font-style:normal;font-weight:700;font-size:10px;padding:1px 6px;border-radius:4px;align-self:center;flex-shrink:0}
.card .score .grade.A{color:var(--up);background:rgba(var(--up-rgb),.12);border:1px solid rgba(var(--up-rgb),.45)}
.card .score .grade.B{color:var(--gold);background:rgba(var(--gold-rgb),.12);border:1px solid rgba(var(--gold-rgb),.45)}
/* 抽屉：折算值摘要行（bigscore 之下） */
.drawer .convline{font-size:12.5px;color:var(--dim);margin-bottom:16px;line-height:1.7}
.drawer .convline b{color:var(--gold)}
.drawer .convline.c{color:var(--faint)}
.drawer .convline .grade{font-style:normal;font-weight:700;font-size:10.5px;padding:1px 6px;border-radius:4px}
.drawer .convline .grade.A{color:var(--up);background:rgba(var(--up-rgb),.12);border:1px solid rgba(var(--up-rgb),.45)}
.drawer .convline .grade.B{color:var(--gold);background:rgba(var(--gold-rgb),.12);border:1px solid rgba(var(--gold-rgb),.45)}
.drawer .convline .grade.C{color:var(--faint);background:rgba(var(--hl-rgb),.05);border:1px solid var(--border)}
/* 抽屉：各模型系数明细（chips 流式排布） */
.convdetail{display:flex;flex-wrap:wrap;gap:6px}
.convdetail .cdi{font-size:11.5px;padding:3px 9px;border-radius:6px;background:var(--track);color:var(--dim);line-height:1.4;white-space:nowrap}
.convdetail .cdi b{color:var(--text);font-weight:600}
.convdetail .cdi.used{color:var(--cyan);border:1px solid rgba(var(--cyan-rgb),.35)}
/* 抽屉：C 级官方依据展开（details/summary，复用脚注折叠视觉） */
details.cbasis{margin-top:8px}
details.cbasis summary{cursor:pointer;color:var(--cyan);font-size:12px;user-select:none}
details.cbasis summary:hover{text-decoration:underline}
details.cbasis .cbd{color:var(--dim);font-size:11.5px;line-height:1.8;margin-top:6px;word-break:break-word}
details.cbasis .cbd a{color:var(--cyan)}
/* 折算口径小字（抽屉表格内 / 卡片 tooltip 已覆盖） */
.conv-note{color:var(--faint);font-size:11px}


/* ===== 主题切换按钮（2026-10-12）=====
   位置：顶栏右侧、语言切换器左侧。图标语义 = "将切换到的目标"（深色下显示太阳、浅色下显示月亮）。 */
.theme-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--dim);cursor:pointer;flex-shrink:0;line-height:0}
.theme-btn:hover{color:var(--text);border-color:var(--border);background:rgba(var(--hl-rgb),.05)}
.theme-btn svg{display:block}
.theme-btn .ic-moon{display:none}
html[data-theme="light"] .theme-btn .ic-sun{display:none}
html[data-theme="light"] .theme-btn .ic-moon{display:block}

/* ===== 浅色主题（2026-10-12 新增）=====
   默认仍为深色（品牌既定观感不变），右上角图标切换，localStorage['tp_theme'] 记忆；不跟随系统、不按 IP 判断。
   设计原则：背景取冷灰蓝（非纯白，避免刺眼），卡片纯白拉出层次；
   品牌天蓝 #4FBEF4 直接作文字色对比不足 → --cyan 取深一档 #0a7bb5（文字/描边可读），
   装饰性填充用 --accent-fill #3ba9e0 保留品牌调性；金色同理取深一档 #a96706。 */
html[data-theme="light"]{
  color-scheme:light;
  /* 对比度按 WCAG 公式实测调优（对白卡）：正文 17.9:1 / dim 5.5:1 / faint 3.5:1 /
     cyan 5.5:1 / gold 5.3:1 —— 全部达到 AA（正文 4.5:1、大字 3:1） */
  --bg:#e9eff7; --panel:#ffffff; --panel2:#f1f6fb; --border:#cbd8e8;
  --text:#0e1729; --dim:#5a6a82; --faint:#7b8a9f;
  --cyan:#0a72ab; --cyan-dim:#0e7490; --gold:#96600a;
  --up:#15803d; --down:#d92d4b;
  --cyan-rgb:10,114,171; --gold-rgb:150,96,10; --up-rgb:21,128,61;
  --down-rgb:217,45,75; --hl-rgb:15,23,42;
  --track:#d3dfec;
  --accent-fill:#3ba9e0;
  /* 装饰性填充另取亮档：--gold/--up 为文字可读性压暗过，直接画条会发暗发浊（浅色主题实测） */
  --gold-fill:#dfa01c;
  --up-fill:#1ea24d;
  --mask:15,23,42;
  --wordmark:#0e1729;
  --hover-fg:#0b1220;
  --err-text:#b42333;
  --pv-bg:rgba(255,255,255,.94);
  --shadow:0 20px 48px rgba(15,23,42,.16);
}
/* 浅色下层级靠"极轻投影"补齐（深色主题靠面板与底色明度差，浅色下纯白卡片与浅灰底差仅 1.16:1，
   只靠描边会"发飘"）—— 投影只加在浮层与容器上，卡片 hover 才明显，保持清爽不厚重 */
html[data-theme="light"] .card{box-shadow:0 1px 2px rgba(15,23,42,.045), 0 1px 3px rgba(15,23,42,.03)}
html[data-theme="light"] .card:hover{box-shadow:0 5px 16px rgba(15,23,42,.10)}
html[data-theme="light"] .rank-list{box-shadow:0 1px 2px rgba(15,23,42,.045)}
html[data-theme="light"] .modal{box-shadow:0 24px 60px rgba(15,23,42,.22)}
html[data-theme="light"] .drawer{box-shadow:-10px 0 32px rgba(15,23,42,.10)}
html[data-theme="light"] .topbar{background:var(--panel);box-shadow:0 1px 0 rgba(15,23,42,.04)}
