.pl-viewer{--pl-bg: var(--bg, #0e1116);--pl-surface: var(--surface, #161b22);--pl-ink: var(--ink, #e6edf3);--pl-dim: var(--ink-dim, #9198a1);--pl-accent: var(--accent, #d8613c);--pl-line: var(--line, #2a313c);--pl-mono: var(--font-mono, ui-monospace, "SF Mono", Menlo, monospace);display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:100%;min-width:0;color:var(--pl-ink);box-sizing:border-box}.pl-viewer *,.pl-viewer *:before,.pl-viewer *:after{box-sizing:border-box}.pl-stage{position:relative;width:100%;max-width:100%;aspect-ratio:var(--pl-stage-aspect, 16 / 9);min-height:var(--pl-stage-min-h, 260px);max-height:var(--pl-stage-max-h, none);background:var(--pl-bg);border:1px solid var(--pl-line);border-radius:6px;overflow:hidden}.pl-stage>canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}@media(orientation:portrait){.pl-stage{min-height:var(--pl-stage-min-h, max(260px, 36svh))}}.pl-panes{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:1px;background:transparent}.pl-panes[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr}.pl-panes[data-count="2"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.pl-panes[data-count="4"]{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.pl-pane{position:relative;min-width:0;min-height:0;outline:1px solid rgba(154,166,178,.18);outline-offset:-1px}.pl-pane[hidden]{display:none}.pl-pane-head{position:absolute;top:.4rem;left:.4rem;display:flex;flex-wrap:wrap;gap:.3rem;z-index:2}.pl-pane-head select{font-size:.72rem;padding:.15rem .3rem;background:#161b22db;color:var(--pl-ink);border:1px solid var(--pl-line);border-radius:4px;max-width:11rem}.pl-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.pl-label{position:absolute;transform:translate(6px,-50%);font:11px/1.2 var(--pl-mono);white-space:nowrap;text-shadow:0 0 4px #000,0 0 8px #000}.pl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.55rem .7rem;background:var(--pl-surface);border:1px solid var(--pl-line);border-radius:6px;min-width:0}.pl-bar>*{min-width:0}.pl-group{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.pl-group>span{color:var(--pl-dim);font-size:.78rem}.pl-viewer button{font:inherit;font-size:.8rem;padding:.2rem .55rem;color:var(--pl-ink);background:#1d232c;border:1px solid var(--pl-line);border-radius:4px;cursor:pointer}.pl-viewer button[aria-pressed=true]{border-color:var(--pl-accent);color:var(--pl-accent)}.pl-viewer button:hover{border-color:var(--pl-dim)}.pl-viewer select,.pl-viewer input[type=number]{font:inherit;font-size:.8rem;color:var(--pl-ink);background:#1d232c;border:1px solid var(--pl-line);border-radius:4px;padding:.15rem .3rem}.pl-viewer label{font-size:.78rem;color:var(--pl-dim);display:inline-flex;align-items:center;gap:.25rem}.pl-scrub{flex:1 1 16rem;min-width:10rem}.pl-time{font-family:var(--pl-mono);font-size:.8rem;min-width:8.5rem;display:inline-block}.pl-legend{display:flex;flex-wrap:wrap;gap:.4rem .9rem}.pl-legend-item{display:inline-flex;align-items:center;gap:.3rem;font:.76rem/1.3 var(--pl-mono)}.pl-swatch{width:.7rem;height:.7rem;border-radius:2px;display:inline-block}.pl-notes{display:flex;flex-direction:column;gap:.4rem}.pl-note{font-size:.78rem;line-height:1.55;color:var(--pl-dim);background:var(--pl-surface);border:1px solid var(--pl-line);border-left:3px solid var(--pl-accent);border-radius:4px;padding:.45rem .6rem;overflow-wrap:anywhere}.pl-note[data-kind=warn]{border-left-color:#e3b341}.pl-note[data-kind=info]{border-left-color:#58a6ff}.pl-metrics{width:100%;border-collapse:collapse;font-size:.78rem;font-family:var(--pl-mono)}.pl-metrics th,.pl-metrics td{border:1px solid var(--pl-line);padding:.25rem .5rem;text-align:left}.pl-metrics th{color:var(--pl-dim);font-weight:400;white-space:nowrap}.pl-table-wrap{width:100%;max-width:100%;overflow-x:auto}.pl-fallback canvas{width:100%;height:clamp(320px,46vh,560px);display:block;border:1px solid var(--pl-line);border-radius:6px;background:var(--pl-bg)}.shell{max-width:96rem;padding:1.5rem}.app-head h1{font-size:1.35rem}.app-head .lede{margin-top:.15rem;font-size:.85rem}body{overflow-x:hidden}.panel{overflow-x:auto}.banner{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);padding:.75rem 1rem;margin:1rem 0;font-size:.85rem;line-height:1.6;border-radius:4px}.banner-warn{border-left-color:#d9a441}.panel{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem;margin-block:1rem}.panel-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.panel-head h2{font-size:1rem;margin:0}.panel-head h3,.panel h3{font-size:.85rem;margin:1rem 0 .4rem;color:var(--ink-dim)}.panel-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1rem}.column{min-width:0}@media(max-width:60rem){.columns{grid-template-columns:minmax(0,1fr)}}.note{color:var(--ink-dim);font-size:.78rem;line-height:1.6;margin:.3rem 0}.note.source{font-size:.72rem;opacity:.85}.disclaimer{border-left:2px solid var(--accent);padding-left:.6rem}.source-line{margin-top:.75rem;word-break:break-word}.mono{font-family:var(--font-mono)}button{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:.35rem .7rem;font:inherit;font-size:.8rem;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{border-color:var(--accent);color:var(--accent)}button.tiny{font-size:.7rem;padding:.15rem .4rem}input[type=text],input[type=number],select,textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:.3rem .4rem;font:inherit;font-size:.8rem;max-width:100%}input[type=range]{flex:1 1 8rem;min-width:6rem;accent-color:var(--accent)}.chip{display:inline-block;font-size:.66rem;padding:.1rem .4rem;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.chip-primary{border-color:#4a8f5f;color:#7fc494}.chip-range-derived{border-color:#b07d3a;color:#d9a441}.chip-assumed{border-color:#8a5252;color:#d98080}.badge{font-size:.68rem;padding:.1rem .45rem;border-radius:3px;border:1px solid var(--line);color:var(--ink-dim)}.badge-ok{border-color:#4a8f5f;color:#7fc494}.badge-warn{border-color:#b07d3a;color:#d9a441}.badge-keep{border-color:var(--accent);color:var(--accent)}.preset-grid{display:flex;flex-wrap:wrap;gap:.5rem}.preset-cell{display:flex;flex-direction:column;gap:.15rem}.preset-btn{min-width:6.5rem}.preset-btn.active{border-color:var(--accent);color:var(--accent);background:#d8613c14}.compare-toggle{font-size:.68rem;color:var(--ink-dim);display:flex;align-items:center;gap:.2rem}.param-list{display:flex;flex-direction:column;gap:.6rem}.param-row{border-top:1px solid var(--line);padding-top:.5rem}.param-row.changed{border-left:2px solid var(--accent);padding-left:.5rem}.param-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.param-label{font-size:.82rem}.change-marker{color:var(--accent);margin-right:.25rem}.param-control{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.25rem;font-size:.8rem}.param-control output{min-width:5.5rem;text-align:right}.baseline{margin:0}.metric-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-top:.75rem}.metric-table caption{text-align:left;color:var(--ink-dim);font-size:.72rem;padding-bottom:.3rem}.metric-table th,.metric-table td{border-top:1px solid var(--line);padding:.3rem .5rem;text-align:left;vertical-align:top}.metric-table th{color:var(--ink-dim);font-weight:400;white-space:nowrap}.metric-table td.mono{font-family:var(--font-mono)}.metric-table .row-pending{background:#d9a44114}.calibration td:first-child{white-space:nowrap}.metric-headline{display:flex;gap:2rem;flex-wrap:wrap}.metric-headline>div{display:flex;flex-direction:column}.metric-label{font-size:.72rem;color:var(--ink-dim)}.metric-value{font-family:var(--font-mono);font-size:1.5rem;color:var(--accent)}.panel-issues{border-color:var(--accent)}.issue-list{list-style:none;padding:0;margin:.5rem 0;display:flex;flex-direction:column;gap:.3rem}.issue{font-size:.76rem;line-height:1.6;padding:.3rem .5rem;border-radius:3px;border-left:2px solid var(--line);word-break:break-word}.issue-error{border-left-color:#d98080;background:#d9808014}.issue-info{border-left-color:var(--line);color:var(--ink-dim)}.issue code{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-dim)}.issue-code{opacity:.6;font-size:.68rem}.quarantine-entry{border:1px solid var(--line);border-radius:4px;padding:.5rem;margin-top:.5rem}.quarantine-head{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.raw{font-family:var(--font-mono);font-size:.7rem;background:var(--bg);padding:.5rem;border-radius:3px;overflow-x:auto;max-height:12rem}.solver-inputs{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;margin:.5rem 0}.solver-inputs label{display:flex;flex-direction:column;gap:.2rem;font-size:.76rem;color:var(--ink-dim)}.solver-inputs input{width:7rem}.custom-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.custom-list li{display:flex;gap:.5rem;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:.25rem}.json-box{width:100%;font-family:var(--font-mono);font-size:.7rem}details{margin-top:.75rem}summary{cursor:pointer;font-size:.8rem;color:var(--ink-dim)}.seam-dial{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:.5rem 0}.seam-dial svg{touch-action:none;cursor:grab;max-width:100%;height:auto}.seam-dial svg:active{cursor:grabbing}.seam-dial svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:50%}.dial-track{fill:var(--bg);stroke:var(--line);stroke-width:8}.dial-period{fill:none;stroke:var(--accent);stroke-width:8;opacity:.25}.dial-mark line{stroke:var(--ink-dim);stroke-width:1.5}.dial-mark text{fill:var(--ink-dim);font-size:7px;font-family:var(--font-sans)}.dial-needle{stroke:var(--accent);stroke-width:2}.dial-knob{fill:var(--accent)}.dial-value{fill:var(--ink);font-family:var(--font-mono);font-size:14px}.mode-toggle{display:flex;gap:.35rem}.badge-unverified{border-color:#b07d3a;color:#d9a441;background:#d9a4411a}.panel-arm{border-left:3px solid #b07d3a}.panel-arm details details{margin-left:.75rem}.app{max-width:100rem;margin-inline:auto;padding:.75rem 1rem 2rem}.app-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding-block:.35rem .6rem}.app-head h1{font-size:1.05rem;margin:0;letter-spacing:.02em}.chip-btn{background:transparent;color:var(--ink-dim);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font:inherit;font-size:.78rem;cursor:pointer}.chip-btn.active{border-color:var(--accent);color:var(--accent);background:#d8613c1a}.layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(22rem,.85fr);gap:1rem;align-items:start}.stage-col{position:sticky;top:.5rem;min-width:0;display:flex;flex-direction:column;gap:.5rem}.rail{min-width:0}.stage-placeholder{display:grid;place-items:center;aspect-ratio:16 / 9;border:1px dashed var(--line);border-radius:6px;color:var(--ink-dim);font-size:.85rem}.strip{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.55rem .7rem}.strip-flags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.4rem}.strip-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.35rem .9rem}.sv{display:flex;flex-direction:column;line-height:1.25}.sv-k{font-size:.66rem;color:var(--ink-dim);white-space:nowrap}.sv-v{font-family:var(--font-mono);font-size:1.05rem}.sv-v.accent{color:var(--accent)}.sv-v.ok{color:#7fc494}.sv-v.dim{color:var(--ink-dim)}.sv-u{font-size:.62rem;color:var(--ink-dim);min-height:.8em}.strip-warn{margin-top:.5rem}.strip-details{margin-top:.45rem}.strip-details>summary{font-size:.74rem}.strip-details .panel{margin:.4rem 0 0}.tabbar{display:flex;gap:.25rem;overflow-x:auto;border-bottom:1px solid var(--line);padding-bottom:.35rem;margin-bottom:.5rem;scrollbar-width:thin}.tab{flex:0 0 auto;background:transparent;border:1px solid transparent;border-radius:5px 5px 0 0;color:var(--ink-dim);padding:.3rem .7rem;font:inherit;font-size:.8rem;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent);border-color:var(--line);border-bottom-color:transparent;background:var(--surface)}.tab-badge{margin-left:.3rem;font-size:.62rem;background:var(--accent);color:var(--bg);border-radius:999px;padding:0 .32rem}.tabpanel>.panel:first-child{margin-top:0}.reference-fold{margin-top:1rem;border-top:1px solid var(--line);padding-top:.5rem}.reference-fold>summary{font-size:.82rem;color:var(--ink-dim);padding:.3rem 0}.reference-fold .panel{margin-top:.5rem}@media(max-width:64rem){.app{padding:.5rem .6rem 2rem}.layout{grid-template-columns:minmax(0,1fr);gap:.6rem}.tabbar{position:sticky;top:0;z-index:4;background:var(--bg);margin-bottom:.4rem;padding-top:.3rem}.tabpanel{scroll-margin-top:3.5rem}.strip-values{grid-template-columns:repeat(auto-fit,minmax(4.4rem,1fr))}.sv-v{font-size:.95rem}}.columns{display:block}.chips{display:flex;flex-direction:column;gap:.3rem}.chips-row{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:thin}.chips-row .preset-btn{flex:0 0 auto;min-width:0;padding:.25rem .6rem;font-size:.76rem}.reset-chip{flex:0 0 auto;align-self:center}.chips-note{margin:0;font-size:.7rem}.compare-cell{display:flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:4px;padding:.2rem .5rem;font-size:.76rem;cursor:pointer}.compare-cell.active{border-color:var(--accent);color:var(--accent)}:root{--bg: #0e1116;--surface: #161b22;--ink: #e6edf3;--ink-dim: #9198a1;--accent: #d8613c;--line: #2a313c;--font-sans: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans)}.shell{padding:2rem;max-width:60rem;margin-inline:auto}h1{margin:0;font-size:1.5rem;letter-spacing:.02em}.lede{color:var(--ink-dim);margin-top:.25rem}.facts{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin-top:2rem}.facts dt{color:var(--ink-dim)}.facts dd{margin:0;font-family:var(--font-mono)}
