:root{--bg:#f5f7fb;--ink:#1d2a40;--muted:#718096;--line:#e4e9f2;--blue:#3266e3;--nav:#122039;--green:#1d8664;--red:#b84854;--violet:#8b6cd9}
*{box-sizing:border-box}body{margin:0;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}[hidden]{display:none!important}a{color:var(--blue);text-decoration:none}button,input,select{font:inherit}button,a.button,summary{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,svg [tabindex]:focus-visible{outline:3px solid #95b7ff;outline-offset:3px}.app-shell{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--nav);color:#fff;padding:31px 20px;position:sticky;top:0;height:100vh;flex-shrink:0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:650;font-size:16px}.brand small{display:block;color:#92a5c0;font-size:11px;font-weight:400;margin-top:3px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:#396be6;color:white;border-radius:11px;font-weight:700;font-size:18px}.sidebar nav{display:flex;flex-direction:column;gap:8px;margin-top:45px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;color:#adbed5;font-size:13px}.sidebar nav a:hover,.sidebar nav a.active{color:white;background:#263c5b}.nav-icon{font:10px/1 Consolas,monospace;color:#6984ab;letter-spacing:1px}.active .nav-icon{color:#9abaff}.sidebar-foot{margin-top:auto;color:#91a6c2;font-size:11px;padding-bottom:9px}.status-dot{display:inline-block;width:6px;height:6px;background:#58c9a0;border-radius:50%;margin-right:5px}.logout-form{margin:0}.logout{background:none;border:0;color:#91a6c2;padding:3px 0;font-size:11px}main{width:100%;min-width:0;max-width:1620px;padding:36px 40px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow,.section-kicker{font-size:9px;color:#7d8ea5;letter-spacing:1.8px;font-weight:650;margin:0 0 8px}h1{font-size:28px;line-height:1.3;font-weight:650;margin:0;letter-spacing:-.5px}h2{font-size:16px;font-weight:600;margin:0}.subtitle{font-size:13px;color:var(--muted);margin:10px 0 0}.badge{font-size:10px;border:1px solid #d5e0f5;background:#eef3ff;color:#4a70b7;padding:3px 8px;border-radius:5px;white-space:nowrap}.panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:23px;box-shadow:0 2px 5px #172e4803}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px 22px;margin-bottom:25px}.filters>label{flex:1;min-width:150px;max-width:280px}label{display:block;font-size:11px;color:#566981}input,select{display:block;width:100%;border:1px solid #d7dfeb;border-radius:6px;background:#fff;min-height:39px;padding:8px 10px;color:var(--ink);margin-top:5px;font-size:12px}input::placeholder{color:#9da8b8}input[readonly]{background:#f5f7fb;color:#748399}button,.button{border:1px solid #d7dfeb;border-radius:6px;display:inline-block;background:#fff;color:#405371;padding:8px 15px;line-height:22px;font-size:12px;white-space:nowrap}.primary{background:var(--blue);border-color:var(--blue);color:white}.primary:hover{background:#2458ce}button:disabled{opacity:.65;cursor:wait}.filter-actions{display:flex;gap:8px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-intro{display:flex;align-items:center;gap:20px;margin:0 0 17px}.section-intro .section-kicker{margin:0;white-space:nowrap}.section-intro p{margin:0;color:var(--muted);font-size:11px}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.chart-card{margin-bottom:0;position:relative;min-width:0;padding-bottom:17px}.chart-unit{font:11px/1 Consolas,monospace;color:#8390a4}.svg-chart{min-height:250px;position:relative}.svg-chart svg{display:block;width:100%;overflow:visible}.svg-chart.comparison{max-height:420px;overflow:auto}.chart-caption{font-size:10px;color:#8793a5;margin:12px 0 0}.chart-legend{display:flex;gap:16px;color:#75849b;font-size:10px;margin-bottom:6px;flex-wrap:wrap}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--blue)}.legend-dot.output{background:var(--violet)}.chart-gridline{stroke:#eaf0f7;stroke-width:1;stroke-dasharray:3 4}.chart-axis{fill:#8c98aa;font:10px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.chart-category{fill:#60748f;font:11px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.chart-value{fill:#6a7e99;font:10px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.chart-unknown{fill:#9ba5b5;font:10px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.chart-tooltip{position:absolute;right:21px;top:60px;padding:11px 13px;background:#152740ed;color:#fff;border-radius:7px;box-shadow:0 5px 20px #16324f19;max-width:240px;z-index:2;pointer-events:none;font-size:11px;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}.chart-tooltip strong{font-size:11px}.chart-empty{min-height:245px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#93a0b2;text-align:center;font-size:12px;padding:25px}.chart-empty strong{font-size:13px;color:#70839e;font-weight:500}.chart-empty p{font-size:11px;max-width:280px;margin:7px 0 0}.usage-note{font-size:11px;color:var(--muted);margin:17px 0 0}.muted{color:var(--muted);font-size:11px}.dimension-switch{display:flex;gap:2px;border:1px solid #d9e2f1;border-radius:7px;padding:3px;margin:0;align-self:center;background:#f5f8fd}.segment{position:relative;padding:7px 10px;color:#7c8da7;white-space:nowrap;border-radius:4px;cursor:pointer}.segment input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;min-height:0;cursor:pointer}.segment:has(input:checked){background:#fff;color:#3266e3;box-shadow:0 1px 4px #233e6214}.segment:has(input:focus-visible){outline:2px solid #95b7ff}.page-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-section-head .section-kicker{display:block;margin-bottom:6px}.count{font-size:12px;color:#8a9cb5;background:#edf2f8;border-radius:5px;padding:2px 7px;margin-left:6px}.connection-card,.route-card{padding:0 23px}.connection-card summary,.route-card summary,.add-panel summary{display:flex;align-items:center;gap:15px;list-style:none;padding:21px 0}.connection-card summary::-webkit-details-marker,.route-card summary::-webkit-details-marker,.add-panel summary::-webkit-details-marker{display:none}.connection-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:11px;background:#eef3ff;color:#5479b5;font-size:16px}.connection-title{flex:1;min-width:0}.connection-title h2,.route-title h2{font-size:15px}.connection-title p,.route-title p{font-size:11px;color:#7b8ba3;margin:5px 0 0;overflow-wrap:anywhere}.config-status{display:flex;gap:8px;align-items:center;flex-shrink:0}.status{display:inline-block;background:#eff2f7;color:#8090a6;border-radius:5px;padding:3px 8px;font-size:10px;white-space:nowrap}.status.success{background:#e9f6ef;color:var(--green)}.status.failed,.status.interrupted{background:#fceff1;color:var(--red)}.status.client_cancelled{background:#fff5df;color:#99722d}.edit-hint{font-size:11px;color:#8a9bb3;margin-left:8px}.config-form{border-top:1px solid var(--line);padding:23px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.config-form label small{display:block;font-size:10px;color:#8996a9;margin-top:6px}.full-width{grid-column:1/-1}.form-options{grid-column:1/3;display:flex;align-items:center;gap:24px}.check{display:flex;align-items:center;gap:7px;color:#61768f}.check input{display:inline-block;width:14px;min-height:14px;height:14px;margin:0;accent-color:var(--blue)}.form-actions{display:flex;align-items:center;gap:15px;grid-column:1/-1}.form-error{font-size:11px;color:var(--red);margin:0}.preset-note{margin:0;font-size:11px;color:#7d8fa8;line-height:1.8}.preset-note a{margin-left:5px;white-space:nowrap}.route-title{flex:1;min-width:0}.route-title .badge{margin-left:9px;font-weight:400}.route-title p{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.route-arrow{color:#9aacbf}.mono{font-family:Consolas,monospace}.default-form{display:flex;align-items:center;gap:15px;padding-bottom:23px}.add-panel{padding-top:0;padding-bottom:0}.add-panel summary{justify-content:space-between}.add-panel .config-form{padding-bottom:23px}.notice{border:1px solid #dce5f3;background:#eef3fb;color:#6b80a2;font-size:11px;padding:13px 17px;border-radius:8px;margin:20px 0;line-height:1.8}.notice.success{background:#eaf7f0;border-color:#c9eadb;color:var(--green)}.notice.error{background:#fff0f0;border-color:#f4cecf;color:var(--red)}.empty{text-align:center;padding:40px 18px;color:var(--muted)}.empty strong{display:block;font-size:15px;color:#526985;font-weight:500}.empty p{margin:8px 0 0;font-size:12px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}th{color:#8593a7;font-size:10px;font-weight:500;background:#f8fafc}td,th{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}td strong{font-weight:500}td small{display:block;margin-top:4px;font-size:10px;color:#91a0b5}tbody tr:last-child td{border-bottom:0}.log-table td:last-child{min-width:180px;max-width:260px;white-space:normal}.pagination{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);padding-top:20px}.pagination div{display:flex;gap:8px}footer{margin-top:32px;font-size:10px;color:#94a0b2}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-page{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 0%,#e4ecff,#f5f7fb 70%)}.login-card{max-width:420px;padding:38px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 16px 60px #132d5810}.login-card>.brand-icon{margin-bottom:25px}.login-card h1{font-size:25px}.login-card .subtitle{font-size:13px;margin-bottom:25px}.login-card form label{margin-bottom:17px}.login-card .primary{width:100%;margin:8px 0 12px}.login-card .muted{font-size:11px;margin-bottom:0}
@media(max-width:1150px){main{padding:30px 25px}.sidebar{width:205px}.chart-grid{gap:16px}.chart-card{padding:20px 18px}.config-form{grid-template-columns:repeat(2,minmax(0,1fr))}.config-form>label:nth-of-type(3){grid-column:1/-1}.form-options{grid-column:1/-1}.config-status{gap:6px}.config-status .edit-hint{display:none}.section-intro{flex-wrap:wrap;gap:5px 15px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto;padding:18px 17px;display:block}.brand{font-size:14px}.brand-icon{width:31px;height:31px;font-size:15px}.brand small{display:none}.sidebar nav{margin-top:19px;flex-direction:row;gap:4px;justify-content:space-between}.sidebar nav a{padding:8px 5px;display:block;text-align:center;font-size:11px;flex:1}.nav-icon{display:none}.sidebar-foot{display:none}.logout-form{position:absolute;right:18px;top:22px}.logout{font-size:10px}main{padding:27px 17px}.page-header{align-items:start;margin-bottom:22px}.page-header>.badge{display:none}h1{font-size:24px}.subtitle{font-size:12px;line-height:1.8}.panel{padding:17px;border-radius:9px}.filters{gap:10px}.filters>label{min-width:calc(50% - 10px);max-width:none}.filter-actions{width:100%;margin-top:2px}.filter-actions button,.filter-actions .button{flex:1;text-align:center}.dimension-switch{width:100%;margin-bottom:3px}.dimension-switch .segment{flex:1;text-align:center}.chart-grid{grid-template-columns:1fr;gap:17px}.section-intro{display:block;margin-bottom:17px}.section-intro p{margin-top:5px;font-size:10px}.section-title h2{font-size:15px}.svg-chart{min-height:235px}.chart-card{padding-bottom:15px}.chart-caption{font-size:10px;line-height:1.8}.connection-card,.route-card{padding:0 17px}.connection-card summary{flex-wrap:wrap;padding:18px 0;gap:11px}.connection-avatar{width:35px;height:35px;font-size:14px}.connection-title h2{font-size:14px}.connection-title p{font-size:10px}.connection-card .config-status{width:100%;padding-left:46px}.config-status .edit-hint{display:block;margin-left:auto}.config-form{grid-template-columns:1fr;gap:15px;padding-top:19px}.config-form>label:nth-of-type(3){grid-column:auto}.form-options{align-items:start;flex-direction:column;gap:13px}.form-actions{align-items:start;flex-direction:column;gap:8px}.route-card summary{align-items:start;padding:19px 0;gap:8px}.route-card .config-status{flex-direction:column;align-items:end;gap:7px}.route-card .config-status .edit-hint{font-size:10px;margin:0}.route-title h2{font-size:14px;overflow-wrap:anywhere}.route-title h2 .badge{font-size:9px;padding:2px 5px;margin-left:5px}.route-title p{gap:6px}.page-section-head h2{font-size:14px}.page-section-head>.button{font-size:10px;padding:7px 10px}.add-panel{padding-top:0;padding-bottom:0}.add-panel summary h2{font-size:14px}.add-panel .edit-hint{font-size:10px}.pagination{gap:12px;align-items:start;flex-direction:column}.usage-note{font-size:10px;line-height:1.9}.login-card{padding:28px}}
.key-instructions{margin-top:0}.key-instructions strong{font-size:12px;color:#4f6e9c}.key-instructions p{margin:7px 0 0}.key-instructions code{font-size:10px;color:#48678f;overflow-wrap:anywhere}.check-panel{border-top:1px solid var(--line);padding:20px 0 23px}.check-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.check-heading strong{font-size:12px;font-weight:600}.check-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.check-help{font-size:10px;line-height:1.8;color:#8593a8;margin:9px 0 0}.check-confirm{border:1px solid #efdcb8;background:#fff9ee;color:#8c754c;border-radius:7px;padding:13px 15px;margin-top:13px}.check-confirm p{font-size:11px;margin:0 0 12px;line-height:1.8}.check-result{border:1px solid #dce5f4;border-radius:7px;background:#f1f5fc;color:#6582aa;padding:13px 15px;margin-top:13px;font-size:11px;line-height:1.9;overflow-wrap:anywhere}.check-result p{margin:5px 0 0}.check-result strong{font-size:12px}.check-result[data-state=success]{border-color:#cce9db;background:#edf8f2;color:#428167}.check-result[data-state=failed]{border-color:#efd7dc;background:#fcf1f3;color:#a55d6a}.check-metadata{font-size:10px;opacity:.9}.check-dirty{font-size:11px;color:#a67b38;margin:11px 0 0}@media(max-width:760px){.check-heading{align-items:start;flex-direction:column;gap:10px}.check-panel{padding-top:17px}.check-buttons .button,.check-buttons .primary{font-size:11px;padding:7px 12px}}
.mock-mode-notice{margin-top:0;background:#fff8e9;border-color:#eddcb6;color:#9a7c40}.mock-mode-notice p{margin:6px 0 0}.mock-mode-notice code{font-size:10px}.key-command>span{display:block;font-size:10px;color:#8797ac;margin-bottom:7px}.copy-command{display:flex;align-items:center;gap:12px;background:#f6f8fc;border:1px solid #e1e8f2;border-radius:6px;padding:10px 12px}.copy-command code{flex:1;min-width:0;font:11px/1.8 Consolas,monospace;color:#587596;overflow-wrap:anywhere;user-select:all}.copy-command .button{font-size:10px;padding:4px 9px}@media(max-width:760px){.copy-command{align-items:start;flex-direction:column;gap:9px}.copy-command .button{align-self:end}}

.check-stop{margin-top:13px}.check-result[data-state=cancelled]{border-color:#eddcb6;background:#fff8e9;color:#9a7c40}.checked-models{margin-top:10px}.checked-models summary{display:block;padding:4px 0;font-size:11px;text-decoration:underline}.checked-models pre{font:11px/1.9 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;padding:10px 12px;background:#ffffff99;border-radius:5px;user-select:all}.checked-models button{font-size:10px;padding:4px 10px}

.provider-advanced{border:1px solid #e4eaf3;border-radius:7px;padding:12px 14px;background:#f9fbfe}.provider-advanced>summary{display:block;padding:0;font-size:11px;color:#7890ae}.provider-advanced>.muted{margin:10px 0}.provider-advanced .key-command{margin-top:13px}.provider-secret-form{border-top:1px solid var(--line);padding:20px 0 23px}.provider-secret-form>label{max-width:650px}.secret-help{font-size:10px;color:#8a99ae;margin:8px 0 13px}.key-save-result{font-size:11px;margin:0;overflow-wrap:anywhere}.key-save-result[data-state=success]{color:var(--green)}.key-save-result[data-state=failed]{color:var(--red)}.connection-card .config-status{flex-wrap:wrap}.secret-new small{line-height:1.8}@media(max-width:760px){.provider-advanced{padding:12px}.provider-secret-form{padding-top:17px}.provider-secret-form .form-actions{align-items:stretch}.provider-secret-form .primary{align-self:start}}
