:root{--bg: #f6f7f9;--panel: #ffffff;--text: #1d2330;--muted: #6b7385;--accent: #6b4ce6;--border: #e3e6ec;--error: #c62828;--ok: #2e7d32;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}h1{font-size:20px;margin:0 0 16px}.muted{color:var(--muted)}.error{color:var(--error);margin:0}.ok{color:var(--ok);margin:0}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:14px;width:100%;max-width:360px}.card.narrow{max-width:420px}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px}button{padding:9px 14px;border:0;border-radius:6px;background:var(--accent);color:#fff;font-size:14px;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--accent);padding:0}.shell{display:flex;min-height:100vh}.sidebar{width:200px;background:#1f1a3a;color:#fff;padding:16px 0;flex-shrink:0}.brand{font-weight:600;padding:0 20px 16px}.sidebar nav{display:flex;flex-direction:column}.sidebar a{color:#cfc8f5;text-decoration:none;padding:10px 20px}.sidebar a.active,.sidebar a:hover{background:#352c66;color:#fff}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;gap:16px;justify-content:flex-end;align-items:center;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--border);font-size:14px}.topbar a{color:var(--accent);text-decoration:none}.content{padding:24px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{margin:0}.actions{display:flex;gap:8px}h2{font-size:16px;margin:24px 0 12px}a.button{padding:9px 14px;border-radius:6px;background:var(--accent);color:#fff;font-size:14px;text-decoration:none}button.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}button.danger{background:var(--error)}.card.wide{max-width:none;margin-top:16px}.small{font-size:12px;margin:0}.block{margin-top:16px}.table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:500;background:#fafbfc}tr:last-child td{border-bottom:0}td a{color:var(--accent);text-decoration:none}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.error-cell{color:var(--error);white-space:normal;max-width:360px}.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;background:#eef0f4;color:var(--muted)}.tag-active,.tag-acc-normal{background:#e6f4ea;color:var(--ok)}.tag-error,.tag-acc-error{background:#fdecea;color:var(--error)}.tag-binding{background:#fff4e5;color:#b26a00}.facts{display:grid;grid-template-columns:120px 1fr;gap:10px 16px;margin:0;font-size:14px}.facts dt{color:var(--muted)}.facts dd{margin:0}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:#fff;min-width:180px}.conv-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;align-items:start}.conv-list{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.conv-item{display:block;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.conv-item:last-child{border-bottom:0}.conv-item.active,.conv-item:hover{background:#f3f0fd}.conv-item .row{display:flex;justify-content:space-between;gap:8px;font-size:14px}.conv-item .preview{color:var(--muted);font-size:13px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-item .meta{color:var(--muted);font-size:12px;margin-top:4px}.chat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;min-height:320px}.chat-head{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.bubbles{display:flex;flex-direction:column;gap:10px}.bubble{max-width:72%;padding:8px 12px;border-radius:10px;font-size:14px;white-space:pre-wrap;word-break:break-word}.bubble.in{align-self:flex-start;background:#eef0f4}.bubble.out{align-self:flex-end;background:#ebe5fc}.bubble.out.human_console{background:#fff4e5}.bubble .who{font-size:12px;color:var(--muted);margin-bottom:4px}.bubble .when{font-size:11px;color:var(--muted);margin-top:4px;text-align:right}.bubble a{color:var(--accent);word-break:break-all}.pager{display:flex;gap:12px;align-items:center;margin-top:12px;font-size:14px}textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;width:100%}input:disabled,textarea:disabled,select:disabled{background:#f3f4f6;color:var(--text)}.strategy-form{display:flex;flex-direction:column;gap:16px;max-width:960px}.group{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px 20px 20px;margin:0;display:flex;flex-direction:column;gap:12px}.group legend{font-weight:600;font-size:15px;padding:0 6px}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.row3 .span2{grid-column:span 2}label.check{flex-direction:row;align-items:center;gap:8px}.field-errors{color:var(--error);margin:0;padding-left:18px;font-size:13px}.form-foot{display:flex;align-items:center;gap:16px;margin-top:16px;flex-wrap:wrap}.row-actions{display:flex;gap:12px;align-items:center}.tag-strategy-active{background:#e6f4ea;color:var(--ok)}.block-sm{margin-bottom:12px}@media (max-width: 900px){.row3{grid-template-columns:1fr}.row3 .span2{grid-column:auto}.conv-layout{grid-template-columns:1fr}.bubble{max-width:90%}}@media (max-width: 640px){.shell{flex-direction:column}.sidebar{width:100%}.sidebar nav{flex-direction:row;overflow-x:auto}}
