/* Task-first collection and experiment pages, using the existing theme tokens. */
.lab-page{--lab-rule:var(--line);color:var(--ink);font-size:14px;line-height:1.55;min-width:0}
.lab-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:3px 0 27px}.lab-page-head h1{font-size:27px;font-weight:670;letter-spacing:-.6px;margin:0 0 8px}.lab-page-head p{max-width:65ch;margin:0;color:var(--muted);font-size:14px}.lab-page .btn{min-height:40px;font-size:13px;box-shadow:none}.lab-page .btn:hover{box-shadow:none}.lab-page .btn.small{min-height:36px;font-size:12px}.lab-page .input{min-width:0;width:100%;min-height:42px;font-size:14px}.lab-page .field{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--ink);margin:0}.lab-page .field small{font-size:12px;color:var(--muted);line-height:1.6}.lab-page .field textarea{resize:vertical;min-height:94px}.lab-section{border:1px solid var(--lab-rule,var(--line));border-radius:10px;background:var(--surface);padding:24px;margin-bottom:20px;min-width:0;box-shadow:none}.lab-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.lab-section h2,.lab-section-head h2{font-size:18px;line-height:1.5;font-weight:650;margin:0}.lab-section-head p{font-size:13px;color:var(--muted);margin:5px 0 0;max-width:70ch}.lab-section-title{display:flex;align-items:flex-start;gap:12px}.lab-step{display:grid;place-items:center;background:var(--surface-alt);border:1px solid var(--line);border-radius:6px;width:28px;height:28px;font-size:13px;font-weight:650;flex:none;margin-top:1px}.lab-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lab-form-grid:has(>.field:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.lab-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:21px}.lab-note{font-size:12px;line-height:1.75;color:var(--muted);margin:10px 0 0;max-width:80ch}.lab-form-footer>.lab-note{margin:0}.lab-advanced{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.lab-advanced summary{cursor:pointer;font-size:13px;color:var(--ink);font-weight:600;line-height:1.6}.lab-advanced[open]>summary{margin-bottom:16px}.lab-advanced p{overflow-wrap:anywhere}.lab-check-options{display:flex;flex-wrap:wrap;gap:22px;margin-top:15px;font-size:13px}.lab-check-options label{display:flex;align-items:center;gap:8px}.lab-check-options input,.lab-select input{accent-color:var(--blue);width:17px;height:17px;flex:none}.lab-device-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(230px,1fr);gap:28px}.lab-device-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.lab-device-title h3{font-size:15px;margin:0;font-weight:620}.lab-device-title>span{font-size:12px;color:var(--muted)}.lab-viewfinder{aspect-ratio:16/9;background:var(--surface-alt);border:1px solid var(--line);border-radius:7px;overflow:hidden;display:grid;place-items:center}.lab-viewfinder video{width:100%;height:100%;object-fit:contain;display:block}.lab-camera-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:22px;color:var(--muted);max-width:430px}.lab-camera-empty>.icon{width:34px;height:34px;stroke-width:1.3}.lab-camera-empty strong{font-size:14px;color:var(--ink);font-weight:550}.lab-camera-empty p{font-size:12px;margin:0;line-height:1.75}.lab-device-actions{display:flex;gap:9px;flex-wrap:wrap;margin:15px 0 9px}.lab-audio{padding-left:27px;border-left:1px solid var(--line);display:flex;flex-direction:column}.lab-audio-body{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:18px 0;gap:15px}.lab-audio-body>.icon{width:34px;height:34px;stroke-width:1.3;color:var(--muted)}.lab-audio-body strong{font-size:16px;font-weight:600}.lab-audio-body p{font-size:13px;color:var(--muted);line-height:1.85;max-width:30ch;margin:0 0 5px}.lab-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lab-count{font-size:13px;color:var(--muted);white-space:nowrap}.lab-filter-bar{display:grid;grid-template-columns:minmax(160px,1.6fr) repeat(3,minmax(100px,1fr));gap:10px;margin-bottom:13px}.lab-search-label{min-width:0}.lab-filter-bar .input{font-size:13px}.lab-selection-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--line)}.lab-selection-bar>[data-lab-selected]{font-size:13px;font-weight:550;margin-right:8px}.lab-selection-bar>.primary{margin-left:auto}.lab-sample-row{display:grid;grid-template-columns:22px 54px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.lab-sample-row:last-child{border-bottom:0;padding-bottom:0}.lab-select{display:grid;place-items:center;min-height:36px;cursor:pointer}.lab-thumbnail{height:50px;width:54px;display:grid;place-items:center;overflow:hidden;background:var(--surface-alt);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0}.lab-thumbnail img{width:100%;height:100%;object-fit:cover}.lab-thumbnail .icon{width:23px;height:23px}.lab-sample-info{min-width:0}.lab-sample-info strong{font-weight:600;font-size:14px;display:block;overflow-wrap:anywhere}.lab-sample-info small{display:block;color:var(--muted);font-size:12px;margin-top:3px;line-height:1.65;overflow-wrap:anywhere}.lab-sample-info small>span{margin:0 5px}.lab-sample-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:12px;margin-top:6px}.lab-quality{display:inline-flex;align-items:center;gap:5px}.lab-quality:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.lab-quality.accepted{color:var(--blue)}.lab-quality.rejected{color:var(--ink)}.lab-empty{padding:36px 22px;text-align:center;color:var(--muted)}.lab-empty strong{font-size:15px;color:var(--ink);font-weight:600;display:block}.lab-empty p{font-size:13px;line-height:1.8;margin:9px auto 16px;max-width:56ch}.lab-empty.compact{padding:16px 10px}.lab-record{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px;padding:21px 0;border-bottom:1px solid var(--line)}.lab-record:first-child{padding-top:0}.lab-record:last-child{border-bottom:0;padding-bottom:0}.lab-record-main{flex:1;min-width:230px}.lab-record-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.lab-record-title h3{font-size:15px;margin:0;font-weight:650;overflow-wrap:anywhere}.lab-record-title>span{font-size:12px;color:var(--muted);white-space:nowrap}.lab-record p{font-size:13px;color:var(--muted);line-height:1.75;margin:6px 0 0;overflow-wrap:anywhere}.lab-record small{font-size:12px;line-height:1.75;color:var(--muted)}.lab-record-footnote{flex-basis:100%;margin-top:-3px!important;font-size:12px!important}.lab-engine-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;border-left:3px solid var(--muted);background:var(--surface-alt);padding:18px 22px;margin-bottom:22px;border-radius:0 6px 6px 0}.lab-engine-status strong{font-size:15px;font-weight:650}.lab-engine-status p{font-size:13px;color:var(--muted);line-height:1.8;margin:6px 0 0;max-width:85ch}.lab-engine-status>.btn{align-self:start}.lab-engine-status>[role=status]{font-size:12px;color:var(--muted);grid-column:1/-1;margin-top:4px}.lab-training-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:20px}.lab-training-form{display:flex;flex-direction:column;gap:20px}.lab-training-form>.lab-section-head{margin-bottom:0}.lab-training-form .lab-form-grid{grid-template-columns:1fr 1fr}.lab-training-form>.lab-form-footer{margin-top:0}.lab-parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lab-parameter-summary{font-size:13px;margin:0;padding:14px 16px;background:var(--surface-alt);border:1px solid var(--line);border-radius:6px;line-height:1.7}.lab-parameter-summary small{font-size:12px;color:var(--muted);display:block;margin-top:5px}.lab-readiness{align-self:start}.lab-readiness>h2{font-size:17px}.lab-readiness ul{list-style:none;padding:0;margin:20px 0}.lab-readiness li{display:flex;gap:11px;padding:14px 0;border-top:1px solid var(--line)}.lab-readiness li strong{font-weight:600;font-size:13px}.lab-readiness li p{font-size:12px;line-height:1.8;color:var(--muted);margin:5px 0 0}.lab-check-mark{flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:21px;height:21px;font-size:12px;color:var(--muted);margin-top:1px}.lab-readiness .ready .lab-check-mark{color:var(--blue);border-color:var(--blue)}.lab-next-step{border-top:1px solid var(--line);padding-top:18px}.lab-next-step strong{font-size:13px;font-weight:650}.lab-next-step p{font-size:12px;line-height:1.8;color:var(--muted);margin:6px 0 15px}.lab-inline-error{background:var(--surface-alt);border:1px solid var(--red);padding:12px 14px;color:var(--ink);font-size:13px;border-radius:5px}.lab-inline-error[hidden]{display:none}.lab-dataset-drawer>summary{font-size:16px;font-weight:600;cursor:pointer;line-height:1.7}.lab-dataset-drawer>summary span{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}.lab-dataset-drawer[open]>summary{margin-bottom:22px}.lab-preview{margin-bottom:18px}.lab-preview img{display:block;max-width:100%;max-height:350px;object-fit:contain;margin:auto;border-radius:6px}.lab-preview audio{width:100%}.lab-preview p{padding:24px;background:var(--surface-alt);color:var(--muted);font-size:13px;text-align:center;line-height:1.8}.lab-details{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;font-size:13px;line-height:1.7}.lab-details dt{color:var(--muted)}.lab-details dd{margin:0;overflow-wrap:anywhere}.lab-page :focus-visible{outline:2px solid var(--blue);outline-offset:3px}.lab-page .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(max-width:1250px){.lab-form-grid:has(>.field:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.lab-device-grid{gap:20px;grid-template-columns:minmax(0,1.5fr) minmax(210px,1fr)}.lab-audio{padding-left:20px}.lab-training-grid{grid-template-columns:minmax(0,1.4fr) minmax(235px,1fr)}.lab-section{padding:21px}.lab-record>.lab-row-actions{flex-basis:100%}.lab-page-head{gap:16px}.lab-page-head .lab-row-actions{justify-content:flex-end}.lab-filter-bar{grid-template-columns:minmax(140px,1.4fr) repeat(3,minmax(95px,1fr))}}
@media(max-width:860px){.lab-training-grid{grid-template-columns:1fr}.lab-readiness{display:block}.lab-form-grid{grid-template-columns:1fr 1fr}.lab-form-grid>.field:last-child:nth-child(3){grid-column:1/-1}.lab-device-grid{grid-template-columns:1fr}.lab-audio{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.lab-audio-body{display:grid;grid-template-columns:34px 1fr auto;gap:12px 16px;padding:9px 0}.lab-audio-body>.icon{grid-row:1/3}.lab-audio-body strong{font-size:14px}.lab-audio-body p{grid-column:2;max-width:none;margin:0;font-size:12px}.lab-audio-body>.btn{grid-column:3;grid-row:1/3}.lab-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-search-label{grid-column:1/-1}.lab-section-head{align-items:flex-start}.lab-sample-row{grid-template-columns:22px 48px minmax(0,1fr);gap:10px}.lab-sample-row>.lab-row-actions{grid-column:3}.lab-thumbnail{width:48px;height:48px}.lab-page-head{flex-direction:column}.lab-page-head .lab-row-actions{justify-content:flex-start}.lab-page-head h1{font-size:25px}}
@media(max-width:520px){.lab-page-head{margin-bottom:22px}.lab-page-head h1{font-size:23px}.lab-page-head p{font-size:13px}.lab-section{padding:16px;margin-bottom:16px;border-radius:8px}.lab-section-head{gap:12px;flex-wrap:wrap;margin-bottom:18px}.lab-section-title{gap:9px}.lab-section h2,.lab-section-head h2{font-size:16px}.lab-section-head p{font-size:12px}.lab-step{width:24px;height:24px;font-size:12px}.lab-form-grid,.lab-form-grid:has(>.field:nth-child(4)),.lab-training-form .lab-form-grid,.lab-parameter-grid{grid-template-columns:1fr}.lab-form-grid>.field:last-child:nth-child(3){grid-column:auto}.lab-form-footer{align-items:flex-start;flex-direction:column;gap:12px}.lab-page .btn,.lab-page .btn.small{min-height:42px;white-space:normal;font-size:12px}.lab-device-actions{gap:8px}.lab-device-actions .btn{flex:1}.lab-filter-bar{grid-template-columns:1fr;gap:8px}.lab-search-label{grid-column:auto}.lab-selection-bar{gap:7px}.lab-selection-bar>[data-lab-selected]{flex-basis:100%}.lab-selection-bar>.primary{margin-left:0;flex-basis:100%}.lab-sample-row{grid-template-columns:20px 40px minmax(0,1fr);gap:9px}.lab-thumbnail{width:40px;height:44px}.lab-sample-info strong{font-size:13px}.lab-sample-info small{font-size:11px}.lab-sample-meta{font-size:11px;gap:7px}.lab-sample-row .lab-row-actions{gap:6px}.lab-sample-row .btn{min-height:36px}.lab-audio-body{grid-template-columns:30px 1fr}.lab-audio-body>.btn{grid-column:1/-1;grid-row:auto;justify-self:start;margin-top:6px}.lab-audio-body>.icon{width:28px}.lab-camera-empty{padding:20px 12px;gap:8px}.lab-camera-empty>.icon{width:27px;height:27px}.lab-camera-empty strong{font-size:12px}.lab-camera-empty p{font-size:11px}.lab-empty{padding:28px 5px}.lab-record-main{min-width:0;flex-basis:100%}.lab-record>.lab-row-actions{gap:7px}.lab-engine-status{grid-template-columns:1fr;padding:16px}.lab-engine-status>.btn{justify-self:start;grid-row:3}.lab-engine-status>[role=status]{grid-column:1}.lab-training-form{gap:18px}.lab-check-options{gap:14px}.lab-details{grid-template-columns:65px minmax(0,1fr)}.lab-training-grid{gap:0}}
@media(prefers-reduced-motion:reduce){.lab-page *{scroll-behavior:auto;transition:none!important}}

/* A single media library, separated by modality; captured files stay in their original storage. */
.lab-library-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:20px}
.lab-library-tab{display:flex;gap:10px;align-items:center;min-height:51px;padding:12px 18px;color:var(--muted);background:transparent;border:0;border-bottom:3px solid transparent;font-size:15px;font-weight:600}
.lab-library-tab .icon{width:18px;height:18px}.lab-library-tab:hover{color:var(--ink);background:var(--surface-alt)}
.lab-library-tab[aria-selected=true]{color:var(--blue);border-bottom-color:var(--blue)}
.lab-library-total{font-size:12px;min-width:22px;font-variant-numeric:tabular-nums;font-weight:500}
.lab-library-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 20px;margin-bottom:23px}
.lab-library-summary h2{margin-right:auto}.lab-library-summary>span{font-size:12px;color:var(--muted)}
.lab-library .lab-library-filters{grid-template-columns:minmax(170px,1.7fr) repeat(2,minmax(110px,1fr))}
.lab-library .lab-selection-bar{padding-bottom:18px;margin-bottom:18px}
.lab-library[data-media=image] #labSampleRows{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.lab-library[data-media=image] .lab-sample-row{grid-template-columns:22px minmax(0,1fr);align-items:start;border:1px solid var(--line);border-radius:7px;padding:14px;gap:12px}
.lab-library[data-media=image] .lab-select{grid-column:1;grid-row:1}.lab-library[data-media=image] .lab-sample-info{grid-column:2;grid-row:1}
.lab-library[data-media=image] .lab-thumbnail{grid-column:1/-1;grid-row:2;width:100%;height:158px;align-self:stretch}
.lab-library[data-media=image] .lab-thumbnail img{object-fit:contain}.lab-library[data-media=image] .lab-thumbnail .icon{width:32px;height:32px}
.lab-library[data-media=image] .lab-row-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end}
.lab-library .lab-empty{grid-column:1/-1}.lab-library .lab-empty>.btn{margin:4px}
.lab-library-audio{display:block;width:min(100%,420px);height:38px;margin-top:12px}
.lab-library-legacy{display:flex;align-items:center;flex-wrap:wrap;margin:0 0 20px;max-width:none}
.lab-library-legacy .btn.link{padding-inline:5px}.lab-library[role=tabpanel]:focus-visible{outline-offset:4px}
@media(max-width:860px){.lab-library .lab-library-filters{grid-template-columns:1fr 1fr}.lab-library .lab-search-label{grid-column:1/-1}}
@media(max-width:520px){.lab-library-tab{padding:11px 13px;gap:8px;font-size:14px}.lab-library-summary{gap:8px 12px}.lab-library-summary h2{flex-basis:100%}.lab-library[data-media=image] #labSampleRows{grid-template-columns:minmax(0,1fr)}.lab-library .lab-library-filters{grid-template-columns:minmax(0,1fr)}.lab-library[data-media=audio] .lab-sample-row{grid-template-columns:20px minmax(0,1fr)}.lab-library[data-media=audio] .lab-thumbnail{display:none}.lab-library[data-media=audio] .lab-row-actions{grid-column:2}.lab-library-audio{width:100%;min-width:0}}

.lab-library[data-media=audio] .lab-select{align-self:start}
