:root{--color-paper:oklch(16% .012 155);--color-paper-raised:oklch(19% .014 155);--color-paper-sunken:oklch(13% .01 155);--color-rule:oklch(28% .015 155);--color-rule-strong:oklch(38% .02 155);--color-ink:oklch(87% .02 150);--color-ink-dim:oklch(62% .02 150);--color-ink-faint:oklch(46% .015 150);--color-accent:oklch(80% .17 150);--color-accent-dim:oklch(60% .12 150);--color-danger:oklch(66% .19 25);--color-warn:oklch(78% .14 85);--color-info:oklch(75% .11 230);--color-focus:oklch(80% .17 150);--color-mark-bg:oklch(78% .14 85);--color-mark-ink:oklch(18% .02 85);--color-host-amber:oklch(75% .13 70);--color-host-cyan:oklch(76% .11 210);--color-host-violet:oklch(72% .12 300);--ansi-0:oklch(25% .01 155);--ansi-1:oklch(64% .19 25);--ansi-2:oklch(75% .16 150);--ansi-3:oklch(78% .14 85);--ansi-4:oklch(68% .13 245);--ansi-5:oklch(70% .15 320);--ansi-6:oklch(76% .11 200);--ansi-7:oklch(80% .02 150);--ansi-8:oklch(48% .015 155);--ansi-9:oklch(70% .21 25);--ansi-10:oklch(83% .19 150);--ansi-11:oklch(85% .16 90);--ansi-12:oklch(75% .13 245);--ansi-13:oklch(77% .16 320);--ansi-14:oklch(83% .12 200);--ansi-15:oklch(95% .01 150);--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--text-xs:.6875rem;--text-sm:.78125rem;--text-md:.8125rem;--text-lg:.9375rem;--space-2xs:.125rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-med:.2s;--rule-hairline:1px solid var(--color-rule)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html,body{overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-md);-webkit-font-smoothing:antialiased;line-height:1.55}button{font:inherit;color:var(--color-ink-dim);cursor:pointer;background:0 0;border:none}button:hover{color:var(--color-ink)}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default;transform:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}input,select{font:inherit;color:var(--color-ink);background:var(--color-paper-sunken);border:var(--rule-hairline);padding:var(--space-xs) var(--space-sm)}input::placeholder{color:var(--color-ink-faint)}::selection{background:var(--color-accent-dim);color:var(--color-paper)}mark{background:var(--color-mark-bg);color:var(--color-mark-ink)}kbd{font-family:var(--font-mono);font-size:var(--text-xs);border:var(--rule-hairline);padding:0 var(--space-xs);color:var(--color-ink);border-bottom-width:2px}.app{flex-direction:column;height:100%;display:flex}.main{flex:1;min-height:0;display:flex}.panes{flex:1;min-width:0;display:flex}.tabbar{align-items:stretch;gap:var(--space-sm);border-bottom:var(--rule-hairline);background:var(--color-paper-sunken);padding:0 var(--space-sm);min-height:2.1rem;display:flex}.brand{color:var(--color-accent);letter-spacing:.08em;padding:0 var(--space-xs);align-self:center;font-weight:700}.ws-name{color:var(--color-ink-faint);font-size:var(--text-xs);border:var(--rule-hairline);padding:0 var(--space-sm);align-self:center;line-height:1.6}.tabs{scrollbar-width:none;flex:1;align-items:stretch;min-width:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{align-items:center;gap:var(--space-xs);padding:0 var(--space-sm);border-right:var(--rule-hairline);color:var(--color-ink-dim);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;display:flex}.tab:first-child{border-left:var(--rule-hairline)}.tab:hover{color:var(--color-ink);background:var(--color-paper-raised)}.tab.active{color:var(--color-ink);background:var(--color-paper);box-shadow:inset 0 2px 0 var(--color-accent)}.tab-idx{color:var(--color-ink-faint);font-size:var(--text-xs)}.tab-dot{border-radius:50%;width:6px;height:6px}.tab-dot.run{background:var(--color-accent);animation:pulse 2s var(--ease-in-out) infinite}.tab-dot.fail{background:var(--color-danger)}.tab-close{padding:0 var(--space-2xs);font-size:var(--text-sm)}.tab-new{padding:0 var(--space-sm);border-right:var(--rule-hairline)}.newtab-wrap{display:flex;position:relative}.env-menu{z-index:30;background:var(--color-paper-raised);border:var(--rule-hairline);flex-direction:column;min-width:11rem;display:flex;position:absolute;top:100%;left:0}.env-menu button{text-align:left;padding:var(--space-xs) var(--space-sm)}.env-menu button:hover{background:var(--color-paper-sunken);color:var(--color-accent)}.tabbar-right{align-items:center;gap:var(--space-2xs);display:flex}.panel-btn{font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);border:1px solid #0000}.panel-btn.on{color:var(--color-accent);border-color:var(--color-rule);background:var(--color-paper)}.split{flex:1;min-width:0;min-height:0;display:flex}.split.row{flex-direction:row}.split.col{flex-direction:column}.split-cell{flex-basis:0;min-width:0;min-height:0;display:flex}.split-divider{background:var(--color-rule);flex:0 0 1px}.pane{background:var(--color-paper);border:1px solid #0000;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.pane.active{border-color:var(--color-rule)}.pane.remote{box-shadow:inset 0 2px 0 var(--color-host-amber)}.pane.remote.host-cyan{box-shadow:inset 0 2px 0 var(--color-host-cyan)}.pane.remote.host-violet{box-shadow:inset 0 2px 0 var(--color-host-violet)}.pane-scroll{padding:var(--space-sm) var(--space-md) var(--space-lg);flex:1;overflow:clip auto}.pane-empty{color:var(--color-ink-faint);padding:var(--space-xs) 0;flex-direction:column;display:flex}.pane-search{align-items:center;gap:var(--space-sm);border-bottom:var(--rule-hairline);background:var(--color-paper-sunken);padding:var(--space-xs) var(--space-md);display:flex}.pane-search input{background:0 0;border:none;flex:1;padding:0}.pane-search input:focus-visible{outline:none}.ps-label{color:var(--color-accent)}.ps-count{color:var(--color-ink-faint);font-size:var(--text-xs);white-space:nowrap}.block{margin-bottom:var(--space-2xs);position:relative}.block.dimmed{opacity:.35}.block-gutter{left:calc(-1 * var(--space-md) + 2px);background:0 0;width:2px;position:absolute;top:.3rem;bottom:.3rem}.block.ok .block-gutter{background:var(--color-rule)}.block.fail .block-gutter{background:var(--color-danger)}.block.int .block-gutter{background:var(--color-warn)}.block.run .block-gutter{background:var(--color-accent);animation:pulse 2s var(--ease-in-out) infinite}.block-cmdline{align-items:baseline;gap:var(--space-sm);min-width:0;display:flex}.block-prompt-char{color:var(--color-accent);flex:none}.block-cmd{color:var(--color-ink);word-break:break-all;font-weight:600}.block-meta{align-items:baseline;gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-ink-faint);flex:none;margin-left:auto;display:flex}.block-meta .t{white-space:nowrap}.block-meta .bm{color:var(--color-warn)}.exit-tag{font-size:var(--text-xs);color:var(--color-warn);border:1px solid var(--color-rule);padding:0 var(--space-xs)}.exit-tag.bad{color:var(--color-danger);border-color:var(--color-danger)}.exit-tag:hover{background:var(--color-paper-raised)}.block-actions{gap:var(--space-2xs);display:none}.block:hover .block-actions,.block:focus-within .block-actions{display:inline-flex}.block-actions button{padding:0 var(--space-2xs);font-size:var(--text-sm)}.block-out{font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;color:var(--color-ink-dim);padding:var(--space-2xs) 0 var(--space-xs) var(--space-lg)}.block-collapsed{color:var(--color-ink-faint);font-size:var(--text-xs);padding:0 0 var(--space-xs) var(--space-lg);display:block}.block-collapsed:hover{color:var(--color-ink)}.cursor-line{color:var(--color-accent);animation:1.1s step-end infinite blink}.prompt{align-items:baseline;gap:var(--space-sm);padding-top:var(--space-xs);cursor:text;display:flex}.prompt.waiting{opacity:.6}.pr-user{color:var(--color-ink-faint)}.pane.remote .pr-user{color:var(--color-host-amber)}.pane.remote.host-cyan .pr-user{color:var(--color-host-cyan)}.pane.remote.host-violet .pr-user{color:var(--color-host-violet)}.pr-path{color:var(--color-info)}.pr-branch{color:var(--color-accent-dim)}.pr-dirty{color:var(--color-warn)}.pr-char{color:var(--color-accent);font-weight:700}.pr-input{min-width:4rem;caret-color:var(--color-accent);background:0 0;border:none;flex:1;padding:0}.pr-input:focus-visible{outline:none}.composer{border-top:1px solid var(--color-rule-strong);background:var(--color-paper-sunken);padding:var(--space-sm) var(--space-md)}.composer-input-row{align-items:center;gap:var(--space-sm);display:flex}.composer-glyph{color:var(--color-accent);font-weight:700}.composer-input-row input{background:0 0;border:none;flex:1}.composer-input-row input:focus-visible{outline:none}.composer-proposal{padding-top:var(--space-sm)}.cp-cmd-row{align-items:center;gap:var(--space-sm);display:flex}.cp-cmd{color:var(--color-accent);background:var(--color-paper);border:var(--rule-hairline);padding:var(--space-xs) var(--space-sm);white-space:nowrap;flex:1;overflow-x:auto}.cp-insert{color:var(--color-paper);background:var(--color-accent);padding:var(--space-xs) var(--space-md);white-space:nowrap;font-weight:600}.cp-insert:hover{background:var(--color-ink);color:var(--color-paper)}.cp-summary{color:var(--color-ink);padding:var(--space-xs) 0}.cp-breakdown{font-size:var(--text-sm)}.cp-breakdown div{gap:var(--space-sm);display:flex}.cp-breakdown dt{color:var(--color-info);overflow-wrap:anywhere;flex:0 0 16rem}.cp-breakdown dd{color:var(--color-ink-dim)}.cp-danger{color:var(--color-danger);border:1px solid var(--color-danger);padding:var(--space-xs) var(--space-sm);margin-top:var(--space-sm)}.cp-note{color:var(--color-ink-faint);font-size:var(--text-xs);padding-top:var(--space-xs)}.cp-miss{color:var(--color-ink-faint);font-size:var(--text-sm);padding-top:var(--space-sm)}.side-panel{border-left:var(--rule-hairline);background:var(--color-paper-sunken);flex-direction:column;flex:0 0 24rem;max-width:45vw;min-height:0;display:flex}.panel-head{align-items:baseline;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-hairline);display:flex}.panel-head h2{font-size:var(--text-md);color:var(--color-accent);letter-spacing:.05em;font-weight:700}.panel-hint{color:var(--color-ink-faint);font-size:var(--text-xs);flex:1}.panel-head .ghost{margin-left:auto}.ghost{border:var(--rule-hairline);padding:0 var(--space-sm);font-size:var(--text-sm)}.ghost:hover{border-color:var(--color-rule-strong)}.ghost.tiny{font-size:var(--text-xs);padding:0 var(--space-xs)}.panel-filters{padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-hairline)}.panel-filters input{width:100%}.filter-row{gap:var(--space-xs);padding-top:var(--space-xs);flex-wrap:wrap;display:flex}.filter-row select{min-width:6rem;font-size:var(--text-xs);flex:1}.panel-list{padding:var(--space-sm) var(--space-md);flex:1;overflow-y:auto}.panel-empty{color:var(--color-ink-faint);padding:var(--space-md) 0}.panel-note{color:var(--color-ink-faint);font-size:var(--text-xs);border-top:var(--rule-hairline);margin-top:var(--space-md);padding-top:var(--space-sm)}.hist-row{padding:var(--space-xs) 0;border-bottom:1px solid var(--color-paper-raised)}.hist-cmd{text-align:left;width:100%;color:var(--color-ink);word-break:break-all;display:block}.hist-cmd:hover{color:var(--color-accent)}.hist-row.failed .hist-cmd{color:var(--color-ink-dim)}.hist-meta{gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-ink-faint);flex-wrap:wrap;display:flex}.hist-meta .ok{color:var(--color-accent-dim)}.hist-meta .bad{color:var(--color-danger)}.proc-group{margin-bottom:var(--space-lg)}.proc-group h3{color:var(--color-ink);font-size:var(--text-sm);padding-bottom:var(--space-xs)}.proc-header-row,.proc-row{gap:var(--space-xs);font-size:var(--text-xs);grid-template-columns:3.2rem minmax(0,1fr) 2.8rem 3rem 3.4rem 3.4rem;align-items:baseline;display:grid}.proc-header-row{color:var(--color-ink-faint);border-bottom:var(--rule-hairline)}.proc-row{padding:var(--space-2xs) 0;border-bottom:1px solid var(--color-paper-raised)}.proc-row.mine .pname{color:var(--color-accent)}.proc-row .pid{color:var(--color-ink-faint)}.proc-row .pname{color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proc-row .pcmd,.proc-row .tree{color:var(--color-ink-faint)}.proc-row .num{text-align:right;color:var(--color-ink-dim)}.proc-row .ports{color:var(--color-info)}.proc-foot{color:var(--color-ink-faint);font-size:var(--text-xs);padding-top:var(--space-xs)}.host-row{border:var(--rule-hairline);padding:var(--space-sm);margin-bottom:var(--space-sm)}.host-row.connected{border-color:var(--color-rule-strong)}.host-line1{align-items:center;gap:var(--space-sm);display:flex}.host-chip{background:var(--color-ink-faint);flex:none;width:8px;height:8px}.host-row.host-amber .host-chip{background:var(--color-host-amber)}.host-row.host-cyan .host-chip{background:var(--color-host-cyan)}.host-row.host-violet .host-chip{background:var(--color-host-violet)}.host-label{color:var(--color-ink);font-weight:600}.host-state{font-size:var(--text-xs);color:var(--color-ink-faint);margin-left:auto}.host-state.on{color:var(--color-accent)}.host-line2{color:var(--color-ink-dim);font-size:var(--text-sm);padding:var(--space-2xs) 0}.host-line3{align-items:center;gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-ink-faint);flex-wrap:wrap;display:flex}.host-line3 .ghost{margin-left:auto}.ws-row{border-bottom:1px solid var(--color-paper-raised);padding:var(--space-sm) 0}.ws-row.on .ws-open{color:var(--color-accent)}.ws-line1{align-items:baseline;gap:var(--space-sm);display:flex}.ws-open{color:var(--color-ink);font-weight:600}.ws-open:hover{color:var(--color-accent)}.ws-meta{color:var(--color-ink-faint);font-size:var(--text-xs);flex:1}.ws-services{gap:var(--space-sm);padding-top:var(--space-2xs);flex-wrap:wrap;display:flex}.ws-svc{font-size:var(--text-xs);color:var(--color-ink-faint)}.ws-svc.up{color:var(--color-accent)}.ws-detail{padding:var(--space-md) 0}.ws-detail h3{font-size:var(--text-xs);color:var(--color-ink-faint);text-transform:lowercase;padding:var(--space-sm) 0 var(--space-2xs)}.ws-notes{color:var(--color-ink-dim);font-size:var(--text-sm)}.ws-save{gap:var(--space-xs);padding-top:var(--space-md);display:flex}.ws-save input{flex:1}.lib-group{margin-bottom:var(--space-md)}.lib-group h3{font-size:var(--text-xs);color:var(--color-ink-faint);padding-bottom:var(--space-2xs)}.lib-row{align-items:baseline;gap:var(--space-sm);padding:var(--space-2xs) 0;display:flex}.lib-cmd{text-align:left;color:var(--color-ink);word-break:break-all;display:block}.lib-cmd:hover{color:var(--color-accent)}.lib-note{color:var(--color-ink-faint);font-size:var(--text-xs);flex:1}.inspector h3{font-size:var(--text-xs);color:var(--color-ink-faint);padding:var(--space-md) 0 var(--space-2xs)}.insp-cmd{color:var(--color-ink);background:var(--color-paper);border:var(--rule-hairline);padding:var(--space-xs) var(--space-sm);word-break:break-all;display:block}.insp-grid{gap:var(--space-2xs) var(--space-sm);padding-top:var(--space-sm);font-size:var(--text-sm);grid-template-columns:5.4rem minmax(0,1fr);display:grid}.insp-grid .k{color:var(--color-ink-faint)}.insp-loc{color:var(--color-warn)}.insp-expl{color:var(--color-ink-dim);font-size:var(--text-sm)}.insp-related{text-align:left;width:100%;color:var(--color-ink-dim);font-size:var(--text-sm);padding:var(--space-2xs) 0;word-break:break-all;display:block}.insp-related:hover{color:var(--color-ink)}.insp-related .ok{color:var(--color-accent-dim)}.insp-related .bad{color:var(--color-danger)}.insp-suggestion{border:var(--rule-hairline);padding:var(--space-sm)}.insp-suggestion.danger{border-color:var(--color-danger)}.insp-suggestion code{color:var(--color-accent);word-break:break-all;display:block}.insp-suggestion p{color:var(--color-ink-dim);font-size:var(--text-sm);padding:var(--space-xs) 0}.insp-suggestion .cp-insert{margin-top:var(--space-xs)}.statusbar{align-items:center;gap:var(--space-md);border-top:var(--rule-hairline);background:var(--color-paper-sunken);padding:var(--space-2xs) var(--space-md);font-size:var(--text-xs);color:var(--color-ink-dim);white-space:nowrap;min-height:1.5rem;display:flex;overflow:hidden}.sb-host{color:var(--color-ink)}.sb-remote{color:var(--color-host-amber)}.sb-lat{color:var(--color-ink-faint)}.sb-dirty{color:var(--color-warn)}.sb-dim{color:var(--color-ink-faint)}.sb-port{color:var(--color-info);margin-right:var(--space-xs)}.sb-spacer{flex:1}.sb-recent{text-overflow:ellipsis;max-width:30rem;overflow:hidden}.sb-running{color:var(--color-accent)}.overlay{z-index:50;background:oklch(10% .01 155/.7);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.shortcuts{background:var(--color-paper);border:1px solid var(--color-rule-strong);width:min(46rem,92vw);max-height:80vh;overflow-y:auto}.shortcut-groups{gap:var(--space-lg);padding:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));display:grid}.shortcut-groups h3{font-size:var(--text-xs);color:var(--color-ink-faint);padding-bottom:var(--space-xs)}.sc-row{gap:var(--space-sm);padding:var(--space-2xs) 0;align-items:baseline;display:flex}.sc-row kbd{text-align:center;flex:0 0 4.6rem}.sc-row span{color:var(--color-ink-dim);font-size:var(--text-sm)}.a-fg0{color:var(--ansi-0)}.a-fg1{color:var(--ansi-1)}.a-fg2{color:var(--ansi-2)}.a-fg3{color:var(--ansi-3)}.a-fg4{color:var(--ansi-4)}.a-fg5{color:var(--ansi-5)}.a-fg6{color:var(--ansi-6)}.a-fg7{color:var(--ansi-7)}.a-fg8{color:var(--ansi-8)}.a-fg9{color:var(--ansi-9)}.a-fg10{color:var(--ansi-10)}.a-fg11{color:var(--ansi-11)}.a-fg12{color:var(--ansi-12)}.a-fg13{color:var(--ansi-13)}.a-fg14{color:var(--ansi-14)}.a-fg15{color:var(--ansi-15)}.a-bg0{background:var(--ansi-0)}.a-bg1{background:var(--ansi-1)}.a-bg2{background:var(--ansi-2)}.a-bg3{background:var(--ansi-3)}.a-bg4{background:var(--ansi-4)}.a-bg5{background:var(--ansi-5)}.a-bg6{background:var(--ansi-6)}.a-bg7{background:var(--ansi-7)}.a-b{font-weight:700}.a-d{color:var(--color-ink-faint)}.a-i{font-style:italic}.a-u{text-decoration:underline}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-rule)}::-webkit-scrollbar-thumb:hover{background:var(--color-rule-strong)}::-webkit-scrollbar-track{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--color-rule) transparent}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes blink{0%,60%{opacity:1}61%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.tab-dot.run,.block.run .block-gutter,.cursor-line{animation:none}button:active{transform:none}}@media (width<=768px){.side-panel{z-index:20;max-width:92vw;position:absolute;top:2.1rem;bottom:1.5rem;right:0}.block-meta .t,.sb-recent{display:none}.cp-breakdown dt{flex-basis:9rem}}
