diff --git a/README.md b/README.md index c8a8aa4..14d16fe 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,170 @@ -# Frontier Model Efficiency Map +

+ Frontier Model Efficiency Map logo +

-A static, interactive comparison of current frontier LLMs across **capability × reasoning effort × task cost × subscription plan**. +

Frontier Model Efficiency Map

-**Live site:** https://blackkcold.github.io/frontier-model-efficiency-map/ +

+ 把 模型能力 × Reasoning 档位 × 单任务消耗 × 订阅 Plan 放到同一张交互地图里。 +

-**Data snapshot:** 2026-10-05 +

+ Open Live Map ↗ + · + How to read + · + Methodology + · + MIT +

-## Providers / model families +

+ Data snapshot: 2026-10-05 · 6 providers · AA v4.3.2 · No tracking +

-- OpenAI — GPT-6 Luna, GPT-6 Sol (deprecated, optional), GPT-6.1 Sol, GPT-6 Astra -- Anthropic — Claude Sonnet 5.5, Claude Opus 5.5, Claude Fable 5.1 -- Google — Gemini 3.8 Flash, Gemini 4 Argon (limited rollout) -- DeepSeek — DeepSeek V4.1 Flash -- Z.ai — GLM-5.3, GLM-5.3 Flash -- Kimi — Kimi K3 +--- -## Methodology +## 先看体验 -### Capability +

+ + Frontier Model Efficiency Map interface preview + +

-The primary Y-axis uses the current **Artificial Analysis Intelligence Index v4.3.2** for cross-provider comparability. The default display normalizes it as: +这不是一个“模型排行榜”,而是一张**决策地图**: -`normalized capability = AA Intelligence Index / 58 × 100` +- 顶部三张卡片直接给出当前的 **前沿性价比 / 绝对能力 / 开放权重性价比**。 +- 主图把能力放在纵轴、任务消耗放在横轴,**越靠左上越优**。 +- Provider、Reasoning 档位、Log 横轴、估算点、历史模型都可以即时筛选。 +- 排名表、Plan 推荐与方法论继续向下展开,不需要在多个 benchmark 页面之间来回切换。 -58 is the highest measured point in this snapshot (Claude Opus 5.5 Max). +> 当前前沿性价比推荐:**GPT-6.1 Sol · Medium**。 +> 当前绝对能力最高点:**Claude Opus 5.5 · Max**。 -### Consumption +## 交互细节 -Cross-vendor subscription allowances are not directly comparable. The primary X-axis therefore uses **Artificial Analysis Cost per Intelligence Index Task**, which incorporates input, cache, reasoning and answer token costs over the same evaluation suite. +

+ Model detail and compact tooltip preview +

-Default normalized consumption: +图表交互刻意做得更克制: -`consumption ratio = corrected task cost / corrected GPT-6 Luna Max task cost` +- **Hover / 点击 / 触摸模型点**:图内只保留 `Model ID + 消耗倍率`,避免 tooltip 挡住附近点。 +- **完整详情固定显示**在筛选器与图表之间,包括 AA Intelligence、归一化能力、AA 单任务成本、修正后倍率、实测 / 估算状态。 +- 点击后信息保持,手机端也不依赖 hover;如果筛选条件把当前模型隐藏,详情会自动清空。 -GPT-6 Luna Max remains exactly **1.0×**. +## 当前覆盖 -Optional long-agent correction, intended as a user-experience/session-burn overlay rather than an official billing multiplier: +| Provider | 当前模型族 | +| --- | --- | +| OpenAI | GPT-6 Luna · GPT-6.1 Sol · GPT-6 Astra · GPT-6 Sol(历史) | +| Anthropic | Claude Sonnet 5.5 · Claude Opus 5.5 · Claude Fable 5.1 | +| Google | Gemini 3.8 Flash · Gemini 4 Argon | +| DeepSeek | DeepSeek V4.1 Flash | +| Z.ai | GLM-5.3 · GLM-5.3 Flash | +| Kimi | Kimi K3 | -- Low: 1.00× -- Medium: 1.00× -- High: 1.05× -- XHigh: 1.10× -- Max: 1.18× +### 当前快照的三个锚点 -AA's task cost already includes measured reasoning-token use, so this correction is intentionally optional. +| 目标 | 推荐 | AA Index | AA task cost | 备注 | +| --- | --- | ---: | ---: | --- | +| 前沿性价比 | **GPT-6.1 Sol · Medium** | 48 | $0.21 | 能力门槛之上的最低实测任务成本 | +| 绝对能力 | **Claude Opus 5.5 · Max** | 58 | $5.98 | 当前页面统一能力口径最高点 | +| 开放权重性价比 | **GLM-5.3 Flash** | 42 | $0.25 | 开放权重阵营中靠近 Pareto 前沿 | -### Estimated points +## 怎么读这张图 -Cross-shaped hollow points are estimates only. They are used when: -1. the provider officially exposes the reasoning tier; and -2. current AA v4.3.2 has measured endpoints but not that intermediate tier/cost. +### 1. 纵轴:能力 -Current estimated points: -- Gemini 3.8 Flash Low cost only -- DeepSeek V4.1 Flash Low / High -- GLM-5.3 High -- Kimi K3 High +默认使用 **Artificial Analysis Intelligence Index v4.3.2**,并把当前最高点线性归一为 100: -They can be hidden in the UI. +```text +normalized capability = AA Intelligence Index / 58 × 100 +``` -## Recommendation rule +这样不同 Provider 不需要混用各自的厂商 benchmark。 -The **frontier value** recommendation first applies a capability floor (AA Index ≥48, ~83% of the global leader in this snapshot), then selects the lowest measured task cost. This avoids the common error of calling an ultra-cheap but materially weaker model the “best value” merely because its denominator is tiny. +### 2. 横轴:单任务消耗 -Result for this snapshot: **GPT-6.1 Sol Medium**. +默认使用 Artificial Analysis 的 **Cost per Intelligence Index Task**,再以 GPT-6 Luna Max 作为 1× 基准: -## October 2026 model-status notes +```text +consumption ratio = corrected task cost / corrected GPT-6 Luna Max task cost +``` -- **Claude Fable 5.1** is generally available. Anthropic kept standard token pricing at $10/M input and $50/M output while cutting cache reads to $0.25/M. Artificial Analysis currently places Fable 5.1 Max at 53 on the Intelligence Index; it is included as a measured frontier point. -- **Claude Mythos 5.1** shares the same underlying model as Fable 5.1 but is restricted to vetted cyberdefense/life-sciences programs, so it is not plotted as a generally selectable consumer/API model. -- **Gemini 4 Argon** was announced September 30 and is rolling out to selected users. Artificial Analysis measures High at 53 and $1.99 per Intelligence Index task under introductory pricing. It is included with a limited-rollout status rather than treated as broadly available. +跨厂商的 ChatGPT allowance、Claude session cap、Kimi credits 等内部额度并不等价,所以主图不直接把订阅额度强行换算到同一条轴上。 -## GitHub Pages +### 3. 长 Agent 修正 -**Live:** https://blackkcold.github.io/frontier-model-efficiency-map/ +AA 的 task cost 已包含 reasoning token;页面额外提供一个**可关闭的长任务修正层**,用于近似持续 Agent loop 的订阅额度体感: -A Pages workflow is included at `.github/workflows/pages.yml`. +| Effort | 修正 | +| --- | ---: | +| Low | 1.00× | +| Medium | 1.00× | +| High | 1.05× | +| XHigh | 1.10× | +| Max | 1.18× | -1. Create a public repository. -2. Push these files to `main`. -3. In **Settings → Pages**, select **GitHub Actions** as the source if GitHub does not enable it automatically. -4. Push/dispatch the workflow. +它不是厂商官方计费倍率。 -## Sources +## 数据可信度 -Source links are listed in the site's **Methodology & Sources** section and in `data.js`. Official provider documentation is used for model/effort availability and subscription plans; Artificial Analysis is used for the unified cross-provider capability/cost measurements. +页面把三类信息明确区分: -## Notes +**官方信息** +用于确认模型是否存在、Reasoning / Effort 档位、订阅 Plan、价格、额度和产品政策。 -- Plan limits and promotions change frequently; verify checkout pages before purchase. -- GPT-6 Sol is retained as a historical comparison point but is hidden by default because GPT-6.1 Sol supersedes it. -- This project has no analytics or tracking. +**统一第三方实测** +Artificial Analysis 用于跨厂商能力与单任务成本的统一比较。 -## Repository governance +**显式估算** +只有在“官方确认该档位存在、但当前 AA 没有对应统一测量”时才补点;UI 使用叉形空心点,并允许一键隐藏。 -The repository includes: +当前估算点包括 Gemini 3.8 Flash Low、DeepSeek V4.1 Flash Low / High、GLM-5.3 High、Kimi K3 High。 -- MIT license (`LICENSE`) -- CODEOWNERS with `@blackkcold` as the default owner -- Pull-request checklist -- Read-only PR validation workflow (`Static validation`) -- GitHub Pages deployment workflow -- `SECURITY.md` and `CONTRIBUTING.md` +## 方法论 -Recommended `main` ruleset: +“前沿性价比”不是简单做 **能力 ÷ 价格**。极便宜但能力明显偏低的模型会在这种公式里被数学性放大,因此本项目采用: -- require pull requests before merging; -- require 1 approval; -- dismiss stale approvals after new commits; -- require CODEOWNER review; -- require all conversations to be resolved; -- require the `Static validation` status check; -- require the branch to be up to date before merge; -- block force pushes and branch deletion; -- apply the rules to administrators as well. +1. 先设能力门槛:当前为 **AA Index ≥ 48**; +2. 再在满足门槛的实测点中寻找最低任务成本; +3. 估算点不参与“最高能力”结论; +4. Plan 推荐与 API task cost 分开处理。 -For merge policy, **Squash merge** is recommended for this small data-and-static-site repository, with merge commits disabled to keep history linear. +这让推荐更接近“这个模型能不能完成目标任务,以及完成它要消耗多少资源”。 + +## 2026-10 快照变化 + +- **Claude Fable 5.1**:已加入当前实测前沿点。 +- **Gemini 4 Argon**:以 limited rollout / preview 状态纳入,不视为全面可用。 +- **GPT-6 Sol**:保留历史对比,但默认隐藏,由 GPT-6.1 Sol 取代当前位置。 + +更完整的来源链接在网页的 **Methodology & Sources** 区域以及 `data.js` 中。 + +## 本地运行 + +这是纯静态站点,不需要构建步骤: + +```bash +python3 -m http.server 8000 +``` + +然后打开 `http://localhost:8000`。 + +## Project + +- Live site: https://blackkcold.github.io/frontier-model-efficiency-map/ +- License: [MIT](LICENSE) +- Contribution: [CONTRIBUTING.md](CONTRIBUTING.md) +- Security: [SECURITY.md](SECURITY.md) +- Validation: `Static validation` +- Deployment: GitHub Pages +- Governance: CODEOWNERS + protected `main` + +--- + +

+ Static site · No analytics · No tracking · Built for GitHub Pages +

diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..2cc5c15 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,50 @@ + + Frontier Model Efficiency Map + A dark glass chart icon with neon frontier curve and colored model points. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/readme-interaction.svg b/assets/readme-interaction.svg new file mode 100644 index 0000000..ef026f8 --- /dev/null +++ b/assets/readme-interaction.svg @@ -0,0 +1,34 @@ + +Frontier Model Efficiency Map interaction preview +Interaction preview showing a fixed detail panel and compact chart tooltip. + + + + + + + + + INTERACTION HIGHLIGHT识别点位,不再遮挡图表图内只显示 Model ID + 倍率;完整参数固定显示在筛选器与图表之间。 + + + MODEL DETAILGPT-6.1 Sol · MediumOpenAI · 第三方统一实测 + + AA INTELLIGENCE48 + 综合能力82.8 + AA 单任务成本$0.21 + 调整后消耗倍率2.54× + + + + CHART TOOLTIPHover / Tap 后保持识别上下文 + + + + + + GPT-6.1 Sol · Medium2.54× Luna Max + + + + \ No newline at end of file diff --git a/assets/readme-overview.svg b/assets/readme-overview.svg new file mode 100644 index 0000000..76cd989 --- /dev/null +++ b/assets/readme-overview.svg @@ -0,0 +1,47 @@ + +Frontier Model Efficiency Map interface overview +Interface preview with recommendation cards and the capability versus consumption scatter chart. + + + + + + + + + + +blackkcold.github.io/frontier-model-efficiency-map + + + + + + + + FRONTIER MODEL EFFICIENCY MAP + 能力 × 消耗 × Plan 的前沿模型地图 + 跨厂商统一比较模型能力、reasoning 档位、单任务成本与订阅 Plan。 + + + + + 前沿性价比GPT-6.1 Sol · Medium能力门槛之上,当前实测任务成本最低48 AA · $0.21/task · ≈2.54× Luna Max + 绝对能力Claude Opus 5.5 · Max当前统一能力口径中的最高点58 AA · $5.98/task + 开放权重性价比GLM-5.3 Flash开放权重阵营中贴近 Pareto 前沿42 AA · $0.25/task + + + + INTERACTIVE SCATTER能力 × 消耗越靠左上越优;可筛选 Provider / Reasoning,并切换 Log 与长任务修正。 + + + + + + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html index a453102..a9bf61f 100644 --- a/index.html +++ b/index.html @@ -6,14 +6,21 @@ Frontier Model Efficiency Map — 能力 × 消耗 + +
-
FRONTIER MODEL EFFICIENCY MAP · 2026-10-04
-

模型 × Reasoning:能力 / 消耗 / Plan

+
+ +
+
FRONTIER MODEL EFFICIENCY MAP · 2026-10-05
+

模型 × Reasoning:能力 / 消耗 / Plan

+
+

跨厂商统一口径:纵轴默认使用 Artificial Analysis Intelligence Index 相对归一化;横轴使用每项 Intelligence Index 任务的实际成本,并以 GPT‑6 Luna Max = 1× 归一。High / XHigh / Max 可叠加长任务 Agent 消耗修正。

6 providers— pointsAA v4.3.2Measured + explicit estimates @@ -134,7 +141,7 @@

只补齐官方存在但 AA 未测的档位

ProviderPlan价格适合说明
-

套餐、促销与限额变化频繁;本页记录的是 2026‑10‑04 可核实信息。购买前以各厂商结算页为准。

+

套餐、促销与限额变化频繁;本页记录的是 2026‑10‑05 可核实信息。购买前以各厂商结算页为准。

@@ -152,7 +159,7 @@

估算策略

-
Data snapshot: 2026‑10‑04 · Static site · No tracking · Built for GitHub Pages
+
diff --git a/styles.css b/styles.css index 2dee6d0..83d05a9 100644 --- a/styles.css +++ b/styles.css @@ -1 +1 @@ -:root{color-scheme:dark;--bg:#07080a;--panel:#0d0f13;--line:#232731;--text:#f1f3f6;--muted:#9aa2af;--blue:#4f7cff;--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(900px 420px at 50% -120px,#14213c 0,transparent 62%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.55}a{color:#b9c9ff;text-decoration:none}.shell{width:min(1500px,calc(100% - 42px));margin:auto;padding:56px 0 42px}.hero{padding:6px 3px 28px}.eyebrow,.card-label{font-size:11px;letter-spacing:.14em;font-weight:750;color:#8894a8;text-transform:uppercase}.hero h1{font-size:clamp(36px,5vw,66px);line-height:1.05;letter-spacing:-.045em;margin:12px 0 18px}.hero h1 span{color:#aeb6c5}.hero p{font-size:clamp(16px,1.55vw,21px);max-width:1160px;color:#b4bac5;margin:0}.hero-badges,.metric-row,.chart-actions,.pills{display:flex;gap:8px;flex-wrap:wrap}.hero-badges{margin-top:22px}.hero-badges span,.pill,.metric-row span,.tag{border:1px solid #292e38;background:#101319;padding:7px 11px;border-radius:999px;color:#abb2bf;font-size:12px}.cards{display:grid;gap:14px}.recommendation-grid,.insight-grid{grid-template-columns:repeat(3,1fr);margin-bottom:14px}.card{background:linear-gradient(180deg,rgba(18,21,27,.96),rgba(12,14,18,.96));border:1px solid #232731;border-radius:var(--radius);box-shadow:0 20px 70px rgba(0,0,0,.3)}.rec-card{padding:22px;position:relative;overflow:hidden}.rec-card:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent)}.accent-blue{--accent:#4f7cff}.accent-orange{--accent:#e28a52}.accent-yellow{--accent:#e2b24f}.rec-card h2{font-size:23px;letter-spacing:-.025em;margin:8px 0}.rec-card p,.insight-grid p,.section-heading p{color:#aeb5c0;margin:0 0 16px}.metric-row b{color:white}.chart-card,.table-card,.plan-card{padding:24px;margin-bottom:14px}.chart-heading,.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.chart-heading h2,.section-heading h2,.methodology-card h2{margin:4px 0 0;font-size:26px}.toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:#a9b0bb;cursor:pointer}.toggle input{accent-color:var(--blue)}.filters{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:18px;margin:22px 0 4px;padding:16px;border:1px solid #1d2129;border-radius:16px;background:#090b0f}.filter-title{display:block;font-size:11px;letter-spacing:.12em;color:#727b89;margin-bottom:8px}.pill{cursor:pointer}.pill.active{border-color:#4d5564;color:#fff;background:#171b22}.pill i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:7px}.selects{display:flex;gap:8px}.selects label{font-size:11px;color:#7e8794;min-width:0;flex:1}.selects select{display:block;width:100%;margin-top:5px;background:#11151b;border:1px solid #292e38;color:#e5e9f0;border-radius:10px;padding:8px 10px}.model-detail{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(110px,.7fr));gap:10px;align-items:stretch;margin:14px 0 0;padding:14px;border:1px solid #252b35;border-radius:16px;background:#0a0d12;min-height:104px}.model-detail-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:74px;color:#737d8b;font-size:12px}.model-detail-main,.detail-metric{min-width:0}.model-detail-main{padding:2px 4px}.model-detail-main h3{margin:5px 0 3px;font-size:18px;line-height:1.25;letter-spacing:-.02em}.model-detail-main p{margin:0;color:#8993a1;font-size:11px}.model-detail-main .tag{margin-left:6px}.detail-metric{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border-left:1px solid #202631}.detail-metric span{font-size:10px;letter-spacing:.05em;color:#727c89}.detail-metric b{margin-top:3px;font-size:17px;font-variant-numeric:tabular-nums}.detail-note{grid-column:1/-1;padding:8px 10px;border-top:1px solid #1d222b;color:#858f9c;font-size:11px;line-height:1.45}.canvas-wrap{height:min(68vh,760px);min-height:520px;margin-top:14px}.legend-note,.table-hint,.disclaimer{font-size:11px;color:#7f8794}.legend-note{padding-top:8px}.insight-grid .card{padding:20px}.insight-grid h3{font-size:18px;margin:7px 0 8px}.table-scroll{overflow:auto;margin-top:15px;border:1px solid #20242c;border-radius:14px}table{border-collapse:collapse;width:100%;min-width:880px;background:#0a0c10}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #1a1e25;font-size:12px;white-space:nowrap}th{position:sticky;top:0;background:#11141a;color:#7f8895;font-weight:650;cursor:pointer}td{color:#c5cad2}.num{font-variant-numeric:tabular-nums}.tag{padding:2px 6px;font-size:10px}.tag.est{border-style:dashed;color:#e5c38d}.tag.dep{color:#d28585}.plan-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.plan-summary div{background:#090b0f;border:1px solid #1d222a;border-radius:14px;padding:14px}.plan-summary span,.plan-summary small{display:block;color:#808996;font-size:11px}.plan-summary b{display:block;margin:5px 0;font-size:14px}.methodology-card{margin-bottom:14px;overflow:hidden}.methodology-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:22px}.method-body{border-top:1px solid #20242c;padding:22px;color:#aab1bc}.method-body h3{color:#eef1f5;font-size:15px;margin:20px 0 5px}.method-body h3:first-child{margin-top:0}.method-body p{font-size:13px;max-width:1100px}.method-body code{background:#080a0d;border:1px solid #232832;border-radius:6px;padding:2px 5px}.sources{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.sources a{font-size:11px;padding:8px 10px;background:#090b0f;border:1px solid #1d222a;border-radius:9px}.sources a:after{content:" ↗";color:#667080}footer{text-align:center;color:#59616e;font-size:11px;padding:12px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#8ba1d8;margin-left:6px}.dot.estimated{background:transparent;border:2px dashed #c8d0dc}.rule{display:inline-block;width:20px;border-top:1px dashed #717a89;margin-left:6px}@media(max-width:1000px){.recommendation-grid,.insight-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.model-detail{grid-template-columns:1.4fr repeat(2,1fr)}.model-detail-main{grid-row:span 2}.detail-metric{border-left:1px solid #202631}.plan-summary{grid-template-columns:1fr 1fr}.sources{grid-template-columns:1fr 1fr}.chart-heading,.section-heading{flex-direction:column}.chart-actions{justify-content:flex-start}}@media(max-width:640px){.shell{width:calc(100% - 22px);padding-top:28px}.hero h1{font-size:38px}.chart-card,.table-card,.plan-card{padding:15px;border-radius:17px}.rec-card{padding:17px}.selects{flex-direction:column}.model-detail{grid-template-columns:1fr 1fr;padding:12px}.model-detail-main{grid-column:1/-1;grid-row:auto}.detail-metric{border-left:0;border-top:1px solid #202631;padding:9px 4px}.detail-note{padding:8px 4px}.canvas-wrap{height:560px;min-height:500px}.plan-summary,.sources{grid-template-columns:1fr}} \ No newline at end of file +:root{color-scheme:dark;--bg:#07080a;--panel:#0d0f13;--line:#232731;--text:#f1f3f6;--muted:#9aa2af;--blue:#4f7cff;--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(900px 420px at 50% -120px,#14213c 0,transparent 62%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.55}a{color:#b9c9ff;text-decoration:none}.shell{width:min(1500px,calc(100% - 42px));margin:auto;padding:56px 0 42px}.hero{padding:6px 3px 28px}.hero-title-row{display:flex;align-items:center;gap:22px}.hero-logo{width:96px;height:96px;flex:0 0 auto;border-radius:24px;filter:drop-shadow(0 18px 34px rgba(38,87,180,.2))}.hero-title-copy{min-width:0}.eyebrow,.card-label{font-size:11px;letter-spacing:.14em;font-weight:750;color:#8894a8;text-transform:uppercase}.hero h1{font-size:clamp(36px,5vw,66px);line-height:1.05;letter-spacing:-.045em;margin:12px 0 18px}.hero h1 span{color:#aeb6c5}.hero p{font-size:clamp(16px,1.55vw,21px);max-width:1160px;color:#b4bac5;margin:0}.hero-badges,.metric-row,.chart-actions,.pills{display:flex;gap:8px;flex-wrap:wrap}.hero-badges{margin-top:22px}.hero-badges span,.pill,.metric-row span,.tag{border:1px solid #292e38;background:#101319;padding:7px 11px;border-radius:999px;color:#abb2bf;font-size:12px}.cards{display:grid;gap:14px}.recommendation-grid,.insight-grid{grid-template-columns:repeat(3,1fr);margin-bottom:14px}.card{background:linear-gradient(180deg,rgba(18,21,27,.96),rgba(12,14,18,.96));border:1px solid #232731;border-radius:var(--radius);box-shadow:0 20px 70px rgba(0,0,0,.3)}.rec-card{padding:22px;position:relative;overflow:hidden}.rec-card:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent)}.accent-blue{--accent:#4f7cff}.accent-orange{--accent:#e28a52}.accent-yellow{--accent:#e2b24f}.rec-card h2{font-size:23px;letter-spacing:-.025em;margin:8px 0}.rec-card p,.insight-grid p,.section-heading p{color:#aeb5c0;margin:0 0 16px}.metric-row b{color:white}.chart-card,.table-card,.plan-card{padding:24px;margin-bottom:14px}.chart-heading,.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.chart-heading h2,.section-heading h2,.methodology-card h2{margin:4px 0 0;font-size:26px}.toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:#a9b0bb;cursor:pointer}.toggle input{accent-color:var(--blue)}.filters{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:18px;margin:22px 0 4px;padding:16px;border:1px solid #1d2129;border-radius:16px;background:#090b0f}.filter-title{display:block;font-size:11px;letter-spacing:.12em;color:#727b89;margin-bottom:8px}.pill{cursor:pointer}.pill.active{border-color:#4d5564;color:#fff;background:#171b22}.pill i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:7px}.selects{display:flex;gap:8px}.selects label{font-size:11px;color:#7e8794;min-width:0;flex:1}.selects select{display:block;width:100%;margin-top:5px;background:#11151b;border:1px solid #292e38;color:#e5e9f0;border-radius:10px;padding:8px 10px}.model-detail{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(110px,.7fr));gap:10px;align-items:stretch;margin:14px 0 0;padding:14px;border:1px solid #252b35;border-radius:16px;background:#0a0d12;min-height:104px}.model-detail-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:74px;color:#737d8b;font-size:12px}.model-detail-main,.detail-metric{min-width:0}.model-detail-main{padding:2px 4px}.model-detail-main h3{margin:5px 0 3px;font-size:18px;line-height:1.25;letter-spacing:-.02em}.model-detail-main p{margin:0;color:#8993a1;font-size:11px}.model-detail-main .tag{margin-left:6px}.detail-metric{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border-left:1px solid #202631}.detail-metric span{font-size:10px;letter-spacing:.05em;color:#727c89}.detail-metric b{margin-top:3px;font-size:17px;font-variant-numeric:tabular-nums}.detail-note{grid-column:1/-1;padding:8px 10px;border-top:1px solid #1d222b;color:#858f9c;font-size:11px;line-height:1.45}.canvas-wrap{height:min(68vh,760px);min-height:520px;margin-top:14px}.legend-note,.table-hint,.disclaimer{font-size:11px;color:#7f8794}.legend-note{padding-top:8px}.insight-grid .card{padding:20px}.insight-grid h3{font-size:18px;margin:7px 0 8px}.table-scroll{overflow:auto;margin-top:15px;border:1px solid #20242c;border-radius:14px}table{border-collapse:collapse;width:100%;min-width:880px;background:#0a0c10}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #1a1e25;font-size:12px;white-space:nowrap}th{position:sticky;top:0;background:#11141a;color:#7f8895;font-weight:650;cursor:pointer}td{color:#c5cad2}.num{font-variant-numeric:tabular-nums}.tag{padding:2px 6px;font-size:10px}.tag.est{border-style:dashed;color:#e5c38d}.tag.dep{color:#d28585}.plan-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.plan-summary div{background:#090b0f;border:1px solid #1d222a;border-radius:14px;padding:14px}.plan-summary span,.plan-summary small{display:block;color:#808996;font-size:11px}.plan-summary b{display:block;margin:5px 0;font-size:14px}.methodology-card{margin-bottom:14px;overflow:hidden}.methodology-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:22px}.method-body{border-top:1px solid #20242c;padding:22px;color:#aab1bc}.method-body h3{color:#eef1f5;font-size:15px;margin:20px 0 5px}.method-body h3:first-child{margin-top:0}.method-body p{font-size:13px;max-width:1100px}.method-body code{background:#080a0d;border:1px solid #232832;border-radius:6px;padding:2px 5px}.sources{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.sources a{font-size:11px;padding:8px 10px;background:#090b0f;border:1px solid #1d222a;border-radius:9px}.sources a:after{content:" ↗";color:#667080}footer{text-align:center;color:#59616e;font-size:11px;padding:12px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#8ba1d8;margin-left:6px}.dot.estimated{background:transparent;border:2px dashed #c8d0dc}.rule{display:inline-block;width:20px;border-top:1px dashed #717a89;margin-left:6px}@media(max-width:1000px){.recommendation-grid,.insight-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.model-detail{grid-template-columns:1.4fr repeat(2,1fr)}.model-detail-main{grid-row:span 2}.detail-metric{border-left:1px solid #202631}.plan-summary{grid-template-columns:1fr 1fr}.sources{grid-template-columns:1fr 1fr}.chart-heading,.section-heading{flex-direction:column}.chart-actions{justify-content:flex-start}}@media(max-width:640px){.shell{width:calc(100% - 22px);padding-top:28px}.hero-title-row{align-items:flex-start;gap:13px}.hero-logo{width:64px;height:64px;border-radius:17px}.hero h1{font-size:38px}.chart-card,.table-card,.plan-card{padding:15px;border-radius:17px}.rec-card{padding:17px}.selects{flex-direction:column}.model-detail{grid-template-columns:1fr 1fr;padding:12px}.model-detail-main{grid-column:1/-1;grid-row:auto}.detail-metric{border-left:0;border-top:1px solid #202631;padding:9px 4px}.detail-note{padding:8px 4px}.canvas-wrap{height:560px;min-height:500px}.plan-summary,.sources{grid-template-columns:1fr}} \ No newline at end of file