:root{color-scheme:light;--ink:#1e293b;--muted:#64748b;--line:#e2e8f0;--accent:#167d75;--accent-soft:#e7f4f1;--bg:#f6f8fb;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{color:var(--ink);border:1px solid var(--line);border-radius:9px;background:white;padding:10px 12px;max-width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #85c8bd;outline-offset:2px}button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.primary{border:0;background:var(--accent);color:#fff;border-radius:9px;padding:11px 20px;font-weight:600}.primary:hover:not(:disabled){background:#10675f}.quiet,.icon-button{border:1px solid var(--line);background:#fff;color:var(--muted);padding:7px 12px;border-radius:8px}.quiet:hover{background:var(--bg)}.workspace{display:flex;height:100dvh;min-height:540px;overflow:hidden}.sidebar{width:260px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:17px;font-weight:700;padding:0 8px}.brand-mark,.welcome-symbol{display:grid;place-items:center;background:var(--accent);color:white;border-radius:12px;width:38px;height:38px;font-weight:700}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:400}.new-customer{width:100%;text-align:left}.sidebar-heading{display:flex;justify-content:space-between;font-weight:600;color:var(--muted);font-size:12px;padding:0 10px}.customer-list{flex:1;overflow:auto;margin-top:-12px}.customer-item{display:block;width:100%;text-align:left;border:0;border-radius:10px;background:transparent;color:var(--ink);padding:12px;margin:3px 0}.customer-item.active{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.customer-item:hover{background:#f0f5f4}.customer-item strong{display:block;font-size:14px}.customer-item span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;color:var(--muted)}.customer-item time{font-size:10px;color:var(--muted)}.sidebar-footer{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line);padding:16px 10px 0;color:var(--muted);font-size:11px}.connection{color:var(--accent)}.main{min-width:0;flex:1;display:flex;flex-direction:column}.chat-header{min-height:88px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#ffffffc9;padding:18px 32px}.heading{flex:1;min-width:0}.heading h1{font-size:18px;margin:0;overflow-wrap:anywhere}.heading p{color:var(--muted);font-size:12px;margin:3px 0 0}.welcome{max-width:440px;width:100%;align-self:center;overflow:auto;padding:40px 28px 24px}.welcome-symbol{width:52px;height:52px;margin:0 auto 18px;font-size:24px;box-shadow:0 8px 25px #167d7520}.welcome h2{font-size:24px;text-align:center;margin:0 0 12px}.welcome>p{text-align:center;color:var(--muted);font-size:13px}.customer-form{display:flex;flex-direction:column;gap:16px;margin-top:25px}.customer-form label{display:flex;flex-direction:column;gap:7px;font-weight:500}.customer-form small{font-size:11px;color:var(--muted);font-weight:400}.boundary{font-size:11px!important;margin-top:20px!important}.conversation{flex:1;min-height:0;display:flex;flex-direction:column}.session-bar{display:flex;align-items:center;gap:12px;padding:14px 32px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}.session-bar label{display:flex;align-items:center;gap:8px}.session-bar select{padding:6px 10px;max-width:240px}.session-bar input{padding:6px 10px;width:125px}.receptionist{margin-left:auto}.messages-scroll{flex:1;min-height:0;overflow:auto;padding:24px 32px;scroll-behavior:smooth}.messages{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.message{max-width:82%;min-width:100px;overflow-wrap:anywhere;align-self:flex-start}.message.in{align-self:flex-end}.message-meta{font-size:11px;color:var(--muted);margin-bottom:6px;display:flex;flex-wrap:wrap;gap:10px}.message.in .message-meta{justify-content:flex-end}.bubble{background:#fff;border:1px solid var(--line);border-radius:14px 14px 14px 3px;padding:12px 16px;box-shadow:0 2px 3px #142b3910;white-space:pre-wrap}.message.in .bubble{background:var(--accent-soft);border-color:#cce8e1;border-radius:14px 14px 3px 14px}.message details{margin-top:6px;color:var(--muted);font-size:11px}.message summary{cursor:pointer;display:inline-block}.message pre{font-size:11px;background:#fff;padding:12px;border:1px solid var(--line);border-radius:8px;max-height:260px;overflow:auto;white-space:pre-wrap}.message img{max-width:100%;max-height:420px;border-radius:8px;margin-top:10px;display:block}.state{font-size:10px;color:var(--muted);padding:3px 0}.state.warn{color:#ac6719}.composer{margin:0 32px;background:white;border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:0 4px 18px #273c4b08}.composer:focus-within{border-color:#85c8bd}.composer textarea{width:100%;resize:none;border:0;outline:none;max-height:180px;padding:0;background:transparent;box-shadow:none}.composer textarea:focus{outline:none}.composer-bottom{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-top:10px}.composer-bottom span{color:var(--muted);font-size:11px}.composer-note{text-align:center;font-size:10px;color:var(--muted);margin:9px 15px 12px}.notice,.read-only{padding:10px 24px;background:#fff5e7;color:#915619;font-size:12px;overflow-wrap:anywhere}.notice{display:flex;align-items:center;justify-content:space-between;gap:10px}.empty{text-align:center;color:var(--muted);padding:55px 20px;font-size:13px}.older{display:block;margin:0 auto 22px;font-size:12px}.debug-panel{width:350px;flex-shrink:0;background:#fff;border-left:1px solid var(--line);padding:24px;overflow:auto}.panel-heading,.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-heading h2,.dialog-heading h2{font-size:17px;margin:0}.debug-panel details{border-bottom:1px solid var(--line);padding:15px 0}.debug-panel summary{cursor:pointer;font-size:13px;font-weight:500}.debug-panel pre{font:11px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto}.muted{color:var(--muted);font-size:12px}.mobile-only{display:none}dialog{border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 100px #122b3933;padding:28px;width:min(450px,calc(100vw - 32px));color:var(--ink)}dialog::backdrop{background:#1b2e4055;backdrop-filter:blur(3px)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:1100px){.debug-panel{position:fixed;right:0;top:0;bottom:0;z-index:5;box-shadow:-10px 0 40px #1b2e4014;max-width:100vw}.sidebar{width:225px}}@media(max-width:720px){.mobile-only{display:block}.sidebar{display:none;position:fixed;left:0;top:0;bottom:0;z-index:4;width:260px;box-shadow:10px 0 40px #1b2e4022}.sidebar.visible{display:flex}.chat-header{padding:14px 16px;min-height:74px}.session-bar{padding:12px 16px;gap:8px}.receptionist{margin-left:0}.session-bar label{font-size:11px}.messages-scroll{padding:20px 16px}.message{max-width:92%}.message-meta{font-size:10px}.composer{margin:0 12px}.composer-bottom span{max-width:70%;font-size:10px}.welcome{padding-top:24px}.heading h1{font-size:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* JSON只读小框：复制当前可见快照，展开期间不被轮询重置。 */
.json-box{border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:8px;overflow:hidden}.json-toolbar{display:flex;gap:6px;align-items:center;padding:6px 8px;background:#f8fafc;border-bottom:1px solid var(--line);flex-wrap:wrap}.json-toolbar .quiet{font-size:11px;padding:3px 8px}.json-copy-status{font-size:10px;color:var(--accent)}.json-box pre.json-content{margin:0;border:0;border-radius:0;padding:10px;overflow:auto;overflow-anchor:none;white-space:pre;max-height:360px}.debug-panel{overflow-anchor:none}.debug-panel .json-box pre{font-size:11px}.debug-meta-note{font-size:10px;color:var(--muted);margin:10px 0}
/* 按实际阶段排列的消息链路；父阶段总耗时与并行子阶段不能相加。 */
.trace-open{font-size:10px;padding:3px 8px;margin-top:8px}.trace-inspector{border-bottom:1px solid var(--line);padding-bottom:18px}.trace-inspector h3{font-size:15px;margin:18px 0 6px}.trace-card{border:1px solid var(--line);border-radius:8px;margin:9px 0;padding:10px;background:#fafcfb}.trace-card h4{font-size:12px;margin:0}.trace-card p{font-size:10px;color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.trace-card.trace-child{margin-left:12px;border-left:3px solid #aad8ce}.trace-card details{border:0;padding:5px 0}.trace-card .json-content{max-height:380px}.debug-panel:has(.trace-inspector:not([hidden])){width:520px;max-width:100vw}
/* 灰度快捷选择与原始ID共用一个控件区域；名单外历史保留为自定义，不自动换客服。 */
.receptionist-picker{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}.receptionist-picker select{width:100%;min-width:0}.receptionist-picker input[hidden]{display:none}.session-bar .receptionist{max-width:100%;min-width:0}.session-bar .receptionist select{width:240px;max-width:100%}
.runtime-banner{margin:8px 24px;padding:10px 14px;background:#fff8e6;border:1px solid #ead6a2;border-radius:10px;color:#6e5421;font-size:12px;line-height:1.6;flex-shrink:0}
