.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg: #f8fafc;--card: #ffffff;--text: #0f172a;--muted: #64748b;--line: #e2e8f0;--accent: #0284c7;--accent-text: #ffffff;--on: #f59e0b;--danger: #dc2626;--ok: #16a34a;--warn-bg: #fef3c7;--warn-text: #78350f;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0b1120;--card: #111a2e;--text: #e2e8f0;--muted: #94a3b8;--line: #1e293b;--accent: #38bdf8;--accent-text: #0b1120;--warn-bg: #422006;--warn-text: #fde68a;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:16px 0 8px}h2{font-size:20px}h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}label{display:block;margin:10px 0;color:var(--muted);font-size:13px}label input,label select{margin-top:4px;color:var(--text);font-size:15px}label:has(input[type=checkbox]){display:inline-flex;gap:6px;align-items:center;margin:0}label input[type=checkbox]{width:auto;margin:0}button{cursor:pointer;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.danger{color:var(--danger)}button.small{padding:6px 10px;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger);margin:8px 0}.ok{color:var(--ok);margin:8px 0}.center{min-height:100vh;display:grid;place-items:center;padding:16px}.center-text{text-align:center;padding:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}.card.login{width:min(380px,100%)}.card.login h1{margin-top:0}.card.login button{width:100%;margin-top:8px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.grow{flex:1;min-width:0}.spacer{flex:1}.badge{display:inline-block;padding:1px 8px;border-radius:99px;background:var(--line);font-size:12px;margin-left:4px}.badge.running{background:var(--on);color:#111}.big{font-size:28px;font-weight:600}.app{max-width:1100px;margin:0 auto;padding:0 16px 32px}.nav{position:sticky;top:0;z-index:2;display:flex;gap:4px;align-items:center;overflow-x:auto;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--line)}.nav a{padding:8px 12px;border-radius:10px;color:var(--muted);white-space:nowrap}.nav a.active{background:var(--card);color:var(--text);font-weight:600}.brand{font-weight:700;margin-right:8px;white-space:nowrap}.toolbar{margin:12px 0}.search{flex:1;min-width:180px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--muted)}.dot.idle{background:var(--ok)}.dot.busy{background:var(--on);animation:pulse 1s infinite}.dot.off{background:var(--danger)}@keyframes pulse{50%{opacity:.3}}.banner.offline{background:var(--warn-bg);color:var(--warn-text);border-radius:12px;padding:12px 14px;margin:12px 0}.area h2{border-bottom:1px solid var(--line);padding-bottom:6px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.entity{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.entity.is-on{border-color:var(--on)}.entity.unavailable{opacity:.55}.entity-main{flex:1;min-width:0;color:inherit;display:flex;flex-direction:column}.entity-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-state{color:var(--muted);font-size:13px}.entity-control select{width:auto;padding:6px 8px}.entity-control input[type=range]{width:120px;padding:0;border:none}.toggle{width:48px;height:28px;padding:3px;border-radius:99px;background:var(--line);border:none;position:relative}.toggle .knob{display:block;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0000004d}.toggle.on{background:var(--on)}.toggle.on .knob{transform:translate(20px)}.list{display:flex;flex-direction:column;gap:6px}.list-row{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:inherit}.chart{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px}.attrs{width:100%;border-collapse:collapse;font-size:13px}.attrs td{border-bottom:1px solid var(--line);padding:6px 4px;vertical-align:top;word-break:break-word}.attrs td:first-child{color:var(--muted);width:40%}.chat-layout .main{height:calc(100dvh - 60px)}.assistant{display:flex;flex-direction:column;height:100%}.chatbar{padding:8px 0;border-bottom:1px solid var(--line)}.chatbar select{width:auto;padding:6px 8px}.usage .bar{display:inline-block;width:50px;height:6px;background:var(--line);border-radius:3px;vertical-align:middle;overflow:hidden}.usage .bar span{display:block;height:100%;background:var(--accent)}.transcript{flex:1;overflow-y:auto;padding:12px 0;display:flex;flex-direction:column;gap:10px}.msg{padding:10px 12px;border-radius:12px;max-width:92%;overflow-wrap:anywhere}.msg.user{align-self:flex-end;background:var(--accent);color:var(--accent-text)}.msg.agent{align-self:flex-start;background:var(--card);border:1px solid var(--line)}.msg.thought{color:var(--muted);font-style:italic;font-size:13px;white-space:pre-wrap}.md p{margin:0 0 8px}.md p:last-child{margin:0}.md pre,.toolcall pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;overflow-x:auto;font-size:12px;white-space:pre-wrap}.md code{font-size:13px}.md ul{margin:0 0 8px;padding-left:20px}.toolcall{border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--card);font-size:13px}.toolcall.failed{border-color:var(--danger)}.tstatus{display:inline-block;width:16px}.perm{border:2px solid var(--on);border-radius:12px;padding:10px 12px;background:var(--card)}.perm.resolved{border-color:var(--line)}.perm .row{margin-top:8px}.plan{margin-top:8px;padding:8px;border-left:3px solid var(--accent);background:var(--bg);border-radius:6px;max-height:50vh;overflow-y:auto}.typing span{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--muted);animation:pulse 1s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.composer{display:flex;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.composer textarea{min-height:56px;max-height:40vh;resize:vertical}@media(max-width:600px){.grid{grid-template-columns:1fr}.nav a{padding:8px}}
