.lab-body{background:#0b0d0e}.lab-header{position:sticky;top:0;z-index:50}.lab-title{display:flex;flex-direction:column;line-height:1.05}.lab-title .eyebrow{font-size:.68rem}.lab-shell{max-width:1680px;margin:auto;display:grid;grid-template-columns:410px minmax(0,1fr);gap:18px;padding:18px}.lab-sidebar{display:grid;gap:14px;align-content:start}.lab-panel,.placed-panel,.commission-panel,.viewport-toolbar,.fit-strip{border:1px solid var(--line);background:var(--panel);border-radius:10px}.lab-panel,.placed-panel,.commission-panel{padding:17px}.panel-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.panel-head>span{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--line);color:var(--accent);font-family:monospace}.panel-head h2{font-size:1rem;margin:0}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.segmented,.catalog-tabs,.tool-group{display:flex;gap:6px}.segmented button,.catalog-tabs button,.tool-group button{border:1px solid var(--line);background:#111517;color:var(--muted);padding:8px 10px;cursor:pointer;border-radius:5px}.segmented button.active,.catalog-tabs button.active,.tool-group button.active{border-color:var(--accent);color:#fff;background:rgba(208,107,40,.14)}.measure-help{font-size:.76rem;color:var(--muted);line-height:1.55;margin:12px 0 0}.measurement-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.measurement-grid label{font-size:.76rem;color:var(--muted);position:relative}.measurement-grid label span{float:right}.measurement-grid input{margin:5px 0 0;padding:9px 10px}.measure-advanced{margin-top:14px;border:1px solid var(--line);border-radius:8px;background:rgba(0,0,0,.12);overflow:hidden}.measure-advanced summary{cursor:pointer;padding:11px 12px;font-size:.8rem;color:#d8dcdf;list-style-position:inside}.measure-advanced summary span{float:right;color:var(--accent);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.measure-advanced[open] summary{border-bottom:1px solid var(--line)}.measure-advanced>p{color:var(--muted);font-size:.72rem;line-height:1.5;padding:0 12px;margin:12px 0}.measure-advanced h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:#d5d9db;margin:15px 12px 0}.measure-advanced .measurement-grid{padding:0 12px 12px;margin-top:9px}.fit-accuracy{margin-top:12px;border:1px solid var(--line);border-radius:7px;padding:10px 11px;color:var(--muted);font-size:.72rem;line-height:1.45}.fit-accuracy strong{color:#e0e3e5}.reference-calibration{margin-top:14px;border:1px solid var(--line);border-radius:8px;padding:12px;background:rgba(208,107,40,.055)}.reference-calibration h3{font-size:.82rem;margin:0 0 5px}.reference-calibration>p{font-size:.72rem;color:var(--muted);line-height:1.5;margin:0}.reference-upload-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:10px}.reference-upload-row input{display:none}.reference-upload-row label{margin:0;cursor:pointer}.import-settings{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}.import-settings>label:first-child{font-size:.76rem;color:var(--muted)}.import-settings select{margin:5px 0 0}.consent.compact{margin:0;font-size:.75rem}.part-slots{display:grid;gap:8px}.part-slot{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;border:1px solid var(--line);padding:10px;border-radius:7px}.part-slot strong{font-size:.84rem}.part-slot small{display:block;color:var(--muted);margin-top:2px}.part-slot input{display:none}.part-slot label{margin:0;cursor:pointer}.tiny-note{color:var(--muted);font-size:.72rem;line-height:1.5}.search-label{font-size:.78rem;color:var(--muted)}.search-label input{margin:5px 0 10px}.catalog-results{display:grid;gap:8px;margin-top:10px;max-height:430px;overflow:auto}.catalog-card{border:1px solid var(--line);padding:10px;border-radius:7px}.catalog-card h3{font-size:.86rem;margin:0 0 3px}.catalog-card p{font-size:.74rem;color:var(--muted);margin:0 0 8px}.catalog-meta{font-size:.69rem;color:var(--muted);margin-bottom:7px}.catalog-actions{display:flex;gap:6px;flex-wrap:wrap}.catalog-actions button,.catalog-actions a{font-size:.7rem}.viewport-column{min-width:0;display:grid;gap:12px;align-content:start}.viewport-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px}.viewport-toolbar>div:first-child{display:flex;flex-direction:column}.viewport-toolbar span{font-size:.72rem;color:var(--muted);margin-top:2px}.viewport{height:min(70vh,760px);min-height:520px;border:1px solid var(--line);background:radial-gradient(circle at 50% 35%,#22282b,#090b0c 72%);position:relative;border-radius:10px;overflow:hidden}.viewport canvas{display:block;width:100%;height:100%}.viewer-message{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);pointer-events:none}.fit-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 13px}.fit-strip label{font-size:.8rem;color:var(--muted);margin:0}.placed-list{display:grid;gap:7px}.placed-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);padding:9px 10px;border-radius:6px;cursor:pointer}.placed-item.active{border-color:var(--accent)}.placed-item strong{font-size:.83rem}.placed-item small{display:block;color:var(--muted);font-size:.7rem}.source-pill{font-size:.66rem;border:1px solid var(--line);padding:4px 6px;border-radius:999px;color:var(--muted)}.commission-panel form{max-width:none}.commission-panel .two-col{grid-template-columns:repeat(3,1fr)}@media(max-width:1100px){.lab-shell{grid-template-columns:350px minmax(0,1fr)}.commission-panel .two-col{grid-template-columns:repeat(2,1fr)}.viewport-toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:820px){.lab-shell{grid-template-columns:1fr;padding:10px}.lab-header .lab-title{display:none}.lab-sidebar{order:2}.viewport-column{order:1}.viewport{height:60vh;min-height:430px}.commission-panel .two-col{grid-template-columns:1fr}.measurement-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.measurement-grid{grid-template-columns:1fr}.tool-group{flex-wrap:wrap}.fit-strip{align-items:stretch}.fit-strip button{width:100%}.measure-advanced summary span{float:none;display:block;margin-top:3px}.reference-upload-row{align-items:stretch}.reference-upload-row .button{width:100%;text-align:center}}