:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{margin:0}.viewer-shell{color:#1f2933;background:#f5f7fa;grid-template-rows:auto auto 1fr;height:100vh;display:grid;overflow:hidden}.topbar{background:#fff;border-bottom:1px solid #d8dee8;justify-content:space-between;align-items:center;height:72px;padding:0 24px;display:flex}.topbar-actions{align-items:center;gap:10px;display:flex}.logout-button{min-width:82px}.eyebrow{color:#5b677a;text-transform:uppercase;margin:0 0 2px;font-size:12px;font-weight:700}h1,h2,p{margin:0}h1{font-size:24px;font-weight:700}h2{color:#1f2933;font-size:14px;font-weight:700}.viewer-toolbar{background:#f8fafc;border-bottom:1px solid #d8dee8;flex-wrap:wrap;align-items:center;gap:8px;min-height:52px;padding:8px 16px;display:flex}.viewer-toolbar button{min-width:82px}.toolbar-select{color:#263244;background:#fff;border:1px solid #cfd7e3;border-radius:6px;min-width:112px;height:36px;font:800 13px/1 system-ui,sans-serif}.toolbar-select.compact{min-width:98px}.toolbar-select:disabled{color:#94a3b8;background:#f1f5f9}.toolbar-range{background:#fff;border:1px solid #cfd7e3;border-radius:6px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px;min-width:160px;height:36px;padding:4px 8px;display:grid}.toolbar-range span{color:#475467;font:800 12px/1 system-ui,sans-serif}.toolbar-range input{min-width:0}.hidden-file{display:none}.status-pill{color:#344054;text-align:center;text-transform:uppercase;background:#e5e7eb;border-radius:999px;min-width:82px;padding:7px 10px;font-size:12px;font-weight:800;line-height:1}.status-pill.loading{color:#1d4ed8;background:#dbeafe}.status-pill.ready{color:#166534;background:#dcfce7}.status-pill.error{color:#b91c1c;background:#fee2e2}.share-badge{color:#5b21b6;background:#ede9fe;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;line-height:1}.modal-backdrop{z-index:50;background:#0f172a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:10px;width:min(360px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 50px #0f172a4d}.modal-card header{color:#1f2933;border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:800;display:flex}.modal-close{color:#697586;cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:20px;line-height:1}.modal-body{gap:12px;padding:16px;display:grid}.modal-body p{color:#4b5565;margin:0;font-size:13px;line-height:1.5}.modal-error{color:#b91c1c}.modal-actions{gap:8px;display:grid}.share-progress-track{background:#e2e8f0;border-radius:999px;width:100%;height:8px;overflow:hidden}.share-progress-fill{background:#2563eb;border-radius:999px;height:100%;transition:width .15s ease-out}.share-qr{border:1px solid #e5e9f0;border-radius:8px;justify-self:center}.share-url-row{gap:8px;display:flex}.share-url-row input{color:#1f2933;background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;flex:1;min-width:0;padding:8px 10px;font:700 12px ui-monospace,SFMono-Regular,Consolas,monospace}.modal-note{color:#697586;font-size:12px}.workbench{grid-template-columns:minmax(0,1fr) 380px;min-height:0;display:grid}.viewport{background:#dfe8f3;min-width:0;height:100%;position:relative;overflow:hidden}.viewport canvas{width:100%;height:100%;display:block}.viewport.box-mode,.viewport.measure-mode{cursor:crosshair}.selection-rect{z-index:4;pointer-events:none;background:#2563eb24;border:1px solid #2563eb;position:absolute}.measurement-layer{z-index:5;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.measurement-record polyline,.measurement-record polygon{fill:#2563eb1f;stroke:#1d4ed8;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.measurement-record circle{fill:#fff;stroke:#1d4ed8;stroke-width:2px}.measurement-record.pending polyline,.measurement-record.pending polygon{stroke-dasharray:6 5}.measurement-label{color:#1f2933;overflow-wrap:anywhere;background:#fffffff0;border:1px solid #cbd5e1;border-radius:6px;width:fit-content;max-width:142px;padding:5px 8px;font:800 12px/1.2 system-ui,sans-serif;box-shadow:0 4px 12px #0f172a24}.viewport-axes,.viewport-scale{z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.viewport-axes{width:86px;height:74px;bottom:22px;left:18px}.axis-line{transform-origin:0;border-radius:999px;height:3px;position:absolute;bottom:16px;left:22px}.axis-line:after{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:8px solid;position:absolute;top:-4px;right:-4px}.axis-line strong{width:16px;height:16px;color:inherit;text-align:center;transform:rotate(var(--axis-label-rotation,0deg));background:#fff;border-radius:999px;font:800 10px/16px system-ui,sans-serif;position:absolute;top:-8px;right:-20px;box-shadow:0 1px 4px #0f172a2e}.axis-x{color:#dc2626;background:#dc2626;width:48px;transform:rotate(0)}.axis-y{color:#16a34a;background:#16a34a;width:46px;transform:rotate(-42deg)}.axis-z{color:#2563eb;background:#2563eb;width:42px;transform:rotate(-90deg)}.viewport-scale{justify-items:end;gap:6px;width:160px;display:grid;bottom:22px;right:18px}.scale-line{border-bottom:3px solid #334155;border-left:2px solid #334155;border-right:2px solid #334155;width:128px;height:10px}.scale-label{color:#334155;background:#ffffffe0;border-radius:4px;padding:3px 6px;font:800 11px/1.2 system-ui,sans-serif;box-shadow:0 1px 5px #0f172a24}.orbit-dpad{z-index:6;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(3,40px);grid-template-columns:repeat(3,40px);gap:2px;display:grid;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.orbit-dpad button{color:#334155;cursor:pointer;touch-action:none;background:#ffffffd1;border:1px solid #d8dee8;border-radius:8px;place-items:center;font-size:15px;line-height:1;display:grid;box-shadow:0 1px 5px #0f172a24}.orbit-dpad button:hover,.orbit-dpad button:active{color:#1d4ed8;background:#fff;border-color:#93c5fd}.orbit-dpad-up{grid-area:1/2}.orbit-dpad-left{grid-area:2/1}.orbit-dpad-right{grid-area:2/3}.orbit-dpad-down{grid-area:3/2}.orbit-dpad-elevate,.orbit-dpad-descend{font-size:11px;font-weight:800}.orbit-dpad-elevate{grid-area:1/3}.orbit-dpad-descend{grid-area:3/3}.context-card{z-index:5;background:#fff;border:1px solid #94a3b8;border-radius:6px;gap:10px;width:360px;max-height:min(390px,100% - 24px);padding:12px;display:grid;position:absolute;overflow:hidden;box-shadow:0 10px 28px #0f172a2e}.property-popover header{gap:4px;display:grid}.property-popover .qa-core{min-height:0;overflow:hidden}.property-popover .qa-core dl{max-height:290px;padding-right:6px;overflow-y:auto}.context-card strong{color:#92400e;font-size:12px}.context-card span{color:#263244;overflow-wrap:anywhere;font-size:12px;line-height:1.35}.context-card small{color:#697586;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.property-group.compact summary{padding:8px 10px;font-size:12px}.property-group.compact dl{padding:0 10px 10px}.property-group.compact dl div{grid-template-columns:minmax(86px,36%) minmax(0,1fr);padding:5px 0}.side-panel{background:#fff;border-left:1px solid #d8dee8;min-width:0;height:100%;overflow:auto}.panel-section{border-bottom:1px solid #e5e9f0;gap:12px;padding:18px;display:grid}.panel-section p{color:#4b5565;font-size:13px;line-height:1.45}.status-section{gap:10px}.count-banner{color:#1d4ed8;box-sizing:border-box;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;min-height:32px;padding:8px 10px;font-size:13px;font-weight:800}dl{gap:8px;margin:0;display:grid}dl div{grid-template-columns:86px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}dt{color:#697586;font-size:12px;font-weight:700}dd{color:#263244;overflow-wrap:anywhere;min-width:0;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.qa-summary dl div,.semantic-coverage dl div{grid-template-columns:minmax(118px,46%) minmax(0,1fr)}.coverage-ok,.coverage-warning,.coverage-error{border-radius:4px;width:fit-content;max-width:100%;padding:3px 7px;font-family:system-ui,sans-serif;font-size:11px;font-weight:800}.coverage-ok{color:#166534;background:#dcfce7}.coverage-warning{color:#92400e;background:#fffbeb}.coverage-error{color:#b91c1c;background:#fee2e2}.model-tree{max-height:360px;padding:2px 0 2px 2px;overflow:auto}.tree-node{background:0 0;border:0}.tree-node summary{cursor:pointer;border-radius:4px;grid-template-columns:minmax(0,1fr) minmax(34px,max-content) 20px;align-items:center;gap:6px;min-height:26px;padding:2px 6px;display:grid}.tree-node summary:hover{background:#eff6ff}.tree-node summary:focus,.advanced-tools summary:focus,.property-group summary:focus{outline-offset:2px;outline:2px solid #93c5fd}.tree-node-title{color:#263244;text-overflow:ellipsis;gap:1px;min-width:0;font-size:12px;font-weight:800;display:grid;overflow:hidden}.tree-node-title small{color:#697586;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:700;overflow:hidden}.tree-node summary strong{color:#334155;text-align:center;box-sizing:border-box;background:#e2e8f0;border-radius:999px;min-width:30px;padding:2px 7px;font-size:11px}.tree-node-body{border-left:1px solid #cbd5e1;gap:1px;margin-left:9px;padding:2px 0 2px 10px;display:grid}.tree-select,.tree-leaf{color:#475569;text-align:left;background:0 0;border:0;border-radius:4px;gap:2px;width:100%;height:auto;min-height:24px;padding:4px 6px;font:700 12px/1.2 system-ui,sans-serif;display:grid}.tree-select:hover,.tree-leaf:hover{color:#1d4ed8;background:#eff6ff}.tree-leaf small{color:#697586;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.tree-leaf-row{grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:2px;display:grid}.tree-leaf-row .tree-leaf{min-width:0}.tree-row-menu{justify-content:center;align-items:center;display:flex;position:relative}.tree-row-menu-trigger{color:#697586;cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:0;border-radius:4px;width:20px;height:20px;font:700 13px/1 system-ui,sans-serif}.tree-leaf-row:hover .tree-row-menu-trigger,.tree-leaf-row:focus-within .tree-row-menu-trigger,.tree-node summary:hover .tree-row-menu-trigger,.tree-node summary:focus-within .tree-row-menu-trigger,.tree-row-menu-trigger[aria-expanded=true]{opacity:1;pointer-events:auto}.tree-row-menu-trigger:hover,.tree-row-menu-trigger:focus-visible{color:#1d4ed8;background:#e2e8f0;outline:none}.tree-row-menu-list{z-index:20;background:#fff;border:1px solid #d8dee8;border-radius:6px;min-width:112px;padding:4px;display:grid;position:absolute;top:calc(100% + 2px);right:0;box-shadow:0 6px 18px #0f172a29}.tree-row-menu-list button{color:#263244;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:6px 8px;font:700 12px/1.2 system-ui,sans-serif}.tree-row-menu-list button:hover,.tree-row-menu-list button:focus-visible{color:#1d4ed8;background:#eff6ff;outline:none}.browser-group{background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;overflow:hidden}.browser-group summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:34px;padding:0 10px;display:grid}.browser-group:hover{border-color:#93c5fd}.browser-group summary span{color:#263244;text-overflow:ellipsis;gap:2px;min-width:0;font-size:12px;font-weight:800;display:grid;overflow:hidden}.browser-group summary span small{color:#697586;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:700}.browser-group summary strong{color:#334155;text-align:center;background:#e2e8f0;border-radius:999px;min-width:34px;padding:3px 8px;font-size:12px}.browser-group[open]{background:#fff}.class-select{width:calc(100% - 20px);height:30px;margin:0 10px 8px}.browser-items{gap:5px;padding:0 10px 10px 22px;display:grid}.browser-items button{color:#475569;text-align:left;background:#fff;border-color:#e2e8f0;width:100%;height:28px;font:700 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.browser-items button:hover{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}button{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:6px;height:36px;font:700 13px/1 system-ui,sans-serif}button:disabled{color:#64748b;cursor:not-allowed;background:#e2e8f0;border-color:#cbd5e1}.auth-shell{color:#1f2933;background:#e2e8f0;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #94a3b873;border-radius:8px;gap:18px;width:min(420px,100%);padding:28px;display:grid;box-shadow:0 24px 60px #0f172a42}.auth-brand{color:#fff;letter-spacing:0;background:#2563eb;border-radius:8px;place-items:center;width:48px;height:48px;font:900 16px/1 system-ui,sans-serif;display:grid}.auth-copy{gap:6px;display:grid}.auth-copy h1{font-size:24px}.auth-copy p:last-child{color:#4b5565;font-size:14px}.auth-field{gap:7px;display:grid}.auth-field span{color:#263244;font-size:13px;font-weight:800}.auth-field input{color:#1f2933;border:1px solid #cbd5e1;border-radius:6px;height:42px;padding:0 12px;font:700 15px/1 system-ui,sans-serif}.auth-field input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb24}.auth-field input[aria-invalid=true]{border-color:#dc2626}.auth-error{color:#b91c1c;min-height:18px;font-size:13px;font-weight:800}.selection-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}button.secondary{color:#263244;background:#fff;border-color:#cbd5e1}button.secondary.active{color:#92400e;background:#fffbeb;border-color:#f59e0b}button.secondary:disabled{color:#94a3b8;background:#f8fafc;border-color:#e2e8f0}.inspector pre{color:#dbeafe;white-space:pre-wrap;background:#0f172a;border:1px solid #d8dee8;border-radius:6px;max-height:320px;margin:0;padding:12px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.sidecar-section pre{color:#dbeafe;white-space:pre-wrap;background:#0f172a;border:1px solid #d8dee8;border-radius:6px;max-height:260px;margin:10px 0 0;padding:12px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.sidecar-recommendations{gap:6px;margin:10px 0;display:grid}.sidecar-recommendations strong{color:#1f2933;font-size:12px}.sidecar-recommendations span{color:#475467;overflow-wrap:anywhere;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:7px 8px;font-size:12px;line-height:1.35}.inspector.pulse{animation:1.1s ease-out inspector-pulse}@keyframes inspector-pulse{0%{background:#eff6ff;box-shadow:inset 3px 0 #2563eb}to{background:#fff;box-shadow:inset 3px 0 #0000}}.empty-selection{color:#697586;font-size:13px}.legend-list{gap:6px;max-height:220px;display:grid;overflow:auto}.legend-row{cursor:pointer;width:100%;min-height:34px;font:inherit;text-align:left;background:#fff;border:1px solid #d8dee8;border-radius:6px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid}.legend-row:hover{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 2px 8px #2563eb1f}.legend-row:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.legend-row.alert{background:#fff7f7;border-color:#fecaca}.legend-swatch{border:1px solid #0f172a2e;border-radius:4px;width:16px;height:16px}.legend-label{gap:1px;min-width:0;display:grid}.legend-label strong{color:#263244;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.legend-label small{color:#697586;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;overflow:hidden}.legend-meta{justify-items:end;gap:2px;display:grid}.legend-meta small{color:#697586;font-size:10px;font-weight:800}.legend-meta strong{color:#334155;text-align:center;background:#e2e8f0;border-radius:999px;min-width:30px;padding:2px 7px;font-size:11px}.selection-status{background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;min-height:34px;padding:7px 10px;display:flex}.selection-status span{color:#697586;font-size:12px;font-weight:700}.selection-status strong{color:#334155;text-align:center;background:#e2e8f0;border-radius:999px;min-width:34px;padding:3px 8px;font-size:12px}.summary-card{background:#fff;border:1px solid #d8dee8;border-radius:6px;gap:4px;padding:10px;display:grid}.summary-card strong{color:#92400e;font-size:13px}.summary-card span{color:#263244;overflow-wrap:anywhere;font-size:13px}.summary-card small{color:#697586;overflow-wrap:anywhere;font-family:system-ui,sans-serif;font-size:11px;font-weight:700}.property-group{background:#fff;border:1px solid #d8dee8;border-radius:6px}.property-group summary{cursor:pointer;color:#263244;padding:10px 12px;font-size:13px;font-weight:800}.property-group dl{padding:0 12px 12px}.property-group dl div{border-top:1px solid #eef2f7;grid-template-columns:minmax(96px,42%) minmax(0,1fr);padding:7px 0;display:grid}.qa-bom-data dl{gap:10px}.qa-bom-data dl div{grid-template-columns:1fr;gap:4px}.qa-bom-data dt{color:#92400e}.qa-bom-data dd{color:#263244;background:#fffbeb;border-radius:4px;padding:8px 10px;font-size:12px;line-height:1.35}.qa-core dl div{align-items:start}.qa-field.error{background:#fff5f5}.qa-field.warning{background:#fffaf0}.qa-field.ok{background:#fff}.qa-field dt,.qa-field dd{gap:3px;display:grid}.qa-field dt small{color:#4a5568;background:#edf2f7;border-radius:4px;width:fit-content;padding:2px 5px;font-family:system-ui,sans-serif;font-size:10px;font-weight:800}.qa-field.error dt small{color:#9b2c2c;background:#fed7d7}.qa-field.warning dt small{color:#9c4221;background:#feebc8}.qa-field dd small{color:#697586;font-family:system-ui,sans-serif;font-size:11px;font-weight:700}.advanced-tools{gap:12px;display:grid}.advanced-tools summary{cursor:pointer;color:#263244;font-size:13px;font-weight:800}.advanced-tools[open] summary{margin-bottom:12px}.advanced-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}@media (width<=900px){.viewer-shell{height:auto;min-height:100vh;overflow:visible}.topbar{gap:14px;height:auto;min-height:68px;padding:12px 16px}.viewer-toolbar{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.viewer-toolbar>*{flex-shrink:0}.workbench{grid-template-columns:1fr}.viewport{height:auto;min-height:58vh}.side-panel{border-top:1px solid #d8dee8;border-left:none;height:auto;max-height:none}}
