:root{--bg: #f6f7f9;--panel: #ffffff;--line: #e3e6ea;--text: #1d2228;--muted: #6b7480;--accent: #3a5ccc;--accent-soft: #e8edfb;--ok: #2f8f5b;--warn: #c58a12;--bad: #c8463d;--code: #f1f3f5;--user: #e8edfb;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #14171b;--panel: #1c2026;--line: #2c323a;--text: #e6e9ed;--muted: #8d96a1;--accent: #7d97ec;--accent-soft: #263055;--ok: #4fb57e;--warn: #e0a83a;--bad: #e0675e;--code: #242a31;--user: #263055;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.6 -apple-system,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif}a{color:var(--accent);text-decoration:none}h1{font-size:20px;margin:0 0 6px}h2{font-size:17px;margin:18px 0 8px}h3{font-size:15px;margin:0}h4{margin:12px 0 4px;font-size:13px;color:var(--muted)}input,select,textarea{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 10px}textarea{resize:vertical}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 12px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.link{border:0;background:none;color:var(--accent);padding:2px 6px}button.block{width:100%}.muted{color:var(--muted)}.small{font-size:12px}.err{color:var(--bad)}.pad{padding:4px 16px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.break{word-break:break-all}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grow{flex:1}.center{min-height:100%;display:grid;place-items:center;padding:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}.card.on{outline:2px solid var(--accent)}.login{width:360px;max-width:100%;display:flex;flex-direction:column;gap:10px}.login form{display:flex;flex-direction:column;gap:10px}.qr{background:#fff;padding:10px;border-radius:8px;width:220px;margin:0 auto}.qr svg{width:100%;height:auto}.tag{display:inline-block;font-size:11px;padding:0 7px;border-radius:10px;background:var(--code);color:var(--muted);margin-right:4px;white-space:nowrap}.tag.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.tag.alert{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}.badge{background:var(--bad);color:#fff;border-radius:10px;font-size:11px;padding:0 6px;margin-left:6px}.shell{display:flex;height:100%}.side{width:190px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px;gap:2px}.brand{font-weight:700;font-size:18px;padding:4px 10px 14px}.brand span{color:var(--accent)}.nav{padding:8px 10px;border-radius:8px;color:var(--text);display:flex;align-items:center}.nav .ico{width:24px}.nav:hover{background:var(--code)}.nav.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.who{padding:10px;border-top:1px solid var(--line);margin-top:8px;display:flex;justify-content:space-between;align-items:center}.main{flex:1;min-width:0;overflow:auto}.page{padding:20px 24px;max-width:900px}.page.wide{max-width:1400px}.chat{display:flex;height:100%}.convs{width:230px;flex-shrink:0;border-right:1px solid var(--line);padding:12px;overflow:auto;display:flex;flex-direction:column;gap:2px}.conv{padding:7px 10px;border-radius:8px;cursor:pointer;display:flex;align-items:center}.conv .t{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv:hover,.conv.on{background:var(--code)}.conv .x,.tag .x{border:0;background:none;color:var(--muted);padding:0 4px;visibility:hidden}.conv:hover .x,.tag .x{visibility:visible}.thread{flex:1;min-width:0;display:flex;flex-direction:column}.msgs{flex:1;overflow:auto;padding:20px 24px;display:flex;flex-direction:column;gap:14px}.bubble{max-width:860px;border-radius:12px;padding:10px 14px}.bubble.user{align-self:flex-end;background:var(--user);white-space:pre-wrap}.bubble.assistant{align-self:flex-start;background:var(--panel);border:1px solid var(--line);width:100%}.bubble .meta{font-size:12px;color:var(--muted);border-top:1px dashed var(--line);margin-top:8px;padding-top:6px}.sysmsg{align-self:center;font-size:12px;color:var(--muted);max-width:860px;width:100%}.sysmsg pre{white-space:pre-wrap;background:var(--code);padding:8px;border-radius:8px}.steps{font-size:12px;color:var(--muted);margin-bottom:8px}.step{padding:2px 0;word-break:break-all}.step.result{padding-left:14px;opacity:.8}.fallback{background:color-mix(in srgb,var(--warn) 18%,transparent);padding:4px 8px;border-radius:6px;margin-bottom:6px;font-size:12px}.dots:after{content:"…";animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.2}}.hello{margin:auto;text-align:center;max-width:600px}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.chip{border-radius:16px}.composer{display:flex;gap:8px;padding:12px 24px 18px;border-top:1px solid var(--line);align-items:flex-end}.composer textarea{flex:1}.mic{font-size:18px;padding:6px 10px}.mic.rec{background:var(--bad);color:#fff;border-color:var(--bad);animation:blink 1s infinite}.toast{position:fixed;right:20px;bottom:20px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);padding:10px 14px;border-radius:8px;box-shadow:0 4px 18px #00000026;max-width:380px}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md table{border-collapse:collapse;margin:8px 0}.md th,.md td{border:1px solid var(--line);padding:4px 10px}.md code{background:var(--code);padding:1px 5px;border-radius:4px;font-size:12.5px}.md pre{background:var(--code);padding:10px;border-radius:8px;overflow:auto}.md pre code{padding:0}.plain{white-space:pre-wrap}.tbl{width:100%;border-collapse:collapse;background:var(--panel)}.tbl th{text-align:left;font-weight:600;color:var(--muted);font-size:12px}.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:7px 8px;vertical-align:top}.tbl tr.badrow td{color:var(--bad)}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.col{background:var(--code);border-radius:12px;padding:10px;min-height:120px}.col h3{margin-bottom:8px}.rcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:8px;cursor:pointer}.rcard.on{outline:2px solid var(--accent)}.st{font-size:11px;padding:0 7px;border-radius:10px;background:var(--code)}.st.confirming,.st.blocked,.st.candidate{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}.st.in_progress,.st.planned,.st.verifying,.st.running,.st.queued{background:var(--accent-soft);color:var(--accent)}.st.delivered,.st.closed,.st.success,.st.active{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.st.failed,.st.cancelled,.st.rejected{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report{background:var(--code);border-radius:8px;padding:10px 14px}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:3px 0;border-bottom:1px dashed var(--line)}.pre{white-space:pre-wrap;background:var(--code);padding:8px;border-radius:8px;max-height:300px;overflow:auto;font-size:12px}.list{list-style:none;padding:0}.list li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:baseline}.list li.unread{font-weight:600}.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.machine{cursor:pointer}.machine.pending{opacity:.65}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}.dot.online{background:var(--ok)}.dot.offline{background:var(--bad)}.dot.pending{background:var(--warn)}.bar{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px}.bl{width:32px;color:var(--muted)}.bv{width:36px;text-align:right}.track{flex:1;height:6px;background:var(--code);border-radius:3px;overflow:hidden}.fill{height:100%;background:var(--accent)}.fill.warn{background:var(--warn)}.fill.bad{background:var(--bad)}.fill.ok{background:var(--ok)}.spark{width:100%;height:36px}.spark polyline{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}.sparks{margin:6px 0}.alerts{background:color-mix(in srgb,var(--bad) 12%,transparent);border-radius:8px;padding:8px 12px;margin:8px 0}.tabs{display:flex;gap:4px;margin:8px 0}.tabs button.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.loc{padding:2px 0}.mtag{display:inline-block;min-width:34px;text-align:center;border-radius:4px;font-size:11px;margin-right:6px;color:#fff;background:var(--muted)}.mtag.m116{background:#3a5ccc}.mtag.m104{background:#2f8f5b}.mtag.m135{background:#b5651d}.mtag.m125{background:#7a4fc4}.detail h2{margin:0}@media(max-width:860px){.shell{flex-direction:column}.side{width:100%;flex-direction:row;overflow-x:auto;padding:6px;border-right:0;border-bottom:1px solid var(--line)}.brand,.who,.side .grow{display:none}.nav{white-space:nowrap}.convs{display:none}.kanban,.grid2{grid-template-columns:1fr}.page{padding:14px 16px}.msgs,.composer{padding-left:12px;padding-right:12px}}
