free-coding-models 0.5.4 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +8 -5
  2. package/bin/free-coding-models.js +29 -8
  3. package/changelog/v0.5.5.md +16 -0
  4. package/changelog/v0.5.6.md +24 -0
  5. package/package.json +4 -4
  6. package/src/core/changelog-loader.js +5 -1
  7. package/src/core/router-daemon.js +11 -0
  8. package/src/core/updater.js +174 -10
  9. package/src/tui/app.js +11 -31
  10. package/src/tui/render-table.js +9 -3
  11. package/src/tui/tui-state.js +6 -0
  12. package/web/dist/assets/index-Blp9QJev.js +39 -0
  13. package/web/dist/assets/{index-BrpHevg4.css → index-Cz_aCLTR.css} +1 -1
  14. package/web/dist/index.html +2 -2
  15. package/web/server.js +158 -2
  16. package/web/src/App.jsx +107 -58
  17. package/web/src/components/changelog/ChangelogView.jsx +135 -0
  18. package/web/src/components/changelog/ChangelogView.module.css +160 -0
  19. package/web/src/components/help/HelpView.jsx +188 -0
  20. package/web/src/components/help/HelpView.module.css +157 -0
  21. package/web/src/components/layout/Header.jsx +8 -3
  22. package/web/src/components/palette/CommandPalette.jsx +228 -74
  23. package/web/src/components/settings/SettingsView.jsx +281 -8
  24. package/web/src/components/settings/SettingsView.module.css +174 -0
  25. package/web/src/components/update/UpdateChip.jsx +104 -0
  26. package/web/src/components/update/UpdateChip.module.css +146 -0
  27. package/web/src/global.css +15 -0
  28. package/web/src/hooks/urlState.constants.js +25 -0
  29. package/web/src/hooks/useChangelog.js +51 -0
  30. package/web/src/hooks/useSocket.js +3 -0
  31. package/web/src/hooks/useUpdateChecker.js +91 -0
  32. package/web/src/hooks/useUrlState.js +122 -62
  33. package/web/dist/assets/index-BoWmUveV.js +0 -39
@@ -1 +1 @@
1
- ._header_gqz59_11{z-index:100;height:var(--header-h,60px);background:var(--color-bg-card);-webkit-backdrop-filter:blur(20px)saturate(1.5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;width:100%;padding:0 20px;display:flex;position:sticky;top:0}._left_gqz59_28{flex-shrink:0;align-items:center;gap:14px;display:flex}._center_gqz59_35{flex:1;min-width:0;max-width:480px}._right_gqz59_41{flex-shrink:0;align-items:center;gap:8px;display:flex}._logo_gqz59_49{align-items:center;gap:6px;display:flex}._logoIcon_gqz59_50{color:var(--color-brand);font-family:var(--font-mono);align-items:center;font-size:20px;font-weight:900;display:flex}._logoText_gqz59_58{color:var(--color-text);align-items:center;font-size:14px;font-weight:700;display:flex}._logoTextHighlight_gqz59_64{color:var(--color-brand)}._version_gqz59_65{font-size:10px;font-weight:500;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-accent-dim);border:1px solid var(--color-border);border-radius:999px;padding:2px 6px}._nav_gqz59_72{border-left:1px solid var(--color-border);align-items:center;gap:2px;height:36px;margin-left:8px;padding-left:12px;display:flex}._navBtn_gqz59_82{height:30px;font-size:12px;font-weight:600;font-family:var(--font-sans);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:0 10px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}._navBtn_gqz59_82:hover{background:var(--color-bg-hover);color:var(--color-text)}._navBtnActive_gqz59_103{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-border);font-weight:700}._navBtnActive_gqz59_103:hover{background:var(--color-accent-dim);color:var(--color-accent)}._comingBadge_gqz59_116{font-size:9px;font-weight:700;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-surface);border:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.3px;border-radius:3px;margin-left:2px;padding:1px 4px;line-height:1}._menuWrap_gqz59_132{position:relative}._menuTrigger_gqz59_133{justify-content:center;width:30px;padding:0}._menuPopover_gqz59_138{background:var(--color-bg-elevated);border:1px solid var(--color-border);z-index:200;border-radius:8px;flex-direction:column;gap:1px;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000052}._menuItem_gqz59_153{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:500;transition:background .1s;display:flex}._menuItem_gqz59_153:hover{background:var(--color-bg-hover)}._menuItem_gqz59_153>span:first-of-type{flex:1}._searchBar_gqz59_173{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;height:34px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}._searchBar_gqz59_173:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}._searchIcon_gqz59_183{flex-shrink:0;font-size:14px}._searchInput_gqz59_184{color:var(--color-text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;min-width:0}._searchInput_gqz59_184::placeholder{color:var(--color-text-dim)}._iconBtn_gqz59_192{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:6px 8px;font-size:16px;transition:all .15s;display:inline-flex}._iconBtn_gqz59_192:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}._cmdkBtn_gqz59_202{border:1px solid var(--color-border);background:var(--color-surface);height:30px;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:0 10px;transition:all .15s;display:inline-flex}._cmdkBtn_gqz59_202:hover{border-color:var(--color-accent);background:var(--color-bg-hover)}._cmdkLabel_gqz59_215{letter-spacing:.5px;font-size:11px}._benchmarkBtn_gqz59_218{border:1px solid var(--color-border);background:var(--color-surface);height:30px;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:0 12px;transition:all .15s;display:inline-flex}._benchmarkBtn_gqz59_218:hover{color:#0f8;background:#00ff8814;border-color:#0f8}._benchmarkActive_gqz59_228{cursor:not-allowed;color:#0f8!important;background:#00ff881f!important;border-color:#0f8!important}._benchmarkRunning_gqz59_233{align-items:center;gap:6px;display:inline-flex}@keyframes _spin_gqz59_235{to{transform:rotate(360deg)}}._spinner_gqz59_235{border:2px solid #00ff884d;border-top-color:#0f8;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.8s linear infinite _spin_gqz59_235;display:inline-block}[data-theme=light] ._benchmarkBtn_gqz59_218:hover{color:#008f4d;background:#008f4d0f;border-color:#008f4d}[data-theme=light] ._benchmarkActive_gqz59_228{color:#008f4d!important;background:#008f4d1a!important;border-color:#008f4d!important}[data-theme=light] ._spinner_gqz59_235{border-color:#008f4d #0000001a #0000001a}@media (width<=1024px){._navBtn_gqz59_82>span:not(._comingBadge_gqz59_116){display:none}._navBtn_gqz59_82{padding:0 8px}._center_gqz59_35{max-width:320px}}@media (width<=768px){._center_gqz59_35,._logoText_gqz59_58,._cmdkLabel_gqz59_215,._benchmarkBtn_gqz59_218>span:not(._benchmarkRunning_gqz59_233){display:none}}@media (width<=560px){._version_gqz59_65{display:none}._navBtn_gqz59_82{padding:0 6px}}._footer_1uw54_1{z-index:1;border-top:1px solid var(--color-border);color:var(--color-text-dim);justify-content:space-between;align-items:center;padding:16px 24px;font-size:12px;display:flex;position:relative}._left_1uw54_8 a,._right_1uw54_8 a{color:var(--color-text-dim);text-decoration:none}._left_1uw54_8 a:hover,._right_1uw54_8 a:hover{color:var(--color-accent)}._right_1uw54_8{gap:16px;display:flex}._filters_15z8z_9{z-index:99;background:var(--color-bg-card);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(20px)saturate(1.5);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 20px;display:flex;position:sticky;top:60px}._group_15z8z_19{align-items:center;gap:6px;display:flex}._filterLabel_15z8z_21{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:10px;font-weight:700}._chipRow_15z8z_28{gap:3px;display:flex}._chip_15z8z_28{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;padding:4px 8px;transition:all .15s}._chip_15z8z_28:hover{background:var(--color-bg-hover);color:var(--color-text)}._chipActive_15z8z_37{font-weight:700;background:var(--color-accent)!important;color:var(--color-bg)!important;border-color:var(--color-accent)!important}._select_15z8z_43,._providerSelect_15z8z_43{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-size:11px;font-family:var(--font-sans);cursor:pointer;border-radius:5px;outline:none;min-width:130px;padding:4px 8px}._select_15z8z_43:focus,._providerSelect_15z8z_43:focus{border-color:var(--color-accent)}._spacer_15z8z_53{flex:1}._resetBtn_15z8z_55{font-size:11px;font-weight:700;font-family:var(--font-mono);border:1px solid var(--color-border-hover);background:var(--color-accent-dim);color:var(--color-text);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:4px 9px;transition:all .15s;display:inline-flex}._resetBtn_15z8z_55:hover{background:var(--color-accent);color:var(--color-bg)}._resetBadge_15z8z_68{background:var(--color-bg);min-width:16px;height:16px;color:var(--color-accent);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:9px;font-weight:800;display:inline-flex}._customFilterChip_15z8z_79{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-accent);background:var(--color-accent-dim);color:var(--color-accent);border-radius:5px;align-items:center;gap:6px;max-width:240px;padding:3px 4px 3px 8px;display:inline-flex}._customFilterIcon_15z8z_89{flex-shrink:0;display:inline-flex}._customFilterLabel_15z8z_90{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._customFilterClear_15z8z_95{width:18px;height:18px;color:var(--color-accent);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._customFilterClear_15z8z_95:hover{background:var(--color-accent);color:var(--color-bg)}._pingRow_15z8z_108{gap:3px;display:flex}._pingBtn_15z8z_109{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;padding:4px 8px;transition:all .15s}._pingBtn_15z8z_109:hover{background:var(--color-bg-hover);color:var(--color-text);border-color:var(--color-text-muted)}._pingBtnActive_15z8z_117{font-weight:700;background:var(--color-bg-hover)!important;color:var(--ping-active-color,var(--color-accent))!important;border-color:var(--ping-active-color,var(--color-accent))!important}._nextPing_15z8z_125{font-size:11px;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);border-radius:5px;align-items:center;gap:6px;padding:4px 8px;display:flex}._nextPingLabel_15z8z_133{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}._nextPingTime_15z8z_137{color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;min-width:32px;font-size:13px;font-weight:700}._pingingDot_15z8z_143{background:#f46;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:.6s ease-in-out infinite _pulseDot_15z8z_1}@keyframes _pulseDot_15z8z_1{0%,to{box-shadow:0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 0 6px #0000}}._live_15z8z_154{color:var(--color-accent);text-transform:uppercase;letter-spacing:1px;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}._liveDot_15z8z_159{background:var(--color-accent);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite _pulseDot_15z8z_1}._benchmarkBar_15z8z_165{background:#b400ff1f;border:1px solid #b400ff66;border-radius:6px;flex-shrink:0;align-items:center;gap:10px;width:100%;margin-bottom:4px;padding:6px 12px;display:flex}._benchmarkLabel_15z8z_175{color:#b400ff;font-size:11px;font-weight:700;font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:5px;display:flex}._benchmarkSpinner_15z8z_181{font-size:12px;line-height:1;animation:.8s linear infinite _spinSp_15z8z_1;display:inline-block}._benchmarkCount_15z8z_186{opacity:.8;font-size:10px}._benchmarkTrack_15z8z_187{background:#ffffff1a;border-radius:3px;flex:1;width:120px;height:5px;overflow:hidden}._benchmarkFill_15z8z_193{background:linear-gradient(90deg,#b400ff,#f0f);border-radius:3px;height:100%;transition:width .5s}._benchmarkPct_15z8z_199{color:#b400ff;font-size:11px;font-weight:700;font-family:var(--font-mono);text-align:right;min-width:32px}@keyframes _spinSp_15z8z_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._mood_f9he5_1{text-align:center;width:20px;font-size:14px;display:inline-block}._badge_zw4n6_1{text-align:center;border-radius:4px;min-width:32px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:inline-block}._tier_splus_zw4n6_11{color:gold;background:#ffd70026;border:1px solid #ffd7004d}._tier_s_zw4n6_11{color:#ff8c00;background:#ff8c001f;border:1px solid #ff8c0040}._tier_aplus_zw4n6_13{color:#00c8ff;background:#00c8ff1a;border:1px solid #00c8ff33}._tier_a_zw4n6_13{color:#3ddc84;background:#3ddc841a;border:1px solid #3ddc8433}._tier_aminus_zw4n6_15{color:#7ecf7e;background:#7ecf7e1a;border:1px solid #7ecf7e33}._tier_bplus_zw4n6_16{color:#a8a8c8;background:#a8a8c81a;border:1px solid #a8a8c826}._tier_b_zw4n6_16{color:#808098;background:#8080981a;border:1px solid #80809826}._tier_c_zw4n6_18{color:#606078;background:#6060781a;border:1px solid #60607826}[data-theme=light] ._tier_splus_zw4n6_11{color:#7a5e00;border-color:#b0880066}[data-theme=light] ._tier_s_zw4n6_11{color:#a14a00;border-color:#c45a0066}[data-theme=light] ._tier_aplus_zw4n6_13{color:#005d8a;border-color:#0073a866}[data-theme=light] ._tier_a_zw4n6_13{color:#1f7a3e;border-color:#1f7a3e66}[data-theme=light] ._tier_aminus_zw4n6_15{color:#2f7a2f;border-color:#2f7a2f66}[data-theme=light] ._tier_bplus_zw4n6_16{color:#4a4a72;border-color:#5a5a8a66}[data-theme=light] ._tier_b_zw4n6_16{color:#556;border-color:#5566}[data-theme=light] ._tier_c_zw4n6_18{color:#5a5a6a;border-color:#6a6a7a66}._dot_1u2qu_1{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}._up_1u2qu_9{background:#0f8;box-shadow:0 0 6px #0f86}._down_1u2qu_10,._timeout_1u2qu_11{background:#f44}._pending_1u2qu_12{background:#555570;animation:1.5s ease-in-out infinite _pulse_1u2qu_1}@keyframes _pulse_1u2qu_1{0%,to{box-shadow:0 0 #76b90040}50%{box-shadow:0 0 0 6px #0000}}[data-theme=light] ._up_1u2qu_9{background:#008f4d;box-shadow:0 0 4px #008f4d59}[data-theme=light] ._down_1u2qu_10,[data-theme=light] ._timeout_1u2qu_11{background:#c8143a}[data-theme=light] ._pending_1u2qu_12{background:#889}._cell_ptyq8_1{font-family:var(--font-mono);align-items:center;gap:4px;min-width:54px;font-size:12px;font-weight:600;display:inline-flex}._fast_ptyq8_11{color:#0f8}._medium_ptyq8_12{color:#fa0}._slow_ptyq8_13{color:#f44}._none_ptyq8_14{color:var(--color-text-dim)}@keyframes _pingPulse_ptyq8_1{0%,to{opacity:1}50%{opacity:.3}}@keyframes _pingRing_ptyq8_1{0%{opacity:1;transform:rotate(0)scale(1)}70%{opacity:.6;transform:rotate(180deg)scale(.6)}to{opacity:1;transform:rotate(360deg)scale(1)}}._spinner_ptyq8_26{border:1.5px solid #00ff8840;border-top-color:#0f8;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.8s linear infinite _pingRing_ptyq8_1;display:inline-block}[data-theme=light] ._fast_ptyq8_11{color:#008f4d}[data-theme=light] ._medium_ptyq8_12{color:#b86b00}[data-theme=light] ._slow_ptyq8_13{color:#c8143a}[data-theme=light] ._spinner_ptyq8_26{border-color:#008f4d #0000001f #0000001f}._wrapper_1t2v0_7{vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex;position:relative}._key_1t2v0_17{color:#fa0;z-index:1;filter:drop-shadow(0 0 1px #ffaa0059);position:relative}._slash_1t2v0_24{pointer-events:none;z-index:2;margin:auto;position:absolute;inset:0}._cell_odwix_7{font-family:var(--font-mono);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}._up_odwix_19{color:#0f8}._warning_odwix_20{color:#fa0}._error_odwix_21{color:#f44}._errorBold_odwix_22{color:#f44;font-weight:800}._dim_odwix_23{color:var(--color-text-dim)}._noKey_odwix_30{color:#fa0;letter-spacing:.4px;background:#ffaa002e;border:1px solid #ffaa0073;border-radius:4px;padding:1px 7px;font-size:12px;font-weight:700}._noKeyText_odwix_40{letter-spacing:.4px;font-weight:700}[data-theme=light] ._noKey_odwix_30{color:#b86b00;background:#ffaa0040;border-color:#ffaa008c}[data-theme=light] ._up_odwix_19{color:#008f4d}[data-theme=light] ._warning_odwix_20{color:#b86b00}[data-theme=light] ._error_odwix_21,[data-theme=light] ._errorBold_odwix_22{color:#c02323}[data-theme=light] ._dim_odwix_23{color:#888}._cell_18ls4_1{align-items:center;gap:6px;display:flex}._bar_18ls4_2{background:var(--color-surface);border-radius:3px;width:48px;height:6px;overflow:hidden}._fill_18ls4_3{border-radius:3px;height:100%;transition:width .25s cubic-bezier(.16,1,.3,1)}._high_18ls4_4{background:linear-gradient(90deg,#0f8,#76b900)}._mid_18ls4_5{background:linear-gradient(90deg,#fa0,#ff8c00)}._low_18ls4_6{background:linear-gradient(90deg,#f44,#c00)}._value_18ls4_7{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}._none_18ls4_8{color:var(--color-text-dim)}[data-theme=light] ._high_18ls4_4{background:linear-gradient(90deg,#008f4d,#4a7a00)}[data-theme=light] ._mid_18ls4_5{background:linear-gradient(90deg,#b86b00,#c45a00)}[data-theme=light] ._low_18ls4_6{background:linear-gradient(90deg,#c8143a,#900)}._badge_5z8g9_5{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}._emoji_5z8g9_16{font-size:12px;line-height:1}._text_5z8g9_17{line-height:1}._perfect_5z8g9_20{color:#0f8;background:#00ff881f}._normal_5z8g9_21{color:#76b900;background:#76b9001f}._slow_5z8g9_22{color:#fa0;background:#ffaa001f}._spiky_5z8g9_23{color:#f60;background:#ff66001f}._veryslow_5z8g9_24{color:#f44;background:#ff44441f}._overloaded_5z8g9_25{color:#f22;background:#ff22221f}._unstable_5z8g9_26{color:#c00;background:#cc00001f}._notactive_5z8g9_27{color:#555570;background:#5555701f}._pending_5z8g9_28{color:#444460;background:#4444601a}[data-theme=light] ._perfect_5z8g9_20{color:#008f4d;background:#008f4d1a}[data-theme=light] ._normal_5z8g9_21{color:#4a7a00;background:#4a7a001a}[data-theme=light] ._slow_5z8g9_22{color:#b86b00;background:#b86b001a}[data-theme=light] ._spiky_5z8g9_23{color:#c45000;background:#c450001a}[data-theme=light] ._veryslow_5z8g9_24{color:#c8143a;background:#c8143a1a}[data-theme=light] ._overloaded_5z8g9_25{color:#b8101f;background:#b8101f1a}[data-theme=light] ._unstable_5z8g9_26{color:#900;background:#9900001a}[data-theme=light] ._notactive_5z8g9_27{color:#5a5a72}[data-theme=light] ._pending_5z8g9_28{color:#5a5a8a}._cell_c8a3q_1{font-family:var(--font-mono);border-radius:4px;align-items:center;gap:4px;min-width:70px;padding:1px 3px;font-size:12px;font-weight:600;transition:background .2s;display:inline-flex}._fast_c8a3q_14{color:#0f8}._medium_c8a3q_15{color:#fa0}._slow_c8a3q_16{color:#f44}._dim_c8a3q_17{color:var(--color-text-dim)}._running_c8a3q_18{color:#b400ff;font-weight:700}._badge_c8a3q_19{color:#06b6d4;font-size:10px}._runningCell_c8a3q_22{background:#b400ff1f}@keyframes _benchSpin_c8a3q_1{to{transform:rotate(360deg)}}@keyframes _benchPulse_c8a3q_1{0%,to{box-shadow:0 0 #b400ff66}50%{box-shadow:0 0 0 4px #b400ff00}}._benchmarkSpinner_c8a3q_34{border:2px solid #b400ff4d;border-top-color:#b400ff;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.6s linear infinite _benchSpin_c8a3q_1;display:inline-block}[data-theme=light] ._fast_c8a3q_14{color:#008f4d}[data-theme=light] ._medium_c8a3q_15{color:#b86b00}[data-theme=light] ._slow_c8a3q_16{color:#c8143a}[data-theme=light] ._badge_c8a3q_19{color:#0e7490}[data-theme=light] ._runningCell_c8a3q_22{background:#7d00b414}._cell_1bcec_1{font-family:var(--font-mono);border-radius:4px;align-items:center;gap:4px;min-width:40px;padding:1px 3px;font-size:12px;font-weight:600;transition:background .2s;display:inline-flex}._fast_1bcec_14{color:#0f8}._slow_1bcec_15{color:#f44}._dim_1bcec_16{color:var(--color-text-dim)}._running_1bcec_17{color:#b400ff;font-weight:700}._badge_1bcec_18{color:#06b6d4;font-size:10px}._runningCell_1bcec_21{background:#b400ff1f}@keyframes _miniSpin_1bcec_29{to{transform:rotate(360deg)}}._miniSpinner_1bcec_29{border:1.5px solid #b400ff4d;border-top-color:#b400ff;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite _miniSpin_1bcec_29;display:inline-block}[data-theme=light] ._fast_1bcec_14{color:#008f4d}[data-theme=light] ._slow_1bcec_15{color:#c8143a}[data-theme=light] ._badge_1bcec_18{color:#0e7490}[data-theme=light] ._runningCell_1bcec_21{background:#7d00b414}._row_2hylr_13{max-width:100%;max-height:var(--pl-max-h,22px);color:var(--color-text);vertical-align:middle;align-items:center;gap:6px;line-height:1;display:inline-flex;overflow:hidden}._icon_2hylr_27{height:var(--pl-icon-h,16px);flex-shrink:0;justify-content:center;align-items:center;width:auto;display:inline-flex}._icon_2hylr_27 svg{width:auto;height:100%;display:block}._textLogo_2hylr_44{height:var(--pl-text-h,12px);flex-shrink:0;justify-content:center;align-items:center;width:auto;display:inline-flex}._textLogo_2hylr_44 svg{width:auto;height:100%;display:block}._iconLegacyWordmark_2hylr_63{height:var(--pl-icon-h,14px);width:auto;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._iconLegacyWordmark_2hylr_63 svg{width:auto;height:100%;display:block}.scalewayLogo{color:#521094;transition:color .2s var(--ease-out,ease)}[data-theme=dark] .scalewayLogo{color:#a78bfa}._fallback_2hylr_96{color:var(--color-text);white-space:nowrap;letter-spacing:.2px;font-size:11px;font-weight:500}._container_jqpk4_8{background:var(--color-bg-card);border-top:0;border-bottom:1px solid var(--color-border);border-left:0;border-right:0;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0;display:flex;overflow:auto}._table_jqpk4_23{border-collapse:collapse;border:0;width:100%;min-width:1200px;font-size:12px}._th_jqpk4_32{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-hover);border-right:1px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none;z-index:10;text-align:center;padding:9px 8px;font-size:10px;font-weight:700;position:sticky;top:0}._th_jqpk4_32:last-child{border-right:0}._th_jqpk4_32:hover{color:var(--color-accent);background:var(--color-bg-active)}._thInner_jqpk4_59{justify-content:space-between;align-items:center;gap:4px;width:100%;min-width:0;display:flex}._thLabel_jqpk4_67{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}._resizeHandle_jqpk4_81{cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;width:6px;height:22px;margin-left:2px;display:inline-flex;position:relative}._resizeHandle_jqpk4_81:after{content:"";width:2px;height:14px;transition:background .12s var(--ease-out,ease);background:0 0;border-radius:1px;display:block}._resizeHandle_jqpk4_81:hover:after,._resizeHandleActive_jqpk4_106:after{background:var(--color-accent)}._resizeHandleActive_jqpk4_106{cursor:col-resize}._th_jqpk4_32:has(._resizeHandleActive_jqpk4_106){background:var(--color-bg-active);color:var(--color-accent)}.col-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}._resizeToolbar_jqpk4_125{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);z-index:11;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:flex;position:sticky;top:0}._resizeToolbarHint_jqpk4_139{letter-spacing:.2px;align-items:center;gap:4px;display:inline-flex}._resizeToolbarHint_jqpk4_139 strong{color:var(--color-text);font-weight:700;font-family:var(--font-mono)}._resizeResetButton_jqpk4_150{appearance:none;border:1px solid var(--color-border-hover);color:var(--color-text-muted);cursor:pointer;transition:background .12s var(--ease-out,ease), color .12s var(--ease-out,ease), border-color .12s var(--ease-out,ease);white-space:nowrap;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600}._resizeResetButton_jqpk4_150:hover{background:var(--color-bg-active);color:var(--color-accent);border-color:var(--color-accent)}._resizeResetButton_jqpk4_150:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}._th_jqpk4_32:nth-child(6),._th_jqpk4_32:nth-child(7),._th_jqpk4_32:nth-child(11){text-align:left}._sortIcon_jqpk4_179{opacity:.3;margin-left:3px;font-size:9px}._sortIconActive_jqpk4_180{color:var(--color-accent);margin-left:3px;font-size:10px;font-weight:800}._td_jqpk4_183{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap;padding:7px 8px}._td_jqpk4_183:last-child{border-right:0}._td_jqpk4_183:nth-child(6),._td_jqpk4_183:nth-child(7),._td_jqpk4_183:nth-child(11){text-align:left}._table_jqpk4_23 tbody tr{cursor:pointer;transition:background .1s}._table_jqpk4_23 tbody tr:hover{background:var(--color-bg-hover)}._rank1_jqpk4_202 td:first-child{border-left:3px solid gold}._rank2_jqpk4_203 td:first-child{border-left:3px solid silver}._rank3_jqpk4_204 td:first-child{border-left:3px solid #cd7f32}._rankNum_jqpk4_207{font-family:var(--font-mono);color:var(--color-text-dim);text-align:center;font-size:11px;display:block}._swe_jqpk4_215{font-family:var(--font-mono);font-weight:600}._sweHigh_jqpk4_216{color:gold}._sweMid_jqpk4_217{color:#3ddc84}._sweLow_jqpk4_218{color:var(--color-text-dim)}._ctx_jqpk4_220{font-family:var(--font-mono);font-size:11px}._ping_jqpk4_222{font-family:var(--font-mono);font-weight:600}._pingFast_jqpk4_223{color:#0f8}._pingMedium_jqpk4_224{color:#fa0}._pingSlow_jqpk4_225{color:#f44}._pingNone_jqpk4_226{color:var(--color-text-dim)}[data-theme=light] ._sweHigh_jqpk4_216{color:#7a5e00}[data-theme=light] ._sweMid_jqpk4_217{color:#1f7a3e}[data-theme=light] ._pingFast_jqpk4_223{color:#008f4d}[data-theme=light] ._pingMedium_jqpk4_224{color:#b86b00}[data-theme=light] ._pingSlow_jqpk4_225{color:#c8143a}._uptime_jqpk4_235{font-family:var(--font-mono);font-size:11px}._modelCell_jqpk4_238{align-items:center;gap:6px;display:flex;overflow:hidden}._modelMeta_jqpk4_239{flex:1;min-width:0}._modelHeader_jqpk4_240{align-items:center;gap:5px;display:flex}._modelName_jqpk4_241{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}._modelId_jqpk4_242{font-family:var(--font-mono);color:var(--color-text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}@keyframes _benchRowPulse_jqpk4_1{0%,to{background:#b400ff0a}50%{background:#b400ff1a}}._benchRow_jqpk4_253{animation:1.2s ease-in-out infinite _benchRowPulse_jqpk4_1}[data-theme=light] ._container_jqpk4_8,[data-theme=light] ._table_jqpk4_23{border-color:#cfcfcf}[data-theme=light] ._th_jqpk4_32,[data-theme=light] ._td_jqpk4_183{border-color:#d8d8d8}._empty_jqpk4_271{text-align:center;color:var(--color-text-muted);padding:60px 0}._favBtn_jqpk4_274{width:24px;height:24px;color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:color .12s,background .12s,transform .12s;display:inline-flex}._favBtn_jqpk4_274:hover{color:gold;background:#ffd7001a;transform:scale(1.1)}._favBtnActive_jqpk4_289{color:gold}._favBtnActive_jqpk4_289:hover{color:#ffae00;background:#ffae0024}[data-theme=light] ._favBtn_jqpk4_274{color:#999}[data-theme=light] ._favBtn_jqpk4_274:hover{color:#b08800;background:#b088001a}[data-theme=light] ._favBtnActive_jqpk4_289{color:#b08800}._aiLatencyWrap_jqpk4_301{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:2px 4px;transition:background .1s;display:inline-flex;position:relative}._aiLatencyWrap_jqpk4_301:hover{background:#b400ff14}._aiLatencyWrap_jqpk4_301._aiLatencyRunning_jqpk4_312{cursor:progress}._aiLatencyWrap_jqpk4_301._aiLatencyRunning_jqpk4_312:hover{background:0 0}._aiLatencyPlay_jqpk4_314{opacity:0;color:#b400ff;transition:opacity .1s}._aiLatencyWrap_jqpk4_301:hover ._aiLatencyPlay_jqpk4_314{opacity:1}._aiLatencyRunning_jqpk4_312 ._aiLatencyPlay_jqpk4_314{display:none}._incompatible_jqpk4_323 td{color:var(--color-text-muted)!important;background:#ff00000f!important}._incompatible_jqpk4_323:hover td{background:#ff00001a!important}[data-theme=light] ._incompatible_jqpk4_323 td{color:#888!important;background:#c8143a0f!important}._panel_14usx_1{z-index:300;background:var(--color-bg-elevated);border-left:1px solid var(--color-border);width:min(420px,90vw);box-shadow:var(--shadow-lg);transition:transform var(--transition-medium);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}._header_14usx_16{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}._title_14usx_24{margin:0;font-size:16px;font-weight:700}._closeBtn_14usx_30{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}._closeBtn_14usx_30:hover{color:var(--color-text)}._body_14usx_43{padding:24px}._stat_14usx_47{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}._statLabel_14usx_55{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}._statValue_14usx_63,._ping_14usx_68{font-family:var(--font-mono);font-weight:600}._pingFast_14usx_73{color:#0f8}._pingMedium_14usx_74{color:#fa0}._pingSlow_14usx_75{color:#f44}._pingNone_14usx_76{color:var(--color-text-dim)}[data-theme=light] ._pingFast_14usx_73{color:#008f4d}[data-theme=light] ._pingMedium_14usx_74{color:#b86b00}[data-theme=light] ._pingSlow_14usx_75{color:#c8143a}._chart_14usx_82{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);margin:20px 0;padding:16px}._chartTitle_14usx_90{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;font-size:11px;font-weight:700}._chartEmpty_14usx_99{color:var(--color-text-dim);text-align:center;padding:20px}._actions_14usx_106{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;gap:10px;margin:16px 0;padding:12px;display:flex}._favBlock_14usx_117{flex-direction:column;gap:8px;display:flex}._favBtn_14usx_123{background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}._favBtn_14usx_123:hover{color:gold;background:#ffd70014;border-color:gold}._favBtnActive_14usx_143{color:gold;background:#ffd7001f;border-color:gold}._favBtnActive_14usx_143:hover{background:#ffd70029}[data-theme=light] ._favBtn_14usx_123{color:#555}[data-theme=light] ._favBtn_14usx_123:hover{color:#b08800;background:#b088000f;border-color:#b08800}[data-theme=light] ._favBtnActive_14usx_143{color:#b08800;background:#b088001a;border-color:#b08800}._reorderRow_14usx_155{align-items:center;gap:6px;padding:0 4px;display:flex}._reorderBtn_14usx_161{font-size:10px;font-weight:600;font-family:var(--font-mono);background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;border-radius:4px;align-items:center;gap:3px;padding:4px 8px;transition:all .12s;display:inline-flex}._reorderBtn_14usx_161:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text);border-color:var(--color-text-muted)}._reorderBtn_14usx_161:disabled{opacity:.4;cursor:not-allowed}._rankBadge_14usx_185{font-size:10px;font-family:var(--font-mono);color:gold;background:#ffd7001f;border:1px solid #ffd7004d;border-radius:999px;margin-left:auto;padding:2px 6px;font-weight:700}[data-theme=light] ._rankBadge_14usx_185{color:#b08800;background:#b088001f;border-color:#b088004d}._benchBtn_14usx_202{font-size:12px;font-weight:700;font-family:var(--font-mono);color:#b400ff;cursor:pointer;background:#b400ff1f;border:1px solid #b400ff66;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;transition:all .15s;display:inline-flex}._benchBtn_14usx_202:hover{background:#b400ff33;border-color:#b400ffb3}[data-theme=light] ._benchBtn_14usx_202{color:#6a00a0;background:#8c00c80f;border-color:#8c00c84d}[data-theme=light] ._benchBtn_14usx_202:hover{background:#8c00c81f}._overlay_1e3f5_1{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s ease-out _fadeIn_1e3f5_1;display:flex;position:fixed;inset:0}._overlay_1e3f5_1[hidden]{display:none}@keyframes _fadeIn_1e3f5_1{0%{opacity:0}to{opacity:1}}._modal_1e3f5_18{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:min(500px,90vw);max-height:80vh;box-shadow:var(--shadow-lg);animation:_modalSlideIn_1e3f5_1 .3s var(--ease-out);overflow-y:auto}@keyframes _modalSlideIn_1e3f5_1{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}._modalHeader_1e3f5_33{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}._modalTitle_1e3f5_40{margin:0;font-size:18px;font-weight:700}._modalClose_1e3f5_45{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}._modalClose_1e3f5_45:hover{color:var(--color-text)}._modalBody_1e3f5_57{padding:24px}._options_1e3f5_60{flex-direction:column;gap:10px;display:flex}._option_1e3f5_60{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);text-align:left;font-family:var(--font-sans);color:var(--color-text);align-items:center;gap:14px;width:100%;padding:14px 18px;display:flex}._option_1e3f5_60:hover{border-color:var(--color-accent);background:var(--color-accent-dim)}._optionIcon_1e3f5_84{flex-shrink:0;font-size:24px}._optionLabel_1e3f5_89{font-size:14px;font-weight:600;display:block}._optionDesc_1e3f5_94{color:var(--color-text-muted);margin-top:2px;font-size:11px;display:block}._page_1oolq_1{padding:24px}._pageHeader_1oolq_5{margin-bottom:24px}._pageTitle_1oolq_9{margin:0 0 6px;font-size:24px;font-weight:800}._pageSubtitle_1oolq_15{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}._pageSubtitle_1oolq_15 code{font-family:var(--font-mono);background:var(--color-surface);border-radius:4px;padding:2px 6px;font-size:12px}._loading_1oolq_30{text-align:center;color:var(--color-text-muted);padding:60px 0}._toolbar_1oolq_36{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}._toolbarSearch_1oolq_44{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1;align-items:center;gap:8px;min-width:200px;height:36px;padding:0 12px;display:flex}._toolbarSearch_1oolq_44 svg{color:var(--color-text-dim);flex-shrink:0}._toolbarSearch_1oolq_44 input{color:var(--color-text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}._toolbarSearch_1oolq_44 input::placeholder{color:var(--color-text-dim)}._toolbarActions_1oolq_76{gap:8px;display:flex}._toolbarBtn_1oolq_81{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast);font-size:13px;font-weight:500;font-family:var(--font-sans);align-items:center;gap:6px;padding:6px 14px;display:inline-flex}._toolbarBtn_1oolq_81:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}._providers_1oolq_102{flex-direction:column;gap:12px;display:flex}._card_1oolq_108{background:var(--color-bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast);overflow:hidden}._card_1oolq_108:hover{border-color:var(--color-border-hover)}._cardHeader_1oolq_121{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:12px;padding:16px 20px;display:flex}._cardHeader_1oolq_121:hover{background:var(--color-bg-hover)}._cardIcon_1oolq_134{border-radius:var(--radius-sm);background:var(--color-accent-dim);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}._cardInfo_1oolq_146{flex:1;min-width:0}._cardName_1oolq_151{font-size:14px;font-weight:700}._cardMeta_1oolq_156{color:var(--color-text-muted);margin-top:2px;font-size:11px}._cardStatus_1oolq_162{border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:700}._statusConfigured_1oolq_170{background:var(--color-success-dim);color:var(--color-success)}._statusMissing_1oolq_175{background:var(--color-warning-dim);color:var(--color-warning)}._toggleIcon_1oolq_180{color:var(--color-text-dim);transition:transform var(--transition-fast);flex-shrink:0;font-size:18px}._toggleIconExpanded_1oolq_187{transform:rotate(180deg)}._cardBody_1oolq_191{max-height:0;transition:max-height var(--transition-medium);border-top:0 solid #0000;overflow:hidden}._cardExpanded_1oolq_198 ._cardBody_1oolq_191{border-top:1px solid var(--color-border);max-height:500px}._cardContent_1oolq_203{padding:16px 20px}._keyGroup_1oolq_207{margin-bottom:12px}._keyLabel_1oolq_211{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600;display:block}._keyDisplay_1oolq_221{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}._keyDisplayValue_1oolq_232{font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-all;flex:1;font-size:13px}._keyDisplayActions_1oolq_240{flex-shrink:0;gap:4px;display:flex}._actionBtn_1oolq_246{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}._actionBtn_1oolq_246:hover{background:var(--color-bg-hover)}._actionBtnDanger_1oolq_264{background:var(--color-danger-dim);color:var(--color-danger);border-color:#f443}._actionBtnDanger_1oolq_264:hover{background:#f443}._keyInputRow_1oolq_274{align-items:center;gap:8px;display:flex}._keyInput_1oolq_274{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);color:var(--color-text);transition:border-color var(--transition-fast);outline:none;flex:1;padding:8px 12px}._keyInput_1oolq_274:focus{border-color:var(--color-accent)}._keyInput_1oolq_274::placeholder{color:var(--color-text-dim)}._saveBtn_1oolq_301{border-radius:var(--radius-sm);background:var(--color-success-dim);color:var(--color-success);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);transition:all var(--transition-fast);border:1px solid #0f83;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}._saveBtn_1oolq_301:hover{background:#00ff8826}._enabledRow_1oolq_321{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}._enabledLabel_1oolq_330{color:var(--color-text-muted);font-size:12px;font-weight:500}._toggleSwitch_1oolq_336{cursor:pointer;width:44px;height:24px;position:relative}._toggleSwitch_1oolq_336 input{display:none}._toggleSlider_1oolq_347{background:var(--color-surface);border:1px solid var(--color-border);transition:all var(--transition-fast);border-radius:12px;position:absolute;inset:0}._toggleSlider_1oolq_347:after{content:"";background:var(--color-text-dim);width:16px;height:16px;transition:all var(--transition-fast);border-radius:50%;position:absolute;top:3px;left:3px}._toggleSwitch_1oolq_336 input:checked+._toggleSlider_1oolq_347{background:var(--color-accent-dim);border-color:var(--color-accent)}._toggleSwitch_1oolq_336 input:checked+._toggleSlider_1oolq_347:after{background:var(--color-accent);transform:translate(20px)}._page_1n8f8_1{padding:24px}._pageHeader_1n8f8_5{margin-bottom:24px}._pageTitle_1n8f8_9{margin:0 0 6px;font-size:24px;font-weight:800}._pageSubtitle_1n8f8_15{color:var(--color-text-muted);margin:0;font-size:13px}._grid_1n8f8_21{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}._card_1n8f8_27{background:var(--color-bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;overflow:hidden}._cardWide_1n8f8_36{grid-column:span 2}._cardTitle_1n8f8_40{margin:0 0 16px;font-size:14px;font-weight:700}._empty_1n8f8_49{color:var(--color-text-dim);text-align:center;padding:20px 0}._healthItem_1n8f8_55{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:8px 0;display:flex}._healthItem_1n8f8_55:last-child{border-bottom:none}._healthName_1n8f8_67{flex-shrink:0;width:120px;font-size:12px;font-weight:600}._healthBar_1n8f8_74{background:var(--color-surface);border-radius:4px;flex:1;height:8px;overflow:hidden}._healthFill_1n8f8_82{background:linear-gradient(90deg, var(--color-accent), var(--color-success));height:100%;transition:width var(--transition-medium);border-radius:4px}._healthPct_1n8f8_89{text-align:right;width:40px;font-family:var(--font-mono);font-size:12px;font-weight:600}._pctFast_1n8f8_97{color:#0f8}._pctMedium_1n8f8_98{color:#fa0}._pctSlow_1n8f8_99{color:#f44}[data-theme=light] ._pctFast_1n8f8_97{color:#008f4d}[data-theme=light] ._pctMedium_1n8f8_98{color:#b86b00}[data-theme=light] ._pctSlow_1n8f8_99{color:#c8143a}._leaderItem_1n8f8_105{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:8px 0;display:flex}._leaderItem_1n8f8_105:last-child{border-bottom:none}._leaderRank_1n8f8_117{background:var(--color-surface);width:28px;height:28px;color:var(--color-text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}._rank1_1n8f8_131{color:gold;background:#ffd70026}._rank2_1n8f8_132{color:silver;background:#c0c0c026}._rank3_1n8f8_133{color:#cd7f32;background:#cd7f3226}._leaderName_1n8f8_135{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._leaderLatency_1n8f8_145{font-family:var(--font-mono);color:var(--color-success);flex-shrink:0;font-size:12px;font-weight:600}._tierItem_1n8f8_153{align-items:center;gap:10px;padding:6px 0;display:flex}._tierBadge_1n8f8_160{flex-shrink:0;width:40px}._tierBar_1n8f8_165{background:var(--color-surface);border-radius:5px;flex:1;height:10px;overflow:hidden}._tierFill_1n8f8_173{height:100%;transition:width var(--transition-medium);border-radius:5px}._tierCount_1n8f8_179{text-align:right;width:30px;font-family:var(--font-mono);color:var(--color-text-muted);font-size:12px}@media (width<=1024px){._grid_1n8f8_21{grid-template-columns:1fr}._cardWide_1n8f8_36{grid-column:span 1}}._backdrop_162pr_6{-webkit-backdrop-filter:blur(4px);z-index:500;background:#0000008c;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}._modal_162pr_19{background:var(--color-bg-elevated);border:1px solid var(--color-border-hover);border-radius:14px;flex-direction:column;width:min(560px,92vw);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080}._searchRow_162pr_31{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:14px 16px;display:flex}._searchIcon_162pr_38{color:var(--color-text-dim);flex-shrink:0}._input_162pr_39{color:var(--color-text);font-size:15px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}._input_162pr_39::placeholder{color:var(--color-text-dim)}._kbd_162pr_49{font-size:10px;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;align-items:center;gap:2px;padding:2px 6px;display:inline-flex}._list_162pr_62{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}._item_162pr_70{cursor:pointer;color:var(--color-text);-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;transition:background 80ms;display:flex}._itemActive_162pr_82{background:var(--color-accent-dim)}._itemDisabled_162pr_83{cursor:not-allowed;opacity:.5}._itemDisabled_162pr_83:hover{background:0 0}._itemIcon_162pr_88{color:var(--color-text-muted);flex-shrink:0}._itemLabel_162pr_89{flex:1}._itemEnter_162pr_90{color:var(--color-text-dim);font-size:11px;font-family:var(--font-mono)}._empty_162pr_96{text-align:center;color:var(--color-text-dim);padding:20px;font-size:13px}._footer_162pr_103{border-top:1px solid var(--color-border);color:var(--color-text-dim);background:var(--color-bg-card);gap:16px;padding:8px 16px;font-size:11px;display:flex}._footer_162pr_103 kbd{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;margin-right:3px;padding:1px 5px;font-size:10px;display:inline-block}._container_18l8h_1{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}._toast_73ezc_1{pointer-events:auto;border-radius:var(--radius-md,10px);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:280px;max-width:420px;padding:12px 18px;font-size:13px;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) _slideIn_73ezc_1;display:flex}._success_73ezc_17{border-left:4px solid #0f8}._error_73ezc_18{border-left:4px solid #f44}._warning_73ezc_19{border-left:4px solid #fa0}._info_73ezc_20{border-left:4px solid #06b6d4}[data-theme=light] ._success_73ezc_17{border-left-color:#008f4d}[data-theme=light] ._error_73ezc_18{border-left-color:#c8143a}[data-theme=light] ._warning_73ezc_19{border-left-color:#b86b00}[data-theme=light] ._info_73ezc_20{border-left-color:#0e7490}._icon_73ezc_27{flex-shrink:0;font-size:18px}._message_73ezc_28{flex:1}._close_73ezc_29{color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;line-height:1}._exiting_73ezc_38{animation:.3s cubic-bezier(.16,1,.3,1) forwards _slideOut_73ezc_1}@keyframes _slideIn_73ezc_1{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes _slideOut_73ezc_1{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}:root{--color-brand:#76b900;--color-bg:#000;--color-bg-elevated:#0a0a0a;--color-bg-card:#0a0a0a;--color-bg-hover:#161616;--color-bg-active:#222;--color-surface:#111;--color-border:#262626;--color-border-hover:#404040;--color-text:#fff;--color-text-muted:#888;--color-text-dim:#444;--color-accent:#fff;--color-accent-hover:#eaeaea;--color-accent-glow:#ffffff1a;--color-accent-dim:#ffffff0d;--color-danger:#f44;--color-danger-dim:#ff44441a;--color-warning:#fa0;--color-warning-dim:#ffaa001a;--color-success:#0f8;--color-success-dim:#00ff881a;--color-info:#06b6d4;--color-info-dim:#06b6d41a;--tier-splus:gold;--tier-s:#ff8c00;--tier-aplus:#00c8ff;--tier-a:#3ddc84;--tier-aminus:#7ecf7e;--tier-bplus:#a8a8c8;--tier-b:#808098;--tier-c:#606078;--verdict-perfect:#0f8;--verdict-normal:#76b900;--verdict-slow:#fa0;--verdict-spiky:#f60;--verdict-veryslow:#f44;--verdict-overloaded:#f22;--verdict-unstable:#c00;--verdict-notactive:#555570;--verdict-pending:#444460;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--header-h:60px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:8px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-glow:none;--ease-out:cubic-bezier(.16, 1, .3, 1);--transition-fast:.15s var(--ease-out);--transition-medium:.25s var(--ease-out);--transition-slow:.4s var(--ease-out)}[data-theme=light]{--color-bg:#fff;--color-bg-elevated:#fff;--color-bg-card:#fff;--color-bg-hover:#fafafa;--color-bg-active:#f0f0f0;--color-surface:#fafafa;--color-border:#eaeaea;--color-border-hover:#d5d5d5;--color-text:#000;--color-text-muted:#666;--color-text-dim:#999;--color-accent:#000;--color-accent-hover:#333;--color-accent-glow:#0000000d;--color-accent-dim:#00000005;--color-success:#008f4d;--color-warning:#b86b00;--color-danger:#c8143a;--color-info:#0e7490;--color-danger-dim:#c8143a14;--color-warning-dim:#b86b0014;--color-success-dim:#008f4d14;--color-info-dim:#0e749014;--tier-splus:#b08800;--tier-s:#c45a00;--tier-aplus:#0073a8;--tier-a:#1f7a3e;--tier-aminus:#2f7a2f;--tier-bplus:#5a5a8a;--tier-b:#556;--tier-c:#6a6a7a;--verdict-perfect:#008f4d;--verdict-normal:#4a7a00;--verdict-slow:#b86b00;--verdict-spiky:#c45000;--verdict-veryslow:#c8143a;--verdict-overloaded:#b8101f;--verdict-unstable:#900;--verdict-notactive:#6a6a7a;--verdict-pending:#6a6a8a;--shadow-sm:none;--shadow-md:none;--shadow-lg:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}code{font-family:var(--font-mono);background:var(--color-surface);border-radius:4px;padding:2px 6px;font-size:12px}.bg-grid,.bg-glow{display:none}[data-theme=light] .bg-glow{opacity:.12}[data-theme=light] .bg-grid{background-image:linear-gradient(#0000000a 1px,#0000 1px),linear-gradient(90deg,#0000000a 1px,#0000 1px)}.app-shell{z-index:1;flex-direction:column;flex:1;width:100%;min-height:100vh;display:flex;position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}::-webkit-scrollbar-corner{background:var(--color-bg)}.app-content{z-index:1;min-height:calc(100vh - var(--header-h));flex-direction:column;flex:1;display:flex;position:relative}.view{flex-direction:column;flex:1;min-height:0;display:flex}
1
+ ._header_gqz59_11{z-index:100;height:var(--header-h,60px);background:var(--color-bg-card);-webkit-backdrop-filter:blur(20px)saturate(1.5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;width:100%;padding:0 20px;display:flex;position:sticky;top:0}._left_gqz59_28{flex-shrink:0;align-items:center;gap:14px;display:flex}._center_gqz59_35{flex:1;min-width:0;max-width:480px}._right_gqz59_41{flex-shrink:0;align-items:center;gap:8px;display:flex}._logo_gqz59_49{align-items:center;gap:6px;display:flex}._logoIcon_gqz59_50{color:var(--color-brand);font-family:var(--font-mono);align-items:center;font-size:20px;font-weight:900;display:flex}._logoText_gqz59_58{color:var(--color-text);align-items:center;font-size:14px;font-weight:700;display:flex}._logoTextHighlight_gqz59_64{color:var(--color-brand)}._version_gqz59_65{font-size:10px;font-weight:500;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-accent-dim);border:1px solid var(--color-border);border-radius:999px;padding:2px 6px}._nav_gqz59_72{border-left:1px solid var(--color-border);align-items:center;gap:2px;height:36px;margin-left:8px;padding-left:12px;display:flex}._navBtn_gqz59_82{height:30px;font-size:12px;font-weight:600;font-family:var(--font-sans);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:0 10px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}._navBtn_gqz59_82:hover{background:var(--color-bg-hover);color:var(--color-text)}._navBtnActive_gqz59_103{background:var(--color-accent-dim);color:var(--color-accent);border-color:var(--color-border);font-weight:700}._navBtnActive_gqz59_103:hover{background:var(--color-accent-dim);color:var(--color-accent)}._comingBadge_gqz59_116{font-size:9px;font-weight:700;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-surface);border:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.3px;border-radius:3px;margin-left:2px;padding:1px 4px;line-height:1}._menuWrap_gqz59_132{position:relative}._menuTrigger_gqz59_133{justify-content:center;width:30px;padding:0}._menuPopover_gqz59_138{background:var(--color-bg-elevated);border:1px solid var(--color-border);z-index:200;border-radius:8px;flex-direction:column;gap:1px;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000052}._menuItem_gqz59_153{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:500;transition:background .1s;display:flex}._menuItem_gqz59_153:hover{background:var(--color-bg-hover)}._menuItem_gqz59_153>span:first-of-type{flex:1}._searchBar_gqz59_173{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;height:34px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}._searchBar_gqz59_173:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}._searchIcon_gqz59_183{flex-shrink:0;font-size:14px}._searchInput_gqz59_184{color:var(--color-text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;min-width:0}._searchInput_gqz59_184::placeholder{color:var(--color-text-dim)}._iconBtn_gqz59_192{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:6px 8px;font-size:16px;transition:all .15s;display:inline-flex}._iconBtn_gqz59_192:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}._cmdkBtn_gqz59_202{border:1px solid var(--color-border);background:var(--color-surface);height:30px;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:0 10px;transition:all .15s;display:inline-flex}._cmdkBtn_gqz59_202:hover{border-color:var(--color-accent);background:var(--color-bg-hover)}._cmdkLabel_gqz59_215{letter-spacing:.5px;font-size:11px}._benchmarkBtn_gqz59_218{border:1px solid var(--color-border);background:var(--color-surface);height:30px;color:var(--color-text);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:0 12px;transition:all .15s;display:inline-flex}._benchmarkBtn_gqz59_218:hover{color:#0f8;background:#00ff8814;border-color:#0f8}._benchmarkActive_gqz59_228{cursor:not-allowed;color:#0f8!important;background:#00ff881f!important;border-color:#0f8!important}._benchmarkRunning_gqz59_233{align-items:center;gap:6px;display:inline-flex}@keyframes _spin_gqz59_235{to{transform:rotate(360deg)}}._spinner_gqz59_235{border:2px solid #00ff884d;border-top-color:#0f8;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.8s linear infinite _spin_gqz59_235;display:inline-block}[data-theme=light] ._benchmarkBtn_gqz59_218:hover{color:#008f4d;background:#008f4d0f;border-color:#008f4d}[data-theme=light] ._benchmarkActive_gqz59_228{color:#008f4d!important;background:#008f4d1a!important;border-color:#008f4d!important}[data-theme=light] ._spinner_gqz59_235{border-color:#008f4d #0000001a #0000001a}@media (width<=1024px){._navBtn_gqz59_82>span:not(._comingBadge_gqz59_116){display:none}._navBtn_gqz59_82{padding:0 8px}._center_gqz59_35{max-width:320px}}@media (width<=768px){._center_gqz59_35,._logoText_gqz59_58,._cmdkLabel_gqz59_215,._benchmarkBtn_gqz59_218>span:not(._benchmarkRunning_gqz59_233){display:none}}@media (width<=560px){._version_gqz59_65{display:none}._navBtn_gqz59_82{padding:0 6px}}._footer_1uw54_1{z-index:1;border-top:1px solid var(--color-border);color:var(--color-text-dim);justify-content:space-between;align-items:center;padding:16px 24px;font-size:12px;display:flex;position:relative}._left_1uw54_8 a,._right_1uw54_8 a{color:var(--color-text-dim);text-decoration:none}._left_1uw54_8 a:hover,._right_1uw54_8 a:hover{color:var(--color-accent)}._right_1uw54_8{gap:16px;display:flex}._filters_15z8z_9{z-index:99;background:var(--color-bg-card);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(20px)saturate(1.5);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 20px;display:flex;position:sticky;top:60px}._group_15z8z_19{align-items:center;gap:6px;display:flex}._filterLabel_15z8z_21{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:10px;font-weight:700}._chipRow_15z8z_28{gap:3px;display:flex}._chip_15z8z_28{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;padding:4px 8px;transition:all .15s}._chip_15z8z_28:hover{background:var(--color-bg-hover);color:var(--color-text)}._chipActive_15z8z_37{font-weight:700;background:var(--color-accent)!important;color:var(--color-bg)!important;border-color:var(--color-accent)!important}._select_15z8z_43,._providerSelect_15z8z_43{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-size:11px;font-family:var(--font-sans);cursor:pointer;border-radius:5px;outline:none;min-width:130px;padding:4px 8px}._select_15z8z_43:focus,._providerSelect_15z8z_43:focus{border-color:var(--color-accent)}._spacer_15z8z_53{flex:1}._resetBtn_15z8z_55{font-size:11px;font-weight:700;font-family:var(--font-mono);border:1px solid var(--color-border-hover);background:var(--color-accent-dim);color:var(--color-text);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:4px 9px;transition:all .15s;display:inline-flex}._resetBtn_15z8z_55:hover{background:var(--color-accent);color:var(--color-bg)}._resetBadge_15z8z_68{background:var(--color-bg);min-width:16px;height:16px;color:var(--color-accent);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:9px;font-weight:800;display:inline-flex}._customFilterChip_15z8z_79{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-accent);background:var(--color-accent-dim);color:var(--color-accent);border-radius:5px;align-items:center;gap:6px;max-width:240px;padding:3px 4px 3px 8px;display:inline-flex}._customFilterIcon_15z8z_89{flex-shrink:0;display:inline-flex}._customFilterLabel_15z8z_90{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._customFilterClear_15z8z_95{width:18px;height:18px;color:var(--color-accent);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._customFilterClear_15z8z_95:hover{background:var(--color-accent);color:var(--color-bg)}._pingRow_15z8z_108{gap:3px;display:flex}._pingBtn_15z8z_109{font-size:11px;font-weight:600;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;padding:4px 8px;transition:all .15s}._pingBtn_15z8z_109:hover{background:var(--color-bg-hover);color:var(--color-text);border-color:var(--color-text-muted)}._pingBtnActive_15z8z_117{font-weight:700;background:var(--color-bg-hover)!important;color:var(--ping-active-color,var(--color-accent))!important;border-color:var(--ping-active-color,var(--color-accent))!important}._nextPing_15z8z_125{font-size:11px;font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);border-radius:5px;align-items:center;gap:6px;padding:4px 8px;display:flex}._nextPingLabel_15z8z_133{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}._nextPingTime_15z8z_137{color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;min-width:32px;font-size:13px;font-weight:700}._pingingDot_15z8z_143{background:#f46;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:.6s ease-in-out infinite _pulseDot_15z8z_1}@keyframes _pulseDot_15z8z_1{0%,to{box-shadow:0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 0 6px #0000}}._live_15z8z_154{color:var(--color-accent);text-transform:uppercase;letter-spacing:1px;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}._liveDot_15z8z_159{background:var(--color-accent);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite _pulseDot_15z8z_1}._benchmarkBar_15z8z_165{background:#b400ff1f;border:1px solid #b400ff66;border-radius:6px;flex-shrink:0;align-items:center;gap:10px;width:100%;margin-bottom:4px;padding:6px 12px;display:flex}._benchmarkLabel_15z8z_175{color:#b400ff;font-size:11px;font-weight:700;font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:5px;display:flex}._benchmarkSpinner_15z8z_181{font-size:12px;line-height:1;animation:.8s linear infinite _spinSp_15z8z_1;display:inline-block}._benchmarkCount_15z8z_186{opacity:.8;font-size:10px}._benchmarkTrack_15z8z_187{background:#ffffff1a;border-radius:3px;flex:1;width:120px;height:5px;overflow:hidden}._benchmarkFill_15z8z_193{background:linear-gradient(90deg,#b400ff,#f0f);border-radius:3px;height:100%;transition:width .5s}._benchmarkPct_15z8z_199{color:#b400ff;font-size:11px;font-weight:700;font-family:var(--font-mono);text-align:right;min-width:32px}@keyframes _spinSp_15z8z_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._mood_f9he5_1{text-align:center;width:20px;font-size:14px;display:inline-block}._badge_zw4n6_1{text-align:center;border-radius:4px;min-width:32px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:inline-block}._tier_splus_zw4n6_11{color:gold;background:#ffd70026;border:1px solid #ffd7004d}._tier_s_zw4n6_11{color:#ff8c00;background:#ff8c001f;border:1px solid #ff8c0040}._tier_aplus_zw4n6_13{color:#00c8ff;background:#00c8ff1a;border:1px solid #00c8ff33}._tier_a_zw4n6_13{color:#3ddc84;background:#3ddc841a;border:1px solid #3ddc8433}._tier_aminus_zw4n6_15{color:#7ecf7e;background:#7ecf7e1a;border:1px solid #7ecf7e33}._tier_bplus_zw4n6_16{color:#a8a8c8;background:#a8a8c81a;border:1px solid #a8a8c826}._tier_b_zw4n6_16{color:#808098;background:#8080981a;border:1px solid #80809826}._tier_c_zw4n6_18{color:#606078;background:#6060781a;border:1px solid #60607826}[data-theme=light] ._tier_splus_zw4n6_11{color:#7a5e00;border-color:#b0880066}[data-theme=light] ._tier_s_zw4n6_11{color:#a14a00;border-color:#c45a0066}[data-theme=light] ._tier_aplus_zw4n6_13{color:#005d8a;border-color:#0073a866}[data-theme=light] ._tier_a_zw4n6_13{color:#1f7a3e;border-color:#1f7a3e66}[data-theme=light] ._tier_aminus_zw4n6_15{color:#2f7a2f;border-color:#2f7a2f66}[data-theme=light] ._tier_bplus_zw4n6_16{color:#4a4a72;border-color:#5a5a8a66}[data-theme=light] ._tier_b_zw4n6_16{color:#556;border-color:#5566}[data-theme=light] ._tier_c_zw4n6_18{color:#5a5a6a;border-color:#6a6a7a66}._dot_1u2qu_1{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}._up_1u2qu_9{background:#0f8;box-shadow:0 0 6px #0f86}._down_1u2qu_10,._timeout_1u2qu_11{background:#f44}._pending_1u2qu_12{background:#555570;animation:1.5s ease-in-out infinite _pulse_1u2qu_1}@keyframes _pulse_1u2qu_1{0%,to{box-shadow:0 0 #76b90040}50%{box-shadow:0 0 0 6px #0000}}[data-theme=light] ._up_1u2qu_9{background:#008f4d;box-shadow:0 0 4px #008f4d59}[data-theme=light] ._down_1u2qu_10,[data-theme=light] ._timeout_1u2qu_11{background:#c8143a}[data-theme=light] ._pending_1u2qu_12{background:#889}._cell_ptyq8_1{font-family:var(--font-mono);align-items:center;gap:4px;min-width:54px;font-size:12px;font-weight:600;display:inline-flex}._fast_ptyq8_11{color:#0f8}._medium_ptyq8_12{color:#fa0}._slow_ptyq8_13{color:#f44}._none_ptyq8_14{color:var(--color-text-dim)}@keyframes _pingPulse_ptyq8_1{0%,to{opacity:1}50%{opacity:.3}}@keyframes _pingRing_ptyq8_1{0%{opacity:1;transform:rotate(0)scale(1)}70%{opacity:.6;transform:rotate(180deg)scale(.6)}to{opacity:1;transform:rotate(360deg)scale(1)}}._spinner_ptyq8_26{border:1.5px solid #00ff8840;border-top-color:#0f8;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.8s linear infinite _pingRing_ptyq8_1;display:inline-block}[data-theme=light] ._fast_ptyq8_11{color:#008f4d}[data-theme=light] ._medium_ptyq8_12{color:#b86b00}[data-theme=light] ._slow_ptyq8_13{color:#c8143a}[data-theme=light] ._spinner_ptyq8_26{border-color:#008f4d #0000001f #0000001f}._wrapper_1t2v0_7{vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;line-height:0;display:inline-flex;position:relative}._key_1t2v0_17{color:#fa0;z-index:1;filter:drop-shadow(0 0 1px #ffaa0059);position:relative}._slash_1t2v0_24{pointer-events:none;z-index:2;margin:auto;position:absolute;inset:0}._cell_odwix_7{font-family:var(--font-mono);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}._up_odwix_19{color:#0f8}._warning_odwix_20{color:#fa0}._error_odwix_21{color:#f44}._errorBold_odwix_22{color:#f44;font-weight:800}._dim_odwix_23{color:var(--color-text-dim)}._noKey_odwix_30{color:#fa0;letter-spacing:.4px;background:#ffaa002e;border:1px solid #ffaa0073;border-radius:4px;padding:1px 7px;font-size:12px;font-weight:700}._noKeyText_odwix_40{letter-spacing:.4px;font-weight:700}[data-theme=light] ._noKey_odwix_30{color:#b86b00;background:#ffaa0040;border-color:#ffaa008c}[data-theme=light] ._up_odwix_19{color:#008f4d}[data-theme=light] ._warning_odwix_20{color:#b86b00}[data-theme=light] ._error_odwix_21,[data-theme=light] ._errorBold_odwix_22{color:#c02323}[data-theme=light] ._dim_odwix_23{color:#888}._cell_18ls4_1{align-items:center;gap:6px;display:flex}._bar_18ls4_2{background:var(--color-surface);border-radius:3px;width:48px;height:6px;overflow:hidden}._fill_18ls4_3{border-radius:3px;height:100%;transition:width .25s cubic-bezier(.16,1,.3,1)}._high_18ls4_4{background:linear-gradient(90deg,#0f8,#76b900)}._mid_18ls4_5{background:linear-gradient(90deg,#fa0,#ff8c00)}._low_18ls4_6{background:linear-gradient(90deg,#f44,#c00)}._value_18ls4_7{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}._none_18ls4_8{color:var(--color-text-dim)}[data-theme=light] ._high_18ls4_4{background:linear-gradient(90deg,#008f4d,#4a7a00)}[data-theme=light] ._mid_18ls4_5{background:linear-gradient(90deg,#b86b00,#c45a00)}[data-theme=light] ._low_18ls4_6{background:linear-gradient(90deg,#c8143a,#900)}._badge_5z8g9_5{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}._emoji_5z8g9_16{font-size:12px;line-height:1}._text_5z8g9_17{line-height:1}._perfect_5z8g9_20{color:#0f8;background:#00ff881f}._normal_5z8g9_21{color:#76b900;background:#76b9001f}._slow_5z8g9_22{color:#fa0;background:#ffaa001f}._spiky_5z8g9_23{color:#f60;background:#ff66001f}._veryslow_5z8g9_24{color:#f44;background:#ff44441f}._overloaded_5z8g9_25{color:#f22;background:#ff22221f}._unstable_5z8g9_26{color:#c00;background:#cc00001f}._notactive_5z8g9_27{color:#555570;background:#5555701f}._pending_5z8g9_28{color:#444460;background:#4444601a}[data-theme=light] ._perfect_5z8g9_20{color:#008f4d;background:#008f4d1a}[data-theme=light] ._normal_5z8g9_21{color:#4a7a00;background:#4a7a001a}[data-theme=light] ._slow_5z8g9_22{color:#b86b00;background:#b86b001a}[data-theme=light] ._spiky_5z8g9_23{color:#c45000;background:#c450001a}[data-theme=light] ._veryslow_5z8g9_24{color:#c8143a;background:#c8143a1a}[data-theme=light] ._overloaded_5z8g9_25{color:#b8101f;background:#b8101f1a}[data-theme=light] ._unstable_5z8g9_26{color:#900;background:#9900001a}[data-theme=light] ._notactive_5z8g9_27{color:#5a5a72}[data-theme=light] ._pending_5z8g9_28{color:#5a5a8a}._cell_c8a3q_1{font-family:var(--font-mono);border-radius:4px;align-items:center;gap:4px;min-width:70px;padding:1px 3px;font-size:12px;font-weight:600;transition:background .2s;display:inline-flex}._fast_c8a3q_14{color:#0f8}._medium_c8a3q_15{color:#fa0}._slow_c8a3q_16{color:#f44}._dim_c8a3q_17{color:var(--color-text-dim)}._running_c8a3q_18{color:#b400ff;font-weight:700}._badge_c8a3q_19{color:#06b6d4;font-size:10px}._runningCell_c8a3q_22{background:#b400ff1f}@keyframes _benchSpin_c8a3q_1{to{transform:rotate(360deg)}}@keyframes _benchPulse_c8a3q_1{0%,to{box-shadow:0 0 #b400ff66}50%{box-shadow:0 0 0 4px #b400ff00}}._benchmarkSpinner_c8a3q_34{border:2px solid #b400ff4d;border-top-color:#b400ff;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.6s linear infinite _benchSpin_c8a3q_1;display:inline-block}[data-theme=light] ._fast_c8a3q_14{color:#008f4d}[data-theme=light] ._medium_c8a3q_15{color:#b86b00}[data-theme=light] ._slow_c8a3q_16{color:#c8143a}[data-theme=light] ._badge_c8a3q_19{color:#0e7490}[data-theme=light] ._runningCell_c8a3q_22{background:#7d00b414}._cell_1bcec_1{font-family:var(--font-mono);border-radius:4px;align-items:center;gap:4px;min-width:40px;padding:1px 3px;font-size:12px;font-weight:600;transition:background .2s;display:inline-flex}._fast_1bcec_14{color:#0f8}._slow_1bcec_15{color:#f44}._dim_1bcec_16{color:var(--color-text-dim)}._running_1bcec_17{color:#b400ff;font-weight:700}._badge_1bcec_18{color:#06b6d4;font-size:10px}._runningCell_1bcec_21{background:#b400ff1f}@keyframes _miniSpin_1bcec_29{to{transform:rotate(360deg)}}._miniSpinner_1bcec_29{border:1.5px solid #b400ff4d;border-top-color:#b400ff;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite _miniSpin_1bcec_29;display:inline-block}[data-theme=light] ._fast_1bcec_14{color:#008f4d}[data-theme=light] ._slow_1bcec_15{color:#c8143a}[data-theme=light] ._badge_1bcec_18{color:#0e7490}[data-theme=light] ._runningCell_1bcec_21{background:#7d00b414}._row_2hylr_13{max-width:100%;max-height:var(--pl-max-h,22px);color:var(--color-text);vertical-align:middle;align-items:center;gap:6px;line-height:1;display:inline-flex;overflow:hidden}._icon_2hylr_27{height:var(--pl-icon-h,16px);flex-shrink:0;justify-content:center;align-items:center;width:auto;display:inline-flex}._icon_2hylr_27 svg{width:auto;height:100%;display:block}._textLogo_2hylr_44{height:var(--pl-text-h,12px);flex-shrink:0;justify-content:center;align-items:center;width:auto;display:inline-flex}._textLogo_2hylr_44 svg{width:auto;height:100%;display:block}._iconLegacyWordmark_2hylr_63{height:var(--pl-icon-h,14px);width:auto;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._iconLegacyWordmark_2hylr_63 svg{width:auto;height:100%;display:block}.scalewayLogo{color:#521094;transition:color .2s var(--ease-out,ease)}[data-theme=dark] .scalewayLogo{color:#a78bfa}._fallback_2hylr_96{color:var(--color-text);white-space:nowrap;letter-spacing:.2px;font-size:11px;font-weight:500}._container_jqpk4_8{background:var(--color-bg-card);border-top:0;border-bottom:1px solid var(--color-border);border-left:0;border-right:0;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0;display:flex;overflow:auto}._table_jqpk4_23{border-collapse:collapse;border:0;width:100%;min-width:1200px;font-size:12px}._th_jqpk4_32{text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-hover);border-right:1px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none;z-index:10;text-align:center;padding:9px 8px;font-size:10px;font-weight:700;position:sticky;top:0}._th_jqpk4_32:last-child{border-right:0}._th_jqpk4_32:hover{color:var(--color-accent);background:var(--color-bg-active)}._thInner_jqpk4_59{justify-content:space-between;align-items:center;gap:4px;width:100%;min-width:0;display:flex}._thLabel_jqpk4_67{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}._resizeHandle_jqpk4_81{cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;width:6px;height:22px;margin-left:2px;display:inline-flex;position:relative}._resizeHandle_jqpk4_81:after{content:"";width:2px;height:14px;transition:background .12s var(--ease-out,ease);background:0 0;border-radius:1px;display:block}._resizeHandle_jqpk4_81:hover:after,._resizeHandleActive_jqpk4_106:after{background:var(--color-accent)}._resizeHandleActive_jqpk4_106{cursor:col-resize}._th_jqpk4_32:has(._resizeHandleActive_jqpk4_106){background:var(--color-bg-active);color:var(--color-accent)}.col-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}._resizeToolbar_jqpk4_125{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);z-index:11;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:flex;position:sticky;top:0}._resizeToolbarHint_jqpk4_139{letter-spacing:.2px;align-items:center;gap:4px;display:inline-flex}._resizeToolbarHint_jqpk4_139 strong{color:var(--color-text);font-weight:700;font-family:var(--font-mono)}._resizeResetButton_jqpk4_150{appearance:none;border:1px solid var(--color-border-hover);color:var(--color-text-muted);cursor:pointer;transition:background .12s var(--ease-out,ease), color .12s var(--ease-out,ease), border-color .12s var(--ease-out,ease);white-space:nowrap;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600}._resizeResetButton_jqpk4_150:hover{background:var(--color-bg-active);color:var(--color-accent);border-color:var(--color-accent)}._resizeResetButton_jqpk4_150:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}._th_jqpk4_32:nth-child(6),._th_jqpk4_32:nth-child(7),._th_jqpk4_32:nth-child(11){text-align:left}._sortIcon_jqpk4_179{opacity:.3;margin-left:3px;font-size:9px}._sortIconActive_jqpk4_180{color:var(--color-accent);margin-left:3px;font-size:10px;font-weight:800}._td_jqpk4_183{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap;padding:7px 8px}._td_jqpk4_183:last-child{border-right:0}._td_jqpk4_183:nth-child(6),._td_jqpk4_183:nth-child(7),._td_jqpk4_183:nth-child(11){text-align:left}._table_jqpk4_23 tbody tr{cursor:pointer;transition:background .1s}._table_jqpk4_23 tbody tr:hover{background:var(--color-bg-hover)}._rank1_jqpk4_202 td:first-child{border-left:3px solid gold}._rank2_jqpk4_203 td:first-child{border-left:3px solid silver}._rank3_jqpk4_204 td:first-child{border-left:3px solid #cd7f32}._rankNum_jqpk4_207{font-family:var(--font-mono);color:var(--color-text-dim);text-align:center;font-size:11px;display:block}._swe_jqpk4_215{font-family:var(--font-mono);font-weight:600}._sweHigh_jqpk4_216{color:gold}._sweMid_jqpk4_217{color:#3ddc84}._sweLow_jqpk4_218{color:var(--color-text-dim)}._ctx_jqpk4_220{font-family:var(--font-mono);font-size:11px}._ping_jqpk4_222{font-family:var(--font-mono);font-weight:600}._pingFast_jqpk4_223{color:#0f8}._pingMedium_jqpk4_224{color:#fa0}._pingSlow_jqpk4_225{color:#f44}._pingNone_jqpk4_226{color:var(--color-text-dim)}[data-theme=light] ._sweHigh_jqpk4_216{color:#7a5e00}[data-theme=light] ._sweMid_jqpk4_217{color:#1f7a3e}[data-theme=light] ._pingFast_jqpk4_223{color:#008f4d}[data-theme=light] ._pingMedium_jqpk4_224{color:#b86b00}[data-theme=light] ._pingSlow_jqpk4_225{color:#c8143a}._uptime_jqpk4_235{font-family:var(--font-mono);font-size:11px}._modelCell_jqpk4_238{align-items:center;gap:6px;display:flex;overflow:hidden}._modelMeta_jqpk4_239{flex:1;min-width:0}._modelHeader_jqpk4_240{align-items:center;gap:5px;display:flex}._modelName_jqpk4_241{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}._modelId_jqpk4_242{font-family:var(--font-mono);color:var(--color-text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}@keyframes _benchRowPulse_jqpk4_1{0%,to{background:#b400ff0a}50%{background:#b400ff1a}}._benchRow_jqpk4_253{animation:1.2s ease-in-out infinite _benchRowPulse_jqpk4_1}[data-theme=light] ._container_jqpk4_8,[data-theme=light] ._table_jqpk4_23{border-color:#cfcfcf}[data-theme=light] ._th_jqpk4_32,[data-theme=light] ._td_jqpk4_183{border-color:#d8d8d8}._empty_jqpk4_271{text-align:center;color:var(--color-text-muted);padding:60px 0}._favBtn_jqpk4_274{width:24px;height:24px;color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:color .12s,background .12s,transform .12s;display:inline-flex}._favBtn_jqpk4_274:hover{color:gold;background:#ffd7001a;transform:scale(1.1)}._favBtnActive_jqpk4_289{color:gold}._favBtnActive_jqpk4_289:hover{color:#ffae00;background:#ffae0024}[data-theme=light] ._favBtn_jqpk4_274{color:#999}[data-theme=light] ._favBtn_jqpk4_274:hover{color:#b08800;background:#b088001a}[data-theme=light] ._favBtnActive_jqpk4_289{color:#b08800}._aiLatencyWrap_jqpk4_301{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:2px 4px;transition:background .1s;display:inline-flex;position:relative}._aiLatencyWrap_jqpk4_301:hover{background:#b400ff14}._aiLatencyWrap_jqpk4_301._aiLatencyRunning_jqpk4_312{cursor:progress}._aiLatencyWrap_jqpk4_301._aiLatencyRunning_jqpk4_312:hover{background:0 0}._aiLatencyPlay_jqpk4_314{opacity:0;color:#b400ff;transition:opacity .1s}._aiLatencyWrap_jqpk4_301:hover ._aiLatencyPlay_jqpk4_314{opacity:1}._aiLatencyRunning_jqpk4_312 ._aiLatencyPlay_jqpk4_314{display:none}._incompatible_jqpk4_323 td{color:var(--color-text-muted)!important;background:#ff00000f!important}._incompatible_jqpk4_323:hover td{background:#ff00001a!important}[data-theme=light] ._incompatible_jqpk4_323 td{color:#888!important;background:#c8143a0f!important}._panel_14usx_1{z-index:300;background:var(--color-bg-elevated);border-left:1px solid var(--color-border);width:min(420px,90vw);box-shadow:var(--shadow-lg);transition:transform var(--transition-medium);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}._header_14usx_16{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}._title_14usx_24{margin:0;font-size:16px;font-weight:700}._closeBtn_14usx_30{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}._closeBtn_14usx_30:hover{color:var(--color-text)}._body_14usx_43{padding:24px}._stat_14usx_47{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}._statLabel_14usx_55{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}._statValue_14usx_63,._ping_14usx_68{font-family:var(--font-mono);font-weight:600}._pingFast_14usx_73{color:#0f8}._pingMedium_14usx_74{color:#fa0}._pingSlow_14usx_75{color:#f44}._pingNone_14usx_76{color:var(--color-text-dim)}[data-theme=light] ._pingFast_14usx_73{color:#008f4d}[data-theme=light] ._pingMedium_14usx_74{color:#b86b00}[data-theme=light] ._pingSlow_14usx_75{color:#c8143a}._chart_14usx_82{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);margin:20px 0;padding:16px}._chartTitle_14usx_90{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px;font-size:11px;font-weight:700}._chartEmpty_14usx_99{color:var(--color-text-dim);text-align:center;padding:20px}._actions_14usx_106{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-direction:column;gap:10px;margin:16px 0;padding:12px;display:flex}._favBlock_14usx_117{flex-direction:column;gap:8px;display:flex}._favBtn_14usx_123{background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}._favBtn_14usx_123:hover{color:gold;background:#ffd70014;border-color:gold}._favBtnActive_14usx_143{color:gold;background:#ffd7001f;border-color:gold}._favBtnActive_14usx_143:hover{background:#ffd70029}[data-theme=light] ._favBtn_14usx_123{color:#555}[data-theme=light] ._favBtn_14usx_123:hover{color:#b08800;background:#b088000f;border-color:#b08800}[data-theme=light] ._favBtnActive_14usx_143{color:#b08800;background:#b088001a;border-color:#b08800}._reorderRow_14usx_155{align-items:center;gap:6px;padding:0 4px;display:flex}._reorderBtn_14usx_161{font-size:10px;font-weight:600;font-family:var(--font-mono);background:var(--color-bg-card);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;border-radius:4px;align-items:center;gap:3px;padding:4px 8px;transition:all .12s;display:inline-flex}._reorderBtn_14usx_161:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text);border-color:var(--color-text-muted)}._reorderBtn_14usx_161:disabled{opacity:.4;cursor:not-allowed}._rankBadge_14usx_185{font-size:10px;font-family:var(--font-mono);color:gold;background:#ffd7001f;border:1px solid #ffd7004d;border-radius:999px;margin-left:auto;padding:2px 6px;font-weight:700}[data-theme=light] ._rankBadge_14usx_185{color:#b08800;background:#b088001f;border-color:#b088004d}._benchBtn_14usx_202{font-size:12px;font-weight:700;font-family:var(--font-mono);color:#b400ff;cursor:pointer;background:#b400ff1f;border:1px solid #b400ff66;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;transition:all .15s;display:inline-flex}._benchBtn_14usx_202:hover{background:#b400ff33;border-color:#b400ffb3}[data-theme=light] ._benchBtn_14usx_202{color:#6a00a0;background:#8c00c80f;border-color:#8c00c84d}[data-theme=light] ._benchBtn_14usx_202:hover{background:#8c00c81f}._overlay_1e3f5_1{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s ease-out _fadeIn_1e3f5_1;display:flex;position:fixed;inset:0}._overlay_1e3f5_1[hidden]{display:none}@keyframes _fadeIn_1e3f5_1{0%{opacity:0}to{opacity:1}}._modal_1e3f5_18{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:min(500px,90vw);max-height:80vh;box-shadow:var(--shadow-lg);animation:_modalSlideIn_1e3f5_1 .3s var(--ease-out);overflow-y:auto}@keyframes _modalSlideIn_1e3f5_1{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}._modalHeader_1e3f5_33{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}._modalTitle_1e3f5_40{margin:0;font-size:18px;font-weight:700}._modalClose_1e3f5_45{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}._modalClose_1e3f5_45:hover{color:var(--color-text)}._modalBody_1e3f5_57{padding:24px}._options_1e3f5_60{flex-direction:column;gap:10px;display:flex}._option_1e3f5_60{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);text-align:left;font-family:var(--font-sans);color:var(--color-text);align-items:center;gap:14px;width:100%;padding:14px 18px;display:flex}._option_1e3f5_60:hover{border-color:var(--color-accent);background:var(--color-accent-dim)}._optionIcon_1e3f5_84{flex-shrink:0;font-size:24px}._optionLabel_1e3f5_89{font-size:14px;font-weight:600;display:block}._optionDesc_1e3f5_94{color:var(--color-text-muted);margin-top:2px;font-size:11px;display:block}._page_1847y_1{padding:24px}._pageHeader_1847y_5{margin-bottom:24px}._pageTitle_1847y_9{margin:0 0 6px;font-size:24px;font-weight:800}._pageSubtitle_1847y_15{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}._pageSubtitle_1847y_15 code{font-family:var(--font-mono);background:var(--color-surface);border-radius:4px;padding:2px 6px;font-size:12px}._loading_1847y_30{text-align:center;color:var(--color-text-muted);padding:60px 0}._featureSection_1847y_37{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;margin-bottom:28px;padding:18px 20px}._sectionHeading_1847y_44{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin:0 0 14px;font-size:11px;font-weight:700}._featureGrid_1847y_52{flex-direction:column;gap:4px;display:flex}._featureRow_1847y_57{border:1px solid #0000;border-radius:8px;align-items:center;gap:14px;padding:10px 12px;transition:background .12s;display:flex}._featureRow_1847y_57:hover{background:var(--color-surface)}._featureLabel_1847y_67{flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}._featureLabel_1847y_67>svg{color:var(--color-text-muted);flex-shrink:0;margin-top:2px}._featureTitle_1847y_79{color:var(--color-text);font-size:13px;font-weight:600;line-height:1.4}._featureDesc_1847y_85{color:var(--color-text-muted);margin-top:2px;font-size:11px;line-height:1.5}._featureActions_1847y_91{flex-shrink:0;gap:6px;display:flex}._select_1847y_96{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-size:12px;font-family:var(--font-sans);cursor:pointer;border-radius:5px;outline:none;min-width:130px;padding:5px 8px}._select_1847y_96:focus{border-color:var(--color-accent)}._toggleSwitch_1847y_110{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}._toggleSwitch_1847y_110 input{opacity:0;width:0;height:0}._toggleSlider_1847y_122{background:var(--color-border);cursor:pointer;border-radius:20px;transition:background .15s;position:absolute;inset:0}._toggleSlider_1847y_122:before{content:"";background:var(--color-text);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}._toggleSwitch_1847y_110 input:checked+._toggleSlider_1847y_122{background:var(--color-accent)}._toggleSwitch_1847y_110 input:checked+._toggleSlider_1847y_122:before{transform:translate(16px)}._smallBtn_1847y_148{font-size:11px;font-weight:600;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;white-space:nowrap;border-radius:5px;align-items:center;gap:4px;padding:5px 10px;display:inline-flex}._smallBtn_1847y_148:hover{background:var(--color-bg-hover);border-color:var(--color-text-muted)}._smallBtn_1847y_148:disabled{opacity:.5;cursor:not-allowed}._notice_1847y_166{background:var(--color-info-dim);color:var(--color-info);border:1px solid var(--color-info);border-radius:6px;margin-top:12px;padding:8px 12px;font-size:12px;line-height:1.5}._testBadge_1847y_178{font-size:10px;font-weight:700;font-family:var(--font-mono);border-radius:5px;align-self:flex-start;align-items:center;gap:5px;width:fit-content;margin-bottom:8px;padding:4px 8px;display:inline-flex}._testBadge_1847y_178._test_ok_1847y_191{background:var(--color-success-dim);color:var(--color-success);border:1px solid var(--color-success)}._testBadge_1847y_178._test_auth_error_1847y_192{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid var(--color-danger)}._testBadge_1847y_178._test_rate_limited_1847y_193,._testBadge_1847y_178._test_no_callable_model_1847y_194{background:var(--color-warning-dim);color:var(--color-warning);border:1px solid var(--color-warning)}._testBadge_1847y_178._test_fail_1847y_195{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid var(--color-danger)}._testBadge_1847y_178._test_missing_key_1847y_196,._testBadge_1847y_178._test_pending_1847y_197{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}._testSpinner_1847y_199{border:2px solid #b400ff4d;border-top-color:#b400ff;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite _spin_1847y_1;display:inline-block}@keyframes _spin_1847y_1{to{transform:rotate(360deg)}}._toolbar_1847y_210{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}._toolbarSearch_1847y_218{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1;align-items:center;gap:8px;min-width:200px;height:36px;padding:0 12px;display:flex}._toolbarSearch_1847y_218 svg{color:var(--color-text-dim);flex-shrink:0}._toolbarSearch_1847y_218 input{color:var(--color-text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}._toolbarSearch_1847y_218 input::placeholder{color:var(--color-text-dim)}._toolbarActions_1847y_250{gap:8px;display:flex}._toolbarBtn_1847y_255{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast);font-size:13px;font-weight:500;font-family:var(--font-sans);align-items:center;gap:6px;padding:6px 14px;display:inline-flex}._toolbarBtn_1847y_255:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}._providers_1847y_276{flex-direction:column;gap:12px;display:flex}._card_1847y_282{background:var(--color-bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast);overflow:hidden}._card_1847y_282:hover{border-color:var(--color-border-hover)}._cardHeader_1847y_295{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:12px;padding:16px 20px;display:flex}._cardHeader_1847y_295:hover{background:var(--color-bg-hover)}._cardIcon_1847y_308{border-radius:var(--radius-sm);background:var(--color-accent-dim);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}._cardInfo_1847y_320{flex:1;min-width:0}._cardName_1847y_325{font-size:14px;font-weight:700}._cardMeta_1847y_330{color:var(--color-text-muted);margin-top:2px;font-size:11px}._cardStatus_1847y_336{border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:700}._statusConfigured_1847y_344{background:var(--color-success-dim);color:var(--color-success)}._statusMissing_1847y_349{background:var(--color-warning-dim);color:var(--color-warning)}._toggleIcon_1847y_354{color:var(--color-text-dim);transition:transform var(--transition-fast);flex-shrink:0;font-size:18px}._toggleIconExpanded_1847y_361{transform:rotate(180deg)}._cardBody_1847y_365{max-height:0;transition:max-height var(--transition-medium);border-top:0 solid #0000;overflow:hidden}._cardExpanded_1847y_372 ._cardBody_1847y_365{border-top:1px solid var(--color-border);max-height:500px}._cardContent_1847y_377{padding:16px 20px}._keyGroup_1847y_381{margin-bottom:12px}._keyLabel_1847y_385{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600;display:block}._keyDisplay_1847y_395{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}._keyDisplayValue_1847y_406{font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-all;flex:1;font-size:13px}._keyDisplayActions_1847y_414{flex-shrink:0;gap:4px;display:flex}._actionBtn_1847y_420{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}._actionBtn_1847y_420:hover{background:var(--color-bg-hover)}._actionBtnDanger_1847y_438{background:var(--color-danger-dim);color:var(--color-danger);border-color:#f443}._actionBtnDanger_1847y_438:hover{background:#f443}._keyInputRow_1847y_448{align-items:center;gap:8px;display:flex}._keyInput_1847y_448{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);color:var(--color-text);transition:border-color var(--transition-fast);outline:none;flex:1;padding:8px 12px}._keyInput_1847y_448:focus{border-color:var(--color-accent)}._keyInput_1847y_448::placeholder{color:var(--color-text-dim)}._saveBtn_1847y_475{border-radius:var(--radius-sm);background:var(--color-success-dim);color:var(--color-success);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-sans);transition:all var(--transition-fast);border:1px solid #0f83;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}._saveBtn_1847y_475:hover{background:#00ff8826}._enabledRow_1847y_495{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}._enabledLabel_1847y_504{color:var(--color-text-muted);font-size:12px;font-weight:500}._toggleSwitch_1847y_110{cursor:pointer;width:44px;height:24px;position:relative}._toggleSwitch_1847y_110 input{display:none}._toggleSlider_1847y_122{background:var(--color-surface);border:1px solid var(--color-border);transition:all var(--transition-fast);border-radius:12px;position:absolute;inset:0}._toggleSlider_1847y_122:after{content:"";background:var(--color-text-dim);width:16px;height:16px;transition:all var(--transition-fast);border-radius:50%;position:absolute;top:3px;left:3px}._toggleSwitch_1847y_110 input:checked+._toggleSlider_1847y_122{background:var(--color-accent-dim);border-color:var(--color-accent)}._toggleSwitch_1847y_110 input:checked+._toggleSlider_1847y_122:after{background:var(--color-accent);transform:translate(20px)}._page_1n8f8_1{padding:24px}._pageHeader_1n8f8_5{margin-bottom:24px}._pageTitle_1n8f8_9{margin:0 0 6px;font-size:24px;font-weight:800}._pageSubtitle_1n8f8_15{color:var(--color-text-muted);margin:0;font-size:13px}._grid_1n8f8_21{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}._card_1n8f8_27{background:var(--color-bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;overflow:hidden}._cardWide_1n8f8_36{grid-column:span 2}._cardTitle_1n8f8_40{margin:0 0 16px;font-size:14px;font-weight:700}._empty_1n8f8_49{color:var(--color-text-dim);text-align:center;padding:20px 0}._healthItem_1n8f8_55{border-bottom:1px solid var(--color-border);align-items:center;gap:12px;padding:8px 0;display:flex}._healthItem_1n8f8_55:last-child{border-bottom:none}._healthName_1n8f8_67{flex-shrink:0;width:120px;font-size:12px;font-weight:600}._healthBar_1n8f8_74{background:var(--color-surface);border-radius:4px;flex:1;height:8px;overflow:hidden}._healthFill_1n8f8_82{background:linear-gradient(90deg, var(--color-accent), var(--color-success));height:100%;transition:width var(--transition-medium);border-radius:4px}._healthPct_1n8f8_89{text-align:right;width:40px;font-family:var(--font-mono);font-size:12px;font-weight:600}._pctFast_1n8f8_97{color:#0f8}._pctMedium_1n8f8_98{color:#fa0}._pctSlow_1n8f8_99{color:#f44}[data-theme=light] ._pctFast_1n8f8_97{color:#008f4d}[data-theme=light] ._pctMedium_1n8f8_98{color:#b86b00}[data-theme=light] ._pctSlow_1n8f8_99{color:#c8143a}._leaderItem_1n8f8_105{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:8px 0;display:flex}._leaderItem_1n8f8_105:last-child{border-bottom:none}._leaderRank_1n8f8_117{background:var(--color-surface);width:28px;height:28px;color:var(--color-text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}._rank1_1n8f8_131{color:gold;background:#ffd70026}._rank2_1n8f8_132{color:silver;background:#c0c0c026}._rank3_1n8f8_133{color:#cd7f32;background:#cd7f3226}._leaderName_1n8f8_135{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._leaderLatency_1n8f8_145{font-family:var(--font-mono);color:var(--color-success);flex-shrink:0;font-size:12px;font-weight:600}._tierItem_1n8f8_153{align-items:center;gap:10px;padding:6px 0;display:flex}._tierBadge_1n8f8_160{flex-shrink:0;width:40px}._tierBar_1n8f8_165{background:var(--color-surface);border-radius:5px;flex:1;height:10px;overflow:hidden}._tierFill_1n8f8_173{height:100%;transition:width var(--transition-medium);border-radius:5px}._tierCount_1n8f8_179{text-align:right;width:30px;font-family:var(--font-mono);color:var(--color-text-muted);font-size:12px}@media (width<=1024px){._grid_1n8f8_21{grid-template-columns:1fr}._cardWide_1n8f8_36{grid-column:span 1}}._backdrop_162pr_6{-webkit-backdrop-filter:blur(4px);z-index:500;background:#0000008c;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}._modal_162pr_19{background:var(--color-bg-elevated);border:1px solid var(--color-border-hover);border-radius:14px;flex-direction:column;width:min(560px,92vw);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080}._searchRow_162pr_31{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:14px 16px;display:flex}._searchIcon_162pr_38{color:var(--color-text-dim);flex-shrink:0}._input_162pr_39{color:var(--color-text);font-size:15px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}._input_162pr_39::placeholder{color:var(--color-text-dim)}._kbd_162pr_49{font-size:10px;font-family:var(--font-mono);color:var(--color-text-dim);background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;align-items:center;gap:2px;padding:2px 6px;display:inline-flex}._list_162pr_62{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}._item_162pr_70{cursor:pointer;color:var(--color-text);-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;transition:background 80ms;display:flex}._itemActive_162pr_82{background:var(--color-accent-dim)}._itemDisabled_162pr_83{cursor:not-allowed;opacity:.5}._itemDisabled_162pr_83:hover{background:0 0}._itemIcon_162pr_88{color:var(--color-text-muted);flex-shrink:0}._itemLabel_162pr_89{flex:1}._itemEnter_162pr_90{color:var(--color-text-dim);font-size:11px;font-family:var(--font-mono)}._empty_162pr_96{text-align:center;color:var(--color-text-dim);padding:20px;font-size:13px}._footer_162pr_103{border-top:1px solid var(--color-border);color:var(--color-text-dim);background:var(--color-bg-card);gap:16px;padding:8px 16px;font-size:11px;display:flex}._footer_162pr_103 kbd{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;margin-right:3px;padding:1px 5px;font-size:10px;display:inline-block}._backdrop_1y1s7_6{-webkit-backdrop-filter:blur(4px);z-index:500;background:#0000008c;justify-content:center;align-items:center;padding:5vh 4vw;display:flex;position:fixed;inset:0}._modal_1y1s7_19{background:var(--color-bg-elevated);border:1px solid var(--color-border-hover);border-radius:14px;flex-direction:column;width:min(820px,95vw);max-height:90vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080}._header_1y1s7_31{border-bottom:1px solid var(--color-border);padding:20px 24px 16px}._titleRow_1y1s7_36{justify-content:space-between;align-items:center;gap:12px;display:flex}._title_1y1s7_36{color:var(--color-text);margin:0;font-size:17px;font-weight:700}._closeBtn_1y1s7_50{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:inline-flex}._closeBtn_1y1s7_50:hover{color:var(--color-text);background:var(--color-bg-hover)}._searchBar_1y1s7_63{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;height:34px;margin-top:12px;padding:0 12px;display:flex}._searchBar_1y1s7_63:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}._searchIcon_1y1s7_78{color:var(--color-text-dim)}._searchInput_1y1s7_79{color:var(--color-text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}._searchInput_1y1s7_79::placeholder{color:var(--color-text-dim)}._note_1y1s7_90{color:var(--color-text-muted);margin:10px 0 0;font-size:11px;line-height:1.5}._note_1y1s7_90 kbd{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;padding:1px 5px;font-size:10px;display:inline-block}._body_1y1s7_106{flex:1;padding:18px 24px 24px;overflow-y:auto}._section_1y1s7_112{margin-bottom:18px}._sectionTitle_1y1s7_113{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin:0 0 8px;font-size:12px;font-weight:700}._itemList_1y1s7_122{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}._item_1y1s7_122{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;grid-template-columns:minmax(160px,.4fr) 1fr;align-items:baseline;gap:12px;padding:6px 10px;font-size:12px;display:grid}._itemKey_1y1s7_141{color:var(--color-text);font-weight:600;font-family:var(--font-mono);font-size:11px}._itemDesc_1y1s7_147{color:var(--color-text-muted);line-height:1.5}._empty_1y1s7_152{text-align:center;color:var(--color-text-dim);padding:40px 20px;font-size:13px}._backdrop_5ik46_6{-webkit-backdrop-filter:blur(4px);z-index:500;background:#0000008c;justify-content:center;align-items:center;padding:5vh 4vw;display:flex;position:fixed;inset:0}._modal_5ik46_19{background:var(--color-bg-elevated);border:1px solid var(--color-border-hover);border-radius:14px;flex-direction:column;width:min(720px,95vw);max-height:88vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080}._header_5ik46_31{border-bottom:1px solid var(--color-border);padding:16px 20px}._titleRow_5ik46_36{align-items:center;gap:12px;display:flex}._title_5ik46_36{color:var(--color-text);flex:1;min-width:0;margin:0;font-size:16px;font-weight:700}._backBtn_5ik46_51{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-sans);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}._backBtn_5ik46_51:hover{background:var(--color-bg-hover);border-color:var(--color-text-muted)}._closeBtn_5ik46_68{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:inline-flex}._closeBtn_5ik46_68:hover{color:var(--color-text);background:var(--color-bg-hover)}._body_5ik46_82{flex:1;padding:16px 20px 20px;overflow-y:auto}._indexHint_5ik46_89{color:var(--color-text-muted);margin:0 0 12px;font-size:11px}._versionList_5ik46_95{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}._versionBtn_5ik46_103{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;transition:all .1s;display:flex}._versionBtn_5ik46_103:hover{background:var(--color-bg-hover);border-color:var(--color-text-muted)}._versionLabel_5ik46_119{font-family:var(--font-mono);color:var(--color-text);font-size:13px;font-weight:700}._versionSummary_5ik46_125{color:var(--color-text-muted);font-size:11px}._details_5ik46_130{flex-direction:column;gap:14px;display:flex}._sectionTitle_5ik46_132{text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin:0 0 6px;font-size:12px;font-weight:700}._itemList_5ik46_140{flex-direction:column;gap:4px;margin:0;padding-left:20px;list-style:outside;display:flex}._item_5ik46_140{color:var(--color-text);word-break:break-word;font-size:12px;line-height:1.55}._empty_5ik46_155{text-align:center;color:var(--color-text-dim);padding:40px 20px;font-size:13px}._wrap_10lrt_6{display:inline-flex;position:relative}._chip_10lrt_11{height:28px;font-size:11px;font-weight:700;font-family:var(--font-mono);background:var(--color-success-dim);color:var(--color-success);border:1px solid var(--color-success);cursor:pointer;font-family:var(--font-mono);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:0 10px;transition:all .15s;display:inline-flex}._chip_10lrt_11:hover{background:var(--color-success);color:var(--color-bg)}._checking_10lrt_34{opacity:.5;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}._dot_10lrt_42{background:var(--color-text-muted);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite _pulse_10lrt_1}@keyframes _pulse_10lrt_1{0%,to{opacity:.3}50%{opacity:1}}._popover_10lrt_54{background:var(--color-bg-elevated);border:1px solid var(--color-border-hover);z-index:200;border-radius:10px;width:320px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 12px 32px #0006}._popoverHeader_10lrt_67{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}._popoverTitle_10lrt_74{color:var(--color-success);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}._popoverClose_10lrt_82{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:inline-flex}._popoverClose_10lrt_82:hover{color:var(--color-text);background:var(--color-bg-hover)}._popoverBody_10lrt_95{color:var(--color-text);margin:0;padding:10px 12px;font-size:12px;line-height:1.5}._popoverBody_10lrt_95 strong{color:var(--color-success);font-family:var(--font-mono)}._popoverActions_10lrt_107{gap:6px;padding:8px 12px 12px;display:flex}._primaryAction_10lrt_113,._secondaryAction_10lrt_114{cursor:pointer;height:32px;font-size:11px;font-weight:600;font-family:var(--font-sans);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:5px;padding:0 10px;transition:all .15s;display:inline-flex}._primaryAction_10lrt_113{background:var(--color-success);color:var(--color-bg);border:1px solid var(--color-success)}._primaryAction_10lrt_113:hover{background:var(--color-success);filter:brightness(.9)}._secondaryAction_10lrt_114{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}._secondaryAction_10lrt_114:hover{background:var(--color-bg-hover);border-color:var(--color-text-muted)}._container_18l8h_1{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}._toast_73ezc_1{pointer-events:auto;border-radius:var(--radius-md,10px);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:280px;max-width:420px;padding:12px 18px;font-size:13px;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) _slideIn_73ezc_1;display:flex}._success_73ezc_17{border-left:4px solid #0f8}._error_73ezc_18{border-left:4px solid #f44}._warning_73ezc_19{border-left:4px solid #fa0}._info_73ezc_20{border-left:4px solid #06b6d4}[data-theme=light] ._success_73ezc_17{border-left-color:#008f4d}[data-theme=light] ._error_73ezc_18{border-left-color:#c8143a}[data-theme=light] ._warning_73ezc_19{border-left-color:#b86b00}[data-theme=light] ._info_73ezc_20{border-left-color:#0e7490}._icon_73ezc_27{flex-shrink:0;font-size:18px}._message_73ezc_28{flex:1}._close_73ezc_29{color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;line-height:1}._exiting_73ezc_38{animation:.3s cubic-bezier(.16,1,.3,1) forwards _slideOut_73ezc_1}@keyframes _slideIn_73ezc_1{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes _slideOut_73ezc_1{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}:root{--color-brand:#76b900;--color-bg:#000;--color-bg-elevated:#0a0a0a;--color-bg-card:#0a0a0a;--color-bg-hover:#161616;--color-bg-active:#222;--color-surface:#111;--color-border:#262626;--color-border-hover:#404040;--color-text:#fff;--color-text-muted:#888;--color-text-dim:#444;--color-accent:#fff;--color-accent-hover:#eaeaea;--color-accent-glow:#ffffff1a;--color-accent-dim:#ffffff0d;--color-danger:#f44;--color-danger-dim:#ff44441a;--color-warning:#fa0;--color-warning-dim:#ffaa001a;--color-success:#0f8;--color-success-dim:#00ff881a;--color-info:#06b6d4;--color-info-dim:#06b6d41a;--tier-splus:gold;--tier-s:#ff8c00;--tier-aplus:#00c8ff;--tier-a:#3ddc84;--tier-aminus:#7ecf7e;--tier-bplus:#a8a8c8;--tier-b:#808098;--tier-c:#606078;--verdict-perfect:#0f8;--verdict-normal:#76b900;--verdict-slow:#fa0;--verdict-spiky:#f60;--verdict-veryslow:#f44;--verdict-overloaded:#f22;--verdict-unstable:#c00;--verdict-notactive:#555570;--verdict-pending:#444460;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--header-h:60px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:8px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-glow:none;--ease-out:cubic-bezier(.16, 1, .3, 1);--transition-fast:.15s var(--ease-out);--transition-medium:.25s var(--ease-out);--transition-slow:.4s var(--ease-out)}[data-theme=light]{--color-bg:#fff;--color-bg-elevated:#fff;--color-bg-card:#fff;--color-bg-hover:#fafafa;--color-bg-active:#f0f0f0;--color-surface:#fafafa;--color-border:#eaeaea;--color-border-hover:#d5d5d5;--color-text:#000;--color-text-muted:#666;--color-text-dim:#999;--color-accent:#000;--color-accent-hover:#333;--color-accent-glow:#0000000d;--color-accent-dim:#00000005;--color-success:#008f4d;--color-warning:#b86b00;--color-danger:#c8143a;--color-info:#0e7490;--color-danger-dim:#c8143a14;--color-warning-dim:#b86b0014;--color-success-dim:#008f4d14;--color-info-dim:#0e749014;--tier-splus:#b08800;--tier-s:#c45a00;--tier-aplus:#0073a8;--tier-a:#1f7a3e;--tier-aminus:#2f7a2f;--tier-bplus:#5a5a8a;--tier-b:#556;--tier-c:#6a6a7a;--verdict-perfect:#008f4d;--verdict-normal:#4a7a00;--verdict-slow:#b86b00;--verdict-spiky:#c45000;--verdict-veryslow:#c8143a;--verdict-overloaded:#b8101f;--verdict-unstable:#900;--verdict-notactive:#6a6a7a;--verdict-pending:#6a6a8a;--shadow-sm:none;--shadow-md:none;--shadow-lg:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}code{font-family:var(--font-mono);background:var(--color-surface);border-radius:4px;padding:2px 6px;font-size:12px}.bg-grid,.bg-glow{display:none}[data-theme=light] .bg-glow{opacity:.12}[data-theme=light] .bg-grid{background-image:linear-gradient(#0000000a 1px,#0000 1px),linear-gradient(90deg,#0000000a 1px,#0000 1px)}.app-shell{z-index:1;flex-direction:column;flex:1;width:100%;min-height:100vh;display:flex;position:relative}.update-warning-banner{top:var(--header-h,60px);z-index:90;background:var(--color-danger);color:#fff;letter-spacing:.01em;text-align:center;border-bottom:1px solid #ffffff38;padding:10px 18px;font-size:13px;font-weight:800;position:sticky;box-shadow:0 8px 24px #00000038}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}::-webkit-scrollbar-corner{background:var(--color-bg)}.app-content{z-index:1;min-height:calc(100vh - var(--header-h));flex-direction:column;flex:1;display:flex;position:relative}.view{flex-direction:column;flex:1;min-height:0;display:flex}
@@ -48,8 +48,8 @@
48
48
  <link rel="preconnect" href="https://fonts.googleapis.com">
49
49
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
50
50
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
51
- <script type="module" crossorigin src="/assets/index-BoWmUveV.js"></script>
52
- <link rel="stylesheet" crossorigin href="/assets/index-BrpHevg4.css">
51
+ <script type="module" crossorigin src="/assets/index-Blp9QJev.js"></script>
52
+ <link rel="stylesheet" crossorigin href="/assets/index-Cz_aCLTR.css">
53
53
  </head>
54
54
  <body>
55
55
  <div id="root"></div>
package/web/server.js CHANGED
@@ -26,12 +26,21 @@ import { readFileSync, existsSync } from 'node:fs'
26
26
  import { join, dirname, extname } from 'node:path'
27
27
  import { fileURLToPath } from 'node:url'
28
28
  import { exec } from 'node:child_process'
29
+ import { createRequire } from 'node:module'
29
30
  import { Server } from 'socket.io'
30
31
 
32
+ // 📖 Resolve the local package version for /api/version — same trick the TUI uses.
33
+ const require = createRequire(import.meta.url)
34
+ const { version: LOCAL_VERSION } = require('../package.json')
35
+
31
36
  import { sources, MODELS } from '../sources.js'
32
37
  import { loadConfig, getApiKey, saveConfig, isProviderEnabled } from '../src/core/config.js'
33
38
  import { ensureFavoritesConfig } from '../src/core/favorites.js'
34
39
  import { ping } from '../src/core/ping.js'
40
+ import { loadChangelog } from '../src/core/changelog-loader.js'
41
+ import { checkForUpdateDetailed, checkForUpdate, runUpdate, fetchLastReleaseDate } from '../src/core/updater.js'
42
+ import { syncShellEnv, ensureShellRcSource, removeShellEnv } from '../src/core/shell-env.js'
43
+ import { cleanupLegacyProxyArtifacts } from '../src/core/legacy-proxy-cleanup.js'
35
44
  import {
36
45
  getAvg, getVerdict, getUptime, getP95, getJitter,
37
46
  getStabilityScore,
@@ -77,6 +86,7 @@ const runtime = {
77
86
  globalBenchmarkRunning: false,
78
87
  globalBenchmarkTotal: 0,
79
88
  globalBenchmarkCompleted: 0,
89
+ updateStatus: null,
80
90
  }
81
91
 
82
92
  const results = MODELS.map(([modelId, label, tier, sweScore, ctx, providerKey], idx) => ({
@@ -286,6 +296,7 @@ function getModelsPayload() {
286
296
  globalBenchmarkRunning: runtime.globalBenchmarkRunning,
287
297
  globalBenchmarkTotal: runtime.globalBenchmarkTotal,
288
298
  globalBenchmarkCompleted: runtime.globalBenchmarkCompleted,
299
+ updateStatus: runtime.updateStatus,
289
300
  models: results.map(serializeModel),
290
301
  }
291
302
  }
@@ -514,7 +525,34 @@ async function handleRequest(req, res) {
514
525
 
515
526
  const url = new URL(req.url, `http://${req.headers.host || `localhost:${DEFAULT_WEB_PORT}`}`)
516
527
 
517
- const keyMatch = url.pathname.match(/^\/api\/key\/(.+)$/)
528
+ // 📖 M2: /api/key/:provider/test — matched here (above the switch) so the
529
+ // 📖 M2 path doesn't conflict with the single-segment key reveal below.
530
+ // 📖 Mirrors the TUI Settings `T` key behavior: parallel auth probe + chat
531
+ // 📖 ping through the existing ping() helper.
532
+ const keyTestMatch = url.pathname.match(/^\/api\/key\/([^/]+)\/test$/)
533
+ if (keyTestMatch) {
534
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
535
+ const providerKey = decodeURIComponent(keyTestMatch[1])
536
+ if (!sources[providerKey]) { sendJson(res, 404, { error: 'Unknown provider' }); return }
537
+ const apiKey = getApiKey(config, providerKey)
538
+ if (!apiKey) { sendJson(res, 200, { outcome: 'missing_key', detail: `${providerKey} has no saved API key.` }); return }
539
+ try {
540
+ const result = await ping(apiKey, '', providerKey, sources[providerKey].url, { silent: true })
541
+ if (result?.code === 200 || result?.code === '200') { sendJson(res, 200, { outcome: 'ok', code: 200 }); return }
542
+ if (result?.code === 401 || result?.code === '401' || result?.code === 403 || result?.code === '403') {
543
+ sendJson(res, 200, { outcome: 'auth_error', code: result.code }); return
544
+ }
545
+ sendJson(res, 200, { outcome: 'fail', code: result?.code ?? 'ERR', detail: 'Probe did not return a 2xx' })
546
+ } catch (err) {
547
+ sendJson(res, 200, { outcome: 'fail', detail: err.message || 'Probe failed' })
548
+ }
549
+ return
550
+ }
551
+
552
+ // 📖 Single-provider key reveal endpoint. The M2 /api/key/:provider/test
553
+ // 📖 route is matched above (above the switch) and uses a stricter regex
554
+ // 📖 (one segment, not two) so the two routes coexist cleanly.
555
+ const keyMatch = url.pathname.match(/^\/api\/key\/([^/]+)$/)
518
556
  if (keyMatch) {
519
557
  const providerKey = decodeURIComponent(keyMatch[1])
520
558
  if (!sources[providerKey]) {
@@ -753,6 +791,115 @@ async function handleRequest(req, res) {
753
791
  return
754
792
  }
755
793
 
794
+ // ── M2: /api/version — local vs latest + lastRelease date ─────────────
795
+ case '/api/version': {
796
+ try {
797
+ const { latestVersion, error } = await checkForUpdateDetailed()
798
+ const lastReleaseDate = await fetchLastReleaseDate()
799
+ sendJson(res, 200, {
800
+ local: LOCAL_VERSION,
801
+ latest: latestVersion,
802
+ lastReleaseDate,
803
+ error: error || null,
804
+ })
805
+ } catch (err) {
806
+ sendJson(res, 200, { local: LOCAL_VERSION, latest: null, lastReleaseDate: null, error: err.message || 'update check failed' })
807
+ }
808
+ return
809
+ }
810
+
811
+ // ── M2: /api/update/check — force a fresh registry check ──────────────
812
+ case '/api/update/check': {
813
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
814
+ const { latestVersion, error } = await checkForUpdateDetailed()
815
+ sendJson(res, 200, { latest: latestVersion, error: error || null })
816
+ return
817
+ }
818
+
819
+ // ── M2: /api/update/run — spawn the package manager upgrade ──────────
820
+ case '/api/update/run': {
821
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
822
+ const body = await readJsonBody(req)
823
+ const target = typeof body?.version === 'string' && body.version ? body.version : null
824
+ // 📖 Mirrors the TUI's `Shift+U` behavior: install + tell the user to
825
+ // 📖 restart the server. We don't kill the in-process server from
826
+ // 📖 here because that would interrupt every connected client.
827
+ if (target) {
828
+ runUpdate(target)
829
+ sendJson(res, 200, { started: true, version: target, message: 'Update initiated — restart the dashboard to apply.' })
830
+ } else {
831
+ const { latestVersion } = await checkForUpdateDetailed()
832
+ if (!latestVersion) { sendJson(res, 404, { error: 'No update available' }); return }
833
+ runUpdate(latestVersion)
834
+ sendJson(res, 200, { started: true, version: latestVersion, message: 'Update initiated — restart the dashboard to apply.' })
835
+ }
836
+ return
837
+ }
838
+
839
+ // ── M2: /api/changelog — parsed changelog directory ─────────────────
840
+ case '/api/changelog': {
841
+ sendJson(res, 200, loadChangelog())
842
+ return
843
+ }
844
+
845
+ // ── M2: /api/settings/feature — single-feature toggle endpoint ───────
846
+ case '/api/settings/feature': {
847
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
848
+ const body = await readJsonBody(req)
849
+ if (!body || typeof body !== 'object' || !body.feature) {
850
+ sendJson(res, 400, { error: 'Missing "feature" key' }); return
851
+ }
852
+ if (!config.settings || typeof config.settings !== 'object') config.settings = {}
853
+ const before = config.settings[body.feature]
854
+ // 📖 Boolean features are toggled unless the caller passes an explicit value.
855
+ if (body.value !== undefined) {
856
+ // 📖 Explicit value (string / boolean / number) always wins. Used for
857
+ // 📖 things like theme='auto'|'dark'|'light' where a string payload
858
+ // 📖 is the right shape.
859
+ config.settings[body.feature] = body.value
860
+ } else if (typeof before === 'boolean') {
861
+ // 📖 No explicit value → toggle for boolean features
862
+ // 📖 (e.g. favoritesPinnedAndSticky).
863
+ config.settings[body.feature] = !before
864
+ } else {
865
+ config.settings[body.feature] = true
866
+ }
867
+ const result = saveConfig(config)
868
+ if (!result.success) { sendJson(res, 500, { error: result.error || 'Save failed' }); return }
869
+ sendJson(res, 200, { success: true, feature: body.feature, value: config.settings[body.feature] })
870
+ return
871
+ }
872
+
873
+ // ── M2: /api/shell-env/toggle — flip shell env export for the user ──
874
+ case '/api/shell-env/toggle': {
875
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
876
+ const body = await readJsonBody(req)
877
+ const enable = typeof body?.enabled === 'boolean' ? body.enabled : undefined
878
+ if (!config.settings || typeof config.settings !== 'object') config.settings = {}
879
+ if (enable === undefined) {
880
+ config.settings.shellEnvEnabled = !config.settings.shellEnvEnabled
881
+ } else {
882
+ config.settings.shellEnvEnabled = enable
883
+ }
884
+ if (config.settings.shellEnvEnabled) {
885
+ syncShellEnv(config)
886
+ ensureShellRcSource()
887
+ } else {
888
+ removeShellEnv()
889
+ }
890
+ saveConfig(config)
891
+ sendJson(res, 200, { success: true, enabled: config.settings.shellEnvEnabled })
892
+ return
893
+ }
894
+
895
+ // ── M2: /api/legacy-cleanup — run the discontinued-proxy cleanup ─────
896
+ case '/api/legacy-cleanup': {
897
+ if (req.method !== 'POST') { res.writeHead(405); res.end('Method Not Allowed'); return }
898
+ const summary = cleanupLegacyProxyArtifacts()
899
+ sendJson(res, 200, summary)
900
+ return
901
+ }
902
+
756
903
  default:
757
904
  // 📖 Serve Vite's /assets/* bundle, and our static favicon set that
758
905
  // 📖 Vite copies verbatim from web/public/ into web/dist/. The legacy
@@ -830,7 +977,16 @@ function openBrowser(url) {
830
977
  })
831
978
  }
832
979
 
833
- export async function startWebServer(port = DEFAULT_WEB_PORT, { open = true, startPingLoop = true } = {}) {
980
+ export async function startWebServer(port = DEFAULT_WEB_PORT, { open = true, startPingLoop = true, updateStatus = null } = {}) {
981
+ runtime.updateStatus = updateStatus && updateStatus.allowedOutdated
982
+ ? {
983
+ latestVersion: updateStatus.latestVersion || null,
984
+ allowedOutdated: true,
985
+ warningMessage: updateStatus.warningMessage || null,
986
+ failures: updateStatus.failures || 0,
987
+ }
988
+ : null
989
+
834
990
  const portStatus = await inspectExistingWebServer(port)
835
991
 
836
992
  if (portStatus.inUse && portStatus.isFcm) {