:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#e9edf7;background:#101219;color-scheme:dark;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:76px;border-bottom:1px solid #2a2d38;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2))}header>div{display:flex;align-items:center;gap:14px}header strong{font-size:20px}.mark{display:grid;place-items:center;background:#b5f598;color:#192915;border-radius:11px;width:34px;height:34px;font-size:23px;font-weight:800}.muted{color:#969dac;line-height:1.7}main{max-width:1180px;margin:auto;padding:38px 24px}.intro,.sectionHead{display:flex;justify-content:space-between;align-items:center;gap:12px}.intro{margin-bottom:25px}.intro h1{margin:8px 0}h1{font-size:31px;letter-spacing:-1px}h2{font-size:17px;margin:0 0 6px}.eyebrow{font-size:11px;letter-spacing:2px;color:#a7ce98;font-weight:600}.pill{color:#b5f598;border:1px solid #344733;background:#1c2a20;padding:8px 12px;border-radius:30px;font-size:12px}.card{background:#191c25;border:1px solid #303441;border-radius:16px;padding:24px;margin-bottom:20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.connection{display:grid;grid-template-columns:180px 1fr 1.3fr;align-items:center;gap:22px}.connection p{margin-bottom:0}label{display:block;font-size:12px;color:#bfc6d4;margin:14px 0 8px}input,textarea{display:block;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #3b4050;border-radius:8px;background:#11141c;color:#f0f2f8;font:inherit;outline:none}input:focus,textarea:focus{border-color:#b5f598;box-shadow:0 0 0 2px #b5f59820}input[readonly]{color:#a9b3c7;font-family:monospace;font-size:12px}button{border:1px solid #414757;border-radius:8px;padding:10px 14px;color:#d9e0ef;background:#242936;font:inherit;cursor:pointer;white-space:nowrap}button:hover{filter:brightness(1.15)}button:focus-visible{outline:2px solid #b5f598;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.primary{background:#b5f598;color:#182411;border-color:#b5f598;font-weight:650}.row{display:flex;align-items:stretch;gap:8px}.row input{margin-top:0;min-width:0}.row{margin-top:7px}.row textarea{margin:0}.two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.note{font-size:12px;line-height:1.7;color:#8993a6}.keyForm{border-top:1px solid #303441;margin-top:14px;padding-top:4px}.keyForm button{margin:8px 0}.keyItem{border:1px solid #353c4c;padding:13px;border-radius:10px;margin:10px 0;display:flex;align-items:center;gap:8px}.keyItem.active{border-color:#6d9759;background:#202a24}.keyItem>div{flex:1;min-width:0;overflow-wrap:anywhere}.keyItem small{display:block;color:#98a2b5;margin-top:4px}.keyItem button{font-size:12px;padding:7px 9px}.delete{color:#efa9a9}details{margin-top:14px}summary{cursor:pointer;color:#a3adbd;font-size:12px}pre{white-space:pre-wrap;word-break:break-word;font:12px/1.65 Consolas,monospace;color:#bac7dc;max-height:240px;overflow:auto}.login{max-width:430px;margin:10vh auto;padding:34px}.login h1{margin:16px 0 8px}.login button{width:100%;margin-top:16px}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:min(90vw,700px);padding:14px 20px;background:#303c2c;border:1px solid #7eab6b;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;z-index:5}#notice.error{background:#432a2a;border-color:#b36c6c}#chatLog{max-height:480px;overflow:auto}.bubble{padding:16px 18px;margin:12px 0;border-radius:10px;background:#11151d;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}.bubble strong{display:block;font-size:11px;letter-spacing:1px;color:#a5bbcb;margin-bottom:6px}.bubble.assistant{border-left:2px solid #b5f598}.bubble small{display:block;color:#8a96a8;margin-top:8px}footer{text-align:center;color:#606a7b;padding:20px;font-size:12px}[hidden]{display:none!important}@media(max-width:900px){.connection{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.card{padding:20px}.connection label{margin:0}}@media(max-width:500px){main{padding:25px 14px}header{padding:0 16px}.intro{align-items:flex-start}.pill{font-size:10px}.two{gap:0 10px}.keyItem{flex-wrap:wrap}.keyItem>div{flex-basis:100%}h1{font-size:27px}.row{flex-wrap:wrap}.row input,.row textarea{flex-basis:100%}header .muted{font-size:12px}}
.quota{padding:18px;background:#11151d;border-radius:10px;margin:16px 0}.quota>span{font-size:12px;color:#aab5c7}.quota strong{display:block;color:#b5f598;font-size:30px;margin:6px 0}.quota small{color:#8993a6}.keyBalance{display:block;color:#b5f598;font-weight:600;margin-top:8px}.connection{grid-template-columns:160px 1fr 1.6fr}.connection .row{flex-wrap:wrap}.connection .row input{flex-basis:100%}@media(max-width:900px){.connection{grid-template-columns:1fr}}

.logToolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.logToolbar label{margin:0}select{background:#11141c;color:#d9e0ef;border:1px solid #414757;border-radius:8px;padding:9px}.logTableWrap{overflow-x:auto}.logTable{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.logTable th{color:#9ba9bb;font-weight:500;padding:12px 8px;border-bottom:1px solid #3b4050}.logTable td{padding:14px 8px;border-bottom:1px solid #303441;vertical-align:top;min-width:75px}.logTable small{display:block;color:#8993a6;margin-top:6px}.logTable .logError{color:#eca2a2;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logModel{overflow-wrap:anywhere;max-width:220px}.logPager{margin-top:18px}.outcome-error,.outcome-refused{color:#eca2a2}.outcome-success{color:#b5f598}dialog{background:#191c25;color:#e9edf7;border:1px solid #414757;border-radius:15px;width:min(760px,92vw);padding:25px}dialog::backdrop{background:#000a}dialog pre{max-height:65vh;font-size:13px}#keyList{max-height:590px;overflow-y:auto}

#route_mode{display:block;width:100%;margin-top:7px}
.imageDrop{border:1px dashed #414757;border-radius:10px;padding:14px;margin-top:14px}.imageList{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.imageList figure{margin:0;padding:10px;background:#11151d;border-radius:8px;width:150px}.imageList img{width:128px;height:96px;object-fit:contain}.imageList figcaption{font-size:12px;overflow-wrap:anywhere;margin:6px 0}.imageList button{padding:5px 10px;font-size:12px}.bubble img{display:inline-block;max-width:min(180px,100%);max-height:140px;object-fit:contain;margin:8px 8px 0 0}.imageDrop .row input{min-width:0;flex:1}
