:root{--bg:var(--cb-bg);--panel:var(--cb-panel);--raised:var(--cb-panel-soft);--line:var(--cb-line);--ink:var(--cb-text);--muted:var(--cb-text-muted);--teal:var(--cb-blue);--blue:var(--cb-blue-ink);--warn:var(--cb-orange-ink);--error:var(--cb-red);font:14px/1.6 var(--cb-font)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid var(--line);background:var(--raised);color:var(--ink);border-radius:7px;padding:7px 12px;cursor:pointer;min-height:38px}button:hover:enabled{border-color:var(--cb-line);background:var(--cb-panel-soft)}button:disabled{opacity:.42;cursor:not-allowed}a{color:var(--muted);text-decoration:none}a:hover{color:var(--teal)}input,select{background:var(--cb-bg);border:1px solid var(--cb-line);color:var(--ink);border-radius:6px;padding:9px 10px;min-width:0;width:100%}input:disabled,select:disabled{opacity:.5}input[type=checkbox]{width:17px;min-width:17px;height:17px;accent-color:var(--teal)}:focus-visible{outline:2px solid var(--teal);outline-offset:3px}h1,h2,p{margin:0}h1{font-size:26px;letter-spacing:-.7px;font-weight:650}h2{font-size:14px;font-weight:600}fieldset{margin:0;padding:0;border:0;min-width:0}[hidden]{display:none!important}.topbar{height:66px;border-bottom:1px solid var(--line);background:var(--cb-panel);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.brand{display:flex;gap:10px;align-items:center;font-size:15px;color:var(--ink);font-weight:650}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:1.3px}.brand-mark{display:grid;place-items:center;border:1px solid var(--cb-blue);border-radius:9px;width:36px;height:36px;color:var(--teal);font-size:13px;background:var(--cb-blue-soft)}.topbar nav{display:flex;align-items:center;gap:24px;font-size:12px}.top-tag{border:1px solid var(--line);border-radius:20px;padding:4px 10px;color:var(--muted)}main{max-width:1700px;margin:auto;padding:28px 30px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{color:var(--teal);font-size:10px;font-weight:600;letter-spacing:2.4px;margin-bottom:7px}.subtitle{color:var(--muted);font-size:13px;margin-top:6px}.service-status{font-size:12px;color:var(--muted);white-space:nowrap}.service-status::before{content:"";display:inline-block;width:7px;height:7px;background:var(--cb-text-muted);border-radius:50%;margin-right:7px}.service-status.online::before{background:var(--teal)}.service-status.offline::before{background:var(--error)}.notice{padding:10px 14px;background:var(--cb-blue-soft);border:1px solid var(--cb-blue);border-left:3px solid var(--teal);border-radius:6px;color:var(--cb-blue-ink);font-size:12px;margin-bottom:18px;overflow-wrap:anywhere}.notice.error{background:var(--cb-red-soft);border-color:var(--cb-red);color:var(--cb-red)}.notice.warn{background:var(--cb-orange-soft);border-color:var(--cb-orange-ink);color:var(--cb-orange-ink)}.workspace{display:grid;grid-template-columns:302px minmax(0,1fr);gap:20px;align-items:start}.controls{border:1px solid var(--line);background:var(--panel);border-radius:10px;overflow:hidden}.control-section{padding:19px;border-bottom:1px solid var(--line)}.control-section:last-child{border-bottom:0}.control-section h2{margin-bottom:15px;display:flex;align-items:center;gap:8px}.step{font-size:10px;font-family:Consolas,monospace;border:1px solid var(--cb-line);color:var(--muted);border-radius:4px;padding:0 5px}.dropzone{display:flex;position:relative;flex-direction:column;align-items:center;gap:4px;border:1px dashed var(--cb-line);background:var(--cb-blue-soft);border-radius:8px;padding:18px 8px;cursor:pointer;text-align:center}.dropzone:hover,.dropzone.dragging{border-color:var(--teal);background:var(--cb-blue-soft)}.dropzone:focus-within{outline:2px solid var(--teal);outline-offset:3px}.dropzone strong{font-size:13px;font-weight:500}.dropzone span:not(.upload-symbol){font-size:12px;color:var(--muted)}.dropzone small{font-size:10px;color:var(--muted)}.upload-symbol{font-size:26px;color:var(--teal);line-height:1.2;margin-bottom:5px}.dropzone input{position:absolute;width:1px;height:1px;opacity:0;padding:0;border:0}.example-row{display:flex;gap:7px;align-items:center;margin-top:12px;flex-wrap:wrap}.example-row>span{font-size:11px;color:var(--muted)}.example-row button{font-size:11px;padding:3px 7px;min-height:30px}.file-meta{margin-top:14px;padding:10px;background:var(--raised);border-radius:6px;display:flex;gap:8px;justify-content:space-between;align-items:center}.file-meta>div{min-width:0}.file-meta strong{font-size:12px;display:block;overflow-wrap:anywhere}.file-meta small{font-size:10px;color:var(--muted)}.icon-button{font-size:18px;background:transparent;border:0;min-width:32px;padding:2px 6px}.hint{font-size:11px;color:var(--muted);line-height:1.65}.file-meta+.hint{margin-top:10px;color:var(--warn)}.mode-switch{display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:7px;background:var(--cb-bg);border:1px solid var(--line);gap:4px;margin-bottom:10px}.mode-switch button{border-color:transparent;background:transparent;font-size:12px;min-height:34px}.mode-switch button[aria-pressed=true]{background:var(--cb-blue-soft);color:var(--cb-blue-ink);border-color:var(--cb-blue)}.field-label{display:block;font-size:12px;margin:15px 0 6px}select{font-size:12px}#unitHint{margin-top:5px}.section-label{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin:17px 0 5px}.layer-list{max-height:228px;overflow-y:auto}.layer-row{display:grid;grid-template-columns:minmax(0,1fr) 28px 86px;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid var(--cb-line)}.layer-name{font:11px/1.4 Consolas,"Microsoft YaHei",monospace;overflow-wrap:anywhere}.layer-name::before{content:"";display:inline-block;background:var(--layer-color,var(--teal));width:6px;height:6px;border-radius:2px;margin-right:6px}.layer-count{color:var(--muted);text-align:right;font-size:11px}.layer-row select{padding:5px;min-height:32px}.solid-confirm{display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:11px;line-height:1.7;color:var(--cb-text)}.solid-confirm input{margin:2px 0 0}.parameter-head,.parameter-row{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:7px;align-items:center}.parameter-head{font-size:10px;color:var(--muted);margin:10px 0 5px}.parameter-row{margin-bottom:8px;font-size:11px}.parameter-row input{font-size:12px;padding:7px}.button-primary{background:var(--teal);border-color:var(--teal);color:var(--cb-on-accent);font-weight:650}.button-primary:hover:enabled{background:var(--cb-blue-strong);border-color:var(--cb-blue-strong)}.button-primary span{margin-left:8px}.full-width{width:100%;margin-top:10px;padding:11px}.results{min-width:0;display:grid;gap:16px}.preview-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.25fr);gap:16px}.preview-panel,.detail-panel,.command-panel,.export-panel{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.panel-heading{padding:12px 15px;min-height:52px;display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:12px;white-space:nowrap}.panel-index{font:10px Consolas,monospace;color:var(--teal);margin-right:7px}.muted{font-size:10px;color:var(--muted)}.view-tools{display:flex;gap:6px}.view-tools button{padding:3px 7px;font-size:10px;min-height:27px;background:transparent}.view-tools button[aria-pressed=true]{color:var(--teal)}.drawing-stage,.model-stage{height:370px;position:relative;overflow:hidden;background-color:#0c1521;background-image:linear-gradient(#22314255 1px,transparent 1px),linear-gradient(90deg,#22314255 1px,transparent 1px);background-size:24px 24px}.model-stage{background-image:radial-gradient(ellipse at center,#172b3c,#0c1521 80%)}.drawing-stage svg{width:100%;height:100%;display:block}.drawing-stage path{vector-effect:non-scaling-stroke;stroke-width:1.5;cursor:pointer;fill-opacity:.08;outline:none}.drawing-stage path:hover,.drawing-stage path:focus,.drawing-stage path.selected{stroke:var(--warn)!important;stroke-width:3;fill-opacity:.22}.model-stage canvas{display:block;width:100%;height:100%;touch-action:none}.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;pointer-events:none;gap:7px;color:var(--muted)}.empty-state strong{font-size:13px;font-weight:500;color:#bccdde}.empty-state p{font-size:11px;max-width:260px}.empty-glyph{font-size:60px;color:#3f657b;line-height:1.1;margin-bottom:10px}.empty-cube{font-size:90px;line-height:1;color:#3e6c7f;font-family:Georgia,serif;margin-bottom:7px;text-shadow:9px 7px 0 #1c3f54}.panel-foot{min-height:36px;padding:9px 12px;display:flex;align-items:center;gap:13px;color:var(--muted);font-size:9px;border-top:1px solid var(--line);flex-wrap:wrap}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.legend-dot.ready{background:var(--teal)}.legend-dot.invalid{background:var(--error)}.axis-label{margin-left:auto;font-family:Consolas,monospace;color:var(--blue)}.viewer-error{position:absolute;inset:0;padding:30px;display:grid;place-items:center;text-align:center;color:var(--warn);background:#101c28ed;font-size:13px;z-index:2}.model-badge{position:absolute;left:12px;top:12px;font-size:10px;border:1px solid var(--cb-blue);background:#112c32e8;border-radius:5px;padding:4px 8px;color:#a5ebdf;pointer-events:none}.model-badge.stale{background:#3c2d1ce8;color:var(--warn);border-color:#785931}.command-panel{padding:16px}.command-title{display:flex;gap:10px;align-items:center;margin-bottom:12px}.assistant-mark{width:30px;height:30px;display:grid;place-items:center;color:var(--teal);background:var(--cb-blue-soft);border-radius:8px;font-size:18px}.command-title h2{font-size:12px}.command-title p{font-size:10px;color:var(--muted);margin-top:2px}.command-title button{margin-left:auto;font-size:11px;padding:4px 10px;white-space:nowrap}.command-panel form{display:flex;gap:10px}.command-panel form input{font-size:12px;padding:11px}.command-panel form button{white-space:nowrap;font-size:12px}.command-panel>.hint{margin-top:8px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.object-inspector,.report-list{min-height:132px;max-height:228px;overflow-y:auto;padding:13px 15px}.object-inspector dl{display:grid;grid-template-columns:80px minmax(0,1fr);font-size:11px;margin:0;gap:6px 10px}.object-inspector dt{color:var(--muted)}.object-inspector dd{margin:0;overflow-wrap:anywhere;font-family:Consolas,"Microsoft YaHei",monospace}.object-edit{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:end;border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.object-edit label{font-size:10px;color:var(--muted)}.object-edit input{font-size:11px;padding:5px;margin-top:3px}.object-edit button{font-size:10px;padding:5px;min-height:31px}.report-row{display:grid;grid-template-columns:43px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--cb-line);font-size:10px}.report-row:last-child{border:0}.report-row span{align-self:start}.report-row strong{font-weight:500;overflow-wrap:anywhere;display:block;font-family:Consolas,"Microsoft YaHei",monospace}.report-row p{color:var(--muted);overflow-wrap:anywhere}.status-modeled{color:var(--teal)}.status-ignored{color:var(--muted)}.status-failed{color:var(--error)}.export-panel{padding:16px}.export-panel h2{font-size:12px}.export-panel>label{display:block;margin:13px 0 7px;font-size:11px;color:var(--muted)}.export-panel label strong{font-weight:500;color:var(--cb-text)}.export-panel>input{max-width:470px;font-size:12px}.export-actions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}.export-actions button{font-size:11px;min-height:33px}.export-actions [data-export=zip]{border-color:var(--cb-blue);color:var(--cb-blue-ink)}.export-actions .hint{margin-left:auto}footer{padding:22px 0;color:var(--cb-text-muted);font-size:10px;display:flex;gap:20px;justify-content:space-between;letter-spacing:.2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.drawing-stage,.model-stage{height:450px}.workspace{grid-template-columns:320px minmax(0,1fr)}}
@media(max-width:1180px){main{padding:22px 18px 0}.topbar{padding:0 18px}.workspace{grid-template-columns:270px minmax(0,1fr);gap:14px}.control-section{padding:15px}.preview-grid{grid-template-columns:1fr}.drawing-stage{height:245px}.model-stage{height:350px}.detail-grid{grid-template-columns:1fr}.results{gap:14px}}
@media(max-width:760px){.topbar{height:60px}.top-tag{display:none}.topbar nav{font-size:11px}.page-heading{align-items:start;flex-direction:column;gap:12px}h1{font-size:23px}.subtitle{font-size:12px}.workspace{grid-template-columns:1fr}.controls{display:grid;grid-template-columns:1fr 1fr}.controls>section{border-bottom:0;border-right:1px solid var(--line)}.controls fieldset{display:contents}.controls fieldset>.control-section:last-child{grid-column:1/-1;border-top:1px solid var(--line)}.parameter-row,.parameter-head{grid-template-columns:60px 1fr 1fr}.preview-grid{grid-template-columns:1fr 1fr}.drawing-stage,.model-stage{height:300px}.panel-heading{padding:10px;gap:4px}.panel-heading .muted{font-size:9px}.view-tools{gap:4px}.view-tools button{font-size:9px;padding:3px 5px}.detail-grid{grid-template-columns:1fr 1fr}footer{flex-direction:column;gap:4px}}
@media(max-width:520px){main{padding:18px 12px 0}.topbar{padding:0 13px}.controls{display:block}.controls>section{border-right:0;border-bottom:1px solid var(--line)}.controls fieldset{display:block}.controls fieldset>.control-section:last-child{border-top:0}.control-section{padding:17px}.preview-grid,.detail-grid{grid-template-columns:1fr}.drawing-stage{height:270px}.model-stage{height:330px}.panel-heading{padding:12px 14px}.command-panel form{flex-wrap:wrap}.command-panel form input{width:100%}.command-panel form button{width:100%}.command-title p{max-width:230px}.command-title button{align-self:flex-start}.export-actions .hint{margin-left:0;width:100%}.export-actions button{flex:1;min-height:40px}.example-row button{min-height:36px}.layer-row select,.mode-switch button{min-height:40px}}
.service-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.service-controls button{font-size:11px;white-space:nowrap}.access-panel{border:1px solid var(--cb-line);border-radius:8px;background:var(--panel);padding:16px;margin-bottom:18px;display:flex;align-items:center;gap:18px}.access-panel>div{flex:1;min-width:0}.access-panel form{display:flex;gap:8px;min-width:0}.access-panel form button{white-space:nowrap}.access-panel input{max-width:240px}.control-section,.preview-panel,.detail-panel,.command-title>div{min-width:0}.object-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.object-edit label{min-width:0}.dropzone[aria-disabled=true]{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.access-panel{align-items:stretch;flex-direction:column}.access-panel input{max-width:none;flex:1}.service-controls{width:100%;justify-content:space-between}.preview-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.preview-grid,.detail-grid{grid-template-columns:minmax(0,1fr)}.access-panel form{flex-wrap:wrap}.access-panel input,.access-panel form button{width:100%;flex:auto}.view-tools button,.icon-button,.object-edit button{min-height:40px}.parameter-row input,.object-edit input{min-height:40px}}
.project-panel{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:16px 19px;margin-bottom:18px}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.project-heading h2{margin-bottom:3px}.project-heading>span{max-width:45%;text-align:right;overflow-wrap:anywhere}.project-actions{display:flex;gap:9px;align-items:end;margin-top:12px;flex-wrap:wrap}.project-actions>button,.button-link{font-size:11px;white-space:nowrap}.project-name{font-size:11px;color:var(--muted);flex:1;min-width:200px;max-width:370px}.project-name input{margin-top:4px;font-size:12px}.button-link{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);background:var(--raised);border-radius:7px;color:var(--ink);min-height:38px;padding:7px 12px;cursor:pointer}.button-link:hover{border-color:var(--teal)}.button-link[aria-disabled=true]{opacity:.42;cursor:not-allowed}.project-library{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.project-library>summary{cursor:pointer;font-size:11px;color:var(--muted);width:fit-content}.project-library-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.project-library-grid>div{min-width:0}.project-picker{display:flex;gap:7px}.project-picker select{min-width:0;flex:1}.project-picker button{font-size:11px;white-space:nowrap;padding:7px 10px}.project-package{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}.project-package>button{font-size:11px}.package-upload{position:relative;overflow:hidden}.package-upload:focus-within{outline:2px solid var(--teal);outline-offset:3px}.package-upload input{position:absolute;width:1px;height:1px;opacity:0;padding:0;border:0}.project-package>.hint{flex:1;min-width:220px}.command-diff{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}.command-diff-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(70px,1fr) 18px minmax(70px,1fr);gap:8px;align-items:center;font-size:11px;padding:6px 0;overflow-wrap:anywhere}.command-diff-row .before{color:var(--muted)}.command-diff-row .after{color:var(--teal)}#curveTolerance{max-width:140px;font-size:12px}#curveToleranceHint{margin-top:5px}
@media(max-width:760px){.project-panel{padding:15px}.project-library-grid{grid-template-columns:1fr;gap:0}.project-actions .button-link{margin-left:0}.project-heading{align-items:start}.project-name{max-width:none}}
@media(max-width:520px){.project-heading{flex-direction:column;gap:5px}.project-heading>span{max-width:none;text-align:left}.project-name{flex-basis:100%}.project-actions>button{flex:1}.project-actions>.button-link{width:100%}.project-picker{flex-wrap:wrap}.project-picker select{flex-basis:100%}.project-picker button{flex:1}.project-package>.button-link,.project-package>button{flex:1}.command-diff-row{grid-template-columns:minmax(85px,1fr) minmax(45px,1fr) 12px minmax(45px,1fr);gap:5px}}
.operation-progress{display:flex;gap:12px;align-items:center;padding:10px 14px;margin-bottom:16px;background:var(--cb-blue-soft);border:1px solid var(--cb-blue);border-radius:7px;font-size:12px}.operation-progress progress{width:100px;accent-color:var(--teal)}.operation-progress>span{flex:1}.operation-progress button{font-size:11px}.scan-panel{background:var(--panel);border:1px solid var(--cb-line);border-radius:10px;margin-bottom:18px;overflow:hidden}.scan-grid{display:grid;grid-template-columns:minmax(190px,.6fr) minmax(0,1.4fr);gap:18px;padding:16px}.scan-grid>div{min-width:0}.scan-layer-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}.scan-layer-actions button,.scan-footer button{font-size:11px}.scan-layers{max-height:360px;overflow:auto;margin-top:9px}.scan-layer-row{display:flex;gap:7px;align-items:center;padding:6px;border-bottom:1px solid var(--line);font-size:11px;overflow-wrap:anywhere}.scan-layer-row span{flex:1}.scan-layer-row small{color:var(--muted)}#scanSvg{width:100%;height:250px;background:#0c1521;touch-action:none;border:1px solid var(--line)}#scanSvg path{fill:none;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}#scanSvg path.active{stroke:var(--teal)}.selection-rectangle{fill:#52dbc333;stroke:var(--teal);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.scan-bounds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.scan-bounds label{font-size:10px;color:var(--muted)}.scan-bounds input{padding:5px;font-size:11px}.scan-footer{display:flex;align-items:center;gap:15px;padding:12px 16px;border-top:1px solid var(--line)}.scan-footer .hint{flex:1}.drawing-tools{display:flex;gap:6px;padding:8px 10px;align-items:center;border-bottom:1px solid var(--line)}.drawing-tools select{flex:1;min-width:70px;font-size:10px;padding:5px}.drawing-tools button{font-size:10px;padding:4px 6px;min-height:30px;white-space:nowrap}#drawingSvg{touch-action:none}#drawingSvg path.build-excluded{stroke-dasharray:4 4;opacity:.35;fill:none}#drawingSvg path.picked{stroke:var(--warn)!important;stroke-width:3;fill-opacity:.12}#drawingSvg path.material-fill{fill-opacity:.3;stroke:none;pointer-events:none}#drawingSvg .diagnostic-mark{fill:var(--error);stroke:var(--cb-red-soft);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.selection-panel,.diagnostic-panel,.dimension-panel{border:1px solid var(--line);background:var(--panel);border-radius:10px;overflow:hidden}.selection-panel{padding:15px}.selection-actions,.group-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0}.selection-actions button,.group-actions button{font-size:11px;min-height:32px}.selection-groups{border-top:1px solid var(--line);margin-top:12px;padding-top:9px}.selection-groups summary{font-size:11px;color:var(--muted);cursor:pointer}.group-actions input,.group-actions select{max-width:190px;font-size:11px}.diagnostic-list{max-height:210px;overflow:auto;padding:10px 14px}.diagnostic-row{display:flex;width:100%;text-align:left;gap:12px;align-items:start;margin-bottom:7px;padding:8px 10px;background:var(--cb-panel-soft);font-size:11px}.diagnostic-row>span{flex:1;white-space:normal;overflow-wrap:anywhere}.diagnostic-row .error{color:var(--error)}.diagnostic-row .warning{color:var(--warn)}.diagnostic-row small{display:block;color:var(--muted)}.dimension-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:17px;padding:14px 16px}.dimension-grid>div{min-width:0}.dimension-list{max-height:250px;overflow:auto;margin-bottom:8px}.dimension-item{display:block;width:100%;text-align:left;margin-bottom:7px;font-size:11px;overflow-wrap:anywhere}.dimension-item[aria-pressed=true]{border-color:var(--teal);background:var(--cb-blue-soft)}.dimension-item small{display:block;color:var(--muted)}.dimension-bind-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.dimension-bind-controls label{font-size:10px;color:var(--muted)}.dimension-bind-controls select{margin-top:3px;font-size:11px;padding:6px}.dimension-bind-controls button{align-self:end;font-size:11px}.dimension-bindings{max-height:155px;overflow:auto}.dimension-binding{display:flex;gap:7px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:10px}.dimension-binding span{flex:1;overflow-wrap:anywhere}.dimension-binding button{font-size:10px;min-height:28px;padding:3px 6px}
@media(max-width:760px){.scan-grid{grid-template-columns:1fr}.scan-layers{max-height:170px}.dimension-grid{grid-template-columns:1fr}.drawing-tools{flex-wrap:wrap}.drawing-tools select{flex-basis:100%}.scan-footer{align-items:stretch;flex-direction:column}.group-actions input,.group-actions select{max-width:none;flex:1;min-width:130px}.operation-progress progress{width:50px}}
@media(max-width:520px){.scan-bounds{grid-template-columns:1fr 1fr}.selection-actions button{flex:1}.dimension-bind-controls{grid-template-columns:1fr}.operation-progress{gap:7px}.operation-progress progress{width:30px}}
#drawingSvg path:not(.material-fill){fill:none}.scan-layer-row input{flex:none}.dimension-panel .panel-heading h2,.scan-panel .panel-heading h2{white-space:normal}.scan-panel .panel-heading>div{min-width:0}.scan-panel .panel-heading>button{flex:none}
:where(.section-property-card) { padding: 12px 0; border-bottom: 1px solid var(--cb-line); }
:where(.section-property-card) dl { display: grid; grid-template-columns: minmax(100px, .7fr) 1fr; gap: 6px 18px; margin-bottom: 5px; }
:where(.section-property-card) dt { color: var(--cb-text-muted); }
:where(.section-property-card) dd { margin: 0; overflow-wrap: anywhere; }
/* Shared workbench controls; the CAD canvas keeps its drawing contrast. */
body { font-size: var(--cb-fs-md); }
button, input, select, .button-link { border-radius: var(--cb-radius-sm); }
.button-primary { color: var(--cb-on-accent); }
.button-primary:hover:enabled { color: var(--cb-on-accent); }
.notice { color: var(--cb-text); }
.mode-switch button[aria-pressed=true] { color: var(--cb-blue-ink); }
.selection-rectangle { fill: var(--cb-blue-soft); }
.empty-state { color: #a2b2c4; }
.drawing-stage .empty-state strong, .model-stage .empty-state strong { color: #bccdde; }
.model-badge { color: #a5ebdf; }
.viewer-error { color: #ffc17e; }
