pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMonoVF.woff) format("woff");font-weight:100 900;font-display:swap}:root{--canvas: #fafaf7;--surface: #ffffff;--surface-muted: #f2f1ec;--ink: #191917;--body: #46463f;--mute: #73736a;--hairline: rgba(25, 25, 23, .1);--hairline-strong: rgba(25, 25, 23, .42);--accent: #1a7f37;--accent-hover: #146c2e;--accent-ink: #ffffff;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--info: #2563eb;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);--code-bg: #f2f1ec;--code-fg: #191917;--code-mute: #73736a;--chat-bg: #ffffff;--chat-elevated: #f2f1ec;--chat-fg: #191917;--chat-mute: #73736a;--chat-border: rgba(25, 25, 23, .12);--chat-green: #1a7f37;--chat-yellow: #b45309;--chat-blue: #2563eb;--chat-cyan: #0e7490;--chat-danger: #dc2626;--console: #121214;--console-elevated: #1b1b19;--on-console: #e8e6e3;--on-console-mute: #7c7c82;--term-green: #7ee787;--term-blue: #58a6fb;--term-yellow: #d29922;--term-orange: #f0883e;--term-cyan: #76e3ea}[data-theme=dark]{--canvas: #0b0b0c;--surface: #121214;--surface-muted: #1a1a1d;--ink: #e8e6e3;--body: #a8a8ad;--mute: #7c7c82;--hairline: rgba(255, 255, 255, .1);--hairline-strong: rgba(255, 255, 255, .22);--accent: #7ee787;--accent-hover: #a4f0ba;--accent-ink: #191917;--success: #7ee787;--warning: #d29922;--danger: #f85149;--info: #58a6fb;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);--code-bg: #121214;--code-fg: #e8e6e3;--code-mute: #7c7c82;--chat-bg: #121214;--chat-elevated: #1b1b19;--chat-fg: #e8e6e3;--chat-mute: #7c7c82;--chat-border: rgba(255, 255, 255, .12);--chat-green: #7ee787;--chat-yellow: #d29922;--chat-blue: #58a6fb;--chat-cyan: #76e3ea;--chat-danger: #f85149}@media(prefers-color-scheme:dark){:root:not([data-theme]){--canvas: #0b0b0c;--surface: #121214;--surface-muted: #1a1a1d;--ink: #e8e6e3;--body: #a8a8ad;--mute: #7c7c82;--hairline: rgba(255, 255, 255, .1);--hairline-strong: rgba(255, 255, 255, .22);--accent: #7ee787;--accent-hover: #a4f0ba;--accent-ink: #191917;--success: #7ee787;--warning: #d29922;--danger: #f85149;--info: #58a6fb;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);--code-bg: #121214;--code-fg: #e8e6e3;--code-mute: #7c7c82;--chat-bg: #121214;--chat-elevated: #1b1b19;--chat-fg: #e8e6e3;--chat-mute: #7c7c82;--chat-border: rgba(255, 255, 255, .12);--chat-green: #7ee787;--chat-yellow: #d29922;--chat-blue: #58a6fb;--chat-cyan: #76e3ea;--chat-danger: #f85149}}*{box-sizing:border-box;border-radius:0!important}html,body{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none}#root{height:100%}.app-shell{height:100dvh;display:flex;flex-direction:column}body{font:15px/1.6 Geist Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--canvas);color:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{flex-shrink:0;z-index:20;display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--hairline)}.brand{display:flex;align-items:center;gap:8px;margin-right:8px;color:var(--ink)}.brand .logo{display:block;flex:none}.brand-name{font-size:17px;font-weight:700;letter-spacing:-.01em}.sidebar-user{display:none}.topbar-nav{display:flex;align-items:center;gap:4px}.topbar-nav .nav-item{min-height:32px;padding:4px 10px;border:none;background:transparent;color:var(--mute);font-size:12px;font-weight:700;text-transform:uppercase}.topbar-nav .nav-item:hover{color:var(--ink);background:transparent}.topbar-nav .nav-item.active{color:var(--ink);border-bottom:2px solid var(--accent)}.topbar-nav .nav-item:disabled{opacity:.4;cursor:default}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.sidebar-toggles{display:flex;align-items:center;gap:8px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0;border-color:transparent;color:var(--mute);background:transparent}.icon-btn:hover{color:var(--ink);border-color:transparent;background:transparent}.menu-toggle,.sidebar-backdrop{display:none}.app-main{flex:1;min-height:0;max-width:640px;width:100%;margin:0 auto;padding:16px 16px 40px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app-main::-webkit-scrollbar{display:none}.main-detail{padding:0}.main-detail .detail-card{height:100%;margin:0;border:none;box-shadow:none}.muted{color:var(--mute);font-size:13px}.glyph{color:var(--accent);margin-right:8px}.truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:8px;padding:16px;margin-bottom:12px;box-shadow:var(--shadow);animation:rise .35s ease-out both}.row{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.row:last-child{margin-bottom:0}input,select{flex:1;min-width:120px;min-height:40px;padding:8px 10px;border-radius:6px;border:1px solid var(--hairline);background:var(--surface-muted);color:var(--ink);font:inherit;font-size:14px;transition:border-color .18s ease-out,box-shadow .18s ease-out}input::placeholder{color:var(--mute)}input:focus,select:focus{outline:none;border-color:var(--accent)}button{min-height:40px;padding:8px 14px;border-radius:6px;border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s ease-out,border-color .18s ease-out,color .18s ease-out,transform .12s ease-out}button:hover{background:var(--surface-muted)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default;transform:none}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover{background:var(--accent-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger:hover{filter:brightness(1.08)}button.ghost{background:transparent}button.ghost:hover{background:var(--surface-muted)}button.github{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;font-size:14px}.ghost-danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.ghost-danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);filter:none}.auth-stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.auth-stage::-webkit-scrollbar{display:none}.auth-card{width:100%;max-width:420px;margin:0;padding:24px}.device-auth{width:100%;max-width:420px;display:flex;flex-direction:column;gap:16px}.auth-github{min-height:48px;background:var(--surface-muted);color:var(--ink);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:none;transition:border-color .18s ease-out,box-shadow .18s ease-out,background .18s ease-out}.auth-github:hover{background:var(--surface);border-color:var(--accent)}[data-theme=dark] .auth-github{background:var(--console);color:var(--accent)}[data-theme=dark] .auth-github:hover{background:var(--console-elevated)}@media(prefers-color-scheme:dark){:root:not([data-theme]) .auth-github{background:var(--console);color:var(--accent)}:root:not([data-theme]) .auth-github:hover{background:var(--console-elevated)}}.auth-toggles{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.back-home{display:block;font-size:12px;color:var(--mute);text-decoration:none;transition:color .18s ease-out}.back-home:hover{color:var(--ink)}.lang-toggle{min-height:32px;padding:0 10px;font-size:12px;border-color:transparent;background:transparent;color:var(--mute)}.lang-toggle:hover{color:var(--ink);border-color:transparent;background:transparent}.conn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--hairline);border-radius:999px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.conn:before{content:"";width:7px;height:7px;background:var(--mute)}.conn.good{color:var(--success)}.conn.good:before{background:var(--success);animation:dot-pulse 2s ease-out infinite}.conn.pending{color:var(--warning)}.conn.pending:before{background:var(--warning);animation:dot-pulse 1.2s ease-out infinite}.conn.bad{color:var(--danger)}.conn.bad:before{background:var(--danger)}.section-label{margin:18px 2px 8px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.divider{position:relative;text-align:center}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:38%;border-top:1px solid var(--hairline)}.divider:before{left:0}.divider:after{right:0}.err{color:var(--danger);font-size:13px;margin-top:8px}.steps{margin:8px 0 14px;padding-left:20px}.steps li{margin-bottom:8px;font-size:13px;color:var(--body)}.steps code,code{background:var(--surface-muted);border:1px solid var(--hairline);padding:1px 6px;border-radius:5px;font-family:inherit;font-size:.92em}.pair-input{text-transform:uppercase;text-align:center;letter-spacing:.35em;font-size:18px;font-weight:700}.pair-code{font-size:18px;letter-spacing:.2em;color:var(--ink)}.pair-code b{color:var(--accent)}.pair-view{display:flex;flex-direction:column;gap:16px;min-height:calc(100dvh - 140px);justify-content:center;animation:rise .35s ease-out both}.pair-hero{text-align:center}.pair-hero h2{margin:10px 0 4px;font-size:20px;font-weight:700;color:var(--ink)}.pair-hero .muted{margin:0}.pair-illustration{display:block;width:min(280px,82%);height:auto;margin:0 auto}.sync-dot{animation:dot-pulse 1.6s ease-out infinite}.scan-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;font-size:15px}.pin-input{display:flex;gap:8px;justify-content:center}.pin-box{flex:0 0 44px;width:44px;height:56px;min-width:0;padding:0;text-align:center;font-size:22px;font-weight:700;text-transform:uppercase}.pair-loading{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--mute);min-height:24px}.code-card{overflow:hidden;background:var(--code-bg);color:var(--code-fg);border:1px solid var(--hairline);cursor:pointer;transition:border-color .18s ease-out}.code-card:hover{border-color:var(--hairline-strong)}.code-card-head{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid color-mix(in srgb,var(--code-fg) 12%,transparent);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--code-mute)}.code-card code{display:block;padding:12px 14px;background:transparent;border:none;font-size:14px}.code-card .prompt{color:var(--accent);margin-right:6px}.code-card .cmd{color:var(--accent)}.copy-btn{min-width:26px;min-height:26px;border-color:transparent;color:var(--code-mute)}.copy-btn:hover{color:var(--code-fg);border-color:color-mix(in srgb,var(--code-fg) 25%,transparent);background:color-mix(in srgb,var(--code-fg) 8%,transparent)}.pair-above{text-align:center;margin:0;font-size:12px}.pair-hint{text-align:center;margin:0}.install-cli-link{display:inline-flex;align-items:center;gap:4px;margin:8px auto 0;border:none;background:transparent;color:var(--mute);font-size:12px;min-height:32px;padding:0 8px}.install-cli-link:hover{color:var(--ink);background:transparent;text-decoration:underline}.install-cli-link .chevron{font-size:10px}.scan-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000d1}.scan-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--hairline);padding:16px;animation:rise .25s ease-out both}.scan-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.scan-head h3{margin:0;font-size:15px;color:var(--ink)}.scan-note{text-align:center;padding:24px 0}.scan-video{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--console)}.status{display:inline-block;padding:3px 10px;border:1px solid var(--hairline);border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:var(--surface-muted);white-space:nowrap}.status.running{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent)}.status.running:before{content:"■ ";font-size:9px}.status.waiting_input{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent);animation:status-blink 1.6s ease-in-out infinite}.status.done{color:var(--info);border-color:color-mix(in srgb,var(--info) 40%,transparent)}.status.restored{color:var(--info);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.status.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}#session-list{list-style:none;padding:0;margin:0}#session-list li.session{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:8px;box-shadow:var(--shadow);cursor:pointer;animation:rise .35s ease-out both;transition:border-color .18s ease-out,transform .18s ease-out}#session-list li.session:nth-child(2){animation-delay:40ms}#session-list li.session:nth-child(3){animation-delay:80ms}#session-list li.session:nth-child(4){animation-delay:.12s}#session-list li.session:hover{border-color:var(--accent);transform:translateY(-1px)}.session-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.session-name{font-size:15px;font-weight:700;color:var(--ink)}.session-meta{font-size:11px;color:var(--mute)}.session-light{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--mute)}.session-light .dot{width:6px;height:6px;background:currentColor}.session-light.waiting{color:var(--warning)}.session-light.waiting .dot{animation:status-blink 1.2s ease-in-out infinite}.session-light.running{color:var(--success)}.session-light.running .dot{animation:dot-pulse 2s ease-out infinite}.session-light.done{color:var(--info)}.session-light.error{color:var(--danger)}.session-light.restored{color:var(--info)}.session-menu-btn{flex:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid transparent;background:transparent;color:var(--mute);cursor:pointer}.session-menu-btn:hover{color:var(--ink);border-color:var(--hairline);background:transparent}.sheet-actions{display:flex;flex-direction:column;gap:8px}.sheet-actions button{min-height:44px}.new-session{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border-style:dashed;border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent);background:transparent}.new-session:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.sheet-backdrop{position:fixed;inset:0;z-index:40;background:#00000073}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:45;max-width:640px;margin:0 auto;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--hairline);box-shadow:0 -8px 24px #0000002e;animation:sheet-up .25s ease-out both}.bottom-sheet h2{margin:0 0 12px;font-size:14px;color:var(--ink)}.sheet-start{width:100%;justify-content:center}.sheet-handle{width:36px;height:4px;margin:0 auto 12px;background:var(--hairline-strong)}#session-list li.empty{display:block;text-align:center;padding:20px 0;background:transparent;border-style:dashed;cursor:default;animation:none}.session-skeleton{display:flex;flex-direction:column;gap:8px}.offline-banner{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);background:color-mix(in srgb,var(--warning) 8%,transparent);font-size:12px;color:var(--warning)}.skeleton-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--hairline);animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.skeleton-line{height:10px;background:var(--surface-muted)}.skeleton-line.w60{width:60%}.skeleton-line.w35{width:35%}.skeleton-dot{flex:none;width:7px;height:7px;background:var(--surface-muted)}.create-card h2,.empty-card h3,.card h3,.card h2{margin:0 0 12px;font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--ink)}.create-card .row{margin-bottom:8px}.empty-card{text-align:center}.empty-cmd{display:inline-block;margin-top:10px;padding:6px 10px;background:var(--surface-muted);border:1px solid var(--hairline);font-size:13px}.events{max-height:58vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;border:1px solid var(--chat-border);border-radius:8px;padding:6px;margin-bottom:10px;background:var(--chat-bg);color:var(--chat-fg)}.events::-webkit-scrollbar{display:none}.events.fade-top{-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 10px,black 100%);mask-image:linear-gradient(to bottom,transparent 0,black 10px,black 100%)}.events.fade-bottom{-webkit-mask-image:linear-gradient(to top,transparent 0,black 10px,black 100%);mask-image:linear-gradient(to top,transparent 0,black 10px,black 100%)}.events.fade-both{-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 10px,black calc(100% - 10px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,black 10px,black calc(100% - 10px),transparent 100%)}.events-empty{padding:28px 12px;text-align:center;font-size:13px}.events-empty:after{content:"▍";margin-left:4px;color:var(--chat-green);animation:blink 1.1s steps(2) infinite}.chat-skeleton{display:flex;flex-direction:column;gap:10px;padding:8px 4px}.chat-skeleton-line{height:12px;background:var(--chat-elevated);animation:skeleton-pulse 1.6s ease-in-out infinite}.chat-skeleton-line.right{margin-left:auto}.history-loading{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:11px;color:var(--chat-mute)}.load-earlier{align-self:center;margin:4px auto;font-size:11px}.agent-running{display:flex;align-items:center;gap:6px;margin:8px 0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--chat-yellow)}.agent-running .dot-matrix span{background:var(--chat-yellow)}.msg{margin:8px 0;max-width:92%}.msg.user{width:fit-content;max-width:92%;margin-left:auto;text-align:right;padding:8px 12px;background:var(--chat-elevated);color:var(--chat-fg);white-space:pre-wrap;word-break:break-word;font-size:13px}.msg.agent{margin-right:auto;font-size:13px}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:4px 0 8px;padding-left:20px}.md pre{background:var(--chat-elevated);border:1px solid color-mix(in srgb,var(--chat-fg) 12%,transparent);padding:10px;overflow-x:auto;font-size:12px;margin:8px 0}.md code{background:color-mix(in srgb,var(--chat-fg) 10%,transparent);padding:1px 5px}.md pre code{background:transparent;padding:0}.md a{color:var(--chat-blue)}.md blockquote{border-left:2px solid var(--hairline-strong);margin:6px 0;padding-left:10px;color:var(--chat-mute)}.md table{border-collapse:collapse;margin:6px 0}.md th,.md td{border:1px solid color-mix(in srgb,var(--chat-fg) 20%,transparent);padding:4px 8px}.md strong{color:var(--chat-fg)}.tool-log-wrap{padding:1px 0}.tool-log{display:flex;align-items:center;gap:6px;padding:3px 4px;font-size:11px;color:var(--chat-mute);cursor:default}.tool-log.expandable{cursor:pointer}.tool-log.expandable:hover{color:var(--chat-fg);background:color-mix(in srgb,var(--chat-fg) 5%,transparent)}.tool-glyph{flex:none;width:14px;text-align:center;color:var(--chat-yellow);font-size:11px}.tool-log.done .tool-glyph{color:var(--chat-green)}.tool-log.fail .tool-glyph{color:var(--chat-danger)}.tool-text{flex:1;min-width:0}.tool-chevron{color:var(--chat-mute);font-size:10px}.dot-matrix{display:inline-grid;grid-template-columns:repeat(3,3px);grid-template-rows:repeat(3,3px);gap:2px;width:13px;height:13px;vertical-align:-2px}.dot-matrix span{width:3px;height:3px;background:var(--chat-fg);animation:matrix-pulse 1.2s linear infinite}.tool-check{display:inline-block;width:7px;height:7px;background:var(--chat-green);vertical-align:-1px}.tool-check.fail{background:var(--chat-danger)}.tool-log-detail{margin:0 0 6px 24px;padding:8px;background:var(--chat-elevated);border:1px solid color-mix(in srgb,var(--chat-fg) 10%,transparent);font-size:11px;color:var(--chat-fg);white-space:pre-wrap;word-break:break-word;overflow-x:auto}.status-line{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--chat-mute);flex-wrap:wrap}.status-line.end{justify-content:center}.status-line.tone-running{color:var(--chat-green)}.status-line.tone-waiting_input{color:var(--chat-yellow);animation:status-blink 1.2s ease-in-out infinite}.status-line.tone-done{color:var(--chat-blue)}.status-line.tone-error{color:var(--chat-danger)}.status-line.tone-completed{color:var(--chat-green)}.status-line.tone-waiting{color:var(--chat-yellow)}.badge{border:1px solid color-mix(in srgb,var(--chat-fg) 18%,transparent);padding:2px 8px;font-size:10px;letter-spacing:.05em;color:var(--chat-mute);text-transform:none}.approval-card{margin:8px 0;padding:10px 12px 10px 14px;border-left:2px solid var(--warning);background:transparent}.approval-card.done{border-left-color:var(--success)}.approval-card.pending{border-left-color:var(--warning)}.approval-card.expired{border-left-color:var(--chat-mute);opacity:.75}.approval-note{margin-top:8px;font-size:12px}.approval-note.pending{color:var(--warning)}.approval-note.failed{color:var(--chat-danger)}.approval-note.expired{color:var(--chat-mute)}.approval-summary{font-size:13px;color:var(--chat-fg);margin:0 0 10px;white-space:pre-wrap;word-break:break-word}.approval-actions{display:flex;gap:8px}.approval-actions button{min-height:36px;background:transparent;border:1px solid color-mix(in srgb,var(--chat-green) 55%,transparent);color:var(--chat-green)}.approval-actions button.reject{border-color:color-mix(in srgb,var(--chat-danger) 55%,transparent);color:var(--chat-danger)}.approval-actions button:hover{background:color-mix(in srgb,var(--chat-green) 14%,transparent)}.approval-actions button.reject:hover{background:color-mix(in srgb,var(--chat-danger) 12%,transparent)}.approval-actions button:disabled{opacity:.55}.detail-card{position:relative;display:flex;flex-direction:column;height:calc(100dvh - 104px);padding:0;overflow:hidden}.detail-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--hairline)}.detail-head .back{border:none;background:transparent;padding:0;min-width:36px;min-height:36px;font-size:20px;font-weight:400;color:var(--mute);display:inline-flex;align-items:center;justify-content:center}.detail-head .back:hover{color:var(--ink)}.detail-head .conn{max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-title{flex:1;min-width:0;text-align:center}.detail-name{font-size:14px;font-weight:700;color:var(--ink)}.detail-card .events{border:none;border-radius:0;max-height:55vh;margin:0}.detail-card .events{flex:1;min-height:0;max-height:none}.prompt-form{position:sticky;bottom:0;display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--hairline);background:var(--surface)}.prompt-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.prompt-wrap input{flex:1;padding-right:42px}.send-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-width:30px;min-height:30px;padding:0;border:none;background:transparent;color:var(--accent);font-size:18px;font-weight:400;line-height:1;cursor:pointer}.send-btn:hover{color:var(--accent-hover);background:transparent}.send-btn:active{transform:translateY(calc(-50% + 1px))}.prompt-form .interrupt{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.conn-dot{flex:none;width:8px;height:8px;background:var(--mute)}.conn-dot.good{background:var(--success);animation:dot-pulse 2s ease-out infinite}.conn-dot.pending{background:var(--warning);animation:status-blink 1.2s ease-in-out infinite}.conn-dot.bad{background:var(--danger)}.jump-bottom{position:absolute;right:12px;bottom:68px;z-index:5;min-height:34px;padding:6px 12px;border:1px solid var(--hairline-strong);background:var(--surface);color:var(--mute);font-size:12px;box-shadow:var(--shadow)}.jump-bottom:hover{color:var(--ink)}.fatal-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent);font-size:12px;color:var(--danger)}.fatal-actions{display:flex;gap:8px}.fatal-actions button{min-height:32px;padding:4px 10px;font-size:12px}.device-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.device-status{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.device-stale-hint{margin:16px 0 0;font-size:12px}.device-danger{margin-top:28px;padding-top:20px;border-top:1px solid var(--hairline);text-align:center}#device-list{list-style:none;padding:0;margin:0}.device-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--hairline)}.device-item:last-child{border-bottom:none}.device-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.device-row1{display:flex;align-items:center;gap:8px;min-width:0}.device-name{font-size:13px;font-weight:700;color:var(--ink)}.device-current{flex:none;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.device-row2{font-size:11px;color:var(--mute)}.device-revoke{flex:none;min-height:34px;padding:4px 10px;font-size:12px}.device-revoke,.device-danger button{display:inline-flex;align-items:center;gap:6px}.device-card .empty{text-align:center;padding:14px 0 6px}.ghost-text-danger{border:none;background:transparent;color:var(--danger);font-size:12px;padding:0;min-height:32px}.ghost-text-danger:hover{background:transparent;color:var(--danger);text-decoration:underline}.modal-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000080}.modal{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--hairline);padding:18px;animation:rise .2s ease-out both}.modal h3{margin:0 0 8px;font-size:15px;color:var(--ink)}.modal .muted{margin:0 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translate(-3px)}to{opacity:1;transform:translate(0)}}@keyframes dot-pulse{0%{box-shadow:0 0 color-mix(in srgb,currentColor 45%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.55}}@keyframes approval-glow{0%,to{box-shadow:0 0 color-mix(in srgb,var(--warning) 0%,transparent)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--warning) 18%,transparent)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes matrix-pulse{0%,to{opacity:.15}10%{opacity:1}20%{opacity:.15}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:768px){main.app-main{padding:68px 12px 40px}main.main-detail{padding:0}.card{padding:14px}.topbar{position:fixed;top:0;left:0;bottom:0;width:264px;height:100dvh;z-index:40;flex-direction:column;align-items:stretch;gap:12px;padding:18px 16px;border-right:1px solid var(--hairline);border-bottom:none;box-shadow:var(--shadow);transform:translate(-105%);transition:transform .24s ease-out}.topbar.open{transform:translate(0)}.topbar .brand{margin-right:0}.topbar-nav{flex-direction:column;align-items:stretch;width:100%;gap:0}.topbar-nav .nav-item{text-align:left;padding:10px 4px;border-bottom:1px solid var(--hairline)}.topbar-nav .nav-item.active{color:var(--accent);border-bottom:2px solid var(--accent)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:12px;margin:4px 0 8px;border:1px solid var(--hairline);background:var(--surface-muted)}.sidebar-avatar{flex:none;width:40px;height:40px;border:1px solid var(--hairline-strong);background:var(--surface)}.sidebar-user-id{display:flex;flex-direction:column;min-width:0}.sidebar-user-name{font-size:13px;font-weight:700;color:var(--ink)}.sidebar-user-tag{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}#logout-btn,.topbar-actions .lang-toggle{text-transform:uppercase}.topbar-actions{flex-direction:column;align-items:stretch;margin-left:0;margin-top:auto}.topbar-actions .conn{justify-content:center}#logout-btn{width:100%}.sidebar-toggles{margin-top:12px;padding-top:12px;border-top:1px solid var(--hairline)}.sidebar-toggles .icon-btn,.sidebar-toggles .lang-toggle{flex:none;width:auto}.menu-toggle{display:inline-flex;position:fixed;top:12px;left:12px;z-index:30}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:25;background:#00000073}.topbar-static{position:static;width:auto;height:56px;flex-direction:row;align-items:center;transform:none;border-right:none;border-bottom:1px solid var(--hairline);box-shadow:none}.topbar-static .brand{margin-right:auto}.conn{max-width:100%;overflow:hidden;text-overflow:ellipsis}.pin-box{flex-basis:40px;width:40px;height:52px}}
