@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--background: 0 0% 0%;--foreground: 0 0% 100%;--card: 0 0% 7%;--card-hover: 0 0% 11%;--primary: 221 83% 53%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 11%;--muted: 0 0% 15%;--muted-foreground: 0 0% 45%;--border: 0 0% 15%;--accent-blue: 221 83% 53%;--accent-green: 142 71% 45%;--accent-yellow: 48 96% 53%;--accent-orange: 25 95% 53%;--accent-red: 0 84% 60%;--radius: 0px;--bg: hsl(var(--background));--fg: hsl(var(--foreground));--panel: hsl(var(--card));--panel2: hsl(var(--card-hover));--line: hsl(var(--border));--dim: hsl(var(--muted-foreground));--accent: hsl(var(--primary));--good: hsl(var(--accent-green));--bad: hsl(var(--accent-red));--warn: hsl(var(--accent-orange));--paper: #f7f5f1;--thumb-ink: rgba(255, 255, 255, .42);--thumb-room: rgba(255, 255, 255, .05);--thumb-label-bg: rgba(0, 0, 0, .78);--thumb-label-fg: #ffffff;--view3d-bg: #14161a;--view3d-floor: #2a2b2e;--sheet-canvas: #2b2b2b}.light{--background: 40 20% 96%;--foreground: 0 0% 10%;--card: 40 15% 93%;--card-hover: 40 15% 90%;--primary: 221 83% 48%;--secondary: 40 10% 88%;--muted: 40 10% 85%;--muted-foreground: 0 0% 40%;--border: 40 10% 82%;--accent-green: 142 60% 33%;--accent-red: 0 70% 45%;--accent-orange: 25 85% 42%;--thumb-ink: rgba(0, 0, 0, .55);--thumb-room: rgba(0, 0, 0, .05);--thumb-label-bg: rgba(255, 255, 255, .9);--thumb-label-fg: #101010;--view3d-bg: #e8e5e0;--view3d-floor: #cfc9bf;--sheet-canvas: #d8d4cd}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:400 12px/1.5 JetBrains Mono,ui-monospace,monospace;background:var(--bg);color:var(--fg);display:grid;grid-template-rows:auto 1fr;overflow:hidden;-webkit-font-smoothing:antialiased}a{color:inherit}.blueprint{font-size:9px;text-transform:uppercase;letter-spacing:.4em;color:var(--dim)}.label{font-size:9px;text-transform:uppercase;letter-spacing:.3em;color:var(--dim)}.wordmark{font-family:Times New Roman,serif;font-style:italic;letter-spacing:-.01em}header.top{display:flex;align-items:center;gap:22px;padding:10px 18px;background:var(--bg);border-bottom:1px solid var(--line)}header.top .brand{display:flex;flex-direction:column;gap:1px}header.top h1{font-family:Times New Roman,serif;font-style:italic;font-size:19px;margin:0;font-weight:400;letter-spacing:-.01em}header.top .tagline{font-size:8.5px;text-transform:uppercase;letter-spacing:.3em;color:var(--dim)}header.top nav{display:flex;gap:2px;margin-left:14px}header.top nav a{color:var(--dim);text-decoration:none;font-size:9.5px;text-transform:uppercase;letter-spacing:.2em;padding:6px 11px;border-bottom:2px solid transparent}header.top nav a:hover{color:var(--fg)}header.top nav a.on{color:var(--fg);border-bottom-color:var(--accent)}header.top .spacer{flex:1}header.top .who{font-size:8.5px;text-transform:uppercase;letter-spacing:.2em;color:var(--dim)}#app{overflow:auto;min-height:0;display:flex;flex-direction:column}body[data-view=drawings] #app,body[data-view=cd] #app,body[data-view=snapshot] #app,body[data-view=room] #app{overflow:hidden}.crumbs{padding:8px 18px;border-bottom:1px solid var(--line);font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--dim)}.crumbs a{color:var(--dim);text-decoration:none}.crumbs a:hover{color:var(--fg)}.crumbs .sep{margin:0 8px;opacity:.4}.crumbs .cur{color:var(--fg)}.page{padding:22px;max-width:1280px;width:100%;margin:0 auto}.pagehead{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}.pagehead h2{margin:0 0 5px;font-family:Times New Roman,serif;font-style:italic;font-size:24px;font-weight:400}.pagehead .sub{margin:0;color:var(--dim);font-size:11px;max-width:68ch;line-height:1.6}.pagehead .grp,.pagehead>button{margin-left:auto}button{background:transparent;color:var(--dim);border:1px solid var(--line);border-radius:0;padding:6px 11px;font:inherit;font-size:9px;text-transform:uppercase;letter-spacing:.18em;cursor:pointer;transition:color .12s,border-color .12s,background .12s}button:hover:not(:disabled){color:var(--fg);border-color:var(--dim)}button:disabled{opacity:.35;cursor:not-allowed}button.primary{border-color:var(--accent);background:hsl(var(--primary) / .18);color:var(--fg)}button.primary:hover{background:hsl(var(--primary) / .32)}button.on{border-color:var(--accent);background:hsl(var(--primary) / .22);color:var(--fg)}button.sm{padding:3px 7px;font-size:8.5px;letter-spacing:.14em}button.x:hover{border-color:var(--bad);color:var(--bad)}select,input[type=text],input[type=number]{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:0;padding:5px 8px;font:inherit;font-size:11px}select:focus,input:focus{outline:none;border-color:var(--accent)}.grp{display:flex;gap:5px;align-items:center}.sep{width:1px;height:20px;background:var(--line)}.spacer{flex:1}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:0;padding:13px 15px}.card.wide{margin-bottom:16px}.card h3{margin:0 0 10px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);font-weight:500}.cards .card{border:none}.card.proj,.card.tool{cursor:pointer;position:relative;transition:background .12s}.card.proj:hover,.card.tool:hover{background:var(--panel2)}.card.proj h3,.card.tool h3{font-size:12px;letter-spacing:.12em;color:var(--fg);margin-bottom:7px}.card .meta{margin:3px 0;color:var(--dim);font-size:10px}.card .x{position:absolute;top:8px;right:8px;padding:0 6px;opacity:0}.card:hover .x{opacity:1}.cards.tools{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.card.tool .ico{font-size:17px;color:var(--accent);margin-bottom:8px;line-height:1}.card.tool.dim{opacity:.55}.pill{font-size:7.5px;letter-spacing:.18em;padding:2px 5px;text-transform:uppercase;border:1px solid var(--line);color:var(--dim);vertical-align:middle;white-space:nowrap}.pill.works,.pill.confirmed{color:var(--good);border-color:hsl(var(--accent-green) / .5)}.pill.beta,.pill.proposed{color:var(--warn);border-color:hsl(var(--accent-orange) / .5)}.pill.soon,.pill.placeholder{color:var(--dim)}.pill.bad,.pill.unmapped{color:var(--bad);border-color:hsl(var(--accent-red) / .5)}.pill.picked{color:var(--accent);border-color:hsl(var(--primary) / .55)}.lock{color:var(--good)}.empty{background:var(--panel);border:1px solid var(--line);padding:28px;text-align:center;color:var(--dim);font-size:11px}.empty strong{color:var(--fg)}.empty p{margin:6px 0}.empty code{background:var(--bg);padding:1px 5px;font-size:10px}.empty.bad{border-color:hsl(var(--accent-red) / .5);color:var(--bad)}.note{color:var(--dim);font-size:10px;margin:8px 0 0;line-height:1.6}.good{color:var(--good);font-size:10px;margin:5px 0 0}.drift{color:var(--warn);font-size:9px}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;font-weight:500;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);padding:4px 8px 7px 0}td{padding:5px 8px 5px 0;border-bottom:1px solid hsl(var(--border) / .55);vertical-align:middle}tr.hd th{border-bottom:1px solid var(--line)}td.n{text-align:right;color:var(--dim);font-variant-numeric:tabular-nums;width:62px;white-space:nowrap}th{white-space:nowrap}table.rooms td.act{width:86px}table.rooms td.nm{font-size:10.5px}td.nm{color:var(--fg)}td.blk{font-size:10px;color:var(--fg)}td.ins{color:var(--dim);font-size:9.5px;text-transform:uppercase;letter-spacing:.1em}td.act{text-align:right;white-space:nowrap;width:130px}td.act button{margin-left:4px}.cnt{color:var(--dim);font-size:9px}tr.rowhi td{background:hsl(var(--primary) / .16)}tr.rooms-row{cursor:pointer}tr.rooms-row:hover td{background:var(--panel2)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:18px}.stat{background:var(--panel);padding:11px 13px;display:flex;flex-direction:column;gap:3px}.stat .k{font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.stat .v{font-size:22px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.1}.stat .s{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em}ul.checks,ul.punch{list-style:none;margin:0;padding:0;font-size:11px}ul.checks li,ul.punch li{padding:4px 0;border-bottom:1px solid hsl(var(--border) / .55)}ul.checks li:before{content:"✓ ";color:var(--good)}ul.checks li.no:before{content:"✗ ";color:var(--bad)}ul.checks li.no{color:var(--dim)}ul.punch li.warn:before{content:"! ";color:var(--warn)}ul.punch li.error:before{content:"✗ ";color:var(--bad)}ul.punch .stage{color:var(--dim);font-size:9px;text-transform:uppercase;letter-spacing:.15em;margin-right:8px}.planwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;margin-bottom:16px;align-items:start}.plancard{background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;height:440px;overflow:hidden}.plancard .hd{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line)}.plancard .hd h3{margin:0;flex:1}#planthumb{flex:1;width:100%;min-height:0;display:block;background:var(--bg)}.plancard .foot{padding:7px 12px;border-top:1px solid var(--line);font-size:9px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}.modehint{color:var(--accent)}.roombar{display:flex;gap:4px;align-items:center;padding:7px 16px;border-bottom:1px solid var(--line);flex:none;overflow-x:auto}.chip{background:transparent;color:var(--dim);border:1px solid var(--line);border-radius:0;padding:4px 10px;font:inherit;font-size:9px;text-transform:uppercase;letter-spacing:.15em;cursor:pointer;white-space:nowrap}.chip:hover:not(:disabled){color:var(--fg);border-color:var(--dim)}.chip.on{background:hsl(var(--primary) / .22);border-color:var(--accent);color:var(--fg)}.chip.off,.chip:disabled{opacity:.3;cursor:not-allowed}.chips{display:flex;flex-wrap:wrap;gap:4px}.workbench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 310px}.cw-stage{position:relative;min-width:0;min-height:0;display:grid;container-type:inline-size}.cw-stage[data-view=split]{grid-template-columns:1fr 1fr}.cw-stage[data-view=plan],.cw-stage[data-view="3d"]{grid-template-columns:1fr}#plan{background:var(--paper);width:100%;height:100%;display:block;touch-action:none}.pane{position:relative;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--line)}.pane[hidden]{display:none}.cw-hud,.cw-dock,.cw-loc{background:hsl(var(--card) / .93);border:1px solid var(--line);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.cw-hud{position:absolute;top:14px;left:14px;z-index:4;width:254px;padding:13px 15px 11px;pointer-events:none}.cw-hud .eyebrow{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.cw-hud h2{margin:0 0 5px;font-family:Times New Roman,serif;font-style:italic;font-size:20px;font-weight:400;letter-spacing:-.01em;line-height:1.1}.cw-hud .origin{font-size:9px;line-height:1.55;color:var(--dim);margin-bottom:10px}.cw-hud .specs{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;border-top:1px solid var(--line);padding-top:9px}.cw-hud .specs .k{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);padding-top:2px}.cw-hud .specs .v{font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.cw-hud .specs .v em{font-style:normal;color:var(--accent);font-size:12.5px}.cw-hud .specs .v b{font-weight:400}.cw-hud .specs .v b.ok{color:var(--good);font-size:9px;text-transform:uppercase;letter-spacing:.12em}.cw-hud .specs .v b.bad{color:var(--bad)}.cw-hud .specs .v b.none{color:var(--dim);font-size:9.5px}.cw-hud .sheet{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}.cw-hud .sheet b{color:var(--accent);font-weight:500}.cw-loc{position:absolute;top:14px;right:14px;z-index:4;width:178px;height:122px;overflow:hidden}.cw-loc[hidden]{display:none}.cw-dock{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:4px;padding:5px 6px;max-width:calc(100% - 28px);overflow-x:auto;scrollbar-width:none}.cw-dock::-webkit-scrollbar{display:none}.cw-dock .grp{gap:3px}.cw-dock .sep{height:16px;margin:0 3px;flex:none}.cw-dock .chip{background:transparent;border-color:transparent;padding:5px 10px}.cw-dock .chip:hover:not(:disabled){border-color:var(--line)}.cw-dock .chip.on{background:hsl(var(--primary) / .24);border-color:var(--accent)}.cw-dock .chip:disabled{opacity:.3;cursor:not-allowed}.cw-dock .chip:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.cw-hint{display:none;position:absolute;right:14px;bottom:20px;z-index:4;pointer-events:none;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);background:hsl(var(--card) / .72);padding:5px 9px}@container (min-width: 1420px){.cw-hint{display:block}}#view3dPane .tag{background:hsl(var(--card) / .82);color:var(--dim)}#view3d{width:100%;height:100%}#view3d canvas{display:block}#panel{background:var(--panel);overflow-y:auto;padding:11px;display:flex;flex-direction:column;gap:9px}#panel .card{background:var(--bg)}#panel details.card{padding:0}#panel details.card>summary{list-style:none;cursor:pointer;padding:11px 15px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:8px}#panel details.card>summary::-webkit-details-marker{display:none}#panel details.card>summary:after{content:"+";margin-left:auto;font-size:11px;letter-spacing:0}#panel details.card[open]>summary:after{content:"−"}#panel details.card>summary:hover{color:var(--fg)}#panel details.card>*:not(summary){margin:0 15px 13px}#panel .row label{width:60px;flex:none;color:var(--dim);font-size:9px;text-transform:uppercase;letter-spacing:.15em}#panel .row input[type=number],#panel .row select{width:84px}#panel .row{margin-bottom:6px}#panel .row:last-child{margin-bottom:0}#panel .suffix{color:var(--dim);font-size:10px;font-variant-numeric:tabular-nums}#panel .ro{font-variant-numeric:tabular-nums}#panel .from{color:var(--good);font-size:9.5px;margin:8px 0 0}#panel .hint{color:var(--dim);font-size:10px;line-height:1.65}#panel table td.mark{color:var(--fg);font-size:10px}#panel table td.w{color:var(--dim);text-align:right;padding-right:8px;font-variant-numeric:tabular-nums;width:62px}#panel table td.note{color:var(--dim);font-size:9px;text-align:right}#panel table.blocks td.mark{font-size:9px}#panel tr.on td{background:hsl(var(--primary) / .18)}.acts{display:flex;gap:5px;margin-top:10px}.act{flex:1;background:transparent;color:var(--dim);border:1px solid var(--line);padding:5px;font:inherit;font-size:8.5px;text-transform:uppercase;letter-spacing:.15em;cursor:pointer}.act:hover{color:var(--fg);border-color:var(--dim)}.act.danger:hover{border-color:var(--bad);color:var(--bad)}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(12px);background:var(--panel);border:1px solid var(--line);color:var(--fg);padding:9px 16px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;z-index:50;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;max-width:76ch}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#toast.bad{border-color:var(--bad);color:var(--bad)}@media (max-width: 1180px){.planwrap{grid-template-columns:1fr}.workbench{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,300px)}.cw-loc{width:132px;height:92px}.cw-hud{width:218px;padding:11px 13px 9px}.cw-hud h2{font-size:17px}}.dropzone{border:1px dashed var(--line);background:var(--panel);padding:22px;text-align:center;color:var(--dim);font-size:10px;line-height:1.9;margin-bottom:16px}.dropzone strong{color:var(--fg);font-size:11px;letter-spacing:.15em;text-transform:uppercase}.dropzone.over{border-color:var(--accent);background:hsl(var(--primary) / .1)}td.thumb{width:54px}td.thumb img{width:46px;height:46px;object-fit:contain;background:var(--bg);display:block}td.thumb .noimg{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--line);color:var(--dim);font-size:8px;letter-spacing:.15em}.page.login{max-width:340px;margin-top:12vh}.page.login .card{padding:22px}.page.login form{display:flex;flex-direction:column;gap:9px;margin-top:14px}.page.login input{width:100%;padding:9px 10px;font-size:13px}.page.login button{padding:9px}.page.login .bad{min-height:14px;margin:0}.pv-host{flex:1;min-width:0;min-height:0;display:flex}.pv{flex:1;display:flex;flex-direction:column;background:var(--panel);min-width:0;min-height:0}.pv-bar{display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--line);flex:none;flex-wrap:wrap}.pv-bar .grp{display:flex;gap:4px;align-items:center}.pv-right{margin-left:auto}.pv-file{font-size:10.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.pv-stage{flex:1;min-height:0;display:grid;grid-template-columns:var(--pv-split, 1fr) 6px 1fr;position:relative}.pv-stage[data-view=plan],.pv-stage[data-view="3d"]{grid-template-columns:1fr}.pv-stage .pane{position:relative;min-width:0;min-height:0}.pv-stage .pane[hidden]{display:none}.pv-split{background:var(--line);cursor:col-resize;position:relative}.pv-split:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px}.pv-split:hover,.pv-split.on{background:var(--accent)}.pv-stage[data-view=plan] .pv-split,.pv-stage[data-view="3d"] .pv-split,.pv-refpane{display:none}.pv-stage[data-view=tile]{grid-template-rows:1fr 1fr}.pv-stage[data-view=tile] [data-plan-pane]{grid-column:1;grid-row:1;border-bottom:1px solid var(--line)}.pv-stage[data-view=tile] .pv-refpane{display:flex;flex-direction:column;grid-column:1;grid-row:2}.pv-stage[data-view=tile] .pv-split{grid-column:2;grid-row:1 / 3}.pv-stage[data-view=tile] [data-3d-pane]{grid-column:3;grid-row:1 / 3}.pv-refbar{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--line);background:var(--panel);font-size:11px}.pv-reflabel{font-weight:600;letter-spacing:.08em;color:var(--txt2, #888)}.pv-refbar select{font-size:11px;background:transparent;color:inherit;border:1px solid var(--line);border-radius:4px;padding:2px 4px;max-width:45%}.pv-refcv{position:relative;flex:1;min-height:0}.pv-refempty{position:absolute;top:32px;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--txt2, #888);font-size:12px;text-align:center;padding:0 24px;pointer-events:none}.pv-refempty[hidden]{display:none}.pv-3dtools{position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;z-index:4;pointer-events:none}.pv-3dtools .chip{pointer-events:auto}.pv-secwrap,.pv-elevchips,.pv-secopts{display:inline-flex;align-items:center;gap:4px}.pv-secopts[hidden],.pv-elevchips[hidden]{display:none}.pv-secopts input[type=range]{pointer-events:auto;width:110px;accent-color:#e8862a}.pv-secwrap .chip.on{border-color:#e8862a;color:#e8862a}.pv-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.pv-stage [data-plan-pane],.pv-stage .pv-refcv{overflow:hidden}.pv-stage canvas.pv-bg{inset:auto;left:0;top:0;width:auto;height:auto;max-width:none;pointer-events:none;transform-origin:0 0;z-index:0}.pv-stage [data-plan-pane]>canvas:not(.pv-bg),.pv-stage .pv-refcv>canvas:not(.pv-bg){z-index:1;background:transparent}.pv-stage [data-plan-pane],.pv-stage [data-plan-pane] canvas,.pv-stage [data-ref-pane],.pv-stage [data-ref-pane] canvas{cursor:none!important}.pv3d{position:absolute;top:0;right:0;bottom:0;left:0}.pv3d canvas{position:absolute;top:0;right:0;bottom:0;left:0}.pv-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--dim);font-size:12px;text-align:center;padding:24px}.pv-empty[hidden]{display:none}table.levels{width:100%;border-collapse:collapse;margin:10px 0 4px}table.levels th{text-align:left;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:4px 8px;border-bottom:1px solid var(--line)}table.levels td{padding:5px 8px;border-bottom:1px solid var(--line);font-size:11px;vertical-align:middle}table.levels td.n{white-space:nowrap}table.levels td.nm{display:flex;align-items:center;gap:6px}table.levels td.file{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.levels td.act{text-align:right;white-space:nowrap}input.lvname{background:transparent;border:1px solid transparent;color:var(--fg);font:inherit;padding:2px 4px;min-width:110px}input.lvname:hover,input.lvname:focus{border-color:var(--line);background:var(--panel2);outline:none}input.lvht{background:var(--panel2);border:1px solid var(--line);color:var(--fg);font:inherit;font-size:11px;padding:2px 4px;width:64px;text-align:right}.stats.side{grid-template-columns:1fr 1fr;margin-bottom:0}.stats.side .stat{padding:7px 9px}.stats.side .stat .v{font-size:17px}#panel .card{margin:0}#panel .checks,#panel .punch{max-height:240px;overflow:auto}.pv-cmdwrap{position:absolute;left:50%;transform:translate(-50%);bottom:14px;z-index:8;width:min(640px,92%);display:flex;flex-direction:column;gap:6px;pointer-events:none;opacity:.92;transition:opacity .18s}.pv-cmdwrap:hover,.pv-cmdwrap:focus-within,.pv-cmdwrap.awake{opacity:1}.pv-cmdlog{align-self:center;display:none;flex-direction:column;gap:2px;max-width:100%;font-size:11px;color:var(--fg);font-family:ui-monospace,Menlo,monospace;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 13px;box-shadow:0 10px 30px #0000002e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;-webkit-user-select:none;user-select:none;max-height:180px;overflow-y:hidden}.pv-cmdlog .ll{white-space:pre-wrap}.pv-cmdlog .ll.old{opacity:.55}.pv-cmdbar{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:9px 12px 9px 15px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0000002e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:text}.pv-cmdbar:focus-within{border-color:#2563eb;box-shadow:0 10px 30px #0000002e,0 0 0 3px #2563eb1f}.pv-cmdbar .cprompt{color:#2563eb;font-weight:700;font-family:ui-monospace,Menlo,monospace;font-size:13px}.pv-cmdin{all:unset;flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--fg);font-variant-numeric:tabular-nums}.pv-cmdin::placeholder{color:var(--fg);opacity:.45}.pv-suggest{pointer-events:auto;display:none;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #0000002e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-height:84px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;opacity:.78;transition:opacity .12s;position:relative}.pv-suggest:hover{opacity:1}.pv-suggest .smore{position:sticky;bottom:0;font-size:10px;text-align:right;padding:2px 12px 4px;color:var(--dim);background:linear-gradient(transparent,var(--panel) 45%);pointer-events:none}.pv-suggest .sit{display:flex;align-items:baseline;gap:10px;padding:6px 12px;cursor:pointer;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:28px;box-sizing:border-box}.pv-suggest .sit.on,.pv-suggest .sit:hover{background:#2563eb1f}.pv-suggest .sit b{font-family:ui-monospace,Menlo,monospace;font-weight:650;min-width:92px;color:var(--fg)}.pv-suggest .sit b i{font-style:normal;color:#2563eb}.pv-suggest .sit .al{font-size:10px;color:#2563eb;min-width:30px;font-family:ui-monospace,Menlo,monospace}.pv-suggest .sit em{font-style:normal;opacity:.6;font-size:11px}.pv-status{pointer-events:auto;align-self:center;display:flex;gap:4px}.pv-status .chip{font-size:9px;letter-spacing:.08em;padding:3px 8px}.pv-osmenu{position:absolute;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000059;min-width:160px}.pv-osmenu button{display:block;width:100%;text-align:left;background:none;border:none;color:inherit;font:12px ui-monospace,monospace;padding:5px 10px;cursor:pointer;border-radius:4px}.pv-osmenu button:hover{background:#2563eb1f}.pv-wallcard{position:absolute;z-index:6;width:270px;max-height:75%;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #0006;font-size:12px}.pv-wallcard header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.pv-wallcard header .tag{font:10px ui-monospace,monospace;opacity:.6;border:1px solid var(--line);border-radius:3px;padding:1px 5px}.pv-wallcard header .x{margin-left:auto;background:none;border:none;color:inherit;font-size:15px;cursor:pointer;opacity:.7}.pv-wallcard .rows{padding:6px 10px}.pv-wallcard .r{display:flex;align-items:center;gap:8px;padding:3px 0}.pv-wallcard .r label{width:72px;opacity:.65}.pv-wallcard .r input,.pv-wallcard .r select{background:transparent;color:inherit;border:1px solid var(--line);border-radius:4px;padding:2px 6px;font:inherit}.pv-wallcard .grp{padding:6px 10px;border-top:1px solid var(--line)}.pv-wallcard .op{padding:3px 0;opacity:.9}.pv-wallcard .op.none{opacity:.5}.pv-wallcard .op.link{display:block;width:100%;text-align:left;background:none;border:none;color:inherit;cursor:pointer}.pv-wallcard .op.link:hover{color:#2563eb}.pv-wallcard .acts{padding:6px 10px;border-top:1px solid var(--line)}.pv-wallcard .danger{background:none;border:1px solid #dc2626;color:#dc2626;border-radius:4px;padding:3px 8px;cursor:pointer}.pv-wallcard .hint{padding:6px 10px;opacity:.55;margin:0;border-top:1px solid var(--line)}.pv-wallcard .rmop{background:none;border:none;color:#dc2626;cursor:pointer;font-size:12px;padding:0 3px}.pv-wallcard [data-insert]{background:none;border:1px solid var(--line);color:inherit;border-radius:4px;padding:3px 8px;cursor:pointer}.pv-wallcard [data-insert]:hover{border-color:#2563eb;color:#2563eb}.pv-wallcard .op.on{background:#2563eb14;border-radius:6px;padding:4px 6px}.pv-wallcard .oped{padding:4px 0 2px}.pv-wallcard .oped .r{display:flex;align-items:center;gap:6px;padding:2px 0}.pv-wallcard .oped .r label{width:46px;opacity:.65}.pv-wallcard .oped input,.pv-wallcard .oped select{background:transparent;color:inherit;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font:inherit}.pv-wallcard .okinds button{background:none;border:1px solid var(--line);color:inherit;border-radius:4px;padding:1px 6px;cursor:pointer;font-size:11px}.pv-wallcard .okinds button.on{border-color:#2563eb;color:#2563eb}.pv-stage{padding-left:var(--dock-left, 0px);padding-right:var(--dock-right, 0px)}.dw-panel .pv-wallcard.in-panel{position:static;width:auto;max-height:none;border:none;box-shadow:none;background:transparent;overflow:visible}.pv-wallcard .o3d{margin:8px 0 4px;border-radius:8px;overflow:hidden;border:1px solid var(--line);height:190px;cursor:grab;position:relative;background:#f3f0ea}.pv-wallcard .o3d:active{cursor:grabbing}.pv-wallcard .o3d canvas{display:block;width:100%;height:100%}.pv-wallcard .o3d .hint{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:9px;color:#8a8a84;pointer-events:none;letter-spacing:.06em}.pv-wallcard .ostyles{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0 2px}.pv-wallcard .ostyles button{background:none;cursor:pointer;font-size:9px;letter-spacing:.05em;border:1px solid var(--line);border-radius:6px;padding:3px 6px;color:inherit}.pv-wallcard .ostyles button.on{border-color:#2563eb;color:#2563eb;font-weight:700}.pv-wallcard .ostage{display:flex;gap:6px;align-items:center;margin-top:6px}.pv-wallcard .ostage[hidden]{display:none}.pv-wallcard .ostage button{background:none;border:1px solid var(--line);border-radius:5px;padding:2px 9px;cursor:pointer;color:inherit;font-size:11px}.pv-wallcard .ostage .ok{border-color:#16a34a;color:#16a34a;font-weight:600}.pv-wallcard .ostage .n{font-size:10px;color:var(--txt2, #888)}.pv-wallcard .dim{color:var(--txt2, #888);font-size:10px}.pv-schedule{font-size:11px}.pv-schedule .sh{font-weight:700;letter-spacing:.1em;font-size:10px;color:var(--txt2, #888);padding:8px 4px 3px}.pv-schedule .sh.none{font-weight:400;letter-spacing:0;padding:10px 4px}.pv-schedule .shead,.pv-schedule .srow{display:grid;grid-template-columns:minmax(64px,1.3fr) 1fr 30px 1fr;gap:6px;padding:3px 4px;align-items:center}.pv-schedule .shead{color:var(--txt2, #888);font-size:9px;letter-spacing:.08em;border-bottom:1px solid var(--line)}.pv-schedule .srow{cursor:pointer;border-radius:4px}.pv-schedule .srow:hover{background:#ffb02024}.pv-schedule .srow .mk{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-schedule .srow .fam{color:var(--txt2, #888);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dw-chat{position:fixed;right:16px;bottom:16px;z-index:300;font-size:12px}.dw-chat-pill{display:none;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:12px;letter-spacing:.04em;box-shadow:0 4px 18px #00000073}.dw-chat-pill:hover{background:var(--panel2);border-color:var(--accent)}.dw-chat.collapsed .dw-chat-pill{display:inline-block}.dw-chat.collapsed .dw-chat-panel{display:none}.dw-chat-panel{display:flex;flex-direction:column;width:360px;height:480px;max-height:calc(100vh - 90px);background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 10px 40px #0000008c}.dw-chat-panel header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--panel2)}.dw-chat-panel header b{font-size:11px;letter-spacing:.12em}.dw-chat-panel header .where{flex:1;color:var(--dim);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dw-chat-panel header select{background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:5px;font-size:10px;padding:2px 4px;max-width:118px}.dw-chat-panel header button{background:none;border:1px solid var(--line);border-radius:5px;color:var(--dim);cursor:pointer;padding:1px 7px;font-size:12px;line-height:1.4}.dw-chat-panel header button:hover{color:var(--fg);border-color:var(--accent)}.dw-chat-list{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.dw-chat-msg{max-width:92%;padding:7px 10px;border-radius:9px;line-height:1.45;white-space:pre-wrap;overflow-wrap:break-word}.dw-chat-msg.user{align-self:flex-end;background:hsl(var(--primary) / .18);border:1px solid hsl(var(--primary) / .45)}.dw-chat-msg.ai{align-self:flex-start;background:var(--panel2);border:1px solid var(--line)}.dw-chat-msg.tool{align-self:flex-start;background:none;border:1px dashed var(--line);color:var(--dim);font-family:ui-monospace,monospace;font-size:10px;padding:4px 8px;max-width:100%}.dw-chat-msg.err{align-self:stretch;background:hsl(var(--accent-red) / .12);border:1px solid hsl(var(--accent-red) / .5);color:hsl(var(--accent-red))}.dw-chat-msg.hint{align-self:stretch;background:none;border:none;color:var(--dim);font-size:11px}.dw-chat-status{padding:4px 12px;color:var(--warn);font-size:10px;border-top:1px solid var(--line)}.dw-chat-status[hidden]{display:none}.dw-chat-bar{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line);background:var(--panel2)}.dw-chat-bar textarea{flex:1;resize:none;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font:inherit;font-size:12px;min-height:32px;max-height:96px}.dw-chat-bar textarea:focus{outline:none;border-color:var(--accent)}.dw-chat-bar button{background:var(--accent);color:hsl(var(--primary-foreground));border:none;border-radius:7px;padding:0 13px;cursor:pointer;font-size:13px}.dw-chat-bar button:disabled{opacity:.45;cursor:default}.pv-schedule .srow.warn .mk{color:hsl(var(--accent-orange))}.pv-schedule .srow.warn sup{font-size:8px}.pv-laywrap{position:relative;display:inline-block}.pv-laypanel{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:220px;max-height:320px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 30px #00000080}.pv-laypanel[hidden]{display:none}.pv-laypanel .lrow{display:flex;align-items:center;gap:7px;font-size:11px;padding:3px 4px;border-radius:4px;cursor:pointer;white-space:nowrap}.pv-laypanel .lrow:hover{background:var(--panel2)}.pv-laypanel .lrow.dim{color:var(--dim);cursor:default}.pv-laypanel{min-width:470px;max-height:70vh}.pv-laypanel .lm-head{font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin:6px 2px 2px;color:var(--ink)}.pv-laypanel .lm-head .dim{text-transform:none;letter-spacing:0;color:var(--dim)}.pv-laypanel .lmrow{display:grid;grid-template-columns:20px 1fr 24px 24px 24px 64px 82px 30px;align-items:center;gap:3px;font-size:11px;padding:2px 3px;border-radius:4px}.pv-laypanel .lmrow:hover{background:var(--panel2)}.pv-laypanel .lmrow.cur{background:color-mix(in srgb,var(--accent, #2563eb) 14%,transparent)}.pv-laypanel .lmrow button{background:none;border:1px solid transparent;color:var(--ink);cursor:pointer;padding:0;height:20px;font-size:12px;border-radius:3px}.pv-laypanel .lmrow button:hover{border-color:var(--line)}.pv-laypanel .lmrow .off{filter:grayscale(1);opacity:.35}.pv-laypanel .lm-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono, ui-monospace, monospace)}.pv-laypanel .lm-sw{display:flex;align-items:center;gap:3px}.pv-laypanel .lm-sw i{width:12px;height:12px;border:1px solid var(--line);flex:none}.pv-laypanel .lm-sw input{width:46px;font-size:11px;padding:1px 2px;background:var(--bg);color:var(--ink);border:1px solid var(--line)}.pv-laypanel .lmrow select{font-size:10px;padding:1px;background:var(--bg);color:var(--ink);border:1px solid var(--line)}.pv-laypanel .lm-n{color:var(--dim);text-align:right;font-size:10px}.pv-laypanel .lm-add{display:flex;gap:4px;margin:4px 2px 6px}.pv-laypanel .lm-add input{flex:1;font-size:11px;padding:3px 5px;background:var(--bg);color:var(--ink);border:1px solid var(--line)}.pv-curlay{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--dim)}.pv-curlay select{max-width:190px;font-size:11px;padding:3px 4px;background:var(--bg);color:var(--ink);border:1px solid var(--line);font-family:var(--mono, ui-monospace, monospace)}.pv-help{position:absolute;left:50%;top:56px;transform:translate(-50%);z-index:70;width:min(680px,calc(100% - 32px));max-height:72%;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 40px #00000073}.pv-help-h{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px}.pv-help-h .chip{margin-left:auto}.pv-help-rows{overflow-y:auto;padding:4px}.pv-help-g{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);padding:8px 6px 2px}.pv-help-row{text-transform:none;letter-spacing:0;font-family:inherit;display:grid;grid-template-columns:96px 64px 1fr;gap:8px;width:100%;text-align:left;background:none;border:0;color:var(--ink);font-size:11px;padding:4px 6px;cursor:pointer}.pv-help-row:hover{background:var(--panel2)}.pv-help-row b{font-family:var(--mono, ui-monospace, monospace)}.pv-help-row i{font-style:normal;color:var(--dim);font-family:var(--mono, ui-monospace, monospace)}.pv-help-f{padding:6px 10px;border-top:1px solid var(--line);font-size:10px}.dw-xhair{cursor:none}.dw-xhair canvas{cursor:none}.dw-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.dw-modal-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(620px,92vw);max-height:min(84vh,720px);display:flex;flex-direction:column;overflow:hidden}.dw-modal-card header{display:flex;align-items:center;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line);flex:none}.dw-modal-card header h3{margin:0;font-size:10px;letter-spacing:.18em}.dw-modal-card header .x{margin-left:auto;background:none;border:none;color:inherit;font-size:17px;cursor:pointer;opacity:.7}.dw-modal-card .grp{display:flex;gap:6px;padding:10px 15px;border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none}.dw-layer-rows{flex:1;min-height:0;overflow-y:auto;padding:6px 0;-webkit-overflow-scrolling:touch}.dw-layer-row{display:flex;align-items:center;gap:10px;padding:7px 15px;cursor:pointer}.dw-layer-row:hover{background:#7f7f7f14}.dw-layer-row .lr-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.dw-layer-row .lr-label{font-size:12px}.dw-layer-row code{font-size:10px;opacity:.65}.dw-layer-row .lr-count{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.dw-modal-foot{display:flex;align-items:center;gap:12px;padding:11px 15px;border-top:1px solid var(--line);flex:none}.dw-modal-foot .note{flex:1;font-size:11px}.dw-modal-foot .primary{background:var(--accent, #2563eb);color:#fff;border:none;border-radius:5px;padding:7px 16px;cursor:pointer}.dw-modal-foot .primary:disabled{opacity:.4;cursor:not-allowed}.cdparts{font-size:11px;flex-wrap:wrap}.cdparts .cdpart{display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}.cdparts .cdpart input{margin:0}.cd-guide-edit{font:12px ui-monospace,Menlo,monospace;padding:3px 6px;border:1px solid var(--accent, #2563eb);border-radius:4px;background:var(--panel, #fff);color:var(--fg, #111)}.pv-sep{color:var(--dim);font-size:11px}.pv-sheets{flex-wrap:nowrap;overflow-x:auto;max-width:34vw;scrollbar-width:none}.pv-shchip{font-variant-numeric:tabular-nums}.pv-shwrap{position:relative;display:inline-block}.pv-shpanel{position:absolute;left:0;top:calc(100% + 6px);z-index:60;min-width:420px;max-height:340px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 30px #00000080}.pv-shpanel[hidden]{display:none}.pv-shrows{display:flex;flex-direction:column;gap:4px}.pv-shrow{display:flex;align-items:center;gap:6px}.pv-shrow input,.pv-shrow select{font-size:11px;padding:3px 6px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px}.pv-shrow .pv-shnum{width:62px;font-variant-numeric:tabular-nums}.pv-shrow .pv-shname{flex:1;min-width:120px}.pv-shrow .chip{padding:2px 7px}.pv-shpanel .note{font-size:10px;margin:2px 0 0}.pv-tbpanel{left:auto;right:0;min-width:470px;max-height:70vh}.pv-tbrow{display:flex;align-items:center;gap:6px}.pv-tbrow .pv-tblabel{width:150px;flex:none;font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}.pv-tbrow input,.pv-tbrow select,.pv-tbform input,.pv-tbform textarea{flex:1;min-width:0;font-size:11px;padding:3px 6px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px;font-family:inherit}.pv-tbrow input::placeholder{color:var(--dim);opacity:.7}.pv-tbform{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px dashed var(--line);border-radius:6px}.pv-tbform[hidden]{display:none}.pv-tbhead{margin:8px 0 2px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}table.docs td.nm a{color:var(--fg);text-decoration:none}table.docs td.nm a:hover{color:var(--accent)}table.docs tr.rowhi td{background:hsl(var(--primary) / .08)}table.docs td .bad{color:var(--bad)}.card.doc .plancard.docprev{height:360px;margin:12px 0;position:relative}.card.doc .docprev .docstage{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--bg)}.card.doc .docstage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.card.doc .docstage canvas.pv-bg{inset:auto;left:0;top:0;width:auto;height:auto;max-width:none;pointer-events:none;transform-origin:0 0;z-index:0}.card.doc .docstage canvas.docthumb{z-index:1;background:transparent}.card.doc .docstage canvas[data-doc-preview]{background:#212830;cursor:crosshair;touch-action:none}.card.doc .layout{margin:12px 0 0;border-top:1px solid var(--line);padding-top:8px}.card.doc .layout h4{margin:0 0 6px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.card.doc details{margin:10px 0 0;border-top:1px solid var(--line);padding-top:8px}.card.doc details>summary{cursor:pointer;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.card.doc details.json{border:none;padding:2px 0 0 12px;margin:2px 0}.card.doc details.json>summary{text-transform:none;letter-spacing:0;font-size:11px;color:var(--fg)}.card.doc details.json code{color:var(--accent)}.card.doc pre{font-size:10px;max-height:260px;overflow:auto;background:var(--bg);padding:8px;margin:4px 0 6px;border:1px solid var(--line)}.card.doc .note.bad{color:var(--bad)}.card.doc .assign{margin-top:8px;flex-wrap:wrap}.card.doc .assign select{max-width:260px}table.census{margin-top:6px}.pv-space .chip{min-width:52px;text-align:center}.pv-sel{background:var(--panel2);border:1px solid var(--line);color:var(--fg);font:inherit;font-size:9px;text-transform:uppercase;letter-spacing:.1em;padding:3px 4px;max-width:150px}.pv-sel:focus{outline:none;border-color:var(--accent)}.pv-sheettools{flex-wrap:wrap}.pv-sheettools[hidden],.pv-bar [data-v][hidden]{display:none}.pv-stage.sheet [data-plan-pane]{background:var(--sheet-canvas)}.pv-file strong{color:var(--fg)}.pv-rail{display:none}.pv-stage.sheet[data-view=plan]{grid-template-columns:150px 1fr}.pv-stage.sheet .pv-rail{display:flex;flex-direction:column;gap:8px;padding:8px;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);min-height:0}.pv-railadd{align-self:stretch}.pv-railcard{cursor:pointer;border:1px solid transparent;border-radius:6px;padding:4px}.pv-railcard:hover{border-color:var(--line)}.pv-railcard.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.pv-railcard.over{border-color:var(--accent);border-style:dashed}.pv-railcard.drag{opacity:.45}.pv-railcard canvas{display:block;width:100%;height:84px}.pv-raillab{display:flex;flex-direction:column;font-size:10px;line-height:1.3;margin-top:3px}.pv-raillab strong{font-variant-numeric:tabular-nums;letter-spacing:.04em}.pv-raillab span{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-stage .pv-rail canvas{position:static;inset:auto;display:block;width:100%;height:84px;max-width:none;pointer-events:none}.pv-bar .pv-sheets[hidden]{display:none}.pv-empty{pointer-events:none}.pv-stage.sheet .pv-empty{inset:8px 8px auto 158px;display:block;padding:6px 10px;border-radius:6px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--line);z-index:5}.pv-stage.sheet .pv-empty[hidden]{display:none}.pv-tabs{gap:0}.pv-tabs .pv-tab{border-radius:6px 6px 0 0;border-bottom-width:2px;margin-right:2px}.pv-tabs .pv-tab.on{border-bottom-color:var(--accent)}.pv-tabs .pv-tab.empty{opacity:.7;font-style:italic}.pv-tabs .pv-tabadd{opacity:.8}.pv-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 10px;border-bottom:1px solid var(--line);background:var(--panel)}.pv-toolbar[hidden]{display:none}.pv-toolbar .chip{padding:3px 9px}.pv-imppanel{left:auto;right:0;min-width:520px}.pv-imppanel .pv-implab{flex:1;font-size:11px}.pv-imppanel select{max-width:160px}.cdlive{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px}.cdlive[hidden]{display:none}.cdlive-text{flex:1;font-variant-numeric:tabular-nums}.cdlive-bar{width:120px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.cdlive-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .05s linear}.cdlive{flex-wrap:wrap}.cdlive-text{flex:1 1 100%}.cdlive-bar{flex:1;width:auto}#panel .card .grp{flex-wrap:wrap}.refs .refs-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}.refs .refs-hd h3{margin:0}.refs.drop{outline:2px dashed var(--accent, #2563eb);outline-offset:-6px}.refs-form{display:flex;gap:6px;margin:6px 0 10px;flex-wrap:wrap}.refs-form input{flex:1;min-width:160px;font-size:11px;padding:4px 6px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px;font-family:inherit}.refs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.refs-tile{border:1px solid var(--line);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:4px;min-width:0;background:var(--card, transparent)}.refs-face{height:110px;border-radius:4px;background:var(--panel2, var(--bg));display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:10px;color:var(--dim)}.refs-face img{max-width:100%;max-height:100%;object-fit:contain}.refs-ico{font-size:11px;letter-spacing:.3em;color:var(--dim)}.refs-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refs-meta{font-size:9.5px;color:var(--dim);line-height:1.35}.refs-tile .grp{flex-wrap:wrap}.refs-empty{grid-column:1 / -1}button.sm.danger:hover{border-color:var(--bad);color:var(--bad)}.pv-refspanel{left:auto;right:0;min-width:340px;max-width:min(420px,92vw);max-height:70vh;overflow:auto}.pv-refsrow{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line)}.pv-refsrow:last-child{border-bottom:0}.pv-refsrow img{width:44px;height:34px;object-fit:cover;border-radius:3px;flex:none;background:var(--panel2, var(--bg));cursor:grab}.pv-refsrow .nm{flex:1;min-width:0;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-refsrow .sub{display:block;font-size:9.5px;color:var(--dim)}.pv-refsctl{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:2px 0 8px 52px}.pv-refsctl input[type=range]{width:90px}.pv-refshd{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:8px 0 2px}[data-plan-pane].refdrop{outline:2px dashed var(--accent, #2563eb);outline-offset:-4px}.pv-team{position:absolute;top:0;right:0;bottom:0;width:min(400px,92vw);z-index:46;background:var(--panel);border-left:1px solid var(--line);box-shadow:-10px 0 30px #00000059;display:flex;flex-direction:column;min-height:0}.pv-team[hidden]{display:none}.tm-hd{display:flex;align-items:center;gap:8px;padding:10px 12px 6px}.tm-title{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--fg);flex:1}.tm-x{background:none;border:0;color:var(--dim);font-size:18px;cursor:pointer;line-height:1}.tm-banner{margin:0 12px 8px;padding:7px 9px;font-size:10px;line-height:1.45;color:var(--dim);border:1px dashed var(--line);border-radius:6px}.tm-tabs{display:flex;gap:4px;padding:0 12px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tm-body{flex:1;min-height:0;overflow:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:10px}.tm-sec{display:flex;flex-direction:column;gap:6px}.tm-sechd{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.tm-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tm-chips{display:flex;gap:4px;flex-wrap:wrap}.tm-lbl{font-size:10px;color:var(--dim);width:64px}.tm-val{font-size:10px;color:var(--fg)}.tm-line{font-size:11px;color:var(--fg)}.tm-brief{width:100%;box-sizing:border-box;font-size:11px;padding:6px 8px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px;font-family:inherit;resize:vertical}.tm-ref{display:flex;align-items:center;gap:6px;font-size:11px}.tm-send{align-self:flex-start}.tm-thread{display:flex;flex-direction:column;gap:6px}.tm-msg{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.45}.tm-msg.you .tm-glyph{background:var(--accent, #2563eb);color:#fff;border-color:transparent}.tm-glyph{flex:none;min-width:26px;height:22px;padding:0 3px;box-sizing:border-box;border-radius:11px;border:1px solid var(--line);font-size:8.5px;letter-spacing:.08em;display:inline-flex;align-items:center;justify-content:center;color:var(--dim)}.tm-msgtxt{display:flex;flex-direction:column;gap:1px;min-width:0}.tm-msgtxt b{font-size:10px;font-weight:600}.tm-card,.tm-agent{border:1px solid var(--line);border-left-width:3px;border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:6px}.tm-cardhd{display:flex;align-items:center;gap:8px;font-size:11px}.tm-cardhd b{flex:1}.pv-stage .pv-team canvas.tm-thumb{position:static;inset:auto;display:block;width:100%;height:120px;pointer-events:none;border-radius:4px;background:var(--panel2, var(--bg))}.tm-findings{margin:0;padding-left:0;list-style:none;font-size:10px;display:flex;flex-direction:column;gap:2px}.tm-findings .dim{color:var(--dim)}.tm-does{margin:0;font-size:11px;line-height:1.45}.tm-meta{font-size:10px;color:var(--dim);line-height:1.4}.tm-body .note{font-size:10px;margin:0}.tm-sec>button{align-self:flex-start}.inventory summary .bad{color:var(--bad)}.inventory summary .good{color:var(--good)}.inventory>.grp{margin:8px 0;flex-wrap:wrap}.inventory table td.n{font-variant-numeric:tabular-nums}.loc .loc-hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.loc .loc-hd h3{margin:0}.loc-where{font-size:11px;color:var(--fg)}.loc-search{position:relative;margin:10px 0}.loc-search input{width:100%;box-sizing:border-box;font-size:12px;padding:7px 9px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px;font-family:inherit}.loc-sug{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 24px #00000059;max-height:260px;overflow:auto}.loc-sugrow{padding:7px 9px;font-size:12px;cursor:pointer}.loc-sugrow:hover,.loc-sugrow.on{background:var(--card-hover, rgba(127,127,127,.12))}.loc-body{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px}@media (max-width: 900px){.loc-body{grid-template-columns:1fr}}.loc-map{position:relative;height:340px;border-radius:6px;overflow:hidden;border:1px solid var(--line)}.loc-map canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.loc-bases{position:absolute;top:8px;left:8px}.loc-bases button{background:#0000008c;color:#fff}.loc-facts{display:grid;grid-template-columns:max-content 1fr;gap:5px 12px;margin:0 0 10px;font-size:11.5px}.loc-facts dt{color:var(--dim)}.loc-facts dd{margin:0}.loc-facts dd.bad{color:var(--bad)}.loc-side .grp{flex-wrap:wrap}.dv{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;flex-direction:column;background:var(--panel);color:var(--fg)}.dv-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line)}.dv-title{font-size:12px;font-weight:600;margin-right:6px}.dv-stats{font-size:10px;color:var(--dim);margin-right:auto}.dv-body{flex:1;min-height:0;display:flex}.dv-panel{width:360px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.dv-panel[hidden]{display:none}.dv-ptop{padding:8px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line)}.dv-ptop input{font-size:11px;padding:5px 7px;background:var(--panel2, var(--bg));color:var(--fg);border:1px solid var(--line);border-radius:4px;font-family:inherit}.dv-rows{overflow:auto;flex:1;min-height:0}.dv-row{display:grid;grid-template-columns:26px 26px 14px minmax(0,1fr) 82px 56px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;border-bottom:1px solid rgba(127,127,127,.08)}.dv-row.dim .dv-nm{color:var(--dim)}.dv-hd{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding-block:6px}.dv-tog{background:none;border:1px solid transparent;color:var(--dim);cursor:pointer;font-size:12px;line-height:1;padding:2px;border-radius:3px}.dv-tog.yes{color:#facc15}.dv-tog.frz{color:#7dd3fc}.dv-tog:hover{border-color:var(--line)}.dv-sw{width:12px;height:12px;border-radius:2px;border:1px solid rgba(127,127,127,.5)}.dv-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-lt{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-n{text-align:right;font-variant-numeric:tabular-nums;color:var(--dim)}.dv-stage{flex:1;min-width:0;position:relative}.dv-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.dv-coords{position:absolute;left:8px;bottom:6px;font-size:10px;color:#cbd5e1;background:#00000073;padding:2px 6px;border-radius:3px;pointer-events:none;font-variant-numeric:tabular-nums}.dv.plot .dv-coords{color:#334155;background:#fffc}.docstage .docfull{position:absolute;top:8px;right:8px;z-index:2}.build-stamp{font-size:9px;letter-spacing:.12em;color:var(--dim);margin-right:10px;font-variant-numeric:tabular-nums}#app:has(>.lab){overflow:hidden}.lab{flex:1;min-height:0;display:flex;flex-direction:column}.lab-head{display:flex;align-items:center;gap:12px;padding:7px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.lab-title input{background:transparent;border:1px solid transparent;color:var(--fg);font:italic 400 17px Times New Roman,serif;padding:2px 6px;min-width:220px}.lab-title input:hover,.lab-title input:focus{border-color:var(--line)}.lab-phases{display:flex;gap:2px;flex-wrap:wrap;flex:1}.lab-phase{background:transparent;border:1px solid var(--line);color:var(--dim);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;cursor:pointer}.lab-phase.done{color:var(--good);border-color:hsl(var(--accent-green) / .45)}.lab-phase.cur{color:var(--fg);border-color:var(--accent);background:hsl(var(--primary) / .18)}.lab-cost{position:relative;background:var(--panel);border:1px solid var(--line);color:var(--fg);padding:5px 10px 8px;min-width:120px;cursor:pointer;text-align:left;font:inherit}.lab-cost small{color:var(--dim)}.lab-cost i{position:absolute;left:0;bottom:0;height:3px;background:var(--good)}.lab-cost i.hot{background:var(--bad)}.lab-body{flex:1;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr) 380px}.lab-intake,.lab-team{min-height:0;overflow:auto;border-right:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:8px}.lab-team{border-right:0;border-left:1px solid var(--line);overflow:hidden;padding:0}.lab-intake h3{margin:0;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim)}.lab-drop{border:1px dashed var(--line);padding:14px 8px;text-align:center;cursor:pointer;color:var(--dim)}.lab-drop strong{color:var(--fg);text-transform:uppercase;letter-spacing:.2em;font-size:9.5px}.lab-drop.over{border-color:var(--accent);background:hsl(var(--primary) / .12)}.lab-addform{display:flex;flex-direction:column;gap:5px}.lab-addform textarea,.lab-addform input{width:100%;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);color:var(--fg);font:inherit;padding:5px}.lab-railhead{display:flex;align-items:center;justify-content:space-between}.lab-tree{display:flex;flex-direction:column}.lab-folder{display:grid;grid-template-columns:16px 1fr auto auto;align-items:center;gap:4px;padding:3px 4px 3px calc(4px + var(--d, 0) * 12px);cursor:pointer;font-size:11px;border:1px solid transparent}.lab-folder:hover{background:var(--panel)}.lab-folder.on{border-color:var(--accent);background:hsl(var(--primary) / .08)}.lab-folder.over,.lab-fbody.over{outline:1px dashed var(--accent);background:hsl(var(--primary) / .14)}.lab-folder.nothing .lab-fname{color:var(--dim)}.lab-folder small{color:var(--dim);font-size:9.5px}.lab-caret{background:none;border:0;color:var(--dim);padding:0;width:16px;cursor:pointer;font-size:10px}.lab-fname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-fname:before{content:"▭ ";color:var(--dim)}.lab-fact{display:none;gap:2px}.lab-folder:hover .lab-fact,.lab-folder.on .lab-fact{display:flex}.lab-fact .sm{padding:0 5px;min-height:0;line-height:16px}.lab-fbody{display:flex;flex-direction:column;gap:3px;padding:2px 0 6px calc(18px + var(--d, 0) * 12px)}.lab-fnote{font-size:10px;line-height:1.4;color:var(--dim);border-left:2px solid var(--line);padding:2px 6px}.lab-fnote p,.lab-fnote ul{margin:0 0 2px}.lab-fnote ul{padding-left:14px}.lab-fempty{font-size:10px;margin:0;padding:2px 0}.lab-item{display:grid;grid-template-columns:34px 1fr auto;gap:6px;align-items:center;padding:3px 4px;border:1px solid var(--line);cursor:pointer;background:var(--panel)}.lab-item.on{border-color:var(--accent)}.lab-item.made{background:transparent;border-style:dashed}.lab-item[draggable=true]:active{cursor:grabbing}.lab-item img,.lab-item .lab-ico{width:34px;height:26px;object-fit:cover;background:#fff;display:grid;place-items:center;color:#555;font-size:13px}.lab-item.made .lab-ico{background:var(--panel);color:var(--dim)}.lab-item-t{font-size:10.5px;line-height:1.3;overflow-wrap:anywhere;min-width:0}.lab-item-t small{color:var(--dim)}.lab-item-a{display:flex;gap:3px}.lab-item-a .sm{padding:0 5px;min-height:0;line-height:18px}.lab-main{min-width:0;min-height:0;display:flex;flex-direction:column}.lab-tabs{display:flex;flex-wrap:wrap;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line)}.lab-tabgroup{display:flex;align-items:center;gap:2px}.lab-tabgroup small{font-size:7.5px;letter-spacing:.25em;text-transform:uppercase;color:var(--dim);margin-right:4px}.lab-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--dim);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:5px 7px;cursor:pointer}.lab-tab.on{color:var(--fg);border-bottom-color:var(--accent)}.lab-tab i{font-style:normal;margin-left:4px;padding:0 4px;border:1px solid var(--line);color:var(--fg);font-size:8px}.lab-tab i.bad{border-color:var(--bad);color:var(--bad)}.lab-pane{flex:1;min-height:0;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.lab-pane[data-tab=plan],.lab-pane[data-tab="3d"],.lab-pane[data-tab=reference],.lab-pane[data-tab=drawings]{overflow:hidden}.lab-pane[data-tab=drawings]{padding:0;gap:0}.lab-pane[data-tab=drawings]>.lab-bar{padding:6px 12px}.lab-pvhost{flex:1;min-height:0;position:relative}.lab-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.lab-bar select,.lab-q input,.lab-ruleform input,.lab-ruleform select,.lab-cost-in,.lab-doc input,.lab-doc select{background:var(--panel);border:1px solid var(--line);color:var(--fg);font:inherit;padding:3px 5px}.lab-hint{color:var(--dim)}.lab-roster{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}.lab-agent{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;text-transform:uppercase;letter-spacing:.14em}.lab-agent i{width:8px;height:8px;background:var(--c);display:inline-block}.lab-agent small{color:var(--dim);text-transform:none;letter-spacing:0}.lab-thread{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.lab-ev{font-size:11px;line-height:1.45}.lab-ev.user{align-self:flex-end;max-width:88%;background:hsl(var(--primary) / .2);border:1px solid hsl(var(--primary) / .5);padding:6px 9px}.lab-ev.user p{margin:0;white-space:pre-wrap}.lab-ev.agent{border-left:3px solid var(--c);padding:2px 0 2px 9px}.lab-ev.agent b{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--c)}.lab-ev.tool{color:var(--dim);font-size:9.5px;padding-left:12px;border-left:3px solid hsl(0 0% 50% / .25)}.lab-ev.tool.bad{color:var(--bad)}.lab-ev.tool code{color:var(--fg)}.lab-ev.system{color:var(--dim);font-size:10px;text-align:center}.lab-ev.warn{color:var(--warn);border:1px solid hsl(var(--accent-orange) / .5);padding:5px 8px}.lab-ev.error{color:var(--bad);border:1px solid hsl(var(--accent-red) / .5);padding:5px 8px}.lab-ev.check{border-left:3px solid var(--c);padding:2px 0 2px 9px;font-size:10.5px}.lab-ev.check b{color:var(--c);font-size:9px;letter-spacing:.2em;text-transform:uppercase}.lab-ev.checkpoint{border:1px solid var(--accent);padding:7px 9px;background:hsl(var(--primary) / .1)}.lab-ev.checkpoint.approved{border-color:hsl(var(--accent-green) / .5);background:transparent}.lab-ev.cap{border:1px solid var(--bad);padding:7px 9px}.lab-md p{margin:3px 0}.lab-md ul,.lab-md ol{margin:3px 0;padding-left:18px}.lab-md h2,.lab-md h3,.lab-md h4{margin:10px 0 4px;font-size:12px}.lab-md code{background:#80808026;padding:0 3px}.lab-md-t{border-collapse:collapse;margin:6px 0}.lab-md-t th,.lab-md-t td{border:1px solid var(--line);padding:3px 6px;text-align:left;vertical-align:top}.lab-ref{color:var(--accent)}.lab-prop{border:1px solid var(--line);padding:8px 10px;background:var(--panel);font-size:11px}.lab-prop.open{border-color:hsl(var(--accent-orange) / .6)}.lab-prop.accepted{border-color:hsl(var(--accent-green) / .5);opacity:.85}.lab-prop.rejected,.lab-prop.set-aside{opacity:.55}.lab-prop p{margin:4px 0}.lab-prop li.error{color:var(--bad)}.lab-prop li.warn{color:var(--warn)}.lab-ops{max-height:180px;overflow:auto;margin:4px 0;padding-left:22px;font-size:9.5px;color:var(--dim)}.lab-running{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--line);font-size:10px;color:var(--dim)}.lab-running .spin{width:10px;height:10px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:labspin .8s linear infinite}@keyframes labspin{to{transform:rotate(360deg)}}.lab-compose{border-top:1px solid var(--line);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.lab-compose textarea{width:100%;box-sizing:border-box;resize:vertical;background:var(--panel);border:1px solid var(--line);color:var(--fg);font:inherit;padding:6px}.lab-focuschip{font-size:10px;color:var(--warn);border:1px dashed var(--warn);padding:4px 6px;display:flex;gap:6px;align-items:center}.lab-focuschip select{background:var(--panel);color:var(--fg);border:1px solid var(--line)}.lab-refview{flex:1;min-height:0;overflow:hidden;background:#3a3a3a;position:relative;cursor:grab}.lab-refimg{position:absolute;left:0;top:0;transform-origin:0 0;width:100%}.lab-refimg img{width:100%;display:block;background:#fff}.lab-box{position:absolute;border:1.5px solid rgba(217,119,6,.85);background:#d9770614;cursor:pointer}.lab-box:hover,.lab-box.on{background:#d9770647;border-color:#d97706}.lab-refimg.noboxes .lab-box{display:none}.lab-factnote{margin:0}.lab-planhost{flex:1;min-height:0;position:relative}.lab-plan{position:relative}.lab-plan-stage{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;overflow:hidden;touch-action:none}.lab-plan[data-tool=focus] .lab-plan-stage,.lab-plan[data-tool=camera] .lab-plan-stage{cursor:crosshair}.lab-plan-svg,.lab-plan-over{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.lab-plan-over{pointer-events:none}.lab-plan-over>*{pointer-events:auto}.lab-plan-hud{position:absolute;left:8px;bottom:6px;font-size:10px;color:#333;background:#ffffffd9;padding:2px 6px;pointer-events:none}.lab-plan-hud:empty{display:none}.lab-ring{fill:none;stroke-width:6;cursor:pointer}.lab-ring.error{stroke:#dc2626cc}.lab-ring.warn{stroke:#ea580cbf}.lab-focus{fill:#eab3081f;stroke:#ca8a04;stroke-width:6;stroke-dasharray:24 12}.lab-focus-t{fill:#a16207;font-family:Arial,sans-serif;font-weight:700}.lab-cam path{fill:#2563eb59;stroke:#2563eb;stroke-width:3}.lab-cam circle{fill:#2563eb}.lab-cam{cursor:pointer}.lab-cam.on path{fill:#2563eb99}.lab-cam-start{fill:#2563eb}.lab-changed{fill:#0ea5e91a;stroke:#0ea5e9;stroke-width:4}.lab-3dhost{flex:1;min-height:260px;position:relative;background:#eef2f5}.lab-3dhost canvas{position:absolute;top:0;right:0;bottom:0;left:0}.lab-snaps{display:flex;gap:8px;overflow-x:auto;min-height:30px}.lab-snap{margin:0;width:180px;flex:none;border:1px solid var(--line)}.lab-snap.cover{border-color:var(--accent)}.lab-snap img{width:100%;display:block}.lab-snap figcaption{font-size:9.5px;padding:3px 5px;display:flex;gap:6px;align-items:center}.lab-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.lab-sheet{margin:0;border:1px solid var(--line);background:var(--panel);cursor:pointer}.lab-sheet.on{border-color:var(--accent)}.lab-sheet-svg svg{width:100%;height:auto;display:block}.lab-sheet figcaption{padding:4px 6px;font-size:10px}.lab-model{display:grid;grid-template-columns:230px 1fr;gap:8px;min-height:72vh}.lab-xrefs{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);background:var(--panel);font-size:12px}.lab-xrefs p{font-size:11px;line-height:1.4;margin:6px 0 0}.lab-xrow{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 6px;padding:5px 6px;border:1px solid var(--line)}.lab-xrow small{grid-column:1;color:var(--dim);font-size:10px}.lab-xrow button{grid-column:2;grid-row:1 / span 2}.lab-xrow.own{border-color:var(--accent)}.lab-modelv{position:relative;overflow:hidden;background:#555;cursor:grab;min-height:72vh}.lab-modelv>[data-z]{position:absolute;left:0;top:0;width:100%;transform-origin:0 0}.lab-modelv svg{width:100%;height:auto;display:block}.lab-xbox{position:absolute;border:2px dashed #f59e0b;background:#f59e0b12;pointer-events:none}.lab-xbox.own{border-color:#2563eb;background:#2563eb0d}.lab-sheetbig{border:1px solid var(--accent);display:flex;flex-direction:column;gap:6px;padding:6px;min-height:70vh}.lab-sheetbig-v{flex:1;min-height:60vh;overflow:hidden;background:#555;position:relative;cursor:grab}.lab-sheetbig-v>div{position:absolute;left:0;top:0;width:100%;transform-origin:0 0}.lab-sheetbig-v svg{width:100%;height:auto;display:block}.lab-doc{border:1px solid var(--line);padding:10px 14px;background:var(--panel);line-height:1.55}.lab-doc h3{margin:0 0 6px;font-size:10px;letter-spacing:.25em;text-transform:uppercase}.lab-q{border:1px solid var(--line);padding:7px 9px;display:flex;flex-direction:column;gap:5px}.lab-q.done{opacity:.75}.lab-a{margin:0;color:var(--good)}.lab-find{padding:4px 0;border-top:1px solid var(--line);font-size:11px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.lab-find .sev{font-weight:700;width:12px;display:inline-block}.lab-find.error .sev{color:var(--bad)}.lab-find.warn .sev{color:var(--warn)}.lab-find.info .sev{color:var(--dim)}.lab-ruleform{display:flex;flex-direction:column;gap:6px}.lab-ruleform label{display:flex;flex-direction:column;gap:2px}.lab-agentrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:4px 0;border-top:1px solid var(--line)}.lab-new{margin:8px 0 14px}.lab-new input{min-width:340px;background:var(--panel);border:1px solid var(--line);color:var(--fg);font:inherit;padding:6px 8px}.lab-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.lab-card h3{margin:0 0 4px;font:italic 400 16px Times New Roman,serif}@media (max-width: 1100px){.lab-body{grid-template-columns:230px minmax(0,1fr) 320px}}body[data-route=lab] .dw-chat{display:none}.lab-plan.comparing .lab-plan-svg{opacity:.32;filter:grayscale(1)}.lab-plan-over .cmp-add{stroke:#0b2a6f;fill:none;stroke-linecap:square}.lab-plan-over .cmp-add.area{fill:#0b2a6f1a}.lab-plan-over .cmp-add-t,.lab-plan-over .cmp-chg-t{font-weight:700;fill:#0b2a6f}.lab-plan-over .cmp-chg{stroke:#c2410c;fill:none;stroke-linecap:square}.lab-plan-over .cmp-chg.area{fill:#c2410c1a}.lab-plan-over .cmp-chg-t{fill:#c2410c}.lab-plan-over .cmp-was{stroke:#c2410c;fill:none;opacity:.35;stroke-dasharray:6 4}.lab-plan-over .cmp-del{stroke:#dc2626;fill:none;stroke-dasharray:10 6}.lab-plan-over .cmp-del-t{fill:#dc2626}.lab-compare{position:absolute;left:12px;top:12px;z-index:3;max-width:380px;max-height:calc(100% - 24px);overflow:auto;background:var(--panel);border:1px solid var(--accent);padding:10px 12px;font-size:11px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 24px #00000059}.lab-compare h4{margin:0;font-size:12px}.lab-compare ul{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:2px}.lab-compare li.add{color:#3b6fd8}.lab-compare li.chg{color:#e8823f}.lab-compare li.del{color:#ef4444}.lab-compare .legend{display:flex;gap:10px;flex-wrap:wrap;color:var(--dim)}.lab-compare .legend i{display:inline-block;width:18px;height:0;border-top:3px solid;vertical-align:middle;margin-right:4px}.lab-planhost{position:relative}.lab.wide .lab-body{grid-template-columns:minmax(0,1fr)}.lab.wide .lab-intake,.lab.wide .lab-team{display:none}.lab-body{position:relative}.lab-talk{position:absolute;top:0;right:0;bottom:0;width:min(480px,100%);z-index:40;display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--line);box-shadow:-12px 0 30px #00000059}.lab-talk[hidden]{display:none}.lab-talk .tk-head{display:flex;align-items:baseline;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px}.lab-talk .tk-head .x{margin-left:auto}.lab-talk .tk-filters{display:flex;flex-wrap:wrap;gap:4px 8px;padding:6px 10px 0;font-size:11px}.lab-talk .tk-filters .chip{display:inline-flex;align-items:center;gap:4px;opacity:.45}.lab-talk .tk-filters .chip.on{opacity:1}.lab-talk .tk-filters .chip i{width:8px;height:8px;background:var(--c);display:inline-block}.lab-talk .tk-list{flex:1;overflow-y:auto;padding:8px 10px 14px;display:flex;flex-direction:column;gap:5px;font-size:12px}.lab-talk .tk-run{margin-top:10px;padding:5px 8px;border:1px solid var(--line);background:var(--panel);font-size:11px}.lab-talk .tk-run span{color:var(--dim);margin-right:6px}.lab-talk .tk-msg{border-left:3px solid var(--c);padding:4px 8px;background:var(--panel)}.lab-talk .tk-msg b{color:var(--c);font-size:11px}.lab-talk .tk-msg .tk-t{float:right;color:var(--dim);font-size:10px}.lab-talk .tk-msg.handoff{background:color-mix(in srgb,var(--c) 10%,var(--panel))}.lab-talk .tk-msg details{margin-top:4px;font-size:11px}.lab-talk pre{white-space:pre-wrap;word-break:break-word;font-size:10px;max-height:260px;overflow:auto;background:var(--bg);padding:6px;border:1px solid var(--line);margin:4px 0 0}.lab-talk .tk-call{font-size:10px;color:var(--dim);padding-left:11px;border-left:3px solid transparent;font-family:var(--mono, ui-monospace, monospace)}.lab-talk .tk-tool{font-size:11px;padding-left:11px;border-left:3px solid var(--c);opacity:.85}.lab-talk .tk-tool.bad summary{color:#ef4444}.lab-talk .tk-tool summary{cursor:pointer}.lab-talk .tk-sys{font-size:11px;color:var(--dim);padding-left:11px}.lab-talk .tk-sys.warn,.lab-talk .tk-sys.error,.lab-talk .tk-sys.cap{color:#f59e0b}.lab-details{overflow-y:auto;max-height:80vh}.lab-details button.lab-xrow{display:block;width:100%;text-align:left;text-transform:none;letter-spacing:0;font-size:11px;line-height:1.35;background:var(--panel);color:var(--ink);cursor:pointer}.lab-details button.lab-xrow:hover{border-color:var(--accent)}.lab-details div.lab-xrow{display:flex;flex-direction:column;align-items:stretch;gap:4px}.lab-details div.lab-xrow>span{font-size:12px}.lab-details div.lab-xrow .grp{display:flex;flex-wrap:wrap;gap:4px}.lab-details select{width:100%}.lab-details>b{margin-top:6px}.lab-detailv{background:#fff}html{-webkit-text-size-adjust:100%}body{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.chip,nav a{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media (pointer: coarse){button{min-height:34px}button.sm{padding:7px 10px;font-size:10px}.chip{min-height:32px;padding-left:10px;padding-right:10px}.pv-help-row{min-height:36px}select,input[type=text],input:not([type]){min-height:34px;font-size:16px}}
