.fin-lab { --fin-cyan:#286595; }
.fin-mode-tools button,.fin-particle-tools button,.fin-sync-actions button,.fin-sync-actions a { cursor:pointer; min-height:44px; font:500 12px 'IBM Plex Sans',sans-serif; border:1px solid #b9c8cc; border-radius:3px; padding:8px 12px; background:transparent; color:#234853; }
.fin-mode-tools button[aria-pressed=true] { background:#286595; border-color:#286595; color:white; }
.fin-mode-tools button:disabled { opacity:.5; cursor:default; }
.fin-particle-tools { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.fin-particle-tools[hidden] { display:none; }
.fin-particle-tools .fin-qualitative { flex-basis:100%; }
.fin-scene-wrap { position:relative; }
.fin-particles { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.fin-particles circle { animation:fin-exchange 2.4s linear infinite; }
.fin-particles.is-paused circle { animation-play-state:paused; }
.fin-particles[hidden] { display:none; }
@keyframes fin-exchange { 0% { transform:translateY(0); opacity:0; } 20% { opacity:.8; } 80% { opacity:.8; } 100% { transform:translateY(var(--travel)); opacity:0; } }
.fin-value-slider { width:100%; height:32px; accent-color:#286595; display:block; margin:3px 0 0; }
.fin-sync-config { margin:16px 0 24px; border-top:1px solid #c5cccb; padding:16px 0; }
.fin-sync-config summary,.fin-math summary,.fin-data-table summary { cursor:pointer; padding:12px 0; font-weight:500; font-size:14px; }
.fin-sync-edit { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding-top:18px; }
.fin-sync-edit input.vx-input { width:100%; box-sizing:border-box; padding:10px; border:1px solid #bbc9ca; }
.fin-tip-select { grid-column:1/-1; border:1px solid #cad2d1; display:flex; flex-wrap:wrap; gap:16px; padding:12px; }
.fin-tip-select label { display:flex; gap:8px; align-items:center; min-height:44px; }
.fin-live .fin-comparison { gap:10px; }
.fin-live .fin-comparison .fin-case-card { display:grid; grid-template-columns:110px minmax(100px,1fr); grid-template-rows:auto auto auto; width:calc(25% - 8px); min-width:220px; flex:1; text-align:left; gap:3px 12px; padding:10px; border-top:3px solid var(--series); }
.fin-live .fin-comparison .fin-case-card[aria-pressed=true] { background:#e3edf1; color:#203d4a; box-shadow:inset 0 0 0 1px #286595; }
.fin-thumbnail { grid-row:1/4; align-self:center; display:block; width:110px; height:70px; overflow:hidden; }
.fin-thumbnail .fin-solid { width:110px; height:70px; min-height:0; max-height:70px; }
.fin-thumbnail :is(text,.fin-boundaries,.fin-h-marks,[data-probe-position]) { display:none; }
.fin-case-card strong { font-size:12px; font-weight:500; }
.fin-case-card span:not(.fin-thumbnail) { font-size:10px; }
.fin-sync-output { padding:22px; margin:24px 0; border-top:2px solid #286595; }
.fin-result-plot { min-width:0; max-width:100%; }
.fin-result-plot :is(.js-plotly-plot,.plot-container,.svg-container) { max-width:100%; }
.fin-sync-plot { width:100%; min-height:420px; }
.fin-result-plot[data-state]:not([data-state=fresh]) :is(.fin-result-metrics,.fin-math,.fin-data-table,.js-plotly-plot) { opacity:.5; }
.fin-result-plot[data-state]:not([data-state=fresh])::before { content:'Dados anteriores · aguardando uma entrada válida e cálculo concluído'; display:block; color:#92431f; padding:10px 0; font-size:12px; }
.fin-math { border-top:1px solid #cad2d1; margin:16px 0; }
.fin-math section { margin:18px 0; }
.fin-math h3 { font-size:13px; font-weight:500; color:#286595; }
.fin-math p { white-space:pre-line; font:12px/1.7 'IBM Plex Mono',monospace; overflow-wrap:anywhere; }
.fin-data-table { overflow-x:auto; }
.fin-data-table table { border-collapse:collapse; font-size:11px; width:100%; }
.fin-data-table th,.fin-data-table td { text-align:left; padding:10px 8px; border-bottom:1px solid #cad2d1; }
.fin-data-table tr[tabindex] { cursor:pointer; }
.fin-data-table tr[tabindex]:hover { background:#e3edf1; }
.fin-data-table tr[data-active=true] { background:#e3edf1; }
.fin-sync-actions { display:flex; gap:10px; flex-wrap:wrap; padding:12px 0; }
.fin-sync-actions a[aria-disabled=true] { pointer-events:none; opacity:.5; }
.fin-conditions .fin-live-case { overflow:visible; }
.fin-conditions .fin-live-case { position:static; }
.fin-dimension-fields { display:grid; grid-template-columns:1fr 1fr; border:0; padding:12px 0 4px; gap:12px; margin:12px 0; border-block:1px solid #c5cccb; }
.fin-dimension-fields legend { font-size:12px; color:#286595; padding:0 8px 0 0; }
.fin-conditions .fin-live-inputs .vx-field { padding-bottom:10px; }
.fin-input-notes { border-top:1px solid #c5cccb; margin:12px 0; }
.fin-input-notes summary { cursor:pointer; font-size:12px; padding:14px 0; }
.fin-conditions .fin-sync-output { margin:12px 0; padding:12px 0; }
.fin-conditions .fin-live-layout { grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr); }
.fin-conditions .fin-result-metrics { gap:12px; }
.fin-conditions .fin-case-status { margin:8px 0; }
.fin-conditions .fin-bench-controls { padding:8px 0; }
.fin-conditions .fin-bench-controls .fin-reading { min-height:0; }
.fin-conditions .fin-case-card { min-width:180px; }
.fin-lab button:focus-visible,.fin-lab input:focus-visible,.fin-lab a:focus-visible,.fin-lab summary:focus-visible { outline:2px solid #286595; outline-offset:3px; }
@media(max-width:720px) {
 .fin-results .fin-results-main > div:first-child,.fin-results .fin-live-case { display:contents; }
 .fin-results .fin-bench { position:sticky; top:0; z-index:5; width:100%; background:var(--fin-paper); }
 .fin-results.fin-live .fin-solid { height:150px; max-height:150px; }
 .fin-results .fin-bench-foot { display:none; }
 .fin-results .fin-bench-heading h2 { font-size:18px; }
 .fin-results .fin-bench #fin-exploration-note { font-size:9px; margin:4px 0; }
 .fin-sync-edit { grid-template-columns:1fr 1fr; gap:12px; }
 .fin-sync-output { padding:12px 0; }
 .fin-live .fin-comparison .fin-case-card { min-width:0; flex-basis:100%; }
 .fin-live .fin-comparison { width:100%; }
 .fin-conditions .fin-live-case .fin-particle-tools { display:none; }
 .fin-conditions .fin-live-case .fin-mode-tools { margin:5px 0; gap:5px; }
 .fin-conditions .fin-live-case .fin-mode-tools button { font-size:10px; padding:5px 9px; min-height:36px; }
 .fin-conditions .fin-live-case .fin-temperature-legend { font-size:9px; margin:4px 0; }
 .fin-conditions .fin-live-case .fin-view-tools { flex-wrap:wrap; }
 .fin-conditions .fin-live-case .fin-solid { min-height:120px; height:120px; }
 .fin-conditions .fin-live-case #fin-exploration-note { display:none; }
 .fin-conditions .fin-live-case { display:contents; }
 .fin-conditions .fin-live-case > .fin-bench { position:sticky; top:0; background:var(--fin-paper); z-index:5; width:100%; }
 .fin-conditions .fin-live-case > :is(.fin-comparison,.fin-sync-output) { order:3; }
 .fin-conditions .fin-live-layout { gap:12px; }
 .fin-conditions .fin-live-inputs { order:2; }
 .fin-conditions .fin-live-case .fin-particle-tools { display:flex; }
 .fin-conditions .fin-particle-tools .fin-qualitative { display:none; }
 .fin-conditions .fin-particle-tools button { min-height:36px; font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .fin-particles circle { animation:none; } }
