:root{color-scheme:dark;--bg: #0f0f14;--bg-2: #15151c;--card: #1a1a22;--card-2: #23232e;--line: #2c2c38;--text: #f5f5f7;--dim: #9a9aa5;--accent: #6c6cff;--good: #3ad68a;--warn: #f5a524;--bad: #ff5b4a;--radius: 12px;--venue: #121219;--grid-min: #1e1e28;--grid-maj: #2d2d3b;font-size:14px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column;overflow:hidden;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}.topbar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg-2);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:7px;font-size:19px;letter-spacing:-.2px;white-space:nowrap}.brand b{font-weight:700}.brand-word span{font-weight:300;color:var(--accent)}.brand-mark{width:24px;height:24px;flex:none;fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.proj-name{background:transparent;border:1px solid transparent;border-radius:8px;padding:6px 8px;font-weight:600;min-width:120px;flex:1 1 160px;max-width:320px}.proj-name:hover,.proj-name:focus{border-color:var(--line);background:var(--card);outline:none}.modes{display:flex;background:var(--card);border-radius:10px;padding:3px;gap:2px}.mode-btn{border:none;background:transparent;padding:6px 10px;border-radius:8px;color:var(--dim);white-space:nowrap}.mode-btn.on{background:var(--accent);color:#fff}.top-actions{display:flex;gap:6px;align-items:center;margin-left:auto}.icon-btn{background:var(--card);border:1px solid var(--line);border-radius:8px;width:34px;height:34px;display:inline-grid;place-items:center;padding:0;flex:none}.icon-btn:hover{background:var(--card-2)}.icon-btn.sm{width:24px;height:24px;font-size:11px;border-radius:6px}.icon-btn.armed{width:auto;padding:0 8px;color:var(--bad);border-color:var(--bad)}.btn{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 12px;white-space:nowrap}.btn:hover{background:var(--card-2)}.btn.sm{padding:4px 8px;font-size:12px}.btn.danger,.link.danger{color:var(--bad)}.chip-btn{border-radius:999px;padding:6px 12px;border:1px solid var(--line);background:var(--card);white-space:nowrap;font-size:13px}.chip-btn.good{color:var(--good)}.chip-btn.warn{color:var(--warn);border-color:#5a4415}.chip-btn.bad{color:var(--bad);border-color:#5c2620}.link{background:none;border:none;padding:0;color:#9ea0ff;text-align:left}.link:hover{text-decoration:underline}.only-narrow,.sheet-bar,.scrim{display:none}:root{--peek: 170px}.layout{flex:1;display:grid;grid-template-columns:280px 1fr 320px;min-height:0}.panel{background:var(--bg-2);display:flex;flex-direction:column;min-height:0}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel-body{overflow-y:auto;padding:12px 14px 40px;flex:1}.tabs{display:flex;gap:4px;padding:8px 10px 0;border-bottom:1px solid var(--line)}.tab{border:none;background:none;color:var(--dim);padding:8px 10px;border-bottom:2px solid transparent}.tab.on{color:var(--text);border-bottom-color:var(--accent)}.tabs.wide{padding:0;margin-bottom:14px;flex-wrap:wrap;align-items:center}.push-right{margin-left:auto}.tabs.wide .push-right+.btn{margin-right:6px}h3{margin:4px 0 6px;font-size:16px}h4{margin:18px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:700}.muted{color:var(--dim)}.small{font-size:12px}p{margin:6px 0;line-height:1.4}.f{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;min-width:0}.f>span{font-size:12px;color:var(--dim)}.f input[type=text],.f input[type=number],.f select,.f textarea,.search,.circ-row input,.assign{width:100%;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 8px;min-width:0}.f textarea{resize:vertical}.f input:focus,.f select:focus,.f textarea:focus,.search:focus{outline:none;border-color:var(--accent)}.f-in{display:flex;align-items:center;gap:6px}.f-in em,.circ-row em{font-style:normal;color:var(--dim);font-size:12px}.f.check{flex-direction:row;align-items:center;gap:8px}.f.check span{color:var(--text);font-size:13px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.range{width:100%;accent-color:var(--accent);margin:0 0 10px}.search{margin-bottom:4px}.insp-head{display:flex;gap:10px;align-items:flex-start}.insp-head>div{flex:1;min-width:0}.title-in{width:100%;font-size:18px;font-weight:700;background:transparent;border:1px solid transparent;border-radius:8px;padding:2px 6px;margin-left:-6px}.title-in:hover,.title-in:focus{border-color:var(--line);background:var(--card);outline:none}.cat-dot{width:12px;height:12px;border-radius:4px;background:var(--c);display:inline-block;flex:none;margin-top:9px}.cat-h{display:flex;align-items:center;gap:8px}.cat-h .cat-dot{margin-top:0}.note{background:#22222c;border-left:3px solid var(--warn);padding:6px 10px;border-radius:6px;font-size:12px}.readout{display:grid;grid-template-columns:1fr;gap:6px;background:var(--card);border-radius:10px;padding:8px 10px;margin:4px 0 10px}.readout:empty{display:none}.readout div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.readout b{font-size:14px}.readout span{color:var(--dim);font-size:12px;text-align:right}.readout p{margin:2px 0 0;font-size:12px}.st-warn{color:var(--warn)}.st-error{color:var(--bad)}.shots{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px}.ports{list-style:none;margin:0;padding:0}.ports li{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}.ports .pname{flex:1;min-width:0}.ports .pname em{font-style:normal;color:var(--dim);font-size:11px;margin-left:5px}.ports .arrow{color:var(--dim)}.pchip{font-size:10px;font-weight:700;border-radius:5px;padding:2px 5px;color:var(--c);border:1px solid var(--c);min-width:38px;text-align:center;flex:none}.insp-actions{display:flex;gap:8px;margin-top:14px}.route{background:var(--card);border-radius:10px;padding:8px 10px;margin:10px 0;font-size:13px}.arrow-down{color:var(--dim);margin:2px 0}.issues{list-style:none;padding:0;margin:0}.issues li{display:flex;gap:8px;padding:7px 8px;border-radius:8px;font-size:13px;line-height:1.35}.issues li[data-act]{cursor:pointer}.issues li[data-act]:hover{background:var(--card)}.issues.compact li{padding:5px 4px;font-size:12px}.good-note{color:var(--good)}.circ-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.circ-row input[type=text]{flex:1}.circ-row input[type=number]{width:60px;flex:none}.meter{width:50px;height:8px;border-radius:4px;background:var(--card-2);overflow:hidden;flex:none}.meter i{display:block;height:100%;background:var(--good)}.meter.warn i{background:var(--warn)}.meter.bad i{background:var(--bad)}.tool-h{margin:12px 0 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 8px;font-size:12px;text-align:left}.tool.on{border-color:var(--accent);background:#26264a}.sw{width:16px;height:12px;border-radius:3px;flex:none;border:1px solid #555}.sw-room{border:2px solid #9aa0ae;background:none}.sw-stage{background:#3a2f55;border-color:#6a58a0}.sw-table,.sw-round{background:#34343f}.sw-round{border-radius:50%}.sw-seating{background:repeating-linear-gradient(45deg,#2a2a35 0 2px,#444 2px 4px)}.sw-riser{background:#4a3a20;border-color:#8a6a30}.sw-pillar{background:#666}.sw-door{background:#1f3b2c;border-color:#3ad68a}.sw-zone{border:1px dashed #6c6cff;background:#6c6cff22}.sw-fire_door{background:#7f1d1d;border-color:#ef4444}.sw-escape{border:1px dashed #22c55e;background:#22c55e22}.sw-walkway{border:1px dashed #a1a1aa;background:#facc1510}.sw-nocable{border:1px dashed #ef4444;background:#ef444433}.sw-lectern{background:#3b2f25;border-color:#a0785a;width:10px}.sw-steps{background:repeating-linear-gradient(90deg,#3a2f55 0 3px,#6a58a0 3px 4px);border-color:#6a58a0}.sw-screen{background:#e4e4e7;border-color:#e4e4e7;height:4px}.sw-ledwall{background:repeating-linear-gradient(90deg,#0e3a4a 0 3px,#22d3ee 3px 4px);border-color:#22d3ee;height:6px}.sw-divider{background:#9aa0ae;height:4px;border:none}.sw-drape{border:none;height:4px;background:repeating-linear-gradient(90deg,#6b2140 0 3px,#9f3a62 3px 5px)}.sw-bar{background:#2e2a1e;border-color:#a38b4c}.sw-plant{background:#1c3d26;border-color:#4ade80;border-radius:50%;width:12px}.sw-label{border:none;background:none;position:relative}.sw-label:after{content:"T";position:absolute;inset:-3px 0 0 2px;font-weight:700;color:var(--dim)}.kit{list-style:none;margin:0;padding:0}.kit li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:8px;cursor:grab;user-select:none}.kit li:hover{background:var(--card)}.kit li b{display:block;font-weight:600;font-size:13px}.kit .count{background:var(--card-2);border-radius:999px;padding:1px 8px;font-size:12px;color:var(--dim)}.crew{display:flex;flex-direction:column;gap:10px;margin-top:10px}.person{background:var(--card);border-radius:10px;padding:10px}.person .f input,.person .f select{background:var(--bg-2)}.posts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.post{background:var(--card-2);border-radius:999px;padding:2px 4px 2px 10px;display:inline-flex;gap:4px;align-items:center;font-size:12px}.post .x{border:none;background:none;color:var(--dim);font-size:10px;padding:2px 4px}.assign{width:auto!important;font-size:12px;padding:3px 6px!important;background:var(--bg-2)!important}.plain{list-style:none;padding:0;margin:0}.plain li{padding:3px 0}.stage-wrap{position:relative;min-width:0;min-height:0;background:#0b0b10}#canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}#canvas[data-mode=cable],#canvas[data-mode=measure],#canvas[data-mode=shape]{cursor:crosshair}#canvas.panning{cursor:grab}.venue{fill:var(--venue);stroke:#3a3a48;stroke-width:1px;vector-effect:non-scaling-stroke}.gmin{stroke:var(--grid-min);stroke-width:1px;vector-effect:non-scaling-stroke}.gmaj{stroke:var(--grid-maj);stroke-width:1px;vector-effect:non-scaling-stroke}.gtxt{fill:#55556a;text-anchor:middle}.hatch-line{stroke:#3c3c4a;stroke-width:.12}.shape rect,.shape ellipse{vector-effect:non-scaling-stroke;stroke-width:1.5px}.shape{cursor:move}.shape.locked{cursor:default}.sh-room rect{fill:none;stroke:#9aa0ae;stroke-width:4px;pointer-events:none}.sh-zone rect{fill:#6c6cff10;stroke:#6c6cff;stroke-dasharray:6 4;pointer-events:none}.sh-escape rect{fill:#22c55e14;stroke:#22c55e;stroke-dasharray:8 4;pointer-events:none}.sh-walkway rect{fill:#facc150d;stroke:#a1a1aa;stroke-dasharray:3 4;pointer-events:none}.sh-nocable rect{fill:#ef44441a;stroke:#ef4444;stroke-dasharray:6 4;pointer-events:none}.sh-fire_door rect{fill:#7f1d1d;stroke:#ef4444}#canvas[data-outdoor="1"] .venue{fill:#121a12}.sh-road rect:not(.hit-edge){fill:#26262c;stroke:#3f3f48;pointer-events:none}.sh-road .centre{stroke:#d4d4d8;stroke-width:1.5px;stroke-dasharray:10 8;vector-effect:non-scaling-stroke;pointer-events:none}.sh-footpath rect:not(.hit-edge){fill:#34343c;stroke:#4a4a55;pointer-events:none}.sh-grass rect:not(.hit-edge){fill:#16301b;stroke:#2f5a36;pointer-events:none}.sh-parking rect:not(.hit-edge){fill:none;stroke:#a1a1aa;stroke-dasharray:4 3;pointer-events:none}.sh-marquee rect:not(.hit-edge){fill:#f4f4f51a;stroke:#e4e4e7;stroke-dasharray:8 4;pointer-events:none}.sh-ob_truck rect:not(.hit-edge){fill:#1e293b;stroke:#64748b;stroke-width:2px;pointer-events:none}.sh-building rect{fill:#2a2a31;stroke:#71717a;stroke-width:2px}.sh-fence rect{fill:#a1a1aa;stroke:#a1a1aa}.sh-tree ellipse{fill:#14532d99;stroke:#22c55e}.sh-tree .trunk{fill:#78350f;stroke:none}.sh-lamp ellipse{fill:#52525b;stroke:#d4d4d8}.sh-lamp .glow{fill:#fde04714;stroke:none;pointer-events:none}.sh-building .sh-lbl,.sh-ob_truck .sh-lbl{fill:#d4d4d8}.sw-road{background:#26262c;border-color:#555}.sw-footpath{background:#34343c}.sw-grass{background:#16301b;border-color:#2f5a36}.sw-building{background:#2a2a31;border:2px solid #71717a}.sw-parking{border:1px dashed #a1a1aa;background:none}.sw-marquee{border:1px dashed #e4e4e7;background:#f4f4f51a}.sw-fence{background:#a1a1aa;height:3px}.sw-tree{background:#14532d;border-color:#22c55e;border-radius:50%}.sw-lamp{background:#52525b;border-color:#d4d4d8;border-radius:50%;width:8px;height:8px}.sw-ob_truck{background:#1e293b;border-color:#64748b}.sh-escape .sh-lbl{fill:#22c55e}.sh-nocable .sh-lbl,.sh-fire_door .sh-lbl{fill:#f87171}.shape .hit-edge,.sh-room .hit-edge,.sh-zone .hit-edge{fill:none;stroke:transparent;stroke-width:12px;stroke-dasharray:none;pointer-events:stroke}.sh-stage rect{fill:#2c2442;stroke:#6a58a0}.sh-table rect,.sh-round ellipse{fill:#2a2a34;stroke:#4a4a58}.sh-seating rect{fill:url(#hatch);stroke:#3c3c4a}.sh-riser rect{fill:#33291a;stroke:#8a6a30}.sh-pillar rect{fill:#555;stroke:#777}.sh-lectern rect{fill:#3b2f25;stroke:#a0785a}.sh-steps rect{fill:#2c2442;stroke:#6a58a0}.sh-steps .tread,.sh-ledwall .seam{stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.sh-steps .tread{stroke:#6a58a0}.sh-screen rect{fill:#d4d4d8;stroke:#f4f4f5}.sh-ledwall rect{fill:#0e3a4a;stroke:#22d3ee}.sh-ledwall .seam{stroke:#22d3ee66}.sh-divider rect{fill:#9aa0ae;stroke:#c4c8d2}.sh-drape rect{fill:#6b2140;stroke:#9f3a62;stroke-dasharray:4 2}.sh-bar rect{fill:#2e2a1e;stroke:#a38b4c}.sh-plant ellipse{fill:#1c3d26;stroke:#4ade80;stroke-dasharray:3 2}.sh-door rect{fill:#1f3b2c;stroke:#3ad68a}.shape.sel rect,.shape.sel ellipse{stroke:var(--accent)!important;stroke-width:2px}.sh-lbl{fill:#8a8a9a;pointer-events:none;font-weight:600}.sh-text{fill:#b0b0c0;font-weight:600}.shape.sel .sh-text{fill:var(--accent)}.fov{fill:#7dd3fc12;stroke:#7dd3fc66;stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.fov-axis{stroke:#7dd3fc55;stroke-width:1px;stroke-dasharray:3 4;vector-effect:non-scaling-stroke;pointer-events:none}.fov-txt{fill:#7dd3fc;font-weight:700;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.cable{cursor:pointer}.c-hit{fill:none;stroke:transparent;stroke-width:14px;vector-effect:non-scaling-stroke}.c-line{fill:none;stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.c-glow{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:7px;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}.cable.st-error .c-line{stroke-dasharray:8 5}.cable.k-power .c-line{stroke-width:3.5px}.cable.k-wifi .c-line,.cable.k-wvid .c-line,.cable.k-wcom .c-line{stroke-dasharray:2 6;stroke-width:2.5px}.radio-mark{pointer-events:none}.radio-mark path{fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linecap:round}.radio-mark.dim{opacity:.25}.cable.dim .c-line{opacity:.15;transition:opacity .12s}.cable.dim.st-error .c-line,.cable.dim.st-warn .c-line{opacity:.4}.cable.on .c-line{stroke-width:3px}.cable.on.k-power .c-line{stroke-width:4.5px}.b-line{vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:none}.b-count{fill:#fff;font-weight:700;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.hz-mark{pointer-events:none}.hz-mark rect,.hz-mark circle,.hz-mark path{vector-effect:non-scaling-stroke;stroke-width:1.5px}.hz-mark.ramp rect{fill:#facc15;stroke:#111}.hz-mark.ramp path{stroke:#111;fill:none}.hz-mark.okmark circle{fill:#22c55e;stroke:#0b0b10}.hz-mark.bad circle{fill:#ef4444;stroke:#fff}.hz-mark.bad text{fill:#fff;font-weight:800}.hz-lbl{fill:#facc15;font-weight:700;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.hz-lbl.bad{fill:#f87171}.area-nav{position:absolute;right:12px;top:12px;z-index:5}.area-nav select{background:#000c;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:13px;max-width:46vw}#printRoot .closeup{break-before:page}#printRoot .sch-wrap{background:#fff;border-color:#ccc;overflow:visible}#printRoot .schematic{width:100%;height:auto}#printRoot .sch-box rect:first-child{fill:#fff}#printRoot .sch-name{fill:#111}#printRoot .sch-model{fill:#555}#printRoot .sch-op{fill:#4b4bc8}#printRoot .sch-lbl{stroke:#fff}#printRoot .sch-line.k-power{stroke:#111}#printRoot .sch-lbl.k-power{fill:#111}#printRoot .sch-lbl.k-xlr{fill:#8a6a00}.cable-legend{position:absolute;left:12px;top:12px;background:#000c;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:12px;width:206px;z-index:5}.cable-legend:has(>.lg-toggle:only-child){width:auto;padding:0}.lg-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:6px}.lg-toggle{background:none;border:none;color:var(--dim);padding:6px 10px;font-size:12px}.lg-head .lg-toggle{padding:0 4px}.seg{display:flex;background:var(--card);border-radius:8px;padding:2px;margin-bottom:6px}.seg button{flex:1;border:none;background:none;color:var(--dim);border-radius:6px;padding:4px 0;font-size:11px}.seg button.on{background:var(--accent);color:#fff}.lg-row{display:flex;align-items:center;gap:7px;padding:3px 0;cursor:pointer}.lg-row em{margin-left:auto;font-style:normal;color:var(--dim)}.sw-set{display:inline-flex;flex-direction:column;gap:2px;width:16px}.sw-set i{display:block;height:3px;border-radius:2px}.sw-set i.k-power{height:5px}.clist{list-style:none;margin:0;padding:0}.clist.hidden-group{opacity:.55}.crow{display:flex;align-items:center;gap:7px;padding:6px;border-radius:8px;cursor:pointer;font-size:12px}.crow:hover{background:var(--card)}.crow.on{background:#26264a}.crow .c-main{flex:1;min-width:0;display:flex;flex-direction:column}.crow .c-main span{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow .c-len{color:var(--dim);font-variant-numeric:tabular-nums}.stat{width:14px;text-align:center;font-size:12px}.stat.ok{color:var(--good)}.stat.warn{color:var(--warn)}.stat.bad{color:var(--bad)}.cable.st-warn .c-line{stroke-dasharray:14 4}.c-lbl{pointer-events:none;font-weight:600;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round}.c-preview{fill:none;stroke-width:2px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;pointer-events:none}.item{cursor:move}.item rect,.item circle,.item path,.item line{vector-effect:non-scaling-stroke;stroke-width:1.5px;stroke-linecap:round}.item .sel-ring{fill:none;stroke:none}.item.sel .sel-ring{stroke:var(--accent);stroke-width:2px;fill:#6c6cff18}.item.pending .sel-ring{stroke:var(--good);stroke-width:2px;stroke-dasharray:4 3}.i-lbl{fill:var(--text);font-weight:700;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.i-call{fill:#a1a1b5}.i-call.own{fill:#fbbf24;font-weight:700}.i-op{fill:#9ea0ff;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.warn-dot{fill:var(--bad);stroke:#0b0b10!important}.handle{fill:#fff;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:nwse-resize}.handle.aim{fill:#7dd3fc;stroke:#fff;cursor:crosshair;pointer-events:none}.handle.zoomh{fill:var(--accent);stroke:#fff;pointer-events:none}.handle-hit,.spin-hit{fill:transparent;stroke:none;cursor:grab}.h-lbl{fill:#c7c7ff;font-weight:700;paint-order:stroke;stroke:#0b0b10;stroke-linejoin:round;pointer-events:none}.item.locked{cursor:default}.insp-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.lock-btn{flex:none;font-size:15px}.lock-btn.on{border-color:var(--warn);background:#3a2a0c}.lock-row{margin:10px 0 0}.handle.wp{cursor:move;fill:var(--accent);stroke:#fff}.create-box{fill:#6c6cff22;stroke:var(--accent);stroke-dasharray:5 4;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.m-line{stroke:#fff;stroke-width:1.5px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.m-end{fill:#fff;pointer-events:none}.m-txt{fill:#fff;font-weight:700;paint-order:stroke;stroke:#000;stroke-linejoin:round;pointer-events:none}.hint{position:absolute;left:50%;top:12px;transform:translate(-50%);background:#000c;border:1px solid var(--line);padding:7px 14px;border-radius:999px;font-size:13px;max-width:calc(100% - 32px);text-align:center;pointer-events:none}.hint.hidden{display:none}.zoom-ctrls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px}.popover{position:fixed;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px #000a;min-width:260px;max-width:360px;max-height:60vh;overflow-y:auto;padding:6px}.popover.hidden{display:none}.pop-h{padding:6px 8px 8px;font-weight:700}.popover ul{list-style:none;margin:0;padding:0}.popover li button{display:flex;width:100%;gap:8px;align-items:center;border:none;background:none;padding:7px 8px;border-radius:8px;text-align:left;font-size:13px}.popover li button:hover:not(:disabled){background:var(--card-2)}.popover li button:disabled{opacity:.45;cursor:not-allowed}.popover li button span{flex:1}.popover li button em{font-style:normal;color:var(--dim);font-size:11px;text-align:right}.modal{position:fixed;inset:0;z-index:40;background:#000a;display:grid;grid-template-columns:minmax(0,1100px);justify-content:center;align-items:center;padding:16px}.modal.hidden{display:none}.modal-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;width:100%;min-width:0;height:min(760px,calc(100dvh - 32px));display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 6px}.modal-head h2{margin:0;font-size:18px}.modal-body{overflow:auto;padding:6px 18px 20px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--dim);font-weight:600;font-size:12px;white-space:nowrap}tr.st-warn td{color:var(--warn)}tr.st-error td{color:var(--bad)}.tbl-actions{display:flex;justify-content:flex-end;margin:8px 0}.proj-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.proj-list{list-style:none;padding:0;margin:10px 0 0}.proj-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line)}.proj-list li .link{grid-column:1;grid-row:1;font-size:14px;overflow-wrap:anywhere}.proj-list li>span:nth-child(2){grid-column:1;grid-row:2}.proj-list li>:nth-child(3){grid-column:2;grid-row:1 / span 2}.proj-list li.on .link{color:var(--text);font-weight:700}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(20px);background:#26263a;border:1px solid var(--line);padding:10px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50;max-width:calc(100% - 32px);font-size:13px}.toast.show{opacity:1;transform:translate(-50%)}.chain{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;font-size:12px}.chain .node{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-weight:600}.chain .node em{font-style:normal;font-weight:400;color:var(--dim);margin-left:6px}.chain .node.end{border-color:var(--good);color:var(--good)}.chain .edge{color:var(--dim);font-size:11px}.chain .edge:before{content:"\2014  "}.chain .edge:after{content:" \2192"}.chain .edge.bad{color:var(--warn)}.chain .edge.bad:before,.chain .edge.bad:after{content:""}.out-row{display:flex;gap:4px;align-items:center;margin-bottom:6px}.out-row input,.out-row select{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px;min-width:0;font-size:12px}.out-row input[type=text]{flex:1}.out-row select{width:86px;flex:none}.out-row input[type=number]{width:62px;flex:none}.out-row em{font-style:normal;color:var(--dim);font-size:11px}.quote-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end}.quote-bar .f.check{margin-bottom:14px}.quote-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 6px}table.quote td.num,table.quote th.num{text-align:right;white-space:nowrap}table.quote tr.sub td{font-weight:700;border-bottom:none}table .cell{width:80px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px 6px}table .cell.wide{width:100%;min-width:180px}.totals{margin:16px 0 6px auto;max-width:340px;display:flex;flex-direction:column;gap:6px}.totals div{display:flex;justify-content:space-between;gap:20px}.totals .grand{font-size:18px;border-top:1px solid var(--line);padding-top:8px}.company section{margin-bottom:8px}.brand-row{display:flex;gap:16px;align-items:flex-start}.brand-row .grow{flex:1;min-width:0}.logo-box{width:120px;height:120px;border:1px dashed var(--line);border-radius:12px;display:grid;place-items:center;background:#fff1;flex:none;overflow:hidden}.logo-box img{max-width:100%;max-height:100%}.f input[type=color]{width:100%;height:36px;padding:2px;border-radius:8px;border:1px solid var(--line);background:var(--card)}.insp-actions.tight{margin-top:0}.rate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px}.rate{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;padding:3px 0}.rate>span{flex:1;min-width:0}.rate input{width:72px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.rate input::placeholder,.cell::placeholder{color:#666676}.risk{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0}.risk.na{opacity:.55}.risk-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.risk-head b{font-size:14px}.title-in.sm{font-size:14px;margin-left:0}.risk-chips{display:flex;gap:6px;align-items:center;flex:none}.risk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px}.risk-grid .f:nth-child(1),.risk-grid .f:nth-child(2){grid-column:span 2}.risk-grid .f.wide{grid-column:1 / -1}.risk-grid select,.risk-grid textarea{background:var(--bg-2)!important}.risk .f input,.risk .f select,.risk .f textarea{background:var(--bg-2)}.risk-actions{display:flex;justify-content:space-between;align-items:center}.risk-actions .f{margin:0}.rchip{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap}.r-low{background:#14532d;color:#86efac}.r-med{background:#713f12;color:#fde68a}.r-high{background:#7c2d12;color:#fdba74}.r-vhigh{background:#7f1d1d;color:#fecaca}@media (max-width: 700px){.risk-grid{grid-template-columns:1fr 1fr}.risk-head{flex-direction:column;align-items:flex-start}}.cur-inline .f{flex-direction:row;align-items:center;gap:6px;margin:0}.cur-inline select{width:auto;padding:4px 6px;font-size:12px}.sched{margin:8px 0 6px}.sched td.t{width:150px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.est{margin:6px 0 4px;font-size:13px}.est summary{cursor:pointer;color:#9ea0ff}.est td.num{text-align:right;white-space:nowrap}.est tr.sub td{font-weight:700}.emerg{background:#3a1212;border:1px solid #7f1d1d;border-radius:10px;padding:8px 12px}.emerg b{color:#fecaca;font-size:16px}.cs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:8px 0}.cs-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.cs-card .f input{background:var(--bg-2)}.cs-card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:8px}.sw-status{font-size:12px;font-weight:600}.sw-status.st-ok{color:var(--good)}.sw-status.st-info{color:var(--dim)}.sw-count{font-size:18px;padding-top:6px}.sch-filters{display:flex;flex-wrap:wrap;gap:4px 16px}.sch-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;background:#0b0b10;margin-top:8px}.schematic{display:block}.sch-line{fill:none;stroke-width:2px}.sch-line.k-power{stroke-width:3px}.sch-line.radio{stroke-dasharray:2 5}.sch-line.st-error{stroke-dasharray:8 4}.sch-lbl{font-size:10px;font-weight:600;paint-order:stroke;stroke:#0b0b10;stroke-width:3px;stroke-linejoin:round}.sch-box{cursor:pointer}.sch-box rect{fill:var(--card);stroke-width:1.5px}.sch-box:hover rect:first-child{fill:var(--card-2)}.sch-name{fill:var(--text);font-size:12px;font-weight:700}.sch-op{fill:#9ea0ff;font-weight:500}.sch-model{fill:var(--dim);font-size:10px}@media (min-width: 901px){body.collapse-left .layout{grid-template-columns:0 1fr 320px}body.collapse-right .layout{grid-template-columns:280px 1fr 0}body.collapse-left.collapse-right .layout{grid-template-columns:0 1fr 0}body.collapse-left .panel.left,body.collapse-right .panel.right{display:none}.layout>.panel.left{grid-column:1}.layout>.stage-wrap{grid-column:2;grid-row:1}.layout>.panel.right{grid-column:3;grid-row:1}}.kit-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 2px}.kit-tools .f.check{margin:0}.cat-toggle{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;border-bottom:1px solid var(--line);padding:9px 4px;text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.cat-toggle:hover{color:var(--text)}.cat-toggle .cat-name{flex:1}.cat-toggle .caret{transition:transform .15s;font-size:10px}.cat-toggle.open .caret{transform:rotate(90deg)}.cat-toggle .cat-dot{margin-top:0}.kit li{gap:10px}.kit li>div{flex:1;min-width:0}.kit li.is-hidden{opacity:.5}.kit-view{margin:0 0 8px}.kit-view button{padding:6px 0;font-size:12px}.star{background:none;border:none;color:var(--dim);font-size:17px;padding:2px 4px;line-height:1;flex:none}.star.on,.star:hover{color:#fbbf24}.kit .count.over{background:#5a4415;color:#fde68a}.icon-prev{width:30px;height:30px;flex:none;overflow:visible}.icon-prev rect,.icon-prev circle,.icon-prev path,.icon-prev line{vector-effect:non-scaling-stroke;stroke-width:1.5px}.eq{display:grid;grid-template-columns:280px 1fr;gap:18px;height:calc(min(760px,100dvh - 32px) - 90px)}.eq-col{border-right:1px solid var(--line);padding-right:12px;overflow:auto}.eq-form{overflow:auto;padding-right:4px}.eq-col .btn{margin:6px 0}.eq-list{list-style:none;padding:0;margin:0 0 6px}.eq-list button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:4px 6px;border-radius:8px;text-align:left;font-size:12px}.eq-list button:hover{background:var(--card)}.eq-list button.on{background:#26264a}.eq-list button span{flex:1}.eq-list em{font-style:normal;font-size:10px;color:var(--warn);border:1px solid #5a4415;border-radius:999px;padding:0 6px}.eq-list .icon-prev{width:24px;height:24px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;margin-bottom:10px}.icon-opt{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 4px;font-size:11px;color:var(--dim)}.icon-opt.on{border-color:var(--accent);color:var(--text);background:#26264a}.icon-opt .icon-prev{width:34px;height:34px}.ps-row{display:grid;grid-template-columns:1.3fr .8fr 60px 1.4fr auto;gap:6px;margin-bottom:6px}.ps-row select,.ps-row input{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px;min-width:0;font-size:12px}@media (max-width: 760px){.eq{grid-template-columns:1fr;height:auto}.eq-form{overflow:visible}.eq-col{border-right:none;padding-right:0;max-height:40vh;overflow:auto}.ps-row{grid-template-columns:1fr 1fr}}.single-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.preset-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn.on{border-color:var(--accent);background:#26264a}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 16px;margin-bottom:8px}@media (max-width: 700px){.quote-bar{grid-template-columns:1fr 1fr}.brand-row{flex-direction:column}}#printRoot{display:none}@media (max-width: 900px){.only-narrow{display:inline-grid}.layout{grid-template-columns:1fr;position:relative;overflow:hidden}.panel{position:absolute;top:0;bottom:0;width:min(340px,90vw);z-index:20;box-shadow:0 0 40px #000c;transition:transform .2s}.panel.left{left:0;transform:translate(-105%)}body.show-left .panel.left{transform:none}.drawer-close{margin-left:auto;align-self:center}.panel.right{left:0;right:0;top:auto;width:auto;height:80%;border-left:none;border-top:1px solid var(--line);border-radius:16px 16px 0 0;transform:translateY(105%);padding-bottom:env(safe-area-inset-bottom,0px)}body.sheet-peek .panel.right{transform:translateY(calc(100% - var(--peek)))}body.sheet-full .panel.right{transform:none}body.sheet-peek #inspector{overflow:hidden}body.sheet-dragging .panel.right{transition:none}.sheet-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px 0;position:relative;touch-action:none;cursor:grab;min-height:36px}.sheet-bar .grab{position:absolute;left:50%;top:8px;transform:translate(-50%);width:44px;height:5px;border-radius:3px;background:var(--line)}body.sheet-peek .zoom-ctrls{bottom:calc(var(--peek) + 12px)}body.sheet-peek .toast,body.sheet-full .toast{bottom:calc(var(--peek) + 16px)}.scrim{position:absolute;inset:0;z-index:15;background:#0008;display:none}body.show-left .scrim,body.sheet-full .scrim{display:block}.mode-btn,.top-actions .btn{padding:6px 8px;font-size:12px}}@media (max-width: 560px){.topbar{gap:6px;padding:6px 10px}.brand-word{display:none}.proj-name{flex:1;max-width:none;min-width:0}.modes{order:2;width:100%}.mode-btn{flex:1}.top-actions{order:3;margin-left:0;width:100%;justify-content:space-between}}#printRoot{color:#111;background:#fff}#printRoot h1{font-size:20px;margin:0 0 4px}#printRoot h2{font-size:14px;margin:18px 0 6px}#printRoot section{break-inside:auto}#printRoot .muted{color:#555}#printRoot table{font-size:10px;margin-bottom:8px}#printRoot th,#printRoot td{border-bottom:1px solid #ccc;color:#111;padding:3px 5px}#printRoot tr.st-warn td{color:#9a5b00}#printRoot tr.st-error td{color:#b3261e}#printRoot .issues li{padding:2px 0;font-size:11px}#printRoot .print-svg{width:100%;max-height:165mm;display:block;-webkit-print-color-adjust:exact;print-color-adjust:exact}#printRoot .print-bg{fill:#0b0b10}#printRoot .tbl-actions,#printRoot button[data-act=csv]{display:none!important}#printRoot h2{color:var(--brand);border-bottom:2px solid var(--brand);padding-bottom:3px}#printRoot th{color:#333}#printRoot .doc-head{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:3px solid var(--brand);padding-bottom:10px;margin-bottom:12px}#printRoot .doc-brand{display:flex;align-items:center;gap:12px}#printRoot .doc-brand img{max-height:50px;max-width:180px}#printRoot .doc-brand b{display:block;font-size:16px}#printRoot .doc-brand span,#printRoot .doc-title span{display:block;color:#555;font-size:10px}#printRoot .doc-title{text-align:right}#printRoot .doc-title b{display:block;font-size:18px;color:var(--brand);text-transform:uppercase;letter-spacing:.08em}#printRoot .doc-meta{color:#333;margin:0 0 10px}#printRoot .doc-foot{margin-top:20px;padding-top:6px;border-top:1px solid #ccc;color:#666;font-size:9px}#printRoot .terms{white-space:pre-wrap}#printRoot .sched td{font-size:12px;padding:4px 8px}#printRoot .sched td.t{width:120px;font-weight:700;color:var(--brand);white-space:nowrap}#printRoot .cs-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}#printRoot .kv th{width:110px;color:#555;font-weight:600}#printRoot .cs-print-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}#printRoot .cs-print-card{border:1px solid #ccc;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:1px}#printRoot .cs-print-card b{color:#b91c1c}#printRoot .cs-print-card .ph{font-weight:700}@media (max-width: 700px){body.previewing #printRoot .cs-cols,body.previewing #printRoot .cs-print-grid{grid-template-columns:1fr}}#printRoot .risk-table{font-size:9px!important}#printRoot .risk-table td{vertical-align:top}#printRoot .rchip{-webkit-print-color-adjust:exact;print-color-adjust:exact}#printRoot .r-low{background:#dcfce7;color:#14532d}#printRoot .r-med{background:#fef3c7;color:#78350f}#printRoot .r-high{background:#ffedd5;color:#9a3412}#printRoot .r-vhigh{background:#fee2e2;color:#7f1d1d}#printRoot .signoff{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:10px}#printRoot .print-svg.light .sh-fire_door rect{fill:#fecaca;stroke:#dc2626}#printRoot .print-svg.light .sh-escape rect:not(.hit-edge){fill:#dcfce7;stroke:#16a34a}#printRoot .print-svg.light .sh-escape .sh-lbl{fill:#15803d}#printRoot .print-svg.light .sh-nocable rect:not(.hit-edge){fill:#fee2e2;stroke:#dc2626}#printRoot .print-svg.light .sh-walkway rect:not(.hit-edge){fill:#fefce8;stroke:#a1a1aa}#printRoot .print-svg.light .hz-lbl{fill:#854d0e;stroke:#fff}#printRoot .print-svg.light .hz-lbl.bad{fill:#b91c1c}#printRoot .totals{max-width:300px}#printRoot .totals .grand{border-top:2px solid var(--brand);font-size:14px}#printRoot .totals .grand b{color:var(--brand)}#printRoot h4{color:#444;margin:10px 0 4px}#printRoot .chain .node{background:#f2f2f5;border-color:#ccc;color:#111}#printRoot .chain .node.end{border-color:#1b8a55;color:#1b8a55}#printRoot .chain .edge{color:#666}#printRoot .chain,#printRoot table,#printRoot section{break-inside:avoid-page}#printRoot .print-svg.light .print-bg{fill:#fff}#printRoot .print-svg.light .venue{fill:#fafafa;stroke:#bbb}#printRoot .print-svg.light .gmin{stroke:#eee}#printRoot .print-svg.light .gmaj{stroke:#ddd}#printRoot .print-svg.light .gtxt{fill:#999}#printRoot .print-svg.light .sh-room rect:not(.hit-edge){stroke:#555}#printRoot .print-svg.light .sh-stage rect{fill:#e6e0f5;stroke:#8a78c0}#printRoot .print-svg.light .sh-table rect,#printRoot .print-svg.light .sh-round ellipse{fill:#ececf0;stroke:#aaa}#printRoot .print-svg.light .sh-riser rect{fill:#f3e8d2;stroke:#b08a40}#printRoot .print-svg.light .sh-pillar rect{fill:#999;stroke:#777}#printRoot .print-svg.light .sh-lectern rect{fill:#eadccf;stroke:#8a6446}#printRoot .print-svg.light .sh-steps rect{fill:#e6e0f5;stroke:#8a78c0}#printRoot .print-svg.light .sh-screen rect{fill:#fff;stroke:#52525b}#printRoot .print-svg.light .sh-ledwall rect{fill:#cff4fc;stroke:#0891b2}#printRoot .print-svg.light .sh-divider rect{fill:#71717a;stroke:#52525b}#printRoot .print-svg.light .sh-drape rect{fill:#f3d4e0;stroke:#9f3a62}#printRoot .print-svg.light .sh-bar rect{fill:#f1e8cf;stroke:#a38b4c}#printRoot .print-svg.light .sh-plant ellipse{fill:#dcfce7;stroke:#16a34a}#printRoot .print-svg.light .sh-door rect{fill:#d8f3e5;stroke:#2a9d64}#printRoot .print-svg.light.outdoor .venue{fill:#f4f8f1}#printRoot .print-svg.light .sh-road rect:not(.hit-edge){fill:#d4d4d8;stroke:#a1a1aa}#printRoot .print-svg.light .sh-road .centre{stroke:#fff}#printRoot .print-svg.light .sh-footpath rect:not(.hit-edge){fill:#ececef;stroke:#c4c4cc}#printRoot .print-svg.light .sh-grass rect:not(.hit-edge){fill:#dcfce7;stroke:#86efac}#printRoot .print-svg.light .sh-building rect{fill:#e4e4e7;stroke:#52525b}#printRoot .print-svg.light .sh-building .sh-lbl,#printRoot .print-svg.light .sh-ob_truck .sh-lbl{fill:#27272a}#printRoot .print-svg.light .sh-ob_truck rect:not(.hit-edge){fill:#e2e8f0;stroke:#475569}#printRoot .print-svg.light .sh-marquee rect:not(.hit-edge){fill:#fafafa;stroke:#71717a}#printRoot .print-svg.light .sh-tree ellipse{fill:#bbf7d0;stroke:#16a34a}#printRoot .print-svg.light .sh-tree .trunk{fill:#92400e;stroke:none}#printRoot .print-svg.light .sh-lamp ellipse{fill:#a1a1aa;stroke:#52525b}#printRoot .print-svg.light .hatch-line{stroke:#d6d6de}#printRoot .print-svg.light .sh-seating rect{stroke:#ccc}#printRoot .print-svg.light .sh-lbl,#printRoot .print-svg.light .sh-text{fill:#666}#printRoot .print-svg.light .i-lbl{fill:#111;stroke:#fff}#printRoot .print-svg.light .i-op{fill:#4b4bc8;stroke:#fff}#printRoot .print-svg.light .i-call{fill:#555}#printRoot .print-svg.light .i-call.own{fill:#b45309}#printRoot .print-svg.light .c-lbl{stroke:#fff}#printRoot .print-svg.light .fov{fill:#0284c710;stroke:#0284c7aa}#printRoot .print-svg.light .fov-axis{stroke:#0284c755}#printRoot .print-svg.light .k-power .c-line,#printRoot .print-svg.light .b-line.k-power{stroke:#111}#printRoot .print-svg.light .k-xlr .c-line,#printRoot .print-svg.light .b-line.k-xlr{stroke:#d4a106}#printRoot .print-svg.light .c-lbl.k-power{fill:#111}#printRoot .print-svg.light .c-lbl.k-xlr,#printRoot .print-svg.light .c-lbl.k-mini,#printRoot .print-svg.light .c-lbl.k-trs{fill:#8a6a00}#printRoot .print-svg.light .c-lbl,#printRoot .print-svg.light .b-count{stroke:#fff}#printRoot .print-svg.light .b-count{fill:#111}#printRoot .print-svg.light .item [stroke="#7dd3fc"]{stroke:#0284c7}#printRoot .print-svg.light .item [stroke="#22d3ee"]{stroke:#0891b2}#printRoot .print-svg.light .item [stroke="#d4d4d8"]{stroke:#3f3f46}#printRoot .print-svg.light .item [fill="#7dd3fc"]{fill:#0284c7}#printRoot .print-svg.light .item [fill="#22d3ee"]{fill:#0891b2}#printRoot .print-svg.light .item [fill="#d4d4d8"]{fill:#3f3f46}#printRoot .lg i.k-power{background:#111!important;height:5px!important}#printRoot .legend{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0;-webkit-print-color-adjust:exact;print-color-adjust:exact}#printRoot .lg{display:inline-flex;align-items:center;gap:5px}#printRoot .lg i{width:18px;height:4px;display:inline-block}body.previewing{overflow:hidden}body.previewing #printRoot{display:block;position:fixed;inset:0;z-index:60;overflow:auto;font-size:11px;padding:calc(60px + env(safe-area-inset-top,0px)) 16px 40px}body.previewing #printRoot .doc{max-width:1000px;margin:0 auto}body.previewing #printRoot section{overflow-x:auto}.preview-bar{display:none;position:fixed;top:0;left:0;right:0;z-index:61;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px;background:var(--bg-2);border-bottom:1px solid var(--line);color:var(--text);font-size:12px}.preview-bar span{flex:1;min-width:0;color:var(--dim)}body.previewing .preview-bar{display:flex}@media print{@page{size:A4 landscape;margin:12mm}body{display:block;overflow:visible;background:#fff;color:#111;height:auto}body>*:not(#printRoot){display:none!important}#printRoot{display:block;font-size:11px}#printRoot{font-size:11px}.preview-bar{display:none!important}body.previewing #printRoot{position:static;overflow:visible;padding:0}}.icon-ed{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:start}.icon-ed-pad svg{width:100%;aspect-ratio:1;display:block;background:var(--venue);border:1px solid var(--line);border-radius:10px;touch-action:none;cursor:crosshair}#iconPad .ip-min{stroke:var(--grid-min);stroke-width:1px;vector-effect:non-scaling-stroke}#iconPad .ip-maj{stroke:var(--grid-maj);stroke-width:1px;vector-effect:non-scaling-stroke}#iconPad .ip-mid{stroke:var(--accent);stroke-opacity:.45;stroke-width:1px;vector-effect:non-scaling-stroke}#iconPad .ip-front{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}#iconPad #iconPadShapes :is(rect,circle,line){vector-effect:non-scaling-stroke;stroke-width:3px;stroke-linecap:round}.icon-tools{margin:8px 0}.icon-ed-prev{display:flex;align-items:center;gap:12px}.icon-prev.big{width:64px;height:64px}@media (max-width: 700px){.icon-ed{grid-template-columns:minmax(0,1fr)}}.icon-tools button{font-size:13px;padding:7px 0}.roster-add{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:10px 0}.roster-add p{margin:0 0 6px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 10px;font-size:12px}.chip .x{background:none;border:none;color:var(--dim);padding:0 4px}.person-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px}.person-foot .f.check{margin:0}.person-foot>*{white-space:nowrap}.kit li.picked{background:var(--card);border-radius:8px 8px 0 0}.kit li.kit-detail{display:block;cursor:default;background:var(--card);border-radius:0 0 8px 8px;padding:2px 10px 10px 50px;margin-bottom:4px}.kit li.kit-detail p{margin:0 0 4px;line-height:1.35}.kit li.kit-detail .muted:first-child{margin-right:4px}.kit-detail-actions{display:flex;gap:6px;margin-top:6px}.venue-points .tool .icon-prev{width:20px;height:20px;margin-right:2px}.zoom-ctrls .paste-btn{width:auto;padding:0 10px;font-size:12px;font-weight:600;border-color:var(--accent)}.zoom-ctrls .paste-btn[hidden]{display:none}.sw-ramp{background:repeating-linear-gradient(45deg,#facc15 0 3px,#1f1f1f 3px 6px);border-color:#facc15}.sh-ramp rect{fill:#3a3212;stroke:#facc15}.sh-ramp .joint{stroke:#facc15;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:3 2;pointer-events:none}#printRoot .print-svg.light .sh-ramp rect{fill:#fef3c7;stroke:#b45309}#printRoot .print-svg.light .sh-ramp .joint{stroke:#b45309}.mount-seg button{font-size:12px;padding:6px 0}.i-op.unmanned{fill:#8a8a9a;font-style:italic}.area-nav{display:flex;gap:6px;align-items:center}.area-nav .print-view{border-radius:999px;background:#000c;padding:7px 12px;font-size:13px}@media (max-width: 600px){.area-nav .pv-txt{display:none}}.copyright{margin-top:12px;opacity:.75}.approval{border-radius:10px;padding:10px 12px;margin:10px 0 12px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;border:1px solid var(--line)}.approval.ok{background:#14532d33;border-color:#22c55e66}.approval.ok b{color:#4ade80}.approval.draft,.approval.changed{background:#78350f33;border-color:#f59e0b66}.approval.draft b,.approval.changed b{color:#fbbf24}.approval-form{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end;margin-top:6px}.approval-form .f{margin:0}.approval-form .f:first-child{min-width:180px}#printRoot .approved-line{font-weight:600;color:#166534;margin:0 0 4px}#printRoot .draft-banner{display:inline-block;font-weight:800;letter-spacing:.08em;color:#b45309;border:2px solid #b45309;border-radius:4px;padding:2px 10px;margin:0 0 6px}#printRoot .risk-print{position:relative}#printRoot .risk-print.is-draft:before{content:"DRAFT";position:absolute;inset:30% 0 auto;text-align:center;font-size:110px;font-weight:900;color:#b4530914;transform:rotate(-18deg);pointer-events:none}.equip-legend{position:absolute;left:12px;bottom:12px;z-index:5;background:#000c;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:12px;width:260px;max-height:42%;display:flex;flex-direction:column}.equip-legend:has(>.lg-toggle:only-child){width:auto;padding:0}.ek-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:grid;gap:1px}.ek-row{display:flex;gap:6px;align-items:baseline;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:3px 4px;border-radius:6px;font-size:12px}.ek-row:hover,.ek-row.on{background:#ffffff14}.ek-n{min-width:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.ek-dot{width:7px;height:7px;border-radius:50%;background:var(--c);flex:none;align-self:center}.ek-t{min-width:0}.ek-t b{font-weight:700}.ek-t em{font-style:normal;color:var(--dim)}.i-num{font-weight:800}#printRoot .equip-key{margin:6px 0 12px}#printRoot .equip-key h3{font-size:12px;margin:0 0 4px}#printRoot .equip-key ol{list-style:none;margin:0;padding:0;columns:3 200px;column-gap:18px;font-size:10px}#printRoot .equip-key li{break-inside:avoid;padding:1px 0}#printRoot .equip-key .ek-n{display:inline-block;min-width:18px;font-weight:700;color:var(--brand)}@media (max-width: 900px){.equip-legend{bottom:auto;top:56px;max-height:50%}}.kit-rates{display:grid;gap:4px;margin-bottom:10px}.kr-head,.kr-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 110px;gap:8px;align-items:center}.kr-head span{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}.kr-name{font-size:13px;min-width:0}.kr-tag{font-style:normal;font-size:11px;color:#4ade80;margin-left:4px}.kr-tag.hire{color:#fbbf24}.hire-note{background:var(--card);border-radius:8px;padding:8px 10px;margin:6px 0 12px}table.quote tr.hired td:first-child{color:#fbbf24}@media (max-width: 560px){.kr-head,.kr-row{grid-template-columns:minmax(0,1fr) 84px 84px}}.vc-gate{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;place-items:center;padding:16px;overflow-y:auto}.vc-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;gap:12px}.vc-card h2{margin:4px 0 0;font-size:20px}.vc-card p{margin:0}.vc-brand{font-size:22px}.vc-brand .brand-mark{width:30px;height:30px}.vc-form{display:grid;gap:10px}.vc-form input{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:16px}.vc-form input:focus{outline:2px solid var(--accent);outline-offset:0}.vc-form .btn.primary{padding:10px}.vc-legal a{color:var(--dim)}.vc-err{color:var(--bad);font-size:13px}.vc-list,.vc-actions{display:grid;gap:8px}.vc-list .btn{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:10px 12px}.vc-account{display:inline-flex;align-items:center;gap:6px;max-width:240px}.vc-account .vc-org{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-account .vc-trial{font-size:11px;color:var(--dim);white-space:nowrap}.vc-account.warn .vc-trial{color:var(--warn)}.vc-account.bad .vc-trial{color:var(--bad)}.vc-dot{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none}.vc-dot.saving{background:var(--accent)}.vc-dot.offline{background:var(--warn)}.vc-dot.error{background:var(--bad)}.vc-banner{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:6px 12px;font-size:13px;background:#2a2110;border-bottom:1px solid #5a4415;flex:none}.vc-banner.bad{background:#2c1512;border-bottom-color:#5c2620}.vc-banner[hidden]{display:none}.vc-banner a.btn,.vc-sec a.btn{text-decoration:none;display:inline-block}.vc-sec{border-top:1px solid var(--line);padding:12px 0}.vc-sec:first-child{border-top:none;padding-top:0}.vc-sec h4,.vc-sec p{margin:0 0 8px}.vc-inline{display:flex;align-items:flex-end;gap:8px;max-width:520px;margin-bottom:8px}.vc-inline .f{flex:1;margin-bottom:0}.vc-inline .btn{flex:none;height:34px}.vc-sec .btn.primary+*,.vc-sec .insp-actions+*{margin-top:10px}.vc-status{margin-top:10px!important}.vc-members{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}.vc-members li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vc-members li>span:first-child{flex:1 1 180px;min-width:0;overflow-wrap:anywhere}@media (max-width: 700px){.vc-account .vc-org{display:none}.vc-account{padding-left:8px;padding-right:8px}.vc-banner{font-size:12px;padding:5px 10px;gap:8px;justify-content:space-between;flex-wrap:nowrap}}@media print{.vc-banner,.vc-account{display:none!important}}
