:root{--bg: #0f1218;--bg2: #141821;--panel: #181d27;--panel2: #1e2430;--line: #2a3140;--line2: #364055;--text: #e3e8f1;--dim: #8b95a8;--faint: #5d6678;--acc: #6aa9ff;--acc2: #8f7bff;--ok: #4fc483;--warn: #f0b04a;--err: #ff5c6c;--info: #7cc7ff;--d: #ff9f43;--m: #6aa9ff;--n: #4fc483;--hot: #ff5ab4;--radius: 7px;--mono: ui-monospace, "Cascadia Mono", "JetBrains Mono", Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--left-w: 232px;--right-w: 340px;--drawer-h: 230px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px/1.4 var(--sans)}body.busy{cursor:progress}button{font:inherit;color:inherit}canvas.px,.px canvas,.pc-canvas,.iv-wrap canvas,.preview-strip canvas,.rv-our,.lb-cell canvas,.ov-thumb canvas,.tl-strip canvas,.tl-big{image-rendering:pixelated;image-rendering:crisp-edges}.mono{font-family:var(--mono)}.dim{color:var(--dim)}.small{font-size:12px}.tiny{font-size:10.5px}.grow{flex:1 1 auto}.ta-right{text-align:right}.row{display:flex;align-items:center;gap:6px}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.scroll{overflow:auto;height:100%}.warn{color:var(--warn)}.err{color:var(--err)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2b3242;border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.app{display:grid;height:100vh;width:100vw;overflow:hidden;grid-template-columns:var(--left-w) minmax(0,1fr) var(--right-w);grid-template-rows:76px auto minmax(0,1fr) var(--drawer-h) 24px;grid-template-areas:"top top top" "banner banner banner" "left centre right" "drawer drawer right" "status status status"}.app.noleft{grid-template-columns:0 minmax(0,1fr) var(--right-w)}.app.nodocks{grid-template-columns:0 minmax(0,1fr) 0}.app.drawer-closed{grid-template-rows:76px auto minmax(0,1fr) 30px 24px}.app.nodocks .left,.app.nodocks .right,.app.noleft .left{display:none}.topbar{grid-area:top;display:flex;flex-direction:column;background:linear-gradient(#171c26,#121620);border-bottom:1px solid var(--line);min-width:0}.top1{display:flex;align-items:center;gap:12px;padding:0 10px;height:40px;min-width:0}.top2{display:flex;align-items:center;gap:8px;padding:0 10px;height:36px;border-top:1px solid #ffffff08;background:#0f131bcc;min-width:0}.top2 .sep{width:1px;height:18px;background:var(--line2);margin:0 2px}kbd{font:10.5px var(--mono);border:1px solid var(--line2);border-bottom-width:2px;border-radius:4px;padding:0 4px;color:var(--dim);margin-left:4px}.banner{grid-area:banner;display:none;background:#3a2a10;border-bottom:1px solid #6b4d16;padding:6px 12px}.banner.on{display:block}.left{grid-area:left;background:var(--bg2);border-right:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;min-height:0}.centre{grid-area:centre;position:relative;overflow:hidden;min-width:0;min-height:0;background:radial-gradient(1200px 600px at 50% 0%,#151a24,var(--bg))}.right{grid-area:right;background:var(--bg2);border-left:1px solid var(--line);overflow-y:auto;min-height:0}.drawer{grid-area:drawer;background:var(--bg2);border-top:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.tab-pane{position:absolute;inset:0;display:none;overflow:hidden}.tab-pane.on{display:block}.status{grid-area:status;display:flex;align-items:center;gap:14px;padding:0 10px;font-size:11.5px;color:var(--dim);background:#0c0f14;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden}.status .st-rules.e{color:var(--err)}.status .st-rules.w{color:var(--warn)}.status .st-conn.ok:before{content:"● ";color:var(--ok)}.status .st-conn.warn:before{content:"● ";color:var(--warn)}.brand{font-weight:700;letter-spacing:.3px;display:flex;align-items:center;gap:7px;white-space:nowrap}.brand .logo{width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,#56ac4d 0 45%,#2e2c9b 45% 70%,#edf171 70%);box-shadow:0 0 0 1px #0006 inset}.tabbar{display:flex;gap:2px;overflow-x:auto;min-width:0;flex:1 1 auto;scrollbar-width:none}.tabbar::-webkit-scrollbar{display:none}.tabbtn{background:none;border:0;padding:6px 10px;border-radius:6px;color:var(--dim);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:6px}.tabbtn:hover{background:#ffffff0d;color:var(--text)}.tabbtn.on{background:#6aa9ff22;color:#fff;box-shadow:0 -2px 0 var(--acc) inset}.tabbtn.ph{opacity:.55}.tabbtn .tnum{font:10px var(--mono);color:var(--faint)}.top-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}.landsel{display:flex;gap:2px;background:#0b0e13;padding:2px;border-radius:7px;border:1px solid var(--line)}.landbtn{border:0;background:none;padding:3px 7px;border-radius:5px;cursor:pointer;color:var(--dim);display:flex;align-items:center;gap:2px;font:12px var(--mono)}.landbtn.on{background:var(--panel2);color:#fff}.landbtn .lsw{width:7px;height:12px;border-radius:2px;display:inline-block}.landbtn .lsw:nth-child(2){margin-right:4px}.toggle{border:1px solid var(--line2);background:#0b0e13;color:var(--dim);border-radius:6px;padding:4px 9px;cursor:pointer;font-size:12px}.toggle.on{border-color:#b18cff;color:#fff;background:#3b2d66;box-shadow:0 0 12px #8f7bff55}.counts{display:flex;gap:4px}.cnt{font:11.5px var(--mono);padding:2px 6px;border-radius:5px;background:#0b0e13;border:1px solid var(--line);color:var(--faint);cursor:default}.cnt.d{color:var(--d);border-color:#6b4a22}.cnt.s{color:var(--m);border-color:#2c4a72}.cnt.e{color:var(--err);border-color:#6b2630;cursor:pointer}.cnt.w{color:var(--warn);border-color:#6b4d16;cursor:pointer}.joblight{width:11px;height:11px;border-radius:50%;background:#2a3140;box-shadow:0 0 0 2px #0b0e13}.joblight.run{background:var(--acc);animation:pulse 1s infinite}.joblight.st-ok{background:var(--ok)}.joblight.st-fail{background:var(--err)}@keyframes pulse{50%{box-shadow:0 0 0 2px #0b0e13,0 0 10px var(--acc)}}.gitstate{font:11.5px var(--mono);color:var(--faint);white-space:nowrap}.gitstate.dirty{color:var(--m)}.btn{background:var(--panel2);border:1px solid var(--line2);color:var(--text);border-radius:6px;padding:5px 11px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:#273042;border-color:#48536b}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(#3d7ee0,#2f68c2);border-color:#4e8ff0;color:#fff}.btn.primary:hover:not(:disabled){background:linear-gradient(#4a8bec,#3672cf)}.btn.danger{background:#4a1f27;border-color:#8a3441;color:#ffd8dd}.btn.danger.primary{background:linear-gradient(#c43b4d,#a32e3f);color:#fff}.btn.ghost{background:none;border-color:transparent;color:var(--dim)}.btn.ghost:hover{color:var(--text);background:#ffffff0d}.btn.small{padding:3px 9px;font-size:12px}.btn.tiny{padding:1px 6px;font-size:11px;border-radius:5px}.chip{background:#0b0e13;border:1px solid var(--line);color:var(--dim);border-radius:20px;padding:2px 9px;cursor:pointer;font-size:11.5px;white-space:nowrap}.chip:hover{color:var(--text);border-color:var(--line2)}.chip.on{background:#6aa9ff24;border-color:#4e8ff0;color:#fff}.chip.sev-E.on{background:#ff5c6c22;border-color:#8a3441}.chip.sev-W.on{background:#f0b04a22;border-color:#6b4d16}.icon{background:none;border:0;color:var(--dim);cursor:pointer;padding:2px 5px;border-radius:5px}.icon:hover{color:#fff;background:#ffffff12}.input{background:#0b0e13;border:1px solid var(--line2);color:var(--text);border-radius:6px;padding:5px 8px;outline:none;font:inherit}.input:focus{border-color:var(--acc);box-shadow:0 0 0 3px #6aa9ff22}.input.small{padding:3px 7px;font-size:12px}.input.big{font-size:16px;padding:10px 12px;width:100%}textarea.input{width:100%;resize:vertical}input[type=range],input[type=checkbox]{accent-color:var(--acc)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:2px 8px;border-radius:20px;background:#0b0e13;border:1px solid var(--line);color:var(--dim);white-space:nowrap}.pill.ok{color:var(--ok);border-color:#1f5a3c}.pill.warn{color:var(--warn);border-color:#6b4d16}.pill.err{color:var(--err);border-color:#6b2630}.pill.d{color:var(--d);border-color:#6b4a22}.pill.s{color:var(--m);border-color:#2c4a72}.pill.tiny{font-size:10px;padding:0 5px}.pill.alt{color:var(--acc2)}.badge{display:inline-block;font:700 9.5px var(--mono);padding:0 4px;border-radius:3px;line-height:14px;color:#0b0e13}.badge.b-D{background:var(--d)}.badge.b-M{background:var(--m)}.badge.b-N{background:var(--n)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--faint)}.dot.err,.dot.st-fail{background:var(--err)}.dot.warn{background:var(--warn)}.dot.st-ok{background:var(--ok)}.dot.st-running,.dot.st-queued{background:var(--acc);animation:pulse 1s infinite}.empty{color:var(--faint);padding:14px;text-align:center;font-size:12px}.empty.ok{color:var(--ok)}.empty.warn{color:var(--warn)}.empty.err{color:var(--err)}.placeholder{max-width:560px;margin:12vh auto;padding:28px;border:1px dashed var(--line2);border-radius:12px;text-align:center;background:#ffffff05}.placeholder.err{border-color:#8a3441}.arrow{color:var(--faint);padding:0 3px}code{font-family:var(--mono);background:#0b0e13;padding:1px 5px;border-radius:4px}.menu.pop{position:fixed;z-index:60;background:var(--panel);border:1px solid var(--line2);border-radius:8px;padding:4px;box-shadow:0 12px 40px #000a;display:flex;flex-direction:column;min-width:220px}.menu.pop button{background:none;border:0;text-align:left;padding:6px 10px;border-radius:5px;cursor:pointer}.menu.pop button:hover{background:#6aa9ff22}.modal-back{position:fixed;inset:0;background:#05070bb8;backdrop-filter:blur(3px);z-index:50;display:flex;align-items:center;justify-content:center;animation:fade .12s}.modal-back.top{align-items:flex-start;padding-top:12vh}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--line2);border-radius:12px;padding:18px 20px;width:min(520px,92vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 24px 80px #000c;animation:rise .15s}.modal.wide{width:min(980px,94vw)}.modal.small{width:min(380px,92vw)}.modal.danger{border-color:#8a3441}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.modal h3{margin:0 0 10px;font-size:16px}.modal-body{overflow:auto;min-height:0}.modal-buttons{margin-top:14px}.modal .choices{display:flex;flex-direction:column;gap:6px;margin:6px 0}.modal .choice{text-align:left;display:flex;align-items:center;gap:8px}.modal .choice .dot{width:14px;height:14px;border-radius:3px}.toasts{position:fixed;right:16px;bottom:34px;display:flex;flex-direction:column;gap:6px;z-index:70;pointer-events:none}.toast{background:#232a38;border:1px solid var(--line2);padding:8px 12px;border-radius:8px;box-shadow:0 8px 26px #0009;transform:translate(20px);opacity:0;transition:all .2s;max-width:460px}.toast.in{transform:none;opacity:1}.toast.ok{border-color:#1f5a3c}.toast.err{border-color:#8a3441;background:#2d1a20}.lb-head{padding:8px;border-bottom:1px solid var(--line)}.lb-head .input{flex:1 1 auto;min-width:0}.lb-body{overflow-y:auto;padding:6px 8px 20px;flex:1 1 auto}.lb-file{color:var(--dim);font-size:11px;margin:8px 0 2px}.lb-group{color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;margin:8px 0 4px}.lb-grid{display:flex;flex-wrap:wrap;gap:4px}.lb-cell{position:relative;padding:3px 3px 12px;background:#0b0e13;border:1px solid var(--line);border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:30px}.lb-cell:hover{border-color:var(--line2);background:#121722}.lb-cell.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}.lb-cell canvas{display:block;max-width:64px}.lb-num{position:absolute;bottom:0;left:3px;font:9px var(--mono);color:var(--faint)}.lb-cell .badge{position:absolute;top:-4px;right:-4px}.lb-cell .dot{position:absolute;bottom:3px;right:3px}.dock{border-bottom:1px solid var(--line)}.dock-head{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer;user-select:none;font-weight:600;font-size:12px;color:#cfd6e3;background:#161b24;position:sticky;top:0;z-index:2}.dock-head:hover{background:#1b212c}.dock .chev{transition:transform .15s;color:var(--faint)}.dock.collapsed .chev{transform:rotate(-90deg)}.dock.collapsed .dock-body{display:none}.dock-body{padding:8px 10px 12px}.detached .app{display:block}.detached-dock{height:100vh;overflow:auto}.inspector .ins-title{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:6px}.kv{display:flex;gap:8px;font-size:12px;padding:1px 0}.kv .k{color:var(--faint);min-width:72px}.kv .v{color:var(--text);word-break:break-all}.ins-issues{margin:6px 0}.ins-hex pre{font-size:10.5px;color:var(--dim);white-space:pre;overflow-x:auto;margin:4px 0 0}.ins-hex summary{cursor:pointer;color:var(--dim);font-size:12px;margin-top:6px}.inspector .row.wrap{margin-top:6px}.drawertabs{display:flex;align-items:center;gap:2px;padding:3px 8px;border-bottom:1px solid var(--line);min-height:30px}.dtab{background:none;border:0;color:var(--dim);padding:4px 10px;border-radius:5px;cursor:pointer;font-size:12px}.dtab.on{color:#fff;background:#ffffff10}.drawerbody{flex:1 1 auto;min-height:0;overflow:hidden;position:relative}.drawer-pane{position:absolute;inset:0;overflow:auto}.drawer-closed .drawerbody{display:none}.rulespanel{display:flex;flex-direction:column;height:100%}.rp-head{padding:6px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.rulespanel.compact .rp-head{padding:0 0 6px;border:0}.rp-body{overflow:auto;padding:4px 8px}.rulespanel.compact .rp-body{padding:0;max-height:260px}.rp-file{font:11px var(--mono);color:var(--dim);margin:8px 0 3px}.rp-head .warn{color:var(--warn)}.issue{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;gap:6px;align-items:start;padding:4px 6px;border-radius:5px;font-size:12px;cursor:pointer;border-left:2px solid transparent}.issue:hover{background:#ffffff08}.issue.focus{background:#6aa9ff18}.issue .sev{font:700 10px var(--mono);text-align:center;border-radius:3px;padding:1px 0}.issue.sev-E{border-left-color:var(--err)}.issue.sev-E .sev,.issue.sev-LOCK .sev{background:#ff5c6c2a;color:var(--err)}.issue.sev-W{border-left-color:var(--warn)}.issue.sev-W .sev{background:#f0b04a26;color:var(--warn)}.issue.sev-I .sev{background:#7cc7ff20;color:var(--info)}.issue .rid{color:var(--dim);font-size:11px}.issue .cite{margin-left:6px;font-size:10px}.issue .fixes{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.rulespanel.compact .issue{grid-template-columns:22px 34px minmax(0,1fr)}.rulespanel.compact .issue .fixes{grid-column:3;justify-content:flex-start}.rulespanel.compact .issue .cite{display:none}.histpanel .hp-head{margin-bottom:6px}.hp-list{max-height:360px;overflow:auto}.hp-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:4px 6px;border-radius:6px;cursor:pointer}.hp-row:hover{background:#ffffff08}.hp-row.cur{background:#6aa9ff1f;box-shadow:0 0 0 1px #4e8ff066 inset}.hp-row.future{opacity:.45}.hp-row.root{color:var(--faint)}.hp-row.alt{color:var(--acc2)}.hp-thumbs{display:flex;align-items:center;min-width:40px}.hp-thumbs canvas{max-height:24px;background:#0b0e13;border-radius:2px}.hp-text{display:flex;flex-direction:column;min-width:0}.hp-text b{font-weight:500;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-text .dim{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-meta{font-size:10.5px;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hp-save{font:10px var(--mono);color:var(--ok);border-top:1px dashed #1f5a3c;margin:2px 6px;padding-top:2px;text-align:right}.hp-sep{color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;margin:10px 6px 4px}.preview-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.pv-item{margin:0;display:flex;flex-direction:column;align-items:center;gap:3px}.pv-item canvas{background:#0b0e13;border:1px solid var(--line);border-radius:3px;max-width:300px}.pv-item figcaption{font-size:10px;color:var(--faint)}.pv-item.diff canvas{border-color:#6a2a55}.pv-lands{display:flex;gap:6px;flex-wrap:wrap}.pv-lands .pv-item{cursor:pointer}.pv-lands .pv-item.cur canvas{border-color:var(--acc)}.pc-host{position:relative}.pc-wrap{position:absolute;inset:0;overflow:hidden;outline:none;cursor:crosshair;touch-action:none}.pc-wrap:focus-visible{box-shadow:0 0 0 1px #4e8ff066 inset}.pc-under{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;overflow:hidden}.pc-under>*{position:absolute;inset:0}.pc-canvas{position:absolute;left:0;top:0}.pc-hud{position:absolute;left:8px;bottom:6px;font:11px var(--mono);color:#cfd6e3;background:#0b0e13cc;padding:2px 7px;border-radius:5px;pointer-events:none;white-space:nowrap}.iv-host{display:flex;flex-direction:column;min-height:0}.iv-bar{padding:4px 0}.iv-wrap{position:relative;flex:1 1 auto;min-height:120px}.iv-wrap canvas{position:absolute;inset:0}.cmpbar{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.cmpbar input[type=range]{width:90px}.swatches .sw-title{font-size:11px;color:var(--dim);margin-bottom:4px}.sw-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}.sw{height:22px;border-radius:4px;border:1px solid #0007;cursor:pointer;font:700 10px var(--mono);padding:0}.sw.on{outline:2px solid #fff;outline-offset:1px}.sw.off{opacity:.2;cursor:not-allowed}.swatches.compact .sw{height:16px}.cellmatrix{display:grid;gap:3px}.cm-cell{height:26px;border-radius:4px;background:#0b0e13;border:1px dashed var(--line2);display:flex;align-items:center;justify-content:center;font:10px var(--mono);color:var(--faint);cursor:pointer}.cm-cell.on{border-style:solid;border-color:#0007}.cm-cell.sel{outline:2px solid var(--acc);outline-offset:1px}.cm-cell.flag{box-shadow:inset 0 0 0 2px var(--hot)}.cm-cell.drop{outline:2px dashed #fff}.gitpanel{padding:8px}.gp-head{margin-bottom:8px}.gp-row{display:flex;gap:10px;align-items:center;padding:3px 6px;border-radius:5px;cursor:pointer;font-size:12px}.gp-row:hover{background:#ffffff08}.commit-dialog h4{margin:14px 0 6px;font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.6px}.cm-files{display:flex;flex-direction:column;gap:6px}.cm-file{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#0f131a}.cm-file.blocked{border-color:#8a3441}.cm-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;align-items:center}.cm-pair{display:inline-flex;align-items:center;background:#0b0e13;padding:2px 4px;border-radius:4px}.cm-pair canvas{height:28px}.trailer{margin:6px 0 0;font-size:11px;white-space:pre-wrap}.restore-list{display:flex;flex-direction:column;gap:6px}.timeline{padding:8px;display:flex;flex-direction:column;gap:8px}.tl-head b{font-size:13px}.tl-stage{display:flex;gap:14px;align-items:flex-start}.tl-big{background:#0b0e13;border:1px solid var(--line);border-radius:4px;max-height:150px;max-width:46%;width:auto;height:auto;object-fit:contain}.drawer .timeline{flex-direction:row;flex-wrap:wrap}.drawer .tl-head{flex:1 1 100%}.drawer .tl-stage{flex:0 1 auto}.drawer .tl-scrub,.drawer .tl-strip{flex:1 1 40%;min-width:260px}.tl-info{display:flex;flex-direction:column;gap:4px;min-width:0}.tl-scrub input{flex:1 1 auto}.tl-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.tl-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;border:1px solid var(--line);border-radius:6px;background:#0b0e13;cursor:pointer}.tl-cell.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}.tl-cell.draft{border-color:#6b4a22}.tl-cell.saved{border-color:#2c4a72}.tl-cell canvas{height:32px}.tl-cap{font:9.5px var(--mono);color:var(--faint)}.refview{display:flex;flex-direction:column;gap:8px}.rv-bar{margin-bottom:6px}.rv-item{margin:0}.rv-item figcaption{font-size:10.5px;color:var(--faint);margin-top:3px}.rv-stage{position:relative;display:inline-flex;gap:8px}.rv-stage.two{align-items:flex-start}.rv-stage.stack>*{position:absolute;left:0;top:0}.rv-stage.squint .rv-cell{filter:blur(2px)}.rv-cell{background:#0b0e13;border-radius:3px;line-height:0}.rv-ref{position:relative;overflow:hidden;background:#000;line-height:0}.rv-ref img{position:absolute;left:0;top:0;image-rendering:pixelated;pointer-events:none;user-select:none}.rv-ref.missing{display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:11px;line-height:1.3;text-align:center;background:repeating-linear-gradient(45deg,#11151c 0 8px,#0d1016 8px 16px)}.rv-wipebar{position:absolute;top:0;bottom:0;width:2px;background:#ffd75e;pointer-events:none}.rv-mark{position:absolute;border:1px solid var(--hot);pointer-events:none}.rv-note{font-size:10px;color:var(--faint)}.rv-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.rv-col{display:flex;flex-direction:column;gap:2px}.rv-colhead{font-size:10px;color:var(--faint);line-height:1.2}.rv-pvcells{display:flex;flex-wrap:wrap;gap:4px;max-width:100%}.rv-pv .rv-cell{outline:1px dashed #3a4a5e}.ref-sel{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line2)}.ref-key.pv{font-style:italic}.rv-sheet{position:relative;overflow:auto;height:100%}.rv-sheet.missing{color:var(--faint);padding:30px;text-align:center}.rv-sheet-inner{position:relative}.rv-sheet-inner img{position:absolute;left:0;top:0;image-rendering:pixelated;user-select:none}.rv-grid{position:absolute;left:0;top:0;cursor:pointer}.rv-tip{position:absolute;display:none;background:#0b0e13ee;border:1px solid var(--line2);padding:3px 8px;border-radius:5px;font-size:11.5px;pointer-events:none;z-index:3;white-space:nowrap}.cmdpalette{width:min(640px,92vw);background:var(--panel);border:1px solid var(--line2);border-radius:12px;box-shadow:0 24px 80px #000c;padding:10px;animation:rise .12s}.cp-list{max-height:50vh;overflow:auto;margin-top:8px}.cp-row{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:6px;cursor:pointer}.cp-row.on{background:#6aa9ff26}.cp-hint{color:var(--faint);font-size:11px}.cp-foot{padding:6px 4px 0}.joblog{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%;min-height:160px}.jl-list{border-right:1px solid var(--line);overflow:auto}.jl-row{display:flex;gap:8px;align-items:center;padding:5px 8px;cursor:pointer;font-size:12px}.jl-row:hover{background:#ffffff08}.jl-row.on{background:#6aa9ff1f}.jl-log{margin:0;padding:8px 10px;overflow:auto;font-size:11.5px;color:#c8d0dd;white-space:pre-wrap;background:#0b0e13}.overview{padding:16px 20px 40px}.ov-head{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.ov-title{display:flex;align-items:baseline;gap:12px}.ov-title h2{margin:0;font-size:18px}.ov-group{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim);margin:18px 0 8px}.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.ov-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,transform .15s}.ov-card:hover{border-color:var(--line2);transform:translateY(-1px)}.ov-card.dirty{border-color:#6b4a22}.ov-card.git{box-shadow:0 0 0 1px #2c4a72 inset}.ov-thumb{background:#0b0e13;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;cursor:pointer;position:relative}.ov-thumb canvas{max-width:100%}.ov-note{position:absolute;bottom:4px;right:8px;font-size:10.5px;color:var(--hot)}.ov-meta{padding:8px 10px;display:flex;flex-direction:column;gap:4px}.ov-help pre{white-space:pre-wrap}.ov-ph{color:var(--warn);font-size:12px;margin:6px 0}.reference.split{display:grid;grid-template-columns:200px minmax(0,1fr);height:100%}.ref-side{border-right:1px solid var(--line);overflow:auto;padding:10px;display:flex;flex-direction:column;gap:3px}.ref-side h4{margin:10px 0 4px;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.6px}.ref-key{background:none;border:1px solid transparent;text-align:left;padding:4px 8px;border-radius:5px;cursor:pointer;color:var(--text);font:12px var(--mono)}.ref-key:hover{background:#ffffff08}.ref-key.on{border-color:var(--acc);background:#6aa9ff1a}.ref-key.missing{color:var(--faint);text-decoration:line-through}.ref-main{display:flex;flex-direction:column;min-height:0}.ref-bar{padding:8px 12px;border-bottom:1px solid var(--line)}.ref-host{flex:1 1 auto;padding:12px;min-height:0}.historytab{display:grid;grid-template-columns:190px 300px minmax(0,1fr);height:100%}.ht-files{border-right:1px solid var(--line);overflow:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.ht-files h4,.ht-col h4{margin:6px 0;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.6px}.ht-col{border-right:1px solid var(--line);overflow:auto;padding:8px;display:flex;flex-direction:column;min-height:0}.ht-log{flex:0 1 auto;overflow:auto;max-height:50%}.hl-row{display:flex;gap:8px;padding:4px 6px;border-radius:5px;cursor:pointer;font-size:12px;align-items:baseline}.hl-row:hover{background:#ffffff08}.hl-row.on{background:#6aa9ff1f}.ht-mid{overflow:auto;padding:10px 14px;display:flex;flex-direction:column;gap:10px}.ht-stage{display:flex;flex-direction:column;gap:8px}.hs-img{background:#0b0e13;padding:8px;border-radius:8px;border:1px solid var(--line);overflow:auto}.buildtab{padding:16px 20px 40px}.buildtab h2{margin:0 0 10px;font-size:18px}.bd-state,.bd-ticks{margin-bottom:12px}.bd-ticks label{gap:6px}.bd-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.bd-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}.bd-card h4{margin:0}.bd-card p{flex:1 1 auto;margin:0}.bd-card.accent{border-color:#2c4a72;background:linear-gradient(#18223a,var(--panel))}.bd-jobs{height:260px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.legacy{margin-top:24px;border:1px solid #8a3441;border-radius:10px;background:#1d1215}.legacy summary{padding:10px 14px;cursor:pointer;color:#ffb3bd;font-weight:600}.legacy-body{padding:0 14px 14px}.legacy-grid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.lg-cell{display:flex;align-items:center;gap:4px;background:#0b0e13;padding:4px 6px;border-radius:6px;border:1px solid var(--line)}.keys-table{columns:2;column-gap:24px}.keys-table .kv .k{min-width:150px;color:var(--acc)}.perfhud{position:fixed;right:12px;top:84px;z-index:80;background:#0b0e13ee;border:1px solid var(--line2);border-radius:8px;padding:8px 10px;white-space:pre;font-size:11px;color:#bfe3c8;pointer-events:none}@media(max-width:1100px){:root{--left-w: 180px;--right-w: 280px}#btn-cmd kbd{display:none}}
