.canvas-task-state .workspace-early-backdrop{position:absolute;inset:var(--space-0);width:100%;height:100%;object-fit:contain;filter:blur(var(--preview-backdrop-blur));opacity:var(--opacity-preview-backdrop);pointer-events:none;mix-blend-mode:multiply}.progress-card{position:relative;box-sizing:border-box;width:min(var(--workspace-progress-card-width),100%);padding:var(--space-5);border:var(--border-width) solid var(--color-border-default);border-radius:var(--radius-card);background:var(--color-bg-panel);box-shadow:var(--workspace-toolbar-shadow);color:var(--color-text-primary);text-align:start}.progress-card ol{display:grid;gap:var(--space-3);margin:var(--space-0);padding:var(--space-0);list-style:none}.progress-card li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--space-3);row-gap:var(--space-2);font-size:var(--text-small)}.progress-step-icon{display:grid;place-items:center;box-sizing:border-box;width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full)}.progress-card .progress-step-icon svg{width:var(--space-3);height:var(--space-3)}.progress-card [data-state=done] .progress-step-icon{background:var(--color-success-bg);color:var(--color-success-text)}.progress-card [data-state=active] .progress-step-icon{background:var(--color-action-primary-soft);color:var(--color-action-primary)}.progress-card [data-state=waiting] .progress-step-icon{border:var(--space-half) solid var(--color-border-field)}.progress-card [data-state=active] .progress-step-name{font-weight:var(--weight-ui)}.progress-card [data-state=waiting]{color:var(--color-text-secondary)}.progress-step-status{color:var(--color-text-secondary);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.progress-turnstile{display:flex;justify-content:center;margin-block-start:var(--space-4)}.progress-turnstile:empty{display:none}.progress-turnstile-hint{margin-block-start:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-caption);text-align:center}.progress-turnstile:not([data-interactive])+.progress-turnstile-hint{display:none}.progress-step-detail{grid-column:2 / -1;color:var(--color-text-secondary);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.progress-step-track{grid-column:2 / -1;position:relative;height:var(--workspace-progress-height);overflow:hidden;border-radius:var(--radius-full);background:var(--color-progress-track)}.progress-step-track>span{position:absolute;inset-block:0;inset-inline-start:0;border-radius:inherit;background:var(--color-action-primary)}.progress-step-track.is-indeterminate>span{width:35%;animation:progress-card-sweep var(--motion-progress-sweep) var(--motion-ease) infinite alternate}@keyframes progress-card-sweep{0%{transform:translate(-10%)}to{transform:translate(200%)}}.progress-card footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border-divider)}.progress-card footer button{flex-shrink:0;white-space:nowrap}.progress-card footer p{margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-caption);line-height:var(--line-caption)}.progress-card.is-failed h2{margin:var(--space-0);font-size:var(--text-body-small);font-weight:var(--weight-ui)}.app-shell .canvas-task-state:has(>.progress-card){position:relative;display:grid;place-items:center;width:100%;max-width:none;height:100%;padding:var(--space-6);box-sizing:border-box}.app-shell .canvas-upload-overlay{background:var(--color-bg-page)}.app-shell .canvas-drop-hint{position:absolute;inset:var(--space-3);z-index:var(--z-progress);display:grid;place-content:center;justify-items:center;gap:var(--space-2);border:var(--space-half) dashed var(--color-action-primary);border-radius:var(--radius-soft);background:var(--color-action-primary-softer);color:var(--color-action-primary);pointer-events:none}.app-shell .canvas-drop-hint p{margin:var(--space-0);color:var(--color-text-primary);font-size:var(--text-title-xs);font-weight:var(--weight-ui)}.inspector-skeleton{display:flex;flex-direction:column;min-height:0;color:var(--color-text-secondary)}.inspector-skeleton>header{display:flex;align-items:center;height:var(--space-12);padding:var(--space-0) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-divider);color:var(--color-text-primary);font-size:var(--text-body-small);font-weight:var(--weight-ui)}.inspector-skeleton-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.inspector-skeleton-body hr{width:100%;margin:var(--space-1) var(--space-0);border:0;border-top:var(--border-width) solid var(--color-border-divider)}.inspector-skeleton-body p{margin:var(--space-2) var(--space-0) var(--space-0);font-size:var(--text-caption);line-height:var(--line-caption)}.skeleton-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-0)}.skeleton-bar{display:block;height:var(--space-3);border-radius:var(--skeleton-radius);background:var(--color-skeleton)}.skeleton-bar.is-short{width:40%}.skeleton-bar.is-hero{width:75%;height:var(--space-7)}.skeleton-bar.is-label{width:35%}.skeleton-bar.is-value{width:25%;height:var(--space-4)}.skeleton-bar.is-field{width:100%;height:var(--control-height);border-radius:var(--radius-small)}.app-shell .inspector-dock:has(.inspection-panel)>.inspector-skeleton{display:none}@media(min-width:768px)and (pointer:fine),(min-width:1025px){body.cad-app-page .app-shell .workspace-body{grid-template-columns:minmax(0,1fr) var(--workspace-inspector-width);gap:var(--space-0);padding:var(--space-0);background:var(--color-bg-page)}body.cad-app-page .app-shell .model-stage,body.cad-app-page .app-shell .structure-dock:empty+.model-stage{grid-column:1;grid-row:1}body.cad-app-page .app-shell .model-stage>.viewport,body.cad-app-page .app-shell .workspace-viewer-slot>.viewport{border:0;border-radius:var(--radius-none)}body.cad-app-page .app-shell .structure-dock:not(:empty){position:absolute;z-index:var(--z-canvas-overlay);top:var(--space-3);left:var(--space-3);bottom:calc(var(--viewer-toolbar-height, var(--space-16)) + var(--space-8));width:var(--workspace-structure-width);min-width:var(--space-0);max-width:none;border:var(--border-width) solid var(--color-border-default);border-radius:var(--popover-radius);background:var(--color-bg-panel);box-shadow:var(--popover-shadow)}body.cad-app-page .app-shell .structure-dock:empty{display:none}body.cad-app-page .app-shell .inspector-dock,body.cad-app-page .app-shell .inspector-dock:not(:empty){position:relative;inset:auto;z-index:auto;display:flex;flex-direction:column;grid-column:2;grid-row:1;width:var(--workspace-inspector-width);min-width:var(--space-0);max-width:none;max-height:none;min-height:0;overflow:auto;border:0;border-inline-start:var(--border-width) solid var(--color-border-default);border-radius:var(--radius-none);background:var(--color-bg-panel);box-shadow:none}body.cad-app-page .app-shell .inspector-dock>.inspection-panel{flex:1;height:auto}body.cad-app-page .app-shell .inspector-dock:has(.inspection-panel.is-collapsed){width:var(--control-height-touch)}body.cad-app-page .app-shell:has(.inspection-panel.is-collapsed) .workspace-body{grid-template-columns:minmax(0,1fr) var(--control-height-touch)}}@media(prefers-reduced-motion:reduce){.progress-step-track.is-indeterminate>span{animation:none;width:100%;opacity:var(--opacity-disabled)}}.app-shell .model-stage:has(>.workspace-start)>.workspace-tools{display:none}.app-shell .workspace-start{display:grid;align-content:center;justify-items:center;gap:var(--space-5);width:min(var(--workspace-empty-width),calc(100% - var(--space-8)));margin:auto;padding:var(--space-6) var(--space-0)}body .app-shell .workspace-start .workspace-dropzone{display:grid;justify-items:center;gap:var(--space-2);width:100%;min-height:var(--space-0);padding:var(--space-8) var(--space-6);border:var(--space-half) dashed var(--color-border-field);border-radius:var(--radius-soft);background:var(--color-bg-panel);box-shadow:none;text-align:center;cursor:pointer}body .app-shell .workspace-start .workspace-dropzone[data-dragging]{border-color:var(--color-action-primary);background:var(--color-action-primary-softer)}body .app-shell .workspace-start h2{margin:var(--space-0);font-family:var(--body-font);font-size:var(--text-title-xs);font-weight:var(--weight-ui)}.app-shell .workspace-start p,.app-shell .workspace-start small{margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-small)}.workspace-format-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1);margin:var(--space-2) var(--space-0) var(--space-0);padding:var(--space-0);list-style:none}.workspace-format-chips li{padding:var(--space-half) var(--space-2);border-radius:var(--radius-label);background:var(--color-bg-subtle);color:var(--color-text-body);font-size:var(--text-tiny);font-weight:var(--weight-ui)}.workspace-dropzone .entry-format-more{color:var(--color-action-primary)}.app-shell .workspace-dropzone .entry-format-all p{margin-top:var(--space-2);font-size:var(--text-caption);line-height:var(--line-caption)}.workspace-recent{width:100%}.workspace-recent h3{margin:var(--space-0) var(--space-0) var(--space-2);color:var(--color-text-secondary);font-size:var(--text-caption);font-weight:var(--weight-ui)}.workspace-recent>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}body .app-shell .workspace-recent button{display:grid;gap:var(--space-2);min-height:var(--space-0);padding:var(--space-2);border:var(--border-width) solid var(--color-border-default);border-radius:var(--radius-card);background:var(--color-bg-panel);font-size:var(--text-caption);text-align:start}.workspace-recent button .library-thumbnail{width:100%;height:var(--space-16)}.workspace-recent button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-start-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-6)}body .app-shell .workspace-sample{display:inline-flex;align-items:center;gap:var(--space-2);border:0;background:transparent;color:var(--color-action-primary);font-size:var(--text-small);font-weight:var(--weight-ui)}body .app-shell .batch-workspace{gap:var(--space-4);padding:var(--space-6) var(--space-8)}.batch-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}body .app-shell .batch-toolbar :is(button,select,input){min-height:var(--control-height);padding-block:var(--space-0);border-radius:var(--radius-small);font-size:var(--text-small)}body .app-shell .batch-toolbar .batch-density-input{width:var(--space-24)}.batch-counts{margin-inline-start:auto;color:var(--color-text-secondary);font-size:var(--text-caption);font-variant-numeric:tabular-nums}body .app-shell .batch-table-scroll{border:var(--border-width) solid var(--color-border-default);border-radius:var(--radius-card);background:var(--color-bg-panel)}body .app-shell .batch-workspace table{font-variant-numeric:tabular-nums}body .app-shell .batch-workspace :is(thead th,tfoot th,tfoot td){padding:var(--space-2) var(--space-3);background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:var(--text-caption)}body .app-shell .batch-workspace tbody :is(th,td){height:var(--batch-row-height);background:transparent;padding:var(--space-0) var(--space-3);border-top:var(--border-width) solid var(--color-border-hairline);font-size:var(--text-small)}body .app-shell .batch-workspace tfoot :is(th,td){border-top:var(--border-width) solid var(--color-border-divider);color:var(--color-text-primary);font-weight:var(--weight-ui)}.batch-file{display:block;font-weight:var(--weight-ui)}.batch-reason{display:block;color:var(--color-danger-text);font-size:var(--text-caption);font-weight:var(--weight-regular)}.batch-empty{color:var(--color-text-faint)}.batch-status{display:block;font-size:var(--text-caption)}.batch-progress{position:relative;display:block;width:var(--batch-progress-width);height:var(--batch-progress-height);margin-top:var(--space-1);overflow:hidden;border-radius:var(--radius-full);background:var(--color-progress-track)}.batch-progress>span{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-success-dot)}.batch-progress[data-state=failed]>span{background:var(--color-danger-text)}.batch-progress.is-indeterminate>span{width:35%;background:var(--color-action-primary);animation:progress-card-sweep var(--motion-progress-sweep) var(--motion-ease) infinite alternate}body .app-shell .batch-actions{display:flex;justify-content:flex-end;gap:var(--space-1)}body .app-shell .batch-actions button{min-height:var(--control-height-compact);padding:var(--space-0) var(--space-2);border-radius:var(--radius-segment);font-size:var(--text-caption)}body .app-shell .batch-dropzone{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:var(--batch-dropzone-height);padding:var(--space-0) var(--space-4);border:var(--space-half) dashed var(--color-border-field);border-radius:var(--radius-card);background:transparent;color:var(--color-text-secondary);font-size:var(--text-small);cursor:pointer}body .app-shell .batch-dropzone.is-empty{min-height:calc(var(--batch-dropzone-height) * 3)}.batch-dropzone .upload-folder-icon,.batch-dropzone img{width:var(--space-8);height:var(--space-8)}.batch-note{margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-caption)}body .app-shell .comparison-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:var(--border-width) solid var(--color-border-default);background:var(--color-bg-panel);font-size:var(--text-small)}body .app-shell .comparison-bar :is(button,select){min-height:var(--control-height);border-radius:var(--radius-small);font-size:var(--text-small)}.comparison-sync{display:inline-flex;align-items:center;gap:var(--space-2)}.comparison-sync input{accent-color:var(--color-action-primary)}body .app-shell .model-badge.model-a{background:var(--color-action-primary);color:var(--color-action-on-primary)}body .app-shell .model-badge.model-b{background:var(--color-compare-b);color:var(--color-action-on-primary)}@media(min-width:768px)and (pointer:fine),(min-width:1025px){body.cad-app-page .app-shell:has(.comparison-bar) .workspace-body{grid-template-columns:minmax(0,1fr) var(--workspace-compare-panel-width)}body.cad-app-page .app-shell:has(.comparison-bar) .inspector-dock{width:var(--workspace-compare-panel-width)}body.cad-app-page .app-shell .model-stage.two-models{gap:var(--space-3);padding:var(--space-3) var(--space-3) calc(var(--viewer-toolbar-height, var(--space-16)) + var(--space-6));background:var(--color-bg-page)}body.cad-app-page .app-shell .model-stage.two-models>*{overflow:hidden;border:var(--border-width) solid var(--color-border-default);border-radius:var(--radius-card);background:var(--color-canvas-compare)}}.comparison-results{display:grid;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-4) var(--space-4) var(--space-0);border-top:var(--border-width) solid var(--color-border-divider)}.comparison-results h3{margin:var(--space-0);font-size:var(--text-body-small);font-weight:var(--weight-ui)}.comparison-summary,.comparison-note{margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-caption)}.comparison-results table{width:100%;border-collapse:collapse;font-size:var(--text-caption);font-variant-numeric:tabular-nums;table-layout:fixed}.comparison-results th:nth-child(2),.comparison-results th:nth-child(3){width:var(--compare-col-value)}.comparison-results th:nth-child(4){width:var(--compare-col-delta)}.comparison-results :is(th,td){padding:var(--space-2) var(--space-1);border-bottom:var(--border-width) solid var(--color-border-hairline);text-align:end}.comparison-results :is(th,td):first-child{text-align:start}.comparison-results tbody th{font-weight:var(--weight-regular)}.comparison-results tbody th small{margin-inline-start:var(--space-1);color:var(--color-text-secondary)}.comparison-results tr.is-different{background:var(--color-action-primary-softer)}.comparison-results [data-direction=down]{color:var(--color-danger-text)}.comparison-results [data-direction=up]{color:var(--color-success-text)}.comparison-results [data-direction=same]{color:var(--color-text-faint)}body .app-shell .drawing-canvas{background-color:var(--color-canvas-drawing);background-image:linear-gradient(var(--color-border-hairline) var(--border-width),transparent var(--border-width)),linear-gradient(90deg,var(--color-border-hairline) var(--border-width),transparent var(--border-width));background-size:var(--drawing-grid-size) var(--drawing-grid-size)}body .app-shell .drawing-canvas[data-background=dark]{background-color:var(--color-canvas-drawing-dark);background-image:linear-gradient(var(--color-canvas-drawing-dark-grid) var(--border-width),transparent var(--border-width)),linear-gradient(90deg,var(--color-canvas-drawing-dark-grid) var(--border-width),transparent var(--border-width))}.app-shell .drawing-canvas[data-background=dark] :is(.drawing-scene-layer,img){filter:invert(1) hue-rotate(180deg)}.app-shell .inspector-dock:has(.inspection-panel-content)>.inspector-skeleton{display:none}@media(max-width:767px),(pointer:coarse)and (max-width:1024px){.app-shell .workspace-body:has(.workspace-start)>.inspector-dock{border:0;box-shadow:none}.app-shell .inspector-dock>.inspector-skeleton{display:none}.app-shell .workspace-tools-placeholder .tool-group:nth-child(2)>button:nth-child(3),.app-shell .workspace-tools-placeholder .tool-group:nth-child(3)>button:nth-child(3){display:none}body .app-shell .workspace-tools .workspace-tools-placeholder .tool-group{display:contents}.app-shell .workspace-start{width:calc(100% - var(--space-6))}.workspace-recent>div{grid-template-columns:repeat(2,minmax(0,1fr))}body .app-shell .batch-workspace{padding:var(--space-4)}.batch-counts{flex-basis:100%;margin-inline-start:var(--space-0)}}.workspace-insights{margin-block-start:var(--space-6);padding:var(--space-4);border-block-start:var(--border-width) solid var(--color-border-divider);color:var(--color-text-secondary);font-size:var(--text-caption);line-height:var(--line-caption)}.workspace-insights h3{margin:var(--space-0) var(--space-0) var(--space-3);color:var(--color-text-primary);font-size:var(--text-body-small)}.workspace-insights p{margin:var(--space-0) var(--space-0) var(--space-3)}.inspector-dock{scrollbar-gutter:stable}.inspector-dock:has(.inspection-panel)>.workspace-insights{display:none}@media(max-width:767px),(pointer:coarse)and (max-width:1024px){.inspector-dock>.workspace-insights{display:none}}
