/* labs.css - what the L3 lab pages share (/sillage-lab, /genome, /device-api, /soundscape, /profile, /cabinet; L3, 2026-09-30):
   links in the column, the no-JS line, lists, the data tables that stack at 760 px, the status line. Tokens only, through the roles
   (roles.css), in the register of the Scent Translator and the Calibration Lab: Plex Mono labels, the body face for prose, brass
   hairlines on oxblood. No animation here. Served standalone as /sections/labs.css (copied by scripts/build-labs.mjs). */
.lab-sec .rp-si a:not(.rp-btn){color:inherit;text-decoration:underline;text-decoration-color:var(--rp-brass-dim);text-underline-offset:.2em}
.lab-sec .rp-si a:not(.rp-btn):hover{text-decoration-color:currentColor}
.lab-sec .rp-si a:not(.rp-btn):focus-visible{outline:var(--rp-focus-ring);outline-offset:2px}
.lab-sec code{font:400 .92em/1.4 var(--rp-mono);overflow-wrap:anywhere}
.lab-sec [hidden]{display:none!important}
.lab-nojs{margin:0 0 var(--rp-space-scale-6);font:400 var(--rp-body-size)/var(--rp-body-lh) var(--rp-body);color:var(--rp-text-muted)}
.lab-dim{color:var(--rp-text-muted)}
p.lab-dim{margin:0 0 var(--rp-space-scale-2);font:400 var(--rp-type-scale-small)/1.6 var(--rp-body)}
.lab-tag{display:inline-block;margin:0 .35em 0 0;padding:.1em .45em;border:1px solid var(--rp-brass-dim);font:500 var(--rp-type-scale-label)/1.3 var(--rp-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--rp-brass)}
.lab-k{margin:var(--rp-space-scale-6) 0 var(--rp-space-scale-2);font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rp-text-muted)}
.lab-status{min-height:1.6em;margin:var(--rp-space-scale-2) 0 var(--rp-space-scale-4);font:400 var(--rp-type-scale-label)/1.6 var(--rp-mono);letter-spacing:.04em;color:var(--rp-text-muted)}
.lab-list{padding-left:1.4em;margin:0 0 var(--rp-space-scale-6)}
.lab-list>li{margin:0 0 var(--rp-space-scale-3);font:400 var(--rp-body-size)/var(--rp-body-lh) var(--rp-body);color:var(--rp-text)}
.lab-list>li::marker{color:var(--rp-brass);font-family:var(--rp-display)}
.lab-ul{margin:0;padding:0;list-style:none}
.lab-ul>li{margin:0 0 .35em;overflow-wrap:anywhere}
.lab-actions{display:flex;flex-wrap:wrap;gap:var(--rp-space-scale-3);margin:var(--rp-space-scale-3) 0 0}
.lab-file{position:relative}
.lab-file:focus-within{outline:var(--rp-focus-ring);outline-offset:3px}
.lab-keep{margin:0 0 var(--rp-space-scale-8);padding-top:var(--rp-space-scale-2);border-top:1px solid var(--rp-brass-dim)}
.lab-keep-on{font-weight:500}
/* tables: fixed layout, words break; at 760 px and below every row becomes a block with its labels */
.lab-tw{margin:var(--rp-space-scale-3) 0 var(--rp-space-scale-6)}
.lab-table{table-layout:fixed;font-size:var(--rp-type-scale-small)}
.lab-table td,.lab-table th{overflow-wrap:break-word}
@media (max-width:760px){
  .lab-table:not(.lab-nostack),.lab-table:not(.lab-nostack) tbody,.lab-table:not(.lab-nostack) tr,.lab-table:not(.lab-nostack) th,.lab-table:not(.lab-nostack) td{display:block;width:auto}
  .lab-table:not(.lab-nostack) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .lab-table:not(.lab-nostack) caption{display:block}
  .lab-table:not(.lab-nostack) tr{padding:var(--rp-space-scale-3) 0;border-top:1px solid var(--rp-brass-dim)}
  .lab-table:not(.lab-nostack) th,.lab-table:not(.lab-nostack) td{border-top:0;padding:.3em 0}
  .lab-table:not(.lab-nostack) td::before{content:attr(data-label);display:block;margin:0 0 .15em;font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-text-muted)}
}
/* a range control in the house register: a brass hairline track, a brass thumb; 44 px tall for the finger */
.lab-sec input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;color:var(--rp-brass);cursor:pointer}
.lab-sec input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--rp-brass-dim)}
.lab-sec input[type=range]::-moz-range-track{height:1px;background:var(--rp-brass-dim)}
.lab-sec input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-9px;border:1px solid var(--rp-brass);border-radius:50%;background:var(--rp-ground)}
.lab-sec input[type=range]::-moz-range-thumb{width:18px;height:18px;border:1px solid var(--rp-brass);border-radius:50%;background:var(--rp-ground)}
.lab-sec input[type=range]:focus-visible{outline:var(--rp-focus-ring);outline-offset:2px}
.lab-sec output{font:500 var(--rp-type-scale-label)/1 var(--rp-mono);letter-spacing:.06em;color:var(--rp-brass)}
@media print{.lab-sec [data-print-hide]{display:none!important}}
