/* calibration.css - the Sensory Calibration Lab (/calibration; Lane 31, 2026-09-30). Tokens only, through the roles (roles.css), in
   the Scent Translator's register: Plex Mono labels, the body face for prose, brass hairlines on oxblood. No animation (reduced motion
   needs nothing turned off), no colour-only meaning (every reading and label is a word). Controls are the shared .rp-btn / .rp-select /
   .rp-check / .rp-fieldset (controls.css). At 390 px the tables stack, with no sideways scroll. Print: the worksheet tables, without the
   live controls. Served standalone as /sections/calibration.css (copied by scripts/build-labs.mjs). */
/* links in the lab's column: the body colour with a brass underline (the translator's), with or without the deferred sheets */
.cal-sec .rp-si a:not(.rp-btn){color:inherit;text-decoration:underline;text-decoration-color:var(--rp-brass-dim);text-underline-offset:.2em}
.cal-sec .rp-si a:not(.rp-btn):hover{text-decoration-color:currentColor}
.cal-sec .rp-si a:not(.rp-btn):focus-visible{outline:var(--rp-focus-ring);outline-offset:2px}
.cal-sec code{font:400 .92em/1 var(--rp-mono);overflow-wrap:anywhere}
.cal-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)}
.cal-keep,.cal-trial,.cal-profile{margin:0 0 var(--rp-space-scale-8);padding-top:var(--rp-space-scale-2);border-top:1px solid var(--rp-brass-dim)}
.cal-keep[hidden],.cal-trial[hidden],.cal-profile[hidden],.cal-quiz[hidden],[data-cal-only][hidden],.cal-nojs[hidden],[data-cal-del-yes][hidden],[data-cal-idonly][hidden]{display:none!important}
.cal-keep-on{font-weight:500}
.cal-actions{display:flex;flex-wrap:wrap;gap:var(--rp-space-scale-3);margin:var(--rp-space-scale-3) 0 0}
.cal-file{position:relative}
.cal-file:focus-within{outline:var(--rp-focus-ring);outline-offset:3px}
.cal-row{display:flex;flex-wrap:wrap;gap:0 var(--rp-space-scale-6)}
.cal-row .rp-check,.cal-words-on .rp-check{min-width:0}
.cal-words-on{display:flex;flex-wrap:wrap;gap:0 var(--rp-space-scale-6)}
.cal-more{margin:var(--rp-space-scale-2) 0 0}
.cal-more>summary,.cal-chip>summary{cursor:pointer}
.cal-more>summary{display:inline-block;min-height:44px;padding:.7em 0;font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-brass);border-bottom:1px solid var(--rp-brass-dim)}
.cal-more>summary:focus-visible{outline:var(--rp-focus-ring);outline-offset:3px}
.cal-fam{margin:var(--rp-space-scale-3) 0 0;padding:0;border:0;min-width:0}
.cal-fam legend{padding:0;font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-text-muted)}
.cal-status{min-height:1.6em;margin:0 0 var(--rp-space-scale-6);font:400 var(--rp-type-scale-label)/1.6 var(--rp-mono);letter-spacing:.04em;color:var(--rp-text-muted)}
.cal-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)}
.cal-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)}
.cal-dim,.cal-note,.cal-meta{color:var(--rp-text-muted)}
.cal-note,.cal-meta{margin:var(--rp-space-scale-2) 0 0;font:400 var(--rp-type-scale-small)/1.6 var(--rp-body)}
.cal-empty{color:var(--rp-text-muted);font-style:italic}
.cal-sum,.cal-words,.cal-ses,.cal-samples,.cal-wlist,.cal-parts{margin:0;padding:0;list-style:none}
.cal-sum>li,.cal-ses>li,.cal-parts>li{margin:0 0 var(--rp-space-scale-2);font:400 var(--rp-body-size)/1.5 var(--rp-body);color:var(--rp-text)}
.cal-words>li{margin:0 0 var(--rp-space-scale-3);padding:0 0 var(--rp-space-scale-3);border-bottom:1px solid var(--rp-hair);font:400 var(--rp-body-size)/1.55 var(--rp-body);color:var(--rp-text);overflow-wrap:anywhere}
.cal-words .cal-dim{font-size:var(--rp-type-scale-small)}
/* the drills */
.cal-drill{margin:var(--rp-space-scale-8) 0 0;padding:var(--rp-space-scale-4) 0 0;border-top:1px solid var(--rp-brass-dim)}
.cal-drill-h{margin:0 0 var(--rp-space-scale-2);font-family:var(--rp-display);font-weight:500;font-size:var(--rp-type-scale-h3);line-height:1.2;color:var(--rp-text)}
.cal-no{display:inline-block;min-width:1.8em;font-family:var(--rp-display);font-weight:var(--rp-num-weight);color:var(--rp-brass)}
.cal-samples{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rp-space-scale-4);margin:var(--rp-space-scale-4) 0 0}
.cal-sample{padding:var(--rp-space-scale-3) 0 0;border-top:1px solid var(--rp-hair)}
.cal-sample-h{margin:0 0 var(--rp-space-scale-2);font:400 var(--rp-body-size)/1.45 var(--rp-body);color:var(--rp-text);overflow-wrap:anywhere}
.cal-key{display:inline-block;min-width:1.6em;font:500 var(--rp-type-scale-label)/1 var(--rp-mono);letter-spacing:.12em;color:var(--rp-brass)}
.cal-wlist>li{margin:0 0 var(--rp-space-scale-2);font:400 var(--rp-body-size)/1.45 var(--rp-body);color:var(--rp-text);overflow-wrap:anywhere}
.cal-chip{display:inline-block;margin:0 0 0 .5em;vertical-align:baseline}
.cal-chip[open]{display:block;margin:.3em 0 0}
.cal-hint{margin:var(--rp-space-scale-4) 0 0;padding:var(--rp-space-scale-2) var(--rp-space-scale-3);border-left:2px solid var(--rp-brass-dim);font:400 var(--rp-body-size)/1.6 var(--rp-body);color:var(--rp-text)}
.cal-go{margin:var(--rp-space-scale-3) 0 0}
@media (min-width:900px){.cal-samples{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--rp-space-scale-6)}}
/* the worksheet: on screen only without the module (and in print) */
.cal-sheet{width:100%;margin:var(--rp-space-scale-4) 0 0;border-collapse:collapse;font:400 var(--rp-type-scale-small)/1.4 var(--rp-body);color:var(--rp-text);table-layout:fixed}
.cal-sheet caption{text-align:left;margin:0 0 .4em;font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--rp-text-muted)}
.cal-sheet th,.cal-sheet td{border:1px solid var(--rp-hair);padding:.5em .35em;height:1.9em;text-align:left;overflow-wrap:anywhere}
.cal-sheet th{font:500 var(--rp-type-scale-label)/1.3 var(--rp-mono);letter-spacing:.04em}
.cal-sheet th:first-child{width:4.2em}
.cal-on .cal-sheet{display:none}
/* the profile and glossary tables */
.cal-tw{margin:var(--rp-space-scale-3) 0 var(--rp-space-scale-6)}
.cal-table,.cal-gloss{table-layout:fixed;font-size:var(--rp-type-scale-small)}
.cal-gloss thead th:first-child{width:22%}
.cal-gfam th{padding-top:var(--rp-space-scale-4);font:500 var(--rp-type-scale-label)/1.4 var(--rp-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rp-brass)}
.cal-gloss td,.cal-table td,.cal-gloss th,.cal-table th{overflow-wrap:break-word}
@media (max-width:760px){
  .cal-table,.cal-table tbody,.cal-table tr,.cal-table th,.cal-table td,.cal-gloss,.cal-gloss tbody,.cal-gloss tr,.cal-gloss th,.cal-gloss td{display:block;width:auto}
  .cal-table thead,.cal-gloss thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cal-table caption,.cal-gloss caption{display:block}
  .cal-table tr,.cal-gloss tr{padding:var(--rp-space-scale-3) 0;border-top:1px solid var(--rp-brass-dim)}
  .cal-table th,.cal-table td,.cal-gloss th,.cal-gloss td{border-top:0;padding:.3em 0}
  .cal-table td::before,.cal-gloss 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)}
  .cal-sheet th:nth-child(6),.cal-sheet td:nth-child(6){width:28%}
}
/* the vocabulary questions */
.cal-quiz{margin:var(--rp-space-scale-4) 0 var(--rp-space-scale-8);padding:var(--rp-space-scale-4);border:1px solid var(--rp-brass-dim)}
.cal-def{margin:0 0 var(--rp-space-scale-2);font-family:var(--rp-display);font-size:var(--rp-type-scale-h3);line-height:1.35;color:var(--rp-text)}
.cal-fb{min-height:1.5em;margin:var(--rp-space-scale-3) 0 0;font:400 var(--rp-body-size)/1.5 var(--rp-body);color:var(--rp-text)}
.cal-how{padding-left:1.4em;margin:0 0 var(--rp-space-scale-6)}
.cal-how 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)}
.cal-how li::marker{color:var(--rp-brass);font-family:var(--rp-display)}
@media print{
  [data-cal-only],.cal-status,.cal-quiz{display:none!important}
  .cal-on .cal-sheet,.cal-sheet{display:table!important}
  .cal-drill{break-inside:avoid}
}
