/* Scoped laboratory UI. Geometry colours never stand in for calculated temperature. */
.fin-lab { --fin-ink:#1d2b32; --fin-muted:#52636c; --fin-line:#d4dcd9; --fin-paper:#f3f4ef; --fin-panel:#fffefa; --fin-copper:#a94719; --fin-cyan:#166d7c; margin:0; background:var(--fin-paper); color:var(--fin-ink); font-family:'IBM Plex Sans',sans-serif; }
.fin-lab *, .fin-lab *::before,.fin-lab *::after { box-sizing:border-box; }
.fin-page { max-width:1440px; margin:auto; padding:28px 40px 40px; }
.fin-lab button,.fin-lab input { font:inherit; }
.fin-lab button { cursor:pointer; touch-action:manipulation; }
.fin-lab :is(button,a,input,summary):focus-visible { outline:3px solid var(--fin-cyan); outline-offset:4px; }
.fin-skip { position:absolute; top:0; left:15px; transform:translateY(-150%); z-index:10; padding:12px; background:white; }
.fin-skip:focus { transform:none; }
.fin-header { max-width:850px; padding-bottom:18px; }
.fin-back { display:inline-block; color:var(--fin-muted); font-size:13px; margin-bottom:18px; text-decoration:none; }
.fin-eyebrow { font:500 10px/1.5 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--fin-copper); margin:0 0 8px; }
.fin-header h1 { font-size:clamp(28px,3.3vw,44px); letter-spacing:-.045em; line-height:1.08; margin:0 0 10px; font-weight:500; }
.fin-header > p:last-child { margin:0; font-size:15px; line-height:1.5; color:var(--fin-muted); }
.fin-journey { list-style:none; display:flex; flex-wrap:wrap; gap:0; padding:0; margin:0 0 24px; border-top:1px solid var(--fin-line); border-bottom:1px solid var(--fin-line); }
.fin-journey li { padding:12px 25px 12px 0; margin-right:24px; font-size:12px; color:var(--fin-muted); }
.fin-journey li span { font:11px 'IBM Plex Mono',monospace; margin-right:8px; opacity:.7; }
.fin-journey li[aria-current] { color:var(--fin-copper); box-shadow:inset 0 -2px var(--fin-copper); font-weight:600; }
.fin-workspace { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:26px; align-items:start; }
.fin-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin:0 0 14px; }
.fin-section-head h2 { font-size:15px; margin:0; font-weight:500; }
.fin-key { font-size:10px; color:var(--fin-muted); white-space:nowrap; }
.fin-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.fin-card { min-width:0; background:var(--fin-panel); border:1px solid var(--fin-line); border-radius:6px; overflow:hidden; transition:border-color 150ms ease; }
.fin-card:has(input:checked) { border-color:var(--fin-copper); }
.fin-card:has(input:checked) .fin-select { background:#f8e8dc; color:#86370f; }
.fin-card[data-examined] { box-shadow:0 0 0 2px var(--fin-cyan); }
.fin-card-top { height:29px; display:flex; justify-content:space-between; align-items:center; padding:9px 10px 0; }
.fin-number { font:10px 'IBM Plex Mono',monospace; color:var(--fin-muted); }
.fin-inspecting { font:10px 'IBM Plex Mono',monospace; color:var(--fin-cyan); }
.fin-examine { display:block; border:0; background:none; color:inherit; text-align:left; width:100%; padding:8px 12px 12px; }
.fin-examine .fin-art,.fin-examine img { display:block; width:100%; max-width:240px; height:auto; aspect-ratio:240/176; margin:0 auto 10px; background:transparent; border-radius:0; transform:none; }
.fin-name { display:block; font-size:13px; line-height:1.35; font-weight:600; min-height:36px; }
.fin-examine-label { display:block; color:var(--fin-cyan); font-size:11px; margin-top:8px; text-decoration:underline; text-underline-offset:3px; }
.fin-lab .fin-examine:focus-visible { outline-offset:-3px; }
.fin-select { display:flex; gap:8px; align-items:center; padding:11px 12px; min-height:44px; font-size:12px; border-top:1px solid var(--fin-line); cursor:pointer; }
.fin-select input.aleta-checkbox { display:block; appearance:auto; width:17px; height:17px; margin:0; accent-color:var(--fin-copper); }
.fin-select:has(input:focus-visible) { outline:3px solid var(--fin-cyan); outline-offset:-3px; }
.fin-inspector { padding:18px; background:var(--fin-panel); border:1px solid var(--fin-line); border-top:3px solid var(--fin-cyan); border-radius:4px; min-width:0; scroll-margin:20px; }
.fin-inspector h2 { font-size:20px; font-weight:500; line-height:1.2; margin:0 0 12px; }
.fin-inspector-art { background:#f0f4f3; background-image:linear-gradient(#dce5e255 1px,transparent 1px),linear-gradient(90deg,#dce5e255 1px,transparent 1px); background-size:20px 20px; border:1px solid var(--fin-line); border-radius:3px; padding:18px 8px 10px; }
.fin-inspector-art .fin-art { width:100%; height:auto; max-width:400px; margin:auto; overflow:visible; }
.fin-lab .fin-thermal { display:none; }
.fin-inspector-art .fin-art > rect { fill:transparent; }
.fin-caption { font-size:10px; line-height:1.5; color:var(--fin-muted); margin:8px 0 18px; }
#fin-description { font-size:13px; line-height:1.55; margin:0 0 18px; }
.fin-dimensions { display:flex; flex-wrap:wrap; gap:7px; }
.fin-dimensions button { border:1px solid var(--fin-line); border-radius:3px; min-height:38px; min-width:42px; padding:6px 10px; background:white; color:var(--fin-ink); font-family:'IBM Plex Mono',monospace; font-size:12px; }
.fin-dimensions button[aria-pressed=true] { background:var(--fin-cyan); color:white; border-color:var(--fin-cyan); }
.fin-reading { font-size:12px; line-height:1.5; min-height:42px; padding-left:10px; border-left:2px solid var(--fin-cyan); color:var(--fin-muted); }
.fin-hypotheses { border-top:1px solid var(--fin-line); padding-top:14px; font-size:12px; line-height:1.6; }
.fin-hypotheses summary { cursor:pointer; font-weight:500; }
.fin-return { display:none; font-size:12px; color:var(--fin-cyan); margin-top:16px; }
.fin-lab .fin-dimension-active .fin-label { fill:var(--fin-copper); font-weight:700; }
.fin-lab .fin-dimension-active .fin-dim { stroke:var(--fin-copper); stroke-width:2.5px; }
.fin-actions { position:static; display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:24px; border-top:1px solid var(--fin-line); padding:18px 0; }
.fin-actions strong { font-size:14px; font-weight:500; }
.fin-actions p { font-size:12px; margin:5px 0 0; color:var(--fin-muted); }
.fin-primary { border:1px solid #843813; border-radius:4px; padding:13px 18px; min-height:46px; background:var(--fin-copper); color:white; font-weight:500; font-size:13px; }
.fin-primary:disabled { background:#e1e4df; border-color:#b9c0ba; color:#52605a; cursor:not-allowed; }
@media(min-width:901px) and (max-width:1250px) { .fin-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } .fin-workspace { grid-template-columns:minmax(0,1fr) 300px; } }
@media(max-width:900px) { .fin-workspace { grid-template-columns:1fr; } .fin-inspector { max-width:none; } .fin-inspector-art { max-width:480px; } .fin-return { display:inline-block; } }
@media(max-width:650px) { .fin-page { padding:20px 16px 24px; } .fin-back { margin-bottom:14px; } .fin-header > p:last-child { font-size:13px; } .fin-journey { margin-bottom:18px; justify-content:space-between; } .fin-journey li { font-size:10px; padding:12px 0; margin:0; } .fin-journey li span { font-size:9px; margin-right:3px; } .fin-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .fin-section-head h2 { font-size:13px; } .fin-key { display:none; } .fin-examine { padding:8px; } .fin-name { font-size:12px; min-height:48px; } .fin-actions { flex-direction:column; align-items:stretch; } .fin-primary { width:100%; } }
@media(prefers-reduced-motion:reduce) { .fin-lab *, .fin-lab *::before,.fin-lab *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.fin-conditions .page-wrap { max-width:1300px; }
.fin-conditions-workspace { display:grid; grid-template-columns:minmax(0,1fr) 330px; align-items:start; gap:32px; }
.fin-conditions-workspace > .fin-inspector { position:sticky; top:20px; }
.fin-conditions .aleta-chip { border:1px solid var(--fin-line); border-radius:3px; background:var(--fin-panel); color:var(--fin-ink); padding:10px 12px; }
.fin-conditions .aleta-chip[aria-pressed=true] { border-color:var(--fin-cyan); box-shadow:inset 0 -2px var(--fin-cyan); }
.fin-context { color:var(--fin-muted); font-size:13px; line-height:1.6; }
.fin-field-preview { margin-top:12px; background:var(--fin-panel); border:1px solid var(--fin-line); padding:10px; }
.fin-field-preview .fin-art { width:230px; max-width:100%; margin:auto; }
.fin-results .card { max-width:1160px; }
.fin-results .res-resumo li { transition:border-color 150ms ease; }
.fin-results .res-resumo li[data-examined] { border-color:var(--fin-cyan); box-shadow:inset 0 3px var(--fin-cyan); }
.fin-result-button { display:block; margin-top:10px; padding:9px 0; background:none; border:0; color:var(--fin-cyan); text-align:left; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.fin-result-button[aria-pressed=true]::before { content:'◎ '; }
.fin-result-inspector { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:24px; margin:20px 0; padding:20px; border:1px solid var(--fin-line); border-left:3px solid var(--fin-cyan); background:var(--fin-panel); border-radius:4px; }
.fin-result-inspector h2 { margin:0 0 10px; font-size:20px; }
.fin-result-inspector p { font-size:12px; color:var(--fin-muted); }
.fin-result-inspector figure { margin:0; }
.fin-result-inspector figcaption { font-size:10px; color:var(--fin-muted); line-height:1.5; }
.fin-result-inspector .fin-art { width:100%; height:auto; margin:0; }
.fin-result-inspector dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; font-variant-numeric:tabular-nums; }
.fin-result-inspector dt { font-size:11px; font-weight:400; color:var(--fin-muted); }
.fin-result-inspector dd { font:500 18px 'IBM Plex Mono',monospace; margin:3px 0 0; }
.fin-profile-context { font-size:12px; padding:10px 12px; background:#edf3f2; border-left:2px solid var(--fin-cyan); }
@media(max-width:800px) { .fin-conditions-workspace { grid-template-columns:1fr; } .fin-conditions-workspace > .fin-inspector { position:static; } }
@media(max-width:600px) { .fin-result-inspector { grid-template-columns:1fr; padding:14px; gap:12px; } .fin-result-inspector figure { max-width:240px; } .fin-results .res-acoes { padding-right:0; } }
