.prop-handle{position:absolute;width:10px;height:10px;border:1px solid var(--accent2);background:#000c;border-radius:50%;z-index:20;pointer-events:all;transition:background .1s}.prop-handle:hover{background:var(--accent2)}.prop-handle.corner-tl{top:-5px;left:-5px;cursor:nwse-resize}.prop-handle.corner-tr{top:-5px;right:-5px;cursor:nesw-resize}.prop-handle.corner-bl{bottom:-5px;left:-5px;cursor:nesw-resize}.prop-handle.corner-br{bottom:-5px;right:-5px;cursor:nwse-resize}.prop-handle.edge-l{top:50%;left:-5px;transform:translateY(-50%);cursor:ew-resize}.prop-handle.edge-r{top:50%;right:-5px;transform:translateY(-50%);cursor:ew-resize}.prop-handle.rotate-handle{top:-28px;left:50%;margin-left:-5px;cursor:crosshair;border-color:var(--warn);background:#000c}.prop-handle.rotate-handle:after{content:"\21bb";position:absolute;font-size:9px;color:var(--warn);top:-1px;left:0;pointer-events:none}.stage-prop-pixel{position:absolute;cursor:move;user-select:none}.stage-prop-pixel canvas{display:block;image-rendering:auto}.line-prop-svg{overflow:visible;display:block;position:absolute;top:0;left:0;pointer-events:none}.stage-prop-label-tag{position:absolute;top:-18px;left:0;font-size:7px;letter-spacing:1px;color:var(--text2);white-space:nowrap;pointer-events:none;background:var(--surface);padding:1px 4px;border:1px solid var(--border);border-radius:var(--r-xs)}.stage-prop-pixel.selected-prop>canvas{outline:1px solid var(--accent2);box-shadow:0 0 10px #00e88f4d}.stage-prop-pixel.multi-selected>canvas{outline:1px solid var(--accent2)!important;box-shadow:0 0 8px #00e88f40!important}.stage-rubber-band{position:absolute;border:1px solid var(--accent2);background:#00e88f0d;pointer-events:none;z-index:100}.stage-sel-actions{position:absolute;top:10px;left:10px;z-index:120;display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:var(--r-md, 6px);background:var(--surface2, #15171c);border:1px solid var(--border2, #333);box-shadow:0 6px 18px #00000080;font-family:DM Mono,monospace}.stage-sel-actions .ssa-count{font-size:9px;letter-spacing:1px;color:var(--accent2)}.stage-sel-actions .ssa-btn{font-family:inherit;font-size:9px;letter-spacing:.5px;padding:4px 8px;cursor:pointer;color:var(--bg);background:var(--accent2);border:none;border-radius:4px;font-weight:600}.stage-sel-actions .ssa-btn:hover{filter:brightness(1.1)}.stage-sel-actions .ssa-add{font-family:inherit;font-size:9px;padding:3px 5px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;cursor:pointer}.prop-overlap-menu{position:fixed;z-index:10000;min-width:150px;display:flex;flex-direction:column;gap:2px;padding:5px;background:var(--surface2, #15171c);border:1px solid var(--border2, #333);border-radius:var(--r-md, 6px);box-shadow:0 8px 22px #0000008c;font-family:DM Mono,monospace}.prop-overlap-menu .pom-hdr{font-size:8px;letter-spacing:1.5px;color:var(--label, #888);padding:2px 6px 5px;border-bottom:1px solid var(--border);margin-bottom:2px}.prop-overlap-menu .pom-item{font-family:inherit;font-size:10px;text-align:left;padding:5px 8px;cursor:pointer;border-radius:4px;color:var(--text);background:var(--bg);border:1px solid transparent}.prop-overlap-menu .pom-item:hover{border-color:var(--accent2);color:var(--accent2)}.prop-overlap-menu .pom-item.sel{border-color:var(--accent2);color:var(--accent2);background:#00e88f14}.pixel-preview-wrap{background:var(--bg);border:1px solid var(--border);padding:12px;display:flex;align-items:center;justify-content:center;min-height:100px;position:relative;overflow:auto}.pixel-preview-wrap canvas{image-rendering:pixelated}.wiring-diagram{display:grid;gap:3px;margin-top:8px}.wiring-cell{width:20px;height:20px;border:1px solid var(--border2);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:7px;color:var(--label);background:var(--bg);transition:.1s}.wiring-cell.highlighted{background:var(--accent2);color:#000;border-color:var(--accent2)}.pm-section{margin-bottom:20px}.pm-section-title{font-size:8px;letter-spacing:3px;text-transform:uppercase;color:var(--label);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.pm-row{display:flex;gap:12px;margin-bottom:10px;align-items:flex-start}.pm-field{flex:1}.pm-field-label{font-size:8px;letter-spacing:2px;color:var(--label);text-transform:uppercase;margin-bottom:5px}.pm-input{width:100%;font-family:DM Mono,monospace;font-size:10px;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:5px 8px;outline:none;transition:var(--trans);border-radius:var(--r-sm)}.pm-input:focus{border-color:var(--accent2)}.pm-select{width:100%;font-family:DM Mono,monospace;font-size:10px;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:5px 8px;outline:none;cursor:pointer;transition:var(--trans);border-radius:var(--r-sm)}.pm-select:focus{border-color:var(--accent2)}.prop-ch-range{font-size:8px;letter-spacing:.5px;color:var(--label);opacity:.75;margin:-4px 0 8px 2px}.prop-ch-clash{border:1px solid rgba(255,85,51,.45);background:#ff553314;border-radius:3px;padding:6px 7px;margin:0 0 10px}.prop-ch-clash-head{font-size:8px;letter-spacing:1px;color:var(--danger, #ff5533);text-transform:uppercase;margin-bottom:4px}.prop-ch-clash-row{display:flex;justify-content:space-between;gap:8px;font-size:9px;line-height:1.6;min-width:0}.prop-ch-clash-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-ch-clash-at{color:var(--label);flex-shrink:0}.prop-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8px;letter-spacing:2px;color:var(--label);margin:14px 0 8px;padding-top:10px;border-top:1px solid var(--border);text-transform:uppercase}.prop-viz-btn{font-size:8px;letter-spacing:1px;padding:3px 7px;white-space:nowrap;background:var(--surface2, #14171e);color:var(--label);border:1px solid var(--border);border-radius:3px;cursor:pointer}.prop-viz-btn:hover{border-color:var(--accent2, #00e5ff);color:var(--text)}.prop-viz-btn.active{color:var(--accent2, #00e5ff);border-color:var(--accent2, #00e5ff);background:#00e5ff1f}.prop-name-head{color:var(--accent2);font-size:9px;margin:0 0 8px;padding:0 0 8px;border-top:none;border-bottom:1px solid var(--border)}.addr-head{font-size:8px;letter-spacing:2px;color:var(--label);margin:14px 0 6px;padding-top:10px;border-top:1px solid var(--border);text-transform:uppercase}.addr-summary{padding:7px 8px;margin-bottom:7px;border-radius:5px;background:#00000038;border:1px solid var(--border)}.addr-where{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.5px;color:var(--text);margin-bottom:5px}.addr-where b{color:var(--accent2, #00e88f)}.addr-dim{color:var(--label)}.addr-bad{color:#ff6b6b}.addr-span{display:flex;align-items:baseline;gap:7px;font-family:DM Mono,monospace;font-size:8px;padding:1px 0}.addr-span-part{color:var(--label);min-width:38px}.addr-span-ch{color:var(--accent2, #00e88f)}.addr-span-px{color:var(--text2);opacity:.8}.addr-tabs{display:flex;gap:3px;margin-bottom:7px}.addr-tabs button{flex:1;padding:4px 2px;cursor:pointer;background:var(--panel2);color:var(--text2);border:1px solid var(--border);border-radius:3px;font-family:DM Mono,monospace;font-size:7.5px;letter-spacing:.5px}.addr-tabs button.active{color:var(--bg);background:var(--accent2, #00e88f);border-color:transparent}.addr-row{display:flex;align-items:center;gap:7px;margin-bottom:5px;font-family:DM Mono,monospace;font-size:8px;color:var(--text2)}.addr-row span{flex:1}.addr-row input,.addr-row select{width:108px;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:3px;font-family:DM Mono,monospace;font-size:9px;padding:3px 5px}.addr-note{font-family:DM Mono,monospace;font-size:7.5px;color:var(--label);line-height:1.5;margin:4px 0 6px}.addr-split{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.addr-split-head{font-family:DM Mono,monospace;font-size:7.5px;letter-spacing:1.5px;color:var(--label);margin-bottom:5px}.addr-split-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-family:DM Mono,monospace;font-size:8px;color:var(--text2)}.addr-split-row>span{width:12px;opacity:.55}.addr-split-row label{display:flex;align-items:center;gap:3px}.addr-split-row input{width:50px;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:3px;font-size:8.5px;padding:2px 4px;font-family:DM Mono,monospace}.addr-split-new{display:flex;align-items:center;gap:5px;margin-top:5px;font-family:DM Mono,monospace;font-size:8px;color:var(--text2)}.addr-split-new input{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:3px;font-size:8.5px;padding:2px 4px;font-family:inherit}.addr-btn{margin-top:6px;padding:5px 8px;cursor:pointer;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-family:DM Mono,monospace;font-size:7.5px;letter-spacing:1px}.addr-btn.small{margin-top:0;padding:3px 7px}.addr-btn.ghost{color:var(--text2);margin-top:6px}.addr-btn:hover{border-color:var(--accent2, #00e88f)}.new-prop-menu{left:0;right:auto;min-width:0;width:100%;top:calc(100% + 4px);max-height:min(56vh,420px);overflow-y:auto;padding:6px}.new-prop-menu .proj-menu-item{padding:6px 8px;font-size:9.5px}
