:root{--bg: #0a0b0f;--panel: rgba(16, 17, 22, .82);--panel-solid: #14151b;--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .16);--text: #f2f0ec;--muted: #9b9aa3;--dim: #6f6e78;--accent: #c96442;--green: #4f9a63;--blue: #4f7ec9;--amber: #c9a24f;--red: #c94f4f;--teal: #2fd4c4;--radius: 14px;--shadow: 0 12px 40px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg)}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;user-select:none}.bot-crossing-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#app{position:relative}.hud{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:10;transition:opacity .22s ease,transform .22s ease;--side: 334px}.hud.hidden{opacity:0;transform:scale(.985);pointer-events:none!important}.hud.hidden *{pointer-events:none!important}.panel{background:var(--panel);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;min-width:34px;padding:0 11px;border-radius:10px;border:1px solid var(--line);background:#ffffff0d;color:var(--text);font:inherit;font-size:13px;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform 90ms ease;pointer-events:auto}.btn:hover{background:#ffffff1c;border-color:var(--line-strong)}.btn:active{transform:scale(.96)}.btn.icon{padding:0;width:34px}.btn.primary{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.btn.primary:hover{background:#d97553}.btn.ghost{background:transparent}.btn[aria-pressed=true]{background:#c9644238;border-color:#c964428c;color:#ffb193}.btn svg{width:16px;height:16px;flex:none}.rail{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;padding:6px}.rail .btn{width:40px;height:40px;padding:0;border:none;background:transparent}.rail .btn:hover{background:#ffffff1a}.rail .btn svg{width:19px;height:19px}.rail .sep{height:1px;background:var(--line);margin:4px 6px}.settings{position:absolute;top:14px;right:14px;bottom:14px;width:306px;display:flex;flex-direction:column;overflow:hidden;transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .2s ease}.settings.closed{transform:translate(calc(100% + 20px));opacity:0;pointer-events:none}.settings header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;font-weight:650;font-size:15px;flex:none}.settings .body{overflow-y:auto;overscroll-behavior:contain;padding:0 16px 16px;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.settings .body::-webkit-scrollbar{width:8px}.settings .body::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px}.group{margin-top:14px}.group>h3{margin:0 0 9px;font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:3px 0;font-size:13.5px}.row .label{display:flex;flex-direction:column;gap:2px;min-width:0}.row .label .hint{font-size:11px;color:var(--dim);line-height:1.3}.row.overridden .label>span:first-child:after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.toggle{position:relative;width:42px;height:24px;border-radius:999px;border:none;background:#ffffff24;cursor:pointer;flex:none;transition:background .16s ease;pointer-events:auto}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s cubic-bezier(.22,1,.36,1);box-shadow:0 1px 3px #0006}.toggle[aria-checked=true]{background:var(--teal)}.toggle[aria-checked=true]:after{transform:translate(18px)}.select{appearance:none;height:30px;padding:0 28px 0 11px;border-radius:9px;border:1px solid var(--line);background:#ffffff0f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%239b9aa3' stroke-width='1.6'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E") no-repeat right 8px center / 12px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;flex:none;pointer-events:auto}.select:focus-visible{outline:2px solid var(--accent)}.slider{-webkit-appearance:none;appearance:none;width:118px;height:22px;background:transparent;cursor:pointer;flex:none;pointer-events:auto}.slider::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:#ffffff29}.slider::-moz-range-track{height:4px;border-radius:3px;background:#ffffff29}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--text);box-shadow:0 1px 4px #00000080}.slider::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--text)}.value{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.chips{display:flex;gap:5px;flex-wrap:wrap}.chip{flex:1 1 auto;height:30px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:#ffffff0d;color:var(--muted);font:inherit;font-size:12.5px;cursor:pointer;transition:all .14s ease;pointer-events:auto}.chip:hover{background:#ffffff1a;color:var(--text)}.chip[aria-pressed=true]{background:#2fd4c429;border-color:#2fd4c480;color:#7fe8dd;font-weight:600}.planets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.planet{display:flex;flex-direction:column;align-items:center;gap:7px;padding:11px 4px 9px;border-radius:12px;border:1px solid var(--line);background:#ffffff0a;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;transition:all .16s ease;pointer-events:auto}.planet:hover{background:#ffffff17}.planet[aria-pressed=true]{border-color:var(--teal);background:#2fd4c41f;color:var(--text);font-weight:600}.planet .orb{width:34px;height:34px;border-radius:50%;box-shadow:inset -6px -5px 10px #00000080,0 3px 10px #0006}.thread-pop{position:absolute;top:0;left:0;width:284px;padding:11px;display:none;flex-direction:column;gap:9px;will-change:transform;--nib-y: 50%}.thread-pop.on{display:flex}.thread-pop .nib{position:absolute;top:var(--nib-y);left:-6px;width:11px;height:11px;margin-top:-6px;background:var(--panel);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg);border-radius:0 0 0 3px}.thread-pop.flip .nib{left:auto;right:-6px;transform:rotate(-135deg)}.thread-pop .top{display:flex;align-items:flex-start;gap:10px}.thread-pop .avatar{width:46px;height:46px;border-radius:12px;flex:none;display:grid;place-items:center;background:#06070c;border:1px solid var(--line);position:relative;overflow:hidden}.thread-pop .avatar canvas{width:100%;height:100%;image-rendering:auto}.thread-pop .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.thread-pop .title{font-size:13.5px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.thread-pop .meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);flex-wrap:wrap}.thread-pop .tag{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:6px;background:#ffffff12;font-size:10.5px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.thread-pop .tag .swatch{width:7px;height:7px;border-radius:2px}.thread-pop #btn-deselect{flex:none;margin:-3px -3px 0 0;width:28px;min-width:28px;height:28px}.thread-pop #btn-deselect svg{width:14px;height:14px}.thread-pop .pair{display:flex;gap:6px}.thread-pop .pair .btn{flex:1;min-width:0;height:34px}.progress{height:5px;border-radius:3px;background:#ffffff1c;overflow:hidden}.progress>i{display:block;height:100%;border-radius:3px;background:var(--green);transition:width .4s ease}.side{position:absolute;top:14px;right:14px;bottom:14px;width:320px;display:flex;flex-direction:column;overflow:hidden;transition:transform .24s cubic-bezier(.22,1,.36,1)}.side.shifted{transform:translate(-320px)}.side .brandbar{display:flex;align-items:center;gap:2px;padding:10px 8px 10px 15px;flex:none;border-bottom:1px solid var(--line)}.side .brand{display:flex;align-items:center;gap:9px;font-weight:650;font-size:14px;letter-spacing:-.01em;white-space:nowrap;flex:1;min-width:0}.side .brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);flex:none}.side .brandbar .btn{width:30px;min-width:30px;height:30px}.side .brandbar .btn svg{width:15px;height:15px}.stats{display:flex;flex-wrap:wrap;gap:5px;padding:11px 15px;flex:none;border-bottom:1px solid var(--line)}.stat{display:inline-flex;align-items:center;gap:6px;height:27px;padding:0 9px;border-radius:999px;background:#ffffff0d;border:1px solid var(--line);color:inherit;font:inherit;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;transition:background .14s ease,border-color .14s ease;pointer-events:auto}.stat:hover{background:#ffffff1a;border-color:var(--line-strong)}.stat[data-empty=true]{opacity:.4}.stat .pip{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.stat .n{font-weight:650}.stat .lbl{color:var(--muted)}.stat.working{color:#7fd39a}.stat.waiting{color:#8fb4ee}.stat.blocked{color:#e88b8b}.stat.done{color:#e6c67f}.stat.idle{color:#b6b5be}.side-body,.side .projects-pane,.side .project-detail{flex:1;min-height:0;display:flex;flex-direction:column}.side .project-detail,.side.drilled .projects-pane{display:none}.side.drilled .project-detail{display:flex}.side .sec-head{display:flex;align-items:baseline;justify-content:space-between;padding:11px 15px 7px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);flex:none}.side .projects{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 9px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.side .hidden-block{flex:none;border-top:1px solid var(--line)}.side .hidden-block[hidden]{display:none}.side .hidden-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;padding:11px 15px 12px;border:0;background:transparent;color:var(--dim);font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.06em;text-align:left;cursor:pointer}.side .hidden-toggle:hover{color:var(--text)}.side .hidden-toggle:after{content:"";width:0;height:0;border-left:4px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;opacity:.7;transition:transform .14s ease}.side .hidden-toggle[aria-expanded=true]:after{transform:rotate(90deg)}.side .hidden-projects{padding:0 9px 12px;display:flex;flex-direction:column;gap:2px}.side .hidden-projects[hidden]{display:none}.side .hidden-repo{cursor:default}.side .hidden-repo:hover{background:transparent}.side .hidden-repo .n{opacity:.72}.thread-pop .actions #btn-viewed[hidden]{display:none}.side .folded-note .n{opacity:.6;font-style:italic}.side .show-repo{height:28px;padding:0 10px;font-size:12px;flex:none}.side .repo{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .14s ease,border-color .14s ease;pointer-events:auto}.side .repo:hover{background:#ffffff12}.side .repo[aria-pressed=true]{background:#ffffff17;border-color:var(--line-strong)}.side .repo .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .repo .count{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--dim)}.side .swatch{width:9px;height:9px;border-radius:3px;flex:none;box-shadow:0 0 9px currentColor}.side .alarm{width:6px;height:6px;border-radius:50%;background:var(--blue);flex:none;animation:pulse 1.4s ease-in-out infinite}.side .back{align-self:flex-start;margin:9px 9px 2px;height:28px;padding:0 9px 0 5px;font-size:12px;color:var(--muted);border-color:transparent;flex:none}.side .back svg{width:15px;height:15px}.side .who{display:flex;align-items:center;gap:9px;padding:2px 10px 10px 15px;flex:none}.side .who .text{flex:1;min-width:0}.side .name{font-weight:650;font-size:15px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .path{font-size:11px;color:var(--dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .project-actions{display:flex;flex-direction:column;gap:6px;padding:0 15px 13px;flex:none}.side .project-actions .btn{height:36px}.side .pair{display:flex;gap:6px}.side .pair .btn{flex:1;min-width:0}.side .btn:disabled{opacity:.4;cursor:default;pointer-events:none}.side .threads-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:11px 15px 8px;border-top:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);flex:none}.side .threads-head .want{color:var(--blue);text-transform:none;letter-spacing:0;font-size:11.5px}.side .threads{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 9px 12px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.side .projects::-webkit-scrollbar,.side .threads::-webkit-scrollbar{width:8px}.side .projects::-webkit-scrollbar-thumb,.side .threads::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px}.side .thread{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;padding:8px 9px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .14s ease,border-color .14s ease;pointer-events:auto}.side .thread:hover{background:#ffffff12}.side .thread[aria-pressed=true]{background:#ffffff17;border-color:var(--line-strong)}.side .thread .pip{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}.side .thread .t{font-size:12.5px;line-height:1.3;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .thread .when{font-size:11px;color:var(--dim);white-space:nowrap}.side .thread .wt{grid-column:2 / -1;font-size:10.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .thread.working{color:#7fd39a}.side .thread.waiting{color:#8fb4ee}.side .thread.blocked{color:#e88b8b}.side .thread.done{color:#e6c67f}.side .thread.idle{color:#7c7b86}.toasts{position:absolute;bottom:14px;right:calc(14px + var(--side));display:flex;flex-direction:column;align-items:flex-end;gap:7px}.toast{padding:9px 13px;border-radius:10px;font-size:12.5px;max-width:320px;animation:toast-in .26s cubic-bezier(.22,1,.36,1)}.toast.err{border-color:#c94f4f80;color:#ffb4b4}.toast.leaving{animation:toast-out .22s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@keyframes toast-out{to{opacity:0;transform:translate(16px)}}.fps{position:absolute;left:14px;bottom:14px;padding:7px 11px;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--muted);line-height:1.55;display:none}.fps.on{display:block}.fps b{color:var(--text);font-weight:600}.help{position:absolute;inset:0;display:none;place-items:center;background:#06070bb8;backdrop-filter:blur(6px);pointer-events:auto}.help.open{display:grid}.help .sheet{width:min(560px,calc(100vw - 40px));padding:22px 24px}.help h2{margin:0 0 4px;font-size:17px}.help p.sub{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.5}.help .cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 26px}.help .k{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:5px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.05)}.help .k span{color:var(--muted)}kbd{display:inline-block;min-width:20px;padding:2px 6px;border-radius:5px;border:1px solid var(--line-strong);background:#ffffff12;font:inherit;font-size:11px;font-weight:600;text-align:center;white-space:nowrap}.help .legend-row{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13px;color:var(--muted)}.help .legend-row .badge{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.login{position:absolute;inset:0;display:none;place-items:center;background:#06070bb8;backdrop-filter:blur(6px);pointer-events:auto;z-index:20}.login.open{display:grid}.login .sheet{width:min(340px,calc(100vw - 40px));padding:22px 24px}.login h2{margin:0 0 4px;font-size:17px}.login p.sub{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}.login input[type=password]{width:100%;padding:9px 11px;border-radius:9px;border:1px solid var(--line-strong);background:#ffffff0f;color:var(--text);font:inherit;font-size:14px}.login input[type=password]:focus{outline:2px solid var(--accent);outline-offset:1px}.login .error{min-height:18px;margin-top:8px;color:var(--red);font-size:12.5px}.login .btn.primary{width:100%;margin-top:12px;justify-content:center}.terminal{position:absolute;inset:14px;display:none;pointer-events:auto;flex-direction:column;overflow:hidden}.terminal.open{display:flex}.terminal header{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);flex:none}.terminal header .actions{display:flex;align-items:center;gap:6px;flex:none}.terminal header .btn.ghost:not(.icon){height:28px;padding:0 12px;font-size:12px}.term-frame{flex:1;width:100%;border:0;background:#0a0b0f}.hint-pill{position:absolute;top:78px;left:50%;transform:translate(-50%);padding:8px 14px;font-size:12.5px;color:var(--muted);opacity:0;transition:opacity .3s ease}.hint-pill.on{opacity:1}.boot{position:absolute;inset:0;display:grid;place-items:center;background:var(--bg);z-index:50;transition:opacity .5s ease}.boot.gone{opacity:0;pointer-events:none}.boot .inner{text-align:center}.boot h1{margin:0 0 6px;font-size:19px;font-weight:650;letter-spacing:-.01em}.boot p{margin:0;color:var(--dim);font-size:13px}.boot .bar{width:168px;height:3px;margin:18px auto 0;border-radius:3px;background:#ffffff1a;overflow:hidden}.boot .bar>i{display:block;height:100%;width:40%;border-radius:3px;background:var(--accent);animation:sweep 1.1s ease-in-out infinite}@keyframes sweep{0%{transform:translate(-110%)}to{transform:translate(320%)}}@media(max-width:820px){.settings{width:min(306px,calc(100vw - 28px))}.side{width:min(320px,calc(100vw - 28px))}.hud{--side: 0px}.side.shifted{transform:translate(0)}.rail{display:none}.stats{gap:5px}.stat .lbl{display:none}.legend{max-width:calc(100vw - 28px)}}@media(max-width:600px){.topbar{height:46px;padding:0 6px 0 12px}.brand span,.stats .stat .lbl{display:none}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.bot-crossing-canvas{cursor:grab}
