:root{--bg: #16181c;--panel: #1d2026;--panel-2: #22262d;--border: #2e333b;--text: #d7dbe2;--text-dim: #8b919c;--accent: #4f9fd9;--warn: #e0b84f;--bad: #e05a4f;--ok: #57c785;font-size:13px}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums}#app{height:100vh;display:grid;grid-template-areas:"toolbar toolbar toolbar" "left viewport right" "status status status";grid-template-rows:auto 1fr 28px;grid-template-columns:300px 1fr 360px}#toolbar{grid-area:toolbar;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{display:flex;flex-direction:column;margin-right:8px}.brand-title{font-weight:600;letter-spacing:.02em}.brand-sub{font-size:10px;color:var(--text-dim)}.tb-group{display:flex;align-items:center;gap:4px;padding:2px 8px;border-left:1px solid var(--border)}.tb-right{margin-left:auto}.tb-label{color:var(--text-dim);font-size:11px;margin-right:2px;text-transform:uppercase;letter-spacing:.06em}button{font:inherit}.tb-btn,.i-btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 9px;cursor:pointer;white-space:nowrap}.tb-btn:hover,.i-btn:hover{border-color:var(--accent)}.tb-btn.active{background:var(--accent);border-color:var(--accent);color:#0d1117;font-weight:600}.tb-accent{border-color:var(--accent);color:var(--accent)}.i-btn-small{padding:2px 6px}#left-panel{grid-area:left;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;padding:10px}#right-panel{grid-area:right;background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;padding:10px}.panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:4px 0 8px}.panel-hint{color:var(--text-dim);font-size:11px;line-height:1.45;margin:4px 0}#viewport{grid-area:viewport;position:relative;overflow:hidden;min-width:0;min-height:0}#viewport canvas{display:block}.hierarchy-list{display:flex;flex-direction:column}.h-row{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;cursor:pointer;border:1px solid transparent}.h-row:hover{background:var(--panel-2)}.h-row.selected{background:#24344a;border-color:var(--accent)}.h-row.colliding .h-name{color:var(--bad)}.h-eye{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:0 2px;font-size:12px}.h-eye:hover{color:var(--text)}.h-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.h-lock{font-size:10px}.h-prov{color:var(--warn);font-size:9px}.h-glb{font-size:9px;color:var(--ok);border:1px solid var(--ok);border-radius:3px;padding:0 3px}.inspector-body{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}.i-head{margin-bottom:4px}.i-name{font-weight:600;font-size:14px}.i-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.05em;border-radius:3px;padding:1px 5px;vertical-align:middle}.badge-prov{background:#4a3d1e;color:var(--warn);border:1px solid var(--warn)}.badge-vendor{background:#1e3a2b;color:var(--ok);border:1px solid var(--ok)}.badge-assumed{background:#452a20;color:#e08a5f;border:1px solid #e08a5f}.badge-info{background:var(--panel-2);color:var(--text-dim);border:1px solid var(--border)}.i-desc{color:var(--text-dim);font-size:11px;line-height:1.5;margin:4px 0}.i-source{border-left:2px solid var(--warn);padding-left:6px}.i-section{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin:10px 0 3px}.i-row{display:flex;gap:8px;padding:2px 0;font-size:12px}.i-label{min-width:92px;color:var(--text-dim)}.value{flex:1;overflow-wrap:anywhere}.i-btn{align-self:flex-start;margin:4px 0}.i-glb-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}.mfg-summary{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 6px}.mfg-parts{display:flex;flex-direction:column;gap:5px}.mfg-part{display:flex;align-items:flex-start;gap:7px;padding:7px;border:1px solid var(--border);border-radius:5px;background:var(--panel-2)}.mfg-part-copy{min-width:0;flex:1}.mfg-part-heading{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.mfg-part-name{font-size:11px;font-weight:600;line-height:1.35}.mfg-part-detail,.mfg-part-interface,.mfg-part-stats{margin-top:3px;color:var(--text-dim);font-size:10px;line-height:1.35}.mfg-part-interface{color:#b9c5d2}.mfg-part-stats{font-variant-numeric:tabular-nums}.i-select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 6px}.section{border:1px solid var(--border);border-radius:6px;margin-bottom:10px;background:var(--panel)}.section-title{cursor:pointer;padding:6px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);user-select:none}.section-body{padding:4px 10px 10px;display:flex;flex-direction:column;gap:6px}.ctl-row{display:flex;align-items:center;gap:8px}.ctl-row input[type=range]{flex:1;min-width:60px;accent-color:var(--accent)}.ctl-axis{width:14px;color:var(--text-dim);font-weight:600}.com-readout{font-size:12px;line-height:1.6}.measure-row,.cable-row{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:12px}.zone-swatch{width:10px;height:10px;border-radius:2px;flex:none}.measure-label{background:#14161ad9;color:#ffd94f;border:1px solid #ffd94f;border-radius:4px;padding:1px 6px;font-size:11px;white-space:nowrap}.zone-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;background:#14161ab3;border-radius:3px;padding:1px 5px;white-space:nowrap}.com-label{color:#ff4fd0;font-size:10px;font-weight:700;background:#14161abf;border-radius:3px;padding:1px 5px;white-space:nowrap}#status-bar{grid-area:status;display:flex;align-items:center;gap:16px;padding:0 12px;background:var(--panel);border-top:1px solid var(--border);font-size:11px;overflow:hidden;white-space:nowrap}.sb-hint{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis}.sb-selected{color:var(--accent)}.sb-collisions.ok{color:var(--ok)}.sb-collisions.bad{color:var(--bad);font-weight:600}.sb-disclaimer{margin-left:auto;color:var(--warn);overflow:hidden;text-overflow:ellipsis}@media(max-width:1500px){#app{grid-template-columns:260px 1fr 320px}}@media(max-width:1200px){#app{grid-template-columns:230px 1fr 290px}.tb-label{display:none}}@media(max-width:980px){#app{grid-template-areas:"toolbar toolbar" "viewport viewport" "left right" "status status";grid-template-rows:auto 1fr 260px 28px;grid-template-columns:1fr 1fr}}
