/* ViSang · shared workbench: identical layout and controls for every vision technique. */
#demo-workspace,.inline-lab .demo-main{container-type:inline-size;container-name:workbench}
.demo-section .lab-intro,.demo-launched .lab-intro{display:block}
.demo-section .demo-section-heading{display:none}
#demo-workspace{flex:0 0 auto!important;display:block!important}
#inline-demo iframe{display:block;width:100%;border:0;min-height:440px}
.demo-grid,.inline-lab .demo-main>.container{display:grid;grid-template-columns:180px minmax(0,1fr) 220px;gap:var(--space-lg);align-items:start;margin:0;padding:0;width:100%;max-width:none;min-height:0}
.inline-lab .demo-layout{display:contents!important}
.demo-input,.inline-lab .inline-toolbar{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-lg);border:0;margin:0;padding:0;min-width:0}
.demo-output,.inline-lab .demo-image-panel{grid-column:2;grid-row:1;align-self:start;width:100%;height:auto;min-width:0;margin:0;padding:var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:none;backdrop-filter:none}
.demo-results,.inline-lab .demo-results-panel{grid-column:3;grid-row:1;display:block;width:100%;padding:var(--space-sm) 0;margin:0;border:0;background:none;box-shadow:none;backdrop-filter:none;min-width:0}
.input-buttons,.inline-lab .inline-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xs);width:100%;margin:0}
.demo-input .button,.inline-lab .inline-actions .button,.inline-lab .inline-camera,.inline-lab .workbench-run{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;min-width:0;min-height:44px;height:auto;padding:var(--space-sm);font-family:var(--font-body);font-size:13px;font-weight:500;line-height:1.3;letter-spacing:0;border:1px solid var(--color-control);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);box-shadow:none;margin:0}
.demo-input .button svg{display:none}
#run-image,.inline-lab #run-image,.inline-lab .workbench-run{background:var(--color-success);color:var(--color-on-dark);border-color:var(--color-success)}
.demo-input .button:hover:not(:disabled),.inline-lab .inline-actions .button:hover:not(:disabled),.inline-lab .inline-camera:hover:not(:disabled){background:var(--color-paper-3);color:var(--color-ink)}
#run-image:hover:not(:disabled),.inline-lab .workbench-run:hover:not(:disabled){background:var(--color-ink);color:var(--color-on-dark)}
.inline-lab .inline-camera .input-tile-icon,.inline-lab h3>i{display:none}
.inline-lab .inline-camera .input-tile-label{font-size:13px;color:inherit;background:none;padding:0;line-height:1.3}
.sample-row,.inline-lab .input-options{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xs);margin:0;width:100%}
.sample-row>span,.inline-lab .inline-sample-label{font-size:12px;font-weight:500;margin:0;min-height:20px;color:var(--color-muted)}
.sample,.inline-lab .example-thumb{display:flex;flex-direction:row;align-items:center;gap:var(--space-xs);width:100%;height:58px;min-height:58px;margin:0;padding:var(--space-2xs);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);transform:none;box-shadow:none}
.sample img,.inline-lab .example-thumb img{position:static;width:64px;height:48px;flex:none;object-fit:cover;border-radius:2px}
.sample>span,.inline-lab .example-thumb .input-tile-label{position:static;padding:0;font-size:12px;font-weight:400;line-height:1.3;white-space:normal;text-align:left;color:var(--color-ink);background:none}
.sample.selected,.inline-lab .example-thumb.selected{border-color:var(--color-success);outline:2px solid var(--color-success);outline-offset:0;padding:var(--space-2xs);background:var(--color-paper-2)}
.demo-output .output-top,.inline-lab .demo-image-panel>h3{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin:0 0 var(--space-xs);padding:0;font-family:var(--font-body);font-size:12px;font-weight:400;letter-spacing:0;line-height:1.4;color:var(--color-ink)}
.demo-output .canvas-stage,.inline-lab .canvas-stage{position:relative;display:flex;align-items:center;justify-content:center;height:360px;min-height:0;max-height:none;margin:0;padding:0;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-paper-2)}
.demo-output .canvas-stage>canvas,.demo-output .canvas-stage>img,.inline-lab .canvas-stage>canvas{position:static;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.demo-output .output-bottom,.inline-lab .inline-output-note{display:flex;align-items:center;justify-content:space-between;min-height:36px;margin:var(--space-xs) 0 0;padding:0;font-size:11px;line-height:1.4;color:var(--color-muted)}
.results-heading,.inline-lab .demo-results-panel>h3{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);min-height:28px;margin:0 0 var(--space-sm);font-family:var(--font-display);font-size:18px;line-height:1.3;color:var(--color-ink)}
.results-heading h3{font-size:18px;margin:0}
#results-state,.inline-results-state{font-family:var(--font-body);font-size:10px;font-weight:400;letter-spacing:.04em;color:var(--color-muted)}
#result-list,.inline-lab .labels-list{display:block;max-height:160px;min-height:24px;overflow:auto;margin:0 0 var(--space-md);font-size:13px;line-height:1.5;color:var(--color-muted)}
.result-item,.inline-lab .label-row{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule);font-size:13px;line-height:1.35}
.result-item>span:last-child,.inline-lab .label-value{margin-left:auto;font-size:12px}
.inline-lab .label-name{font-size:13px}
.metrics,.inline-lab #perf-info-body{display:block;border-top:1px solid var(--color-rule);padding-top:var(--space-sm);margin:0 0 var(--space-lg)}
.metrics div,.inline-lab .kv-row{font-size:13px;line-height:2;padding:0}
.metrics dd,.inline-lab .kv-row .v{font-size:12px}
.inline-settings{display:block;margin:0;padding-top:var(--space-sm);border-top:1px solid var(--color-rule)}
.inline-settings-title{font-size:12px;font-weight:500;line-height:1.5;margin:0 0 var(--space-sm)}
.inline-lab .model-load-progress{margin:var(--space-sm) 0 0;min-height:24px}
.inline-lab .progress-label{font-family:var(--font-body);font-size:12px}
.inline-lab .search-box{display:flex;flex-direction:column;gap:var(--space-xs);margin:0}
.inline-lab .search-input{width:100%;min-height:44px;padding:var(--space-sm);font-family:var(--font-body);font-size:14px;border:1px solid var(--color-control);border-radius:var(--radius-control)}
.inline-lab .query-chips{display:flex;flex-direction:column;gap:var(--space-xs);margin:0}
.inline-lab .query-chip{min-height:40px;font-size:12px;white-space:normal;text-align:left;padding:var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--color-rule);background:var(--color-surface);color:var(--color-ink)}
.inline-lab .search-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs);height:360px;overflow:auto;align-content:start}
.inline-lab .gallery-tile,.inline-lab .gallery-add-tile{aspect-ratio:1.2;height:auto}
.inline-lab .gallery-label{font-size:11px}
.inline-search .demo-results-panel>h3,.inline-search #perf-info-body,.inline-search .labels-list{display:block}
.inline-search .demo-results-panel>h3{display:flex}
@container workbench (max-width:950px){
 .demo-grid,.inline-lab .demo-main>.container{grid-template-columns:minmax(0,1fr) 210px;gap:var(--space-lg)}
 .demo-input,.inline-lab .inline-toolbar{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:170px minmax(0,1fr);align-items:start}
 .sample-row,.inline-lab .input-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs)}
 .sample-row>span,.inline-lab .inline-sample-label{grid-column:1/-1}
 .sample,.inline-lab .example-thumb{height:auto;min-height:80px;flex-direction:column;align-items:stretch}
 .sample img,.inline-lab .example-thumb img{width:100%;height:62px}
 .sample>span,.inline-lab .example-thumb .input-tile-label{text-align:center}
 .demo-output,.inline-lab .demo-image-panel{grid-column:1;grid-row:2}
 .demo-results,.inline-lab .demo-results-panel{grid-column:2;grid-row:2}
 .inline-lab .inline-search-toolbar{grid-template-columns:1fr}
 .inline-lab .query-chips{flex-direction:row;flex-wrap:wrap}
 .inline-lab .search-box{flex-direction:row}.inline-lab .search-box .workbench-run{width:auto;min-width:120px}
}
@container workbench (max-width:600px){
 .demo-grid,.inline-lab .demo-main>.container{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
 .demo-input,.inline-lab .inline-toolbar{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:var(--space-md)}
 .input-buttons,.inline-lab .inline-actions{flex-direction:row;gap:var(--space-xs)}
 .demo-input .button,.inline-lab .inline-actions .button,.inline-lab .inline-camera{flex:1;font-size:12px;padding:var(--space-xs);min-width:0}
 .sample img,.inline-lab .example-thumb img{height:48px}
 .demo-output,.inline-lab .demo-image-panel{grid-column:1;grid-row:2}
 .demo-results,.inline-lab .demo-results-panel{grid-column:1;grid-row:3;display:block}
 .demo-output .canvas-stage,.inline-lab .canvas-stage,.inline-lab .search-gallery{height:240px}
 .inline-lab .search-input{font-size:16px}
}
.demo-output .output-bottom,.inline-lab .inline-output-note{min-height:44px}
.inline-lab .inline-camera .input-tile-label{font-weight:500}
.inline-lab .label-name,.inline-lab .label-value,.inline-lab .kv-row .v{font-weight:400}
.inline-lab .search-gallery{grid-auto-rows:112px}
.inline-lab .gallery-tile,.inline-lab .gallery-add-tile{height:100%;min-height:0;aspect-ratio:auto;position:relative}
.inline-lab .gallery-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inline-lab .gallery-add-tile i{display:none}
.inline-lab .gallery-add-tile:before{content:'+';font-size:24px}
.inline-lab .labels-list,.inline-lab .label-row{background:none}
@container workbench (max-width:600px){.inline-lab .search-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:100px}}
.workbench-result-summary{font-size:13px;line-height:1.5;color:var(--color-muted);margin:0 0 var(--space-md)}
.inline-lab .download-btn i{display:none}
.inline-lab .demo-results-panel .download-btn{min-height:44px;font-size:12px;font-family:var(--font-body);border-radius:var(--radius-control);padding:var(--space-sm)}
