:root{color-scheme:light dark;--bg:#f5f6f8;--panel:#fff;--ink:#202734;--muted:#667085;--line:#e2e6ee;--accent:#4257dd;--accent-ink:#fff;--accent-bg:#edf0ff;--good:#16734d;--good-bg:#e9f7ef;--warn:#815b13;--warn-bg:#fff5df;--bad:#b3232a;--bad-bg:#fff0f0;--sidebar:248px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
:root[data-theme="dark"]{--bg:#12151b;--panel:#1b2029;--ink:#edf0f6;--muted:#aab4c6;--line:#343b49;--accent:#aab5ff;--accent-ink:#182142;--accent-bg:#2c365d;--good:#90dbb9;--good-bg:#203c31;--warn:#f5cc83;--warn-bg:#3c311f;--bad:#ffb2b2;--bad-bg:#48292c}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:20px 12px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:10px;align-items:center;padding:0 8px 22px}.brand-mark{display:grid;place-items:center;border-radius:10px;width:34px;height:34px;background:var(--accent-bg);color:var(--accent);font-weight:700}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:var(--muted)}.project-nav{display:grid;gap:3px}.nav-heading{font-size:11px;letter-spacing:.08em;color:var(--muted);padding:18px 10px 6px}.nav-item{appearance:none;border:0;background:transparent;color:var(--ink);text-align:left;border-radius:8px;padding:9px 10px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover,.nav-item.active{background:var(--accent-bg);color:var(--accent)}.sidebar-note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);margin:20px 8px 0;padding-top:14px}.main-content{width:min(1180px,100%);padding:28px;margin:0 auto}.topbar,.section-heading,.composer-actions,.action-group,.project-heading,.native-toolbar,.connection-row{display:flex;align-items:center;gap:12px}.topbar,.section-heading,.project-heading{justify-content:space-between}.topbar{margin-bottom:20px}.topbar h1{font-size:23px;margin:0 0 3px;font-weight:600}.topbar p,h2,h3,p{margin:0}.topbar p,.hint,.frame-note{font-size:12px;color:var(--muted)}.icon-button,.secondary,.primary,.upload-button,.text-button{font:inherit;cursor:pointer;border-radius:8px;padding:8px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}.icon-button{padding:6px 10px;font-size:17px}.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}button:disabled{opacity:.55;cursor:not-allowed}.composer,.connection-form,.native-panel,.empty-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.composer>label,.connection-form label{font-weight:600;display:grid;gap:7px}.composer textarea{width:100%;min-height:130px;border:0;background:transparent;color:var(--ink);font:inherit;padding:12px 0;resize:vertical;outline:none}.composer-actions{justify-content:flex-start;border-top:1px solid var(--line);padding-top:13px;flex-wrap:wrap}.action-group{margin-left:auto}.upload-button{display:inline-flex;align-items:center}.image-preview{display:flex;align-items:center;gap:12px;background:var(--bg);border-radius:9px;padding:10px;margin-bottom:12px}.image-preview img{width:58px;height:58px;border-radius:6px;object-fit:cover}.image-preview div{display:grid;gap:2px;min-width:0}.image-preview strong,.image-preview span{overflow-wrap:anywhere}.image-preview span{font-size:12px;color:var(--muted)}.text-button{margin-left:auto;border:0;background:transparent;color:var(--accent)}.form-error,.network-error{color:var(--bad);background:var(--bad-bg);padding:9px 11px;border-radius:8px;font-size:13px;margin:12px 0 0}.confirm-box{border:1px solid var(--accent);background:var(--accent-bg);border-radius:9px;margin-top:14px;padding:14px}.confirm-box p{font-size:12px;color:var(--muted);margin-top:4px}.confirm-box pre{white-space:pre-wrap;overflow-wrap:anywhere;border-left:2px solid var(--accent);font:inherit;margin:12px 0;padding-left:10px}.results-section{margin-top:24px}.section-heading{margin-bottom:12px}.section-heading h2,.project-heading h2{font-size:17px}.result-actions{display:flex;align-items:center;gap:10px}.elapsed{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-card{border:1px solid var(--line);background:var(--panel);border-radius:11px;padding:15px;display:grid;gap:11px;min-width:0}.result-top,.result-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.result-title{font-weight:600}.result-sub,.result-foot{font-size:11px;color:var(--muted)}.result-output{white-space:pre-wrap;overflow-wrap:anywhere;min-height:42px;font-size:13px}.result-output.pending{color:var(--muted)}.badge{font-size:11px;white-space:nowrap;padding:3px 7px;border-radius:5px;background:var(--bg);color:var(--muted)}.badge.running{color:var(--accent);background:var(--accent-bg)}.badge.succeeded{color:var(--good);background:var(--good-bg)}.badge.failed,.badge.blocked{color:var(--bad);background:var(--bad-bg)}.badge.not_applicable{color:var(--warn);background:var(--warn-bg)}.copy-result{border:0;background:transparent;color:var(--accent);padding:0;cursor:pointer}.eyebrow{font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.project-heading{margin-bottom:16px}.native-panel{padding:0;overflow:hidden}.native-toolbar{padding:10px 12px;background:var(--bg);border-bottom:1px solid var(--line);font-size:12px;overflow:hidden}.native-toolbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.link-button{text-decoration:none}.native-panel iframe{display:block;width:100%;height:min(65vh,720px);border:0;background:#fff}.frame-note{padding:8px 12px}.empty-panel{margin-bottom:14px}.empty-panel h3,.connection-form h3{font-size:15px;margin-bottom:5px}.connection-form{display:grid;gap:14px}.connection-form label input{width:100%;font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px}.connection-row{justify-content:space-between;align-items:flex-end}.connection-row label{flex:1}.connection-row .checkbox{display:flex;align-items:center;gap:8px;font-weight:400}.connection-row .checkbox input{width:auto}.connection-form .action-group{margin-left:0}.probe-ok{color:var(--good)}.probe-fail{color:var(--bad)}
@media(max-width:760px){:root{--sidebar:174px}.main-content{padding:18px}.results-grid{grid-template-columns:1fr}.sidebar{padding:16px 8px}.brand{padding-left:4px}.nav-item{padding:8px}.sidebar-note{margin-left:4px;margin-right:4px}}
@media(max-width:540px){.app-shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.brand{padding-bottom:12px}.project-nav{display:flex;overflow:auto;padding-bottom:4px}.nav-heading{display:none}.nav-item{flex:0 0 auto}.sidebar-note{display:none}.main-content{padding:14px}.topbar{align-items:flex-start}.composer-actions .hint{width:100%}.action-group{margin-left:0;margin-top:2px}.section-heading,.project-heading{align-items:flex-start}.result-actions{align-items:flex-end;flex-direction:column}.connection-row{align-items:stretch;flex-direction:column}}
.run-input-context{display:grid;gap:5px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:12px}.run-input-context p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.run-input-context strong{font-size:12px}.empty-panel .link-button{display:inline-block;margin-top:12px}

.providers-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.providers-heading h2{font-size:18px;margin:2px 0 5px}.gateway-card,.provider-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.gateway-card{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.gateway-card h3,.provider-card h3{font-size:16px;margin:0}.gateway-endpoint{display:flex;align-items:center;gap:8px}.gateway-endpoint code,.alias code{overflow-wrap:anywhere}.provider-explainer{font-size:12px;color:var(--muted);background:var(--accent-bg);border-radius:9px;padding:11px 13px;margin:0 0 14px}.providers-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider-card{display:grid;gap:13px}.provider-top{display:flex;justify-content:space-between;gap:10px}.provider-badge{font-size:11px;line-height:1.35;padding:4px 7px;border-radius:6px;align-self:flex-start;max-width:160px}.provider-badge.ready{background:var(--good-bg);color:var(--good)}.provider-badge.disabled{background:var(--bg);color:var(--muted)}.provider-badge.missing{background:var(--bad-bg);color:var(--bad)}.provider-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.provider-fields label{font-weight:600;display:grid;gap:6px;font-size:12px}.provider-fields input{width:100%;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:8px 9px}.provider-fields .readonly-input{color:var(--muted);background:var(--bg);cursor:default}.provider-controls,.aliases{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.provider-controls .checkbox{display:flex;align-items:center;gap:7px;font-size:13px}.aliases{font-size:12px;border-top:1px solid var(--line);padding-top:11px}.aliases>span:first-child{color:var(--muted)}.alias{display:inline-flex;align-items:center;gap:5px;background:var(--bg);border-radius:6px;padding:4px 6px}.provider-note{font-size:12px;color:var(--muted);margin:0}.provider-actions{margin-left:0}@media(max-width:760px){.providers-list{grid-template-columns:1fr}}@media(max-width:540px){.providers-heading,.gateway-card{align-items:flex-start;flex-direction:column}.provider-fields{grid-template-columns:1fr}.gateway-endpoint{max-width:100%}.gateway-endpoint code{max-width:220px}}
.credential-write{display:flex;gap:9px;align-items:end;border-top:1px solid var(--line);padding-top:11px}.credential-write label{display:grid;gap:6px;flex:1;font-size:12px;font-weight:600}.credential-write input{width:100%;font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 9px}.validations{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:11px;font-size:12px}.validations>span{color:var(--muted)}.validation{border-left:3px solid var(--line);background:var(--bg);padding:7px 9px;border-radius:0 6px 6px 0}.validation.passed{border-left-color:var(--good)}.validation.failed{border-left-color:var(--bad)}.validation p{margin:2px 0 0;overflow-wrap:anywhere}.validation-meta{color:var(--muted)}@media(max-width:540px){.credential-write{align-items:stretch;flex-direction:column}.credential-write button{align-self:flex-start}}.model-list{margin-top:7px}.model-list summary{cursor:pointer;color:var(--accent)}.model-list pre{max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 0;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.provider-fields select{width:100%;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:8px 9px}.provider-fields select+input{margin-top:6px}.run-model-label{display:grid;gap:3px;font-size:12px;color:var(--muted)}.run-model-label select{max-width:260px;padding:7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font:inherit}@media(max-width:540px){.run-model-label{width:100%}.run-model-label select{max-width:none;width:100%}}