:root{--bg: #f3f5f9;--panel: #ffffff;--panel-2: #f7f9fc;--border: #e4e9f1;--border-strong: #cdd6e4;--ink: #0f1726;--ink-2: #2f3d52;--muted: #64748b;--faint: #94a3b8;--brand: #2f5cff;--brand-2: #6a3ff5;--brand-weak: #eef2ff;--brand-strong: #1d3fc4;--good: #0c9f6e;--good-weak: #e7f7f0;--warn: #b45309;--warn-weak: #fdf3e3;--bad: #d92d20;--bad-weak: #feecec;--radius: 12px;--shadow: 0 1px 2px rgba(15, 23, 38, .04), 0 2px 8px rgba(15, 23, 38, .05);--shadow-lg: 0 12px 32px rgba(15, 23, 38, .12);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:radial-gradient(1100px 380px at 15% -80px,rgba(47,92,255,.07),transparent 60%),radial-gradient(900px 320px at 85% -100px,rgba(106,63,245,.05),transparent 60%),var(--bg);background-attachment:fixed;color:var(--ink);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#2f5cff2e}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.app-header{position:sticky;top:0;z-index:50;background:#ffffffdb;-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid rgba(228,233,241,.9)}.app-header-inner{max-width:1280px;margin:0 auto;padding:0 20px;height:58px;display:flex;align-items:center;gap:18px}.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:17px;color:var(--ink);letter-spacing:.2px}.logo:hover{text-decoration:none}.logo-mark{width:26px;height:26px;border-radius:8px;flex:none;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;box-shadow:0 2px 8px #2f5cff59}.logo .lens{background:linear-gradient(120deg,var(--brand),var(--brand-2));-webkit-background-clip:text;background-clip:text;color:transparent}.logo-sub{font-size:12px;color:var(--muted);font-weight:400}.nav{display:flex;gap:4px;margin-left:6px}.nav a{padding:6px 13px;border-radius:99px;color:var(--ink-2);font-weight:500;transition:all .15s}.nav a:hover{background:#2f5cff12;text-decoration:none}.nav a.active{background:linear-gradient(120deg,var(--brand),var(--brand-2));color:#fff;font-weight:600;box-shadow:0 2px 8px #2f5cff4d}.header-right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.update-dot{width:7px;height:7px;border-radius:50%;background:var(--good);display:inline-block;margin-right:5px;box-shadow:0 0 0 3px #0c9f6e26}.page{max-width:1280px;margin:0 auto;padding:26px 20px 90px}.page-title{font-size:23px;font-weight:800;margin:0 0 5px;letter-spacing:.2px}.page-sub{color:var(--muted);font-size:13.5px;margin:0 0 20px;max-width:860px}.app-footer{border-top:1px solid var(--border);margin-top:48px;padding:20px 20px 28px;text-align:center;color:var(--faint);font-size:12.5px;background:#ffffffb3}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-pad{padding:17px 19px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--panel);color:var(--ink-2);padding:6px 14px;border-radius:9px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.btn:hover{background:var(--panel-2);border-color:var(--faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(120deg,var(--brand),var(--brand-2));border:none;color:#fff;font-weight:600;box-shadow:0 2px 8px #2f5cff47}.btn-primary:hover{background:linear-gradient(120deg,#2850e8,#5c34e0);box-shadow:0 4px 12px #2f5cff61}.btn-danger{background:#fff;border-color:#f4b3ae;color:var(--bad)}.btn-danger:hover{background:var(--bad-weak)}.btn-sm{padding:3px 11px;font-size:12px;border-radius:7px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:1.5px 9px;border-radius:99px;border:1px solid transparent;white-space:nowrap}.badge-open{background:var(--good-weak);color:#067a54;border-color:#bfe8d6}.badge-closed{background:#f1f4f8;color:var(--muted);border-color:var(--border)}.badge-unknown{background:var(--warn-weak);color:var(--warn);border-color:#f5d9ad}.badge-tier{background:var(--brand-weak);color:var(--brand-strong);border-color:#d6e0ff}.badge-src{background:#f1f4f8;color:var(--ink-2);border-color:var(--border);font-weight:500}.badge-src:hover{border-color:var(--brand);color:var(--brand);text-decoration:none}.badge-src.official{background:#eef4ff;color:#175cd3;border-color:#d1e0ff}.badge-src.third_party{background:#f0f9f4;color:#067647;border-color:#c3e8d2}.badge-src.aggregator{background:#fdf6ec;color:#b54708;border-color:#f3dbb6}.badge-modality{background:var(--panel-2);color:var(--ink-2);border-color:var(--border);font-weight:500}.select,.input{font-family:inherit;font-size:13px;color:var(--ink);border:1px solid var(--border-strong);border-radius:9px;padding:6.5px 11px;background:var(--panel);outline:none;transition:border-color .15s,box-shadow .15s}.select:focus,.input:focus{border-color:var(--brand);box-shadow:0 0 0 3.5px #2f5cff21}.input-search{width:230px}.vms{position:relative}.vms-btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-align:left;min-width:128px}.vms-active{border-color:var(--brand);color:var(--brand-strong);background:var(--brand-weak)}.vms-caret{margin-left:auto;font-size:10px;color:var(--faint)}.vms-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--panel);border:1px solid var(--border-strong);border-radius:11px;box-shadow:var(--shadow-lg);width:300px;max-height:420px;overflow-y:auto;padding:6px;animation:vms-in .12s ease}@keyframes vms-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.vms-group-title{font-size:11px;font-weight:700;color:var(--faint);letter-spacing:1px;padding:8px 10px 4px;border-bottom:1px dashed var(--border);margin-bottom:3px}.vms-item{display:flex;align-items:center;gap:8px;padding:6.5px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink-2)}.vms-item:hover{background:var(--panel-2)}.vms-item.on{background:var(--brand-weak);color:var(--brand-strong);font-weight:600}.vms-item input{accent-color:var(--brand)}.vms-name{flex:1}.vms-count{font-size:11px;color:var(--faint);background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:0 8px}.vms-item.on .vms-count{background:#fff;color:var(--brand-strong);border-color:#d6e0ff}.vms-actions{display:flex;gap:8px;justify-content:flex-end;padding:9px 10px 5px;border-top:1px dashed var(--border);margin-top:5px}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-wrap:hover .tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(-2px)}.tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;background:#1a2433;color:#f1f5f9;font-size:12px;font-weight:400;line-height:1.55;padding:9px 12px;border-radius:9px;width:max-content;max-width:330px;opacity:0;visibility:hidden;transition:.15s;z-index:30;pointer-events:none;box-shadow:var(--shadow-lg);text-align:left}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px;background:#ffffffbf;border:1px solid var(--border);border-radius:var(--radius);padding:11px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:relative;z-index:20}.toolbar .grow{flex:1}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:9px;overflow:hidden}.seg button{border:0;background:var(--panel);padding:6px 13px;font-size:13px;cursor:pointer;color:var(--muted);font-family:inherit;transition:.15s}.seg button.on{background:linear-gradient(120deg,var(--brand),var(--brand-2));color:#fff;font-weight:600}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(358px,1fr));gap:15px}.model-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px;transition:box-shadow .18s,border-color .18s,transform .18s;position:relative;overflow:hidden}.model-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2));opacity:0;transition:opacity .18s}.model-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-2px)}.model-card:hover:before{opacity:1}.model-card.sel{border-color:var(--brand);box-shadow:0 0 0 2.5px #2f5cff2e,var(--shadow)}.model-card.sel:before{opacity:1}.mc-head{display:flex;align-items:flex-start;gap:8px}.mc-name{font-size:15.5px;font-weight:700;color:var(--ink)}.mc-name:hover{color:var(--brand);text-decoration:none}.mc-vendor{font-size:12px;color:var(--muted);margin-top:1px}.mc-badges{display:flex;flex-wrap:wrap;gap:5px}.mc-desc{font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}.mc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:var(--panel-2);border-radius:9px;padding:9px 11px}.mc-stat .k{font-size:11px;color:var(--faint);margin-bottom:1px}.mc-stat .v{font-size:13.5px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}.mc-compare{position:absolute;top:14px;right:15px;display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.mc-compare input{accent-color:var(--brand);width:15px;height:15px;cursor:pointer}.tbl-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;padding:11px 13px;background:var(--panel-2);color:var(--muted);font-weight:600;font-size:12px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:2;letter-spacing:.3px}.tbl th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.tbl th.sortable:hover{color:var(--brand)}.tbl td{padding:9.5px 13px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tbody tr:nth-child(2n) td{background:#fafbfd}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:#f2f6ff}.tbl .num{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-2)}.compare-tray{position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fffffff7;border-top:1px solid var(--border);box-shadow:0 -8px 30px #0f17261a;transform:translateY(100%);visibility:hidden;transition:transform .2s ease,visibility .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.compare-tray.show{transform:translateY(0);visibility:visible}.compare-tray-inner{max-width:1280px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;gap:12px}.tray-chip{display:inline-flex;align-items:center;gap:6px;background:var(--brand-weak);color:var(--brand-strong);padding:4.5px 11px;border-radius:99px;font-size:12.5px;font-weight:600;border:1px solid #dbe5ff}.tray-chip button{border:0;background:none;cursor:pointer;color:var(--brand-strong);font-size:14px;line-height:1;padding:0 2px}.detail-hero{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.detail-hero h1{margin:0;font-size:25px;font-weight:800;letter-spacing:.2px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:15px}.dg-item{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:9px 13px;transition:border-color .15s}.dg-item:hover{border-color:var(--border-strong)}.dg-item .k{font-size:11.5px;color:var(--faint);margin-bottom:2px}.dg-item .v{font-size:13.5px;font-weight:600;color:var(--ink-2)}.section-title{font-size:15.5px;font-weight:800;margin:28px 0 10px;display:flex;align-items:center;gap:9px;letter-spacing:.2px}.section-title:before{content:"";width:4.5px;height:17px;border-radius:3px;background:linear-gradient(180deg,var(--brand),var(--brand-2))}.score-row{display:grid;grid-template-columns:220px 1fr 200px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--border)}.score-row:last-child{border-bottom:0}.score-name{font-weight:600;color:var(--ink-2);font-size:13px}.score-bar-track{background:#eef1f7;border-radius:99px;height:22px;position:relative;overflow:hidden}.score-bar-fill{height:100%;border-radius:99px;min-width:3px;background:linear-gradient(90deg,#7c98ff,var(--brand) 70%,#4a3ff0);box-shadow:inset 0 -1px 2px #00000014;transition:width .5s cubic-bezier(.22,1,.36,1)}.score-val{position:absolute;right:4px;top:2.5px;line-height:15px;font-size:12px;font-weight:700;color:var(--ink-2);background:#fffffff0;border:1px solid var(--border);border-radius:99px;padding:0 8px}.score-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.sw-list{margin:0;padding-left:18px}.sw-list li{margin:5.5px 0;color:var(--ink-2)}.sw-list li::marker{color:var(--faint)}.advice-box{background:linear-gradient(135deg,#eef2ff,#f4f0ff);border:1px solid #dbe3ff;border-radius:10px;padding:13px 15px;color:var(--brand-strong);font-size:13.5px;align-self:start}.price-table td,.price-table th{font-variant-numeric:tabular-nums}.compare-layout{display:grid;grid-template-columns:252px 1fr;gap:18px;align-items:start}@media (max-width: 900px){.compare-layout{grid-template-columns:1fr}}.item-picker{position:sticky;top:72px;max-height:calc(100vh - 92px);overflow-y:auto;scrollbar-width:thin}.item-picker::-webkit-scrollbar{width:6px}.item-picker::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}.ip-group{border-bottom:1px solid var(--border);padding:10px 15px}.ip-group:last-child{border-bottom:0}.ip-group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.ip-group-title{font-size:12.5px;font-weight:700;color:var(--ink-2)}.ip-group-all{font-size:11.5px;color:var(--brand);cursor:pointer;background:none;border:0;font-family:inherit;padding:0}.ip-item{display:flex;align-items:center;gap:7px;padding:3.5px 0;font-size:13px;color:var(--ink-2);cursor:pointer}.ip-item input{accent-color:var(--brand);cursor:pointer}.ip-item .unit{color:var(--faint);font-size:11px}.cmp-table-wrap{overflow-x:auto}table.cmp{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.cmp th,.cmp td{padding:9.5px 14px;border-bottom:1px solid var(--border)}.cmp thead th{background:var(--panel-2);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--border-strong)}.cmp .item-col{position:sticky;left:0;background:var(--panel);z-index:4;font-weight:600;color:var(--ink-2);min-width:172px}.cmp thead .item-col{background:var(--panel-2);z-index:6}.cmp tbody tr:hover .item-col{background:#f2f6ff}.cmp td.best{background:var(--good-weak);font-weight:700;color:#05603a;position:relative}.cmp td.best:after{content:"▲ 最优";position:absolute;top:3.5px;right:6px;font-size:9.5px;font-weight:700;color:var(--good);letter-spacing:.3px}.cmp .grp-row td{background:#f7f9fc;font-weight:700;color:var(--ink-2);font-size:12.5px;padding:7.5px 14px;letter-spacing:.3px}.cmp .miss{color:var(--faint);font-size:12px}.cmp .cell-main{font-variant-numeric:tabular-nums;font-weight:600}.src-mini{font-size:10.5px;color:var(--faint);margin-left:5px;white-space:nowrap}.src-link{color:var(--brand)}.src-link:hover{text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chip{display:inline-flex;align-items:center;gap:7px;padding:5.5px 9px 5.5px 13px;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:99px;font-weight:600;font-size:13px}.chip .dot{width:9px;height:9px;border-radius:50%;flex:none}.chip button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:15px;line-height:1;padding:0 3px}.chip button:hover{color:var(--bad)}.summary-panel{margin-top:16px;background:linear-gradient(180deg,#fff,#fbfcfe)}.sum-bullet{display:flex;gap:10px;padding:7.5px 0;border-bottom:1px dashed var(--border);font-size:13.5px;color:var(--ink-2)}.sum-bullet:last-child{border-bottom:0}.sum-icon{flex:none;width:21px;height:21px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;margin-top:1px}.sum-icon.strength{background:var(--good-weak);color:var(--good)}.sum-icon.info{background:var(--brand-weak);color:var(--brand)}.sum-icon.warn{background:var(--warn-weak);color:var(--warn)}.ai-result{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-top:10px;white-space:pre-wrap;font-size:13.5px;color:var(--ink-2);line-height:1.75}.tabs{display:inline-flex;gap:2px;background:var(--panel-2);padding:3px;border-radius:10px;border:1px solid var(--border)}.tabs button{border:0;background:none;padding:5.5px 17px;font-size:13px;font-weight:500;cursor:pointer;border-radius:8px;color:var(--muted);font-family:inherit;transition:.15s}.tabs button.on{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 10px;border-radius:99px}.status-pill.success{background:var(--good-weak);color:var(--good)}.status-pill.failed{background:var(--bad-weak);color:var(--bad)}.status-pill.skipped{background:var(--warn-weak);color:var(--warn)}.status-pill.running{background:var(--brand-weak);color:var(--brand)}.env-kv{display:flex;gap:8px;padding:5.5px 0;font-size:13px;border-bottom:1px dashed var(--border)}.env-kv:last-child{border-bottom:0}.env-kv .k{width:200px;color:var(--muted);flex:none}.empty-tip{text-align:center;color:var(--faint);padding:40px 0;font-size:13px}.err-box{background:var(--bad-weak);color:var(--bad);border:1px solid #f4b3ae;border-radius:9px;padding:10px 14px;margin:10px 0;font-size:13px}@media (max-width: 720px){.page{padding:16px 12px 90px}.input-search{width:100%}.card-grid{grid-template-columns:1fr}.score-row{grid-template-columns:130px 1fr}.score-meta{grid-column:1 / -1;justify-content:flex-start}.app-header-inner{height:48px;gap:10px;padding:0 12px}.logo{font-size:15px}.logo-sub,.header-right{display:none}.nav{margin-left:0}.nav a{padding:5px 9px;font-size:13px}.detail-grid{grid-template-columns:repeat(2,1fr)}}
