:root{--bg:#0b0d10;--surface:#12151a;--raised:#181c23;--sunk:#0e1114;--hairline:rgba(255,255,255,0.07);--hairline-strong:rgba(255,255,255,0.12);--fg:#e7e9ee;--fg-2:#a3a9b5;--fg-3:#6f7583;--fg-4:#474c57;--accent:#7aa2ff;--accent-ink:#0b0d10;--accent-soft:rgba(122,162,255,0.14);--accent-line:rgba(122,162,255,0.45);--wait:#e0a458;--wait-bg:rgba(224,164,88,0.14);--run:#7aa2ff;--run-bg:rgba(122,162,255,0.14);--done:#4fbf8a;--done-bg:rgba(79,191,138,0.14);--stop:#e5695f;--stop-bg:rgba(229,105,95,0.14);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:6px;--r-lg:8px;--r-xl:10px;--rail-w:224px;--topbar-h:48px;--font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--ease:cubic-bezier(0.2,0.8,0.2,1);--shadow:0 16px 48px rgba(0,0,0,0.5)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}html{color-scheme:dark}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"lnum";font-variant-numeric:lining-nums}.mono,.tnum,td.tnum{font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}time.tnum{white-space:nowrap}.mono{font-family:var(--mono);font-size:12px}button,input,select,textarea{font:inherit;color:inherit;background:none;border:0}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.app{height:100vh}.app,.rail{display:flex;overflow:hidden}.rail{width:var(--rail-w);flex:none;flex-direction:column;padding:var(--s3) var(--s2) var(--s2);background:var(--surface);border-right:1px solid var(--hairline)}.navs{flex:1 1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--hairline-strong) transparent}.brand{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s1) var(--s3) var(--s2)}.brand .wm{font-weight:650;letter-spacing:-.02em;font-size:14px}.brand .ops{font-size:10.5px;color:var(--fg-3);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.envchip{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.06em;padding:1px 6px;border-radius:4px;background:var(--stop-bg);color:var(--stop)}.envchip.local{background:var(--raised);color:var(--fg-3)}.navgroup{margin-top:2px}.navhead{display:flex;align-items:center;gap:6px;width:100%;height:26px;padding:0 var(--s2);margin-top:var(--s3);border-radius:var(--r);color:var(--fg-4);text-align:left}.navhead:hover{background:var(--raised);color:var(--fg-2)}.navhead h3{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:inherit}.navhead .chev{display:grid;place-items:center;width:14px;height:14px;transform:rotate(90deg);transition:transform .18s var(--ease)}.navhead.folded .chev{transform:rotate(0deg)}.navhead .count{margin-left:auto}.navitems{padding:2px 0}.nav{position:relative;display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 var(--s2);border-radius:var(--r);color:var(--fg-2);font-size:13px;transition:background .12s var(--ease),color .12s var(--ease)}.nav .ico{flex:none;display:grid;place-items:center;width:18px;height:18px;color:var(--fg-3);transition:color .12s var(--ease)}.nav .label{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav:hover{background:var(--raised)}.nav.sel,.nav:hover,.nav:hover .ico{color:var(--fg)}.nav.sel{background:var(--accent-soft);font-weight:550}.nav.sel .ico{color:var(--accent)}.count{margin-left:auto;font-size:11px;font-weight:600;color:var(--wait);background:var(--wait-bg);border-radius:10px;padding:0 6px;line-height:18px;min-width:18px;text-align:center}.navsep{height:1px;margin:var(--s1) var(--s1);background:var(--hairline)}.railtoggle{margin-left:auto}.rail.mini{width:56px;padding:var(--s3) var(--s1) var(--s2)}.rail.mini .brand{flex-direction:column;align-items:center;gap:var(--s2);padding:0 0 var(--s2)}.rail.mini .brand .wm{font-size:13px}.rail.mini .acct .iconbtn,.rail.mini .acct-text,.rail.mini .brand .ops,.rail.mini .envchip,.rail.mini .nav .label{display:none}.rail.mini .railtoggle{margin:0}.rail.mini .nav{justify-content:center;height:32px;padding:0;gap:0}.rail.mini .nav .ico{width:20px;height:20px}.rail.mini .count{position:absolute;top:3px;right:4px;min-width:14px;height:14px;line-height:14px;padding:0 4px;font-size:9.5px}.rail.mini .rail-foot{padding-top:var(--s2)}.rail.mini .acct{justify-content:center;padding:var(--s1)}.rail.mini .acct .avatar{width:30px;height:30px}.rail.mini .mini-out{display:grid;place-items:center;width:100%;height:30px;margin-top:var(--s1);border-radius:var(--r);color:var(--fg-3)}.rail.mini .mini-out:hover{background:var(--raised);color:var(--fg)}.rail:not(.mini) .mini-out{display:none}.rail-foot{flex:none;padding-top:var(--s3);border-top:1px solid var(--hairline)}.acct{display:flex;align-items:center;gap:var(--s2);padding:var(--s2);border-radius:var(--r)}.acct:hover{background:var(--raised)}.avatar{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--raised);color:var(--fg-2);font-size:11px;font-weight:600;letter-spacing:.02em;border:1px solid var(--hairline-strong)}.acct-text{min-width:0;flex:1 1;display:flex;flex-direction:column}.acct-name{font-size:12.5px;font-weight:550;color:var(--fg)}.acct-name,.acct-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acct-sub{font-size:11px;color:var(--fg-3)}.iconbtn{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r);color:var(--fg-3)}.iconbtn:hover{background:var(--surface);color:var(--fg)}.main{flex:1 1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{flex:none;height:var(--topbar-h);display:flex;align-items:center;gap:var(--s4);padding:0 var(--s5);border-bottom:1px solid var(--hairline);background:var(--bg)}.topbar h1{font-size:14px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.topbar .right{margin-left:auto;display:flex;align-items:center;gap:var(--s3);font-size:12px;color:var(--fg-3)}.jump{flex:1 1;max-width:520px}.jump .inp{width:100%;height:30px;padding:0 var(--s3);background:var(--sunk);border:1px solid var(--hairline);border-radius:var(--r);font-size:12px;color:var(--fg)}.jump .inp::placeholder{color:var(--fg-4)}.jump .inp:focus{border-color:var(--accent-line);outline:none}.tabs{display:flex;gap:var(--s1);padding:var(--s2) var(--s5) 0;border-bottom:1px solid var(--hairline)}.tab{padding:6px var(--s3) 10px;font-size:12.5px;color:var(--fg-3);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.sel,.tab:hover{color:var(--fg)}.tab.sel{border-bottom-color:var(--accent)}.wrap{flex:1 1;overflow:auto;padding:var(--s4) var(--s5) var(--s6)}.sec{display:flex;align-items:baseline;gap:var(--s3);margin:var(--s5) 0 var(--s2)}.sec:first-child{margin-top:var(--s1)}.sec h2{font-size:12px;font-weight:600;color:var(--fg-2);text-transform:uppercase;letter-spacing:.06em}.sec .hint{font-size:12px;color:var(--fg-3)}.sec .act{margin-left:auto;font-size:12px;color:var(--accent);font-weight:500}.group{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);margin-top:var(--s2)}.group.form,.group.pad{padding:var(--s4)}.group.narrow{max-width:560px}.empty{padding:var(--s6) var(--s4);text-align:center;color:var(--fg-3);font-size:13px}.note{padding:var(--s3) var(--s4);margin-top:var(--s2);font-size:12.5px;line-height:1.5;color:var(--fg-2);background:var(--surface);border:1px solid var(--hairline);border-left:2px solid var(--fg-4);border-radius:var(--r)}.note.wait{border-left-color:var(--wait);color:var(--fg)}.note.stop{border-left-color:var(--stop);color:var(--fg)}.note.done{border-left-color:var(--done)}.note b,.note.done{color:var(--fg)}.note .btn{margin-left:var(--s2)}.readonly-bar{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);margin-top:var(--s2);border-radius:var(--r);background:var(--wait-bg);color:var(--wait);font-weight:500;font-size:12.5px}.kv{display:grid;grid-template-columns:minmax(140px,max-content) 1fr;grid-gap:var(--s2) var(--s5);gap:var(--s2) var(--s5);align-items:baseline}.kv .k{font-size:12px;color:var(--fg-3)}.kv .v{font-size:13px;min-width:0;overflow-wrap:anywhere}.chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;color:var(--fg-2);background:var(--raised)}.chip.done:before,.chip.run:before,.chip.stop:before,.chip.wait:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.chip.wait{color:var(--wait);background:var(--wait-bg)}.chip.run{color:var(--run);background:var(--run-bg)}.chip.done{color:var(--done);background:var(--done-bg)}.chip.stop{color:var(--stop);background:var(--stop-bg)}.chip+.chip{margin-left:var(--s1)}.chip b{font-weight:700;margin-left:2px}.tablewrap{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);margin-top:var(--s2);overflow-x:auto}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}table.data th{position:-webkit-sticky;position:sticky;top:0;z-index:1;text-align:left;padding:9px var(--s3);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);background:var(--surface);white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--hairline)}table.data td{padding:8px var(--s3);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr.sel td,table.data tbody tr:focus-within td,table.data tbody tr:hover td{background:var(--raised)}table.data tr[tabindex]{cursor:default;outline:none}table.data td .btn{height:26px;padding:0 var(--s2);font-size:12px}table.data td .note{margin-top:0;padding:var(--s1) var(--s2);font-size:12px}table.data .chip,table.data .id,table.data .mono{white-space:nowrap}table.data td.wide{min-width:220px}.id{font-family:var(--mono);font-size:12px;color:var(--accent)}a.id:hover{text-decoration:underline;text-underline-offset:3px}.filters{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;margin-top:var(--s1)}.filters .inp,.filters select{height:30px;padding:0 var(--s3);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);font-size:12.5px;color:var(--fg)}.filters .inp::placeholder{color:var(--fg-4)}.filters .inp:focus,.filters select:focus{border-color:var(--accent-line);outline:none}.filters select option{background:var(--surface)}.filters label{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--fg-2)}.pager{display:flex;gap:var(--s2);margin-top:var(--s2);font-size:12px}.pager,.redacted{align-items:center;color:var(--fg-3)}.redacted{display:inline-flex;gap:6px;padding:0 6px;height:20px;border-radius:4px;background:var(--raised);font-size:11.5px;font-style:italic}.redacted:before{content:"redacted";font-style:normal;font-weight:600;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 var(--s3);border-radius:var(--r);font-size:12.5px;font-weight:550;white-space:nowrap;border:1px solid transparent;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:#91b3ff;color:var(--accent-ink)}.btn-ghost{border-color:var(--hairline-strong);color:var(--fg);background:transparent}.btn-ghost:hover{background:var(--raised);color:var(--fg)}.btn-quiet{color:var(--fg-3);padding:0 var(--s2)}.btn-quiet:hover{color:var(--fg);background:var(--raised)}.btn-danger{color:var(--stop);border-color:rgba(229,105,95,.35);background:transparent}.btn-danger:hover{background:var(--stop-bg);color:var(--stop)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;margin-top:var(--s3)}.btn-inline{height:auto;padding:0;border:0;background:none;color:inherit}.btn-inline:hover{color:var(--accent);background:none}.panel{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:40;overflow-y:auto;padding:var(--s5);background:var(--surface);border-left:1px solid var(--hairline);box-shadow:var(--shadow)}.panel h2{font-size:15px;font-weight:600;letter-spacing:-.01em;padding-right:72px}.panel .close{position:absolute;top:var(--s4);right:var(--s4)}.panel .kv,.panel h3{margin-top:var(--s4)}.panel h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3)}.list-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--hairline)}.list-row:last-child{border-bottom:0}.panel .field textarea{min-height:96px}.panel .lede{margin-top:var(--s3);font-size:13px;color:var(--fg)}.panel .op{margin-top:var(--s1);font-size:11.5px;color:var(--fg-3)}.panel .err{margin-top:var(--s2)}.hashes{display:grid;grid-gap:var(--s2);gap:var(--s2);margin-top:var(--s3)}.hashes .k{font-size:11px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em}.hashes .mono{word-break:break-all;padding:var(--s2) var(--s3);border-radius:var(--r);background:var(--sunk);border:1px solid var(--hairline)}.hashes.mismatch .mono{border-color:rgba(229,105,95,.4);color:var(--stop)}.pre{white-space:pre-wrap;margin-top:var(--s2);padding:var(--s3);border-radius:var(--r);background:var(--sunk);border:1px solid var(--hairline);font-size:12px}.field{display:block;margin-top:var(--s3)}.field .k{display:block;font-size:12px;color:var(--fg-2);margin-bottom:var(--s1)}.field .inp,.field select,.field textarea{display:block;width:100%;padding:7px var(--s3);background:var(--sunk);border:1px solid var(--hairline);border-radius:var(--r);font-size:13px;color:var(--fg)}.field .inp::placeholder,.field textarea::placeholder{color:var(--fg-4)}.field textarea{min-height:72px;resize:vertical}.field .inp:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-line);outline:none}.field.inline{display:flex;align-items:center;gap:var(--s2)}.field.inline .k{margin:0}input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px}.err{color:var(--stop)}.err,.ok{font-size:12.5px;margin-top:var(--s2)}.ok{color:var(--done)}.help{color:var(--fg-3);margin-top:var(--s2);line-height:1.5}.help,.small{font-size:12px}.muted{color:var(--fg-3)}.warn{color:var(--wait)}.row{display:flex;align-items:center;gap:var(--s2)}.row.nowrap{white-space:nowrap}.right-align{text-align:right}.grow{flex:1 1;min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:var(--s2);gap:var(--s2);margin-top:var(--s2)}.tile{display:block;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);transition:border-color .12s var(--ease)}a.tile:hover{border-color:var(--hairline-strong);color:inherit}.tile .k,.tile .n,.tile .s{display:block}.tile .k{font-size:11.5px;color:var(--fg-3)}.tile .n{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.tile .n,.tile .s{margin-top:var(--s1)}.tile .s{font-size:12px;color:var(--fg-3);line-height:1.4}.tile .n.wait{color:var(--wait)}.tile .n.stop{color:var(--stop)}.tile .n.done{color:var(--done)}.picker{position:relative;display:flex;align-items:center;gap:var(--s2)}.picker .inp{min-width:300px;height:30px;padding:0 var(--s3);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);font-size:12.5px;color:var(--fg)}.picker .inp::placeholder{color:var(--fg-4)}.picker .inp:focus{border-color:var(--accent-line);outline:none}.group .picker{margin-top:var(--s3)}.picked{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--fg-2)}.picked .btn{padding:0 6px;height:22px}.picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:420px;list-style:none;padding:var(--s1);background:var(--raised);border:1px solid var(--hairline-strong);border-radius:var(--r-lg);box-shadow:var(--shadow)}.picker-menu li button{display:grid;grid-template-columns:1fr auto auto auto;grid-gap:var(--s3);gap:var(--s3);align-items:center;width:100%;padding:7px var(--s2);border-radius:var(--r);text-align:left;font-size:12.5px}.picker-menu li button:hover,.picker-menu li[aria-selected=true] button{background:var(--accent-soft)}.picker-menu .who{font-weight:550}.picker-menu .hint{font-size:12px;color:var(--fg-3);padding:7px var(--s2)}.bar-row{display:grid;grid-template-columns:90px 1fr 60px;align-items:center;grid-gap:var(--s3);gap:var(--s3);padding:6px 0}.bar{height:8px;background:var(--sunk);position:relative;overflow:hidden}.bar,.bar>span{border-radius:4px}.bar>span{position:absolute;inset:0;background:var(--run)}.bar>span.done{background:var(--done)}.auth{min-height:100vh;display:grid;place-items:center;align-content:center;grid-gap:var(--s4);gap:var(--s4);padding:var(--s5)}.auth .card{width:min(440px,100%);padding:var(--s5);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl)}.auth .brand{padding:0 0 var(--s4)}.auth h1{font-size:18px;font-weight:600;letter-spacing:-.01em}.auth p{color:var(--fg-2);margin-top:var(--s2);font-size:13px;line-height:1.5}.auth .sent{color:var(--fg)}.auth .note,.auth .sent{margin-top:var(--s3)}.auth .inp.code{font-size:20px;letter-spacing:.16em;padding:9px var(--s3)}.auth-foot{font-size:12px;color:var(--fg-3);text-align:center;max-width:440px}.steps{display:flex;gap:var(--s1);list-style:none;margin-top:var(--s4)}.steps li{display:flex;align-items:center;gap:var(--s2);flex:1 1;padding:6px var(--s2);border-radius:var(--r);font-size:12px;color:var(--fg-3);background:var(--sunk);border:1px solid var(--hairline)}.steps li .n{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--raised);color:var(--fg-3);font-size:11px;font-weight:600}.steps li.now{color:var(--fg);border-color:var(--accent-line)}.steps li.now .n{background:var(--accent);color:var(--accent-ink)}.steps li.done{color:var(--done)}.steps li.done .n{background:var(--done);color:var(--accent-ink)}.enrol-row{display:flex;gap:var(--s4);align-items:flex-start;margin-top:var(--s3)}.qr{width:176px;height:176px;border-radius:var(--r-lg);background:#fff;flex:none;padding:4px}.qr.empty,.secret{background:var(--sunk)}.secret{margin-top:var(--s2);font-size:12.5px;word-break:break-all;border:1px solid var(--hairline);padding:var(--s2) var(--s3);border-radius:var(--r)}