:root{color:#18201d;background:#f6f7f4;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#18201d;color:#f7f2e9;padding:24px 18px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand strong,.brand span{display:block}.brand span{color:#b9c6bd;font-size:13px;margin-top:4px}.tabs{display:grid;gap:8px}.tab{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;border:0;border-radius:8px;color:#dce6df;background:transparent;cursor:pointer;padding:0 12px;text-align:left}.tab:hover,.activeTab{background:#2b3a34;color:#fff}.main{padding:28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.topbar h1{font-size:24px;line-height:1.25;margin:0 0 8px}.topbar p{color:#607067;margin:0}.iconButton{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid #ccd5ce;border-radius:8px;background:#fff;color:#29352f;cursor:pointer}.iconButton:hover{border-color:#87998d}.actions,.itemActions{display:flex;align-items:center;gap:8px}.selectedItem{border-color:#3d7a6b;background:#f0faf6}.textButton{min-height:34px;border:1px solid #ccd5ce;border-radius:8px;background:#fff;color:#29352f;cursor:pointer;padding:0 12px}.textButton:hover{border-color:#87998d}.primaryButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:0;border-radius:8px;background:#2f6f62;color:#fff;cursor:pointer;padding:0 16px}.primaryButton:hover{background:#24584e}.notice{width:100%;border:1px solid #d9c893;border-radius:8px;background:#fff8df;color:#5f4a12;margin-bottom:14px;padding:12px 14px}.tokenBox{display:grid;gap:8px;width:100%;border:1px solid #b8d5c7;border-radius:8px;background:#effaf4;color:#1d4b35;margin-bottom:14px;padding:12px 14px}.tokenBox code{color:#18342a;overflow-wrap:anywhere;white-space:pre-wrap}.panel{display:grid;gap:20px}.panelTitle{display:flex;align-items:center;gap:8px}.panelTitle h2{font-size:18px;margin:0}.statsGrid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.stat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px;min-height:104px;border:1px solid #dce3de;border-radius:8px;background:#fff;padding:18px}.stat span{color:#607067}.stat strong{grid-column:1 / -1;font-size:30px;line-height:1}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.summary>div{border-left:4px solid #3d7a6b;background:#fff;border-radius:8px;padding:16px}.summary span,.summary strong{display:block}.summary span{color:#607067;margin-bottom:8px}.summary strong{overflow-wrap:anywhere}.list{display:grid;gap:12px}.sessionsGrid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px}.pendingPanel{display:grid;gap:10px;border:1px solid #dce3de;border-radius:8px;background:#fff;padding:16px}.pendingPanel h2{font-size:17px;margin:0}.pendingItem{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #edf1ee;padding-top:10px}.pendingItem strong,.pendingItem span{display:block}.pendingItem span{color:#607067;font-size:13px;margin-top:4px;overflow-wrap:anywhere}.pendingItem select{min-height:34px;border:1px solid #cfd8d2;border-radius:8px;background:#fff;color:#18201d;padding:0 10px}.messagePane{display:grid;gap:10px;align-content:start}.messageItem{border:1px solid #dce3de;border-radius:8px;background:#fff;padding:14px}.messageItem span,.messageItem small{display:block;color:#607067;font-size:12px}.messageItem p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.webClientGrid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px}.webClientPanel,.chatPanel{display:grid;align-content:start;gap:14px;border:1px solid #dce3de;border-radius:8px;background:#fff;padding:16px}.webClientActions{display:flex;flex-wrap:wrap;gap:8px}.statusLine{display:grid;grid-template-columns:auto 1fr;gap:10px;border-top:1px solid #edf1ee;padding-top:12px}.statusLine span{color:#607067}.statusLine strong{overflow-wrap:anywhere}.logList{display:grid;align-content:start;gap:10px;min-height:360px;max-height:58vh;overflow:auto}.logItem{border:1px solid #dce3de;border-radius:8px;padding:12px}.logItem span{display:block;color:#607067;font-size:12px;margin-bottom:6px}.logItem p{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.logItem.in{background:#f7fbff;border-color:#c9d8e8}.logItem.out{background:#f0faf6;border-color:#b8d5c7}.logItem.system{background:#fff8df;border-color:#d9c893}.sendBar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.sendBar input{min-width:0;border:1px solid #cfd8d2;border-radius:8px;color:#18201d;background:#fff;padding:10px 11px}.editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid #dce3de;border-radius:8px;background:#fff;margin-bottom:16px;padding:18px}.editorHeader{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px}.editorHeader h2{font-size:18px;margin:0}.field{display:grid;gap:7px}.field span,.checkField span{color:#607067;font-size:13px}.field input,.field select,.field textarea{width:100%;border:1px solid #cfd8d2;border-radius:8px;color:#18201d;background:#fff;padding:10px 11px}.field textarea{min-height:112px;resize:vertical}.full{grid-column:1 / -1}.checkField{display:flex;align-items:center;gap:8px}.editor .primaryButton{justify-self:start}.item{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:1px solid #dce3de;border-radius:8px;background:#fff;padding:16px}.item h2{font-size:17px;line-height:1.35;margin:0 0 6px}.item p{color:#607067;margin:0;overflow-wrap:anywhere}.badge{flex:0 0 auto;border:1px solid #d3d8d4;border-radius:999px;color:#6d7670;padding:5px 10px;font-size:13px}.badgeActive{border-color:#8fc4a4;background:#e9f8ee;color:#286242}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{padding:16px}.tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.tab{justify-content:center}.main{padding:20px}.statsGrid,.summary,.editor,.sessionsGrid,.webClientGrid{grid-template-columns:1fr}.item{display:grid}.itemActions{justify-content:flex-start;flex-wrap:wrap}.pendingItem{display:grid}.sendBar{grid-template-columns:1fr}}
