:root{--bg:#0f1419;--surface:#182028;--surface-2:#212b35;--line:#2c3844;--text:#e6edf3;--muted:#8b98a5;--accent:#26c6a6;--run:#f5b942;--err:#f0616d;--ok:#4ea8ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f7f9;--surface:#fff;--surface-2:#eef2f5;--line:#d6dde3;--text:#1b2733;--muted:#5f6d7a;--accent:#0f9e82;--run:#c9860f;--err:#d0394a;--ok:#1f7ad6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}h1,h2,h3{margin:0}.login{place-items:center;min-height:100%;padding:16px;display:grid}.login form{gap:12px;width:min(340px,100%);display:grid}.login h1{text-align:center;margin-bottom:8px;font-size:24px}.login input,.typing input{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:12px 14px}.login button,.typing button,.diag button{background:var(--accent);color:#06231d;border:0;border-radius:10px;padding:12px 16px;font-weight:600}.error{color:var(--err);margin:0}.app{min-height:100%;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}header{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}header h1{flex:1;font-size:18px}.conn{background:var(--muted);border-radius:50%;width:10px;height:10px}.conn.open{background:var(--accent)}.conn.connecting{background:var(--run)}.conn.closed{background:var(--err)}.toggle{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.link{color:var(--muted);background:0 0;border:0;padding:4px;font-size:14px}main{flex:1;grid-template-columns:1fr;min-height:0;display:grid}@media (width>=900px){main{grid-template-columns:minmax(0,1fr) 420px}}.chat{flex-direction:column;gap:12px;min-height:0;padding:16px;display:flex}@media (width<=899px){.chat{height:calc(100dvh - 53px - env(safe-area-inset-top))}}.messages{flex-direction:column;flex:1;gap:10px;min-height:200px;display:flex;overflow-y:auto}.hint{color:var(--muted);text-align:center;margin:auto 0}.msg{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:85%;margin:0;padding:10px 14px}.msg.user{background:var(--accent);color:#06231d;align-self:flex-end}.msg.user.interim{opacity:.6}.msg.assistant{background:var(--surface-2);align-self:flex-start}.msg.error{color:var(--err)}.notice{background:var(--surface-2);color:var(--run);border-radius:8px;margin:0;padding:8px 12px;font-size:14px}.controls{padding-bottom:env(safe-area-inset-bottom);justify-items:center;gap:8px;display:grid}.mic{background:var(--accent);border:0;border-radius:50%;place-items:center;width:76px;height:76px;transition:transform .15s;display:grid;box-shadow:0 0 #0000}.mic svg{fill:#06231d;width:34px;height:34px}.mic.on{background:var(--err);animation:1.4s infinite pulse}.mic:active{transform:scale(.95)}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--err) 60%, transparent)}to{box-shadow:0 0 0 18px #0000}}.mic-label{color:var(--muted);font-size:14px}.typing{gap:8px;width:100%;max-width:560px;display:flex}.typing input{flex:1;min-width:0}.diag{color:var(--muted);font-size:14px}.diag summary{cursor:pointer}.diag ul{gap:4px;margin:8px 0;padding:0;list-style:none;display:grid}.diag .ok span{color:var(--accent)}.diag .no span{color:var(--err)}.diag button{padding:8px 12px;font-size:14px}.panel{border-top:1px solid var(--line);align-content:start;gap:12px;padding:16px;display:grid;overflow-y:auto}@media (width>=900px){.panel{border-top:0;border-left:1px solid var(--line)}}.panel h2{font-size:16px}.panel h3{color:var(--muted);font-size:14px}.graph{width:100%;display:none;overflow:visible}@media (width>=900px){.graph{display:block}.cards{display:none!important}}.edge{stroke:var(--line);stroke-width:2px}.edge.offline{stroke-dasharray:4 6}.edge.running{stroke:var(--run);stroke-dasharray:6 6;animation:.6s linear infinite flow}.edge.queued{stroke:var(--muted);stroke-dasharray:2 6}.edge.done{stroke:var(--accent)}.edge.error{stroke:var(--err)}@keyframes flow{to{stroke-dashoffset:-12px}}.node circle{fill:var(--surface-2);stroke:var(--line);stroke-width:2px}.node text{text-anchor:middle;fill:var(--text)}.node .icon{dominant-baseline:middle;font-size:22px}.node .name{font-size:13px}.node .state{fill:var(--muted);font-size:11px}.node.offline{opacity:.45}.node.running circle{stroke:var(--run);animation:1s ease-in-out infinite alternate glow}.node.done circle{stroke:var(--accent)}.node.queued circle{stroke:var(--muted);stroke-dasharray:4 4}.node.error circle{stroke:var(--err)}@keyframes glow{to{stroke-width:5px}}.cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr;grid-template-areas:"icon name""icon state""detail detail";column-gap:8px;padding:10px 12px;display:grid}.card .icon{grid-area:icon;align-self:center;font-size:22px}.card .name{grid-area:name;font-weight:600}.card .state{color:var(--muted);grid-area:state;font-size:12px}.card .detail{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:detail;margin-top:4px;font-size:12px;display:-webkit-box;overflow:hidden}.card.offline{opacity:.45}.card.running{border-color:var(--run)}.card.queued{border-style:dashed}.card.done{border-color:var(--accent)}.card.error{border-color:var(--err)}.timeline{gap:4px;max-height:260px;margin:0;padding:0;font-size:13px;list-style:none;display:grid;overflow-y:auto}.timeline time{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:6px}.timeline .detail,.timeline .empty{color:var(--muted)}.timeline .error b{color:var(--err)}.approvals{gap:10px;display:grid}.approval{border:1px solid var(--run);background:var(--surface);border-radius:14px;padding:12px 14px}.approval h3{margin-bottom:8px;font-size:15px}.approval dl{gap:4px;margin:0;font-size:14px;display:grid}.approval dl div{grid-template-columns:72px 1fr;gap:8px;display:grid}.approval dt{color:var(--muted)}.approval dd{word-break:break-word;margin:0}.approval .body dd{white-space:pre-wrap;background:var(--surface-2);border-radius:8px;max-height:180px;padding:8px;overflow-y:auto}.approval .buttons{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.approval button{border:0;border-radius:10px;padding:10px 18px;font-weight:600}.approval .approve{background:var(--accent);color:#06231d}.approval .cancel{background:var(--surface-2)}.settings p{margin:6px 0}.settings .small{font-size:13px}.settings .flash,.settings .ok-mark{color:var(--accent)}a.button{background:var(--accent);color:#06231d;border-radius:10px;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-block}
