:root{--bg:#151c2b;--bg2:#1b2335;--bg3:#232d44;--fg:#dfe5f0;--muted:#8b96ab;--accent:#ff8f29;--hover:#4daeff;--err:#ff6b6b;--left:300px;--right:300px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;overflow:hidden}.muted{color:var(--muted)}.small{font-size:12px}.topbar{background:var(--bg2);border-bottom:1px solid #0006;align-items:center;gap:16px;height:44px;padding:0 12px;display:flex}.actions{scrollbar-width:none;overflow-x:auto}.actions>*{flex:none}.brand{align-items:baseline;gap:8px;display:flex}.brand__name{font-size:15px;font-weight:700}.brand__tag{color:var(--muted)}.actions{flex:1;align-items:center;gap:6px;display:flex}.button{background:var(--bg3);color:var(--fg);font:inherit;cursor:pointer;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px}.button:hover{border-color:#ffffff40}.button.primary{background:#2c5fa8;border-color:#3d73c4}.button.ghost{color:var(--muted);background:0 0}.status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:45vw;overflow:hidden}.status[data-state=error]{color:var(--err)}.status[data-state=busy]{color:var(--hover)}.layout{grid-template-columns:var(--left) 5px 1fr 5px var(--right);height:calc(100% - 44px);display:grid}.pane{background:var(--bg2);flex-direction:column;min-width:0;min-height:0;display:flex}.pane--view{background:#1c2130;position:relative}.pane__head{border-bottom:1px solid #0004;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px 6px;display:flex}.pane__head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:12px}.splitter{cursor:col-resize;background:#0b0f18}.splitter:hover,.splitter.dragging{background:#2c5fa8}#viewport{touch-action:none;width:100%;height:100%;display:block}.viewhelp{pointer-events:none;position:absolute;bottom:8px;left:10px}.overlay{text-align:center;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay--hint p{margin:4px 0}.overlay--error{pointer-events:auto;background:#2a1620ee;border:1px solid #ff6b6b88;border-radius:10px;max-width:70%;padding:14px 20px}.overlay__title{color:var(--err);margin:0 0 6px;font-weight:700}.overlay__msg{word-break:break-word;margin:0 0 8px;font-family:ui-monospace,monospace;font-size:12px}.overlay--busy{background:#0008;border-radius:8px;align-items:center;gap:10px;padding:10px 16px;display:flex}[hidden]{display:none!important}.spinner{border:2px solid #fff4;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dropzone{border:2px dashed var(--hover);pointer-events:none;z-index:10;background:#4daeff14;border-radius:12px;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed;inset:8px}.tree{outline:none;flex:1;padding:4px 0;font-size:12.5px;overflow:auto}.tree ul{margin:0;padding:0;list-style:none}.tree li>ul{padding-left:14px}.row{cursor:default;white-space:nowrap;align-items:center;gap:6px;padding:1px 8px 1px 4px;display:flex}.row:hover,.row.hovered{background:#4daeff22}.row.selected{box-shadow:inset 2px 0 0 var(--accent);background:#ff8f2933}.tree:focus .row.selected{background:#ff8f2955}.caret{text-align:center;width:12px;color:var(--muted);cursor:pointer;flex:none}.kind{font-weight:600}.kind[data-k=Face]{color:#9fd0ff}.kind[data-k=Edge]{color:#c3e88d}.kind[data-k=Vertex]{color:#f78c6c}.kind[data-k=Wire]{color:#c792ea}.rid{color:var(--muted)}.badge{color:var(--muted);margin-left:auto;font-size:11px}.ori{color:#ffcb6b;border:1px solid #ffcb6b55;border-radius:3px;padding:0 3px;font-size:10px}.more{color:var(--hover);cursor:pointer;padding-left:22px}.props{padding:8px 10px;overflow:auto}.props table{border-collapse:collapse;width:100%}.props td{vertical-align:top;border-bottom:1px solid #ffffff0d;padding:3px 4px}.props td:first-child{color:var(--muted);width:45%}.props h3{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 4px;font-size:12px}.props a{color:var(--hover);cursor:pointer;text-decoration:none}.props .note{color:var(--muted);margin-top:12px;font-size:12px}.props a.ent{font-variant-numeric:tabular-nums}.props a.ent:hover{text-decoration:underline}.props .count{color:var(--muted);text-transform:none;margin-left:4px;font-weight:400}.props ul.ents{margin:0;padding:0;list-style:none}.props ul.ents li{border-bottom:1px solid #ffffff0d;padding:2px 4px}.props .sub{padding-left:14px;font-size:11px}.props details summary{cursor:pointer;color:var(--muted);font-size:12px}.tag{color:var(--muted);border:1px solid #ffffff30;border-radius:3px;margin:1px 0;padding:0 4px;font-size:10px;display:inline-block}.tag.warn,.warn{color:#ff9e64;border-color:#ff9e6466}.shared{color:#89ddff;margin-left:2px;font-size:10px}.vp-tools{z-index:2;gap:6px;display:flex;position:absolute;top:8px;right:8px}.vp-tools button{color:inherit;cursor:pointer;background:#1e2230cc;border:1px solid #fff2;border-radius:4px;padding:3px 8px;font-size:12px}.vp-tools button[aria-pressed=true]{border-color:var(--hover);color:var(--hover)}.hud{color:var(--muted);pointer-events:none;z-index:2;background:#1e2230aa;border-radius:3px;padding:2px 6px;font-size:12px;position:absolute;bottom:30px;left:8px}.hud:empty{display:none}.okc,.ok{color:#7fd88f}.bad,.tag.bad{color:#ff6b6b;border-color:#ff6b6b77}.ok-badge,.bad-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.ok-badge{color:#7fd88f;background:#7fd88f22;border:1px solid #7fd88f66}.bad-badge{color:#ff6b6b;background:#ff6b6b22;border:1px solid #ff6b6b77}.props .verdict{margin:4px 0 8px}.props table.checklist td:first-child{width:auto;color:var(--fg)}.props table.checklist td:last-child{text-align:right;font-variant-numeric:tabular-nums;width:3em}.props ul.check li{padding:4px}.chips{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;display:flex}.chip,button.mini{font:inherit;cursor:pointer;background:var(--bg3);color:var(--fg);border:1px solid #fff2;border-radius:12px;padding:2px 9px;font-size:12px}button.mini{color:var(--muted);border-radius:4px;padding:0 7px;font-size:11px}.chip:hover:not(:disabled),button.mini:hover:not(:disabled){border-color:#fff5}.chip[aria-pressed=true]{color:#ff9fd2;background:#f542a033;border-color:#f542a0}.chip:disabled,button.mini:disabled{opacity:.45;cursor:default}.chip b{margin-left:3px}.props .button{font-size:12px}.hist-title{margin:8px 0 0;font-size:12px}svg.hist{width:100%;height:92px;display:block}svg.hist .hit{fill:#0000;cursor:pointer}svg.hist .bar{fill:#4daeff99}svg.hist .bin:hover .bar{fill:#4daeffdd}svg.hist .bin.sel .bar{fill:#f542a0}svg.hist .bin.sel .hit{fill:#f542a01a}svg.hist .bin.empty .hit{cursor:default}svg.hist text{fill:var(--muted);font-size:9px}svg.hist text.n{text-anchor:middle;fill:var(--fg)}.progress{background:var(--bg3);border-radius:3px;height:6px;margin:8px 0 4px;overflow:hidden}.progress>span{background:var(--hover);height:100%;transition:width .15s;display:block}.props table.diff th{text-align:right;color:var(--muted);padding:2px 4px;font-size:11px;font-weight:400}.props table.diff td{text-align:right;font-variant-numeric:tabular-nums}.props table.diff td:first-child{text-align:left;width:auto}.props table.diff td.better{color:#7fd88f}.props table.diff td.worse{color:#ff6b6b}.props table.diff td.chg{color:#ffcb6b}svg.uv{background:#0d111a;border-radius:4px;width:100%;max-width:320px;display:block}svg.uv .uvbox{fill:none;stroke:#fff2;stroke-dasharray:3 3}svg.uv path{fill:none;stroke:#c3e88d;stroke-width:1.6px}svg.uv circle{fill:#c3e88d}svg.uv .ent{cursor:pointer}svg.uv .ent:hover path{stroke:var(--hover);stroke-width:3px}svg.uv .ent:hover circle{fill:var(--hover)}svg.uv text{fill:var(--muted);font-size:10px}.mark{flex:none;font-size:9px}.mark.here{color:#ff6b6b}.mark.below{color:#ff6b6b66}.tree.only-bad li:not([data-bad]){display:none}.pane__head .filter{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;margin-left:auto;display:flex}.tabs{gap:2px;display:flex}.tabs button,.nav button{font:inherit;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:2px 6px;font-size:12px}.tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.nav{gap:2px;display:flex}.nav button{border:1px solid #ffffff1a;border-radius:4px;padding:0 7px;font-size:16px;line-height:1}.nav button:disabled{opacity:.3;cursor:default}.hbadge{text-align:center;letter-spacing:0;border-radius:8px;min-width:16px;padding:0 4px;font-size:10px;display:inline-block}.hbadge[data-state=bad]{color:#1b0d0d;background:#ff6b6b}.hbadge[data-state=warn]{color:#1b120d;background:#ff9e64}.hbadge[data-state=ok]{color:#7fd88f}.model-tag{z-index:2;color:#7fd88f;background:#7fd88f22;border:1px solid #7fd88f66;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;position:absolute;top:42px;left:8px}.help-touch{display:none}.splitter{touch-action:none;position:relative}.splitter:after{content:"";z-index:3;position:absolute;inset:0 -9px}@media (pointer:coarse){.help-mouse{display:none}.help-touch{display:inline}.row{padding-top:5px;padding-bottom:5px}.caret{width:22px}.button,.vp-tools button{padding:7px 12px}.tabs button{padding:8px}.nav button{padding:4px 12px;font-size:20px}.chip{padding:6px 12px}button.mini{padding:4px 10px}.props ul.ents li{padding:6px 4px}.props a.ent{padding:2px 0}.pane__head .filter input{width:18px;height:18px}.splitter{background:#0b0f18}.splitter:before{content:"";background:#ffffff40;border-radius:2px;width:3px;height:36px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}@media (max-width:900px){.layout{grid-template-columns:var(--pleft,40%) 5px 1fr;grid-template-rows:var(--top,55%) 5px 1fr;grid-template-areas:"view view view""hs hs hs""tree vs props"}.pane--tree{grid-area:tree}.pane--view{grid-area:view}.pane--props{grid-area:props}.splitter[data-split=left]{cursor:row-resize;grid-area:hs}.splitter[data-split=left]:after{inset:-9px 0}.splitter[data-split=left]:before{width:36px;height:3px}.splitter[data-split=right]{grid-area:vs}.brand__tag,.status{display:none}.viewhelp{right:10px}}.chip.seg[aria-pressed=true]{border-color:var(--hover);color:var(--hover);background:#4daeff26}#counts{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.props table.diff{font-size:12px}.props table.diff td{padding:2px 3px}.props table.diff td:first-child{overflow-wrap:anywhere}.props table.diff .ind{padding-left:10px;font-size:11px}.overlay--busy button{pointer-events:auto}.viewbar{z-index:3;pointer-events:none;flex-wrap:wrap;align-items:center;gap:4px;display:flex;position:absolute;top:8px;left:8px;right:330px}.viewbar>*,.vb-pop{pointer-events:auto}.viewbar button,.viewbar select,.vp-tools button{font:inherit;color:inherit;cursor:pointer;background:#1e2230cc;border:1px solid #fff2;border-radius:4px;padding:3px 8px;font-size:12px}.viewbar select{padding:2px 4px}.viewbar button[aria-pressed=true],.viewbar button[aria-expanded=true]{border-color:var(--hover);color:var(--hover)}.vb-group{display:inline-flex}.vb-group button{border-radius:0;min-width:26px;margin-left:-1px}.vb-group button:first-child{border-radius:4px 0 0 4px;margin-left:0}.vb-group button:last-child{border-radius:0 4px 4px 0}.vb-pop-host{position:relative}.vb-pop{z-index:5;background:var(--bg2);border:1px solid #ffffff26;border-radius:6px;min-width:280px;padding:8px 10px;font-size:12px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 24px #0008}.vb-pop[hidden]{display:none}.vb-row{align-items:center;gap:8px;margin:4px 0;display:flex}.vb-row label{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.vb-lab{width:52px}.vb-range{flex:1;min-width:120px}.vb-val{text-align:right;font-variant-numeric:tabular-nums;min-width:92px}.vb-info{margin-top:6px;font-size:12px}.vb-seg{display:inline-flex}.vb-seg button{border-radius:0;margin-left:-1px}.vb-seg button:first-child{border-radius:4px 0 0 4px}.vb-seg button:last-child{border-radius:0 4px 4px 0}.vb-onoff{margin-left:auto}.legend{z-index:2;background:#151c2be6;border:1px solid #ffffff1f;border-radius:6px;max-width:240px;padding:6px 8px;font-size:12px;position:absolute;bottom:30px;right:8px}.legend[hidden]{display:none}.lg-title{margin-bottom:4px;font-weight:600}.lg-item{grid-template-columns:12px 1fr auto;align-items:center;gap:6px;line-height:1.6;display:grid}.lg-sw{border-radius:2px;width:12px;height:12px}.lg-grad{border-radius:2px;height:10px;margin:4px 0 2px}.lg-ticks{height:14px;font-size:10px;position:relative}.lg-ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}.lg-range,.lg-note{margin-top:2px;font-size:11px}.banner{z-index:4;color:#ffd9b8;background:#3a2a10f0;border:1px solid #ff9e6488;border-radius:6px;align-items:center;gap:8px;max-width:min(640px,90%);padding:6px 10px;font-size:13px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.banner[hidden]{display:none}.banner[data-kind=error]{color:#ffd0d0;background:#3a1414f0;border-color:#ff6b6b88}.banner[data-kind=info]{color:#cfe7ff;background:#13263af0;border-color:#4daeff88}.banner button.mini{flex:none}.menu{z-index:50;background:var(--bg2);border:1px solid #ffffff2e;border-radius:6px;min-width:200px;padding:4px;font-size:13px;position:fixed;box-shadow:0 8px 28px #000a}.menu__title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:3px 8px 5px;font-size:11px}.menu button{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:space-between;gap:16px;padding:5px 8px;display:flex}.menu button:hover:not(:disabled),.menu button:focus-visible{background:#4daeff22;outline:none}.menu button:disabled{opacity:.4;cursor:default}.menu kbd{color:var(--muted);font:inherit;font-size:11px}.menu hr{border:none;border-top:1px solid #ffffff1a;margin:3px 0}.heal-opts{margin:6px 0 8px;font-size:12px}.heal-opts summary{cursor:pointer;color:var(--muted)}.heal-opts .opt{justify-content:space-between;gap:8px;margin:4px 0;display:flex}.heal-opts input[type=number]{background:var(--bg3);width:110px;color:inherit;border:1px solid #fff2;border-radius:3px;padding:2px 4px}.opt-checks{grid-template-columns:1fr 1fr;gap:2px 8px;margin-top:4px;display:grid}.track-list summary{cursor:pointer;margin:4px 0;font-size:12px}.load-report{background:#ff9e640d;border:1px solid #ff9e6455;border-radius:6px;margin-bottom:10px;padding:4px 8px 8px}.props table.skipped td:nth-child(3){color:var(--muted);font-size:11px}@media (pointer:coarse){.viewbar button,.viewbar select{padding:7px 10px}.menu button{padding:10px}}@media (max-width:900px){.viewbar{top:44px;right:8px}.model-tag{top:84px}}.load-report table.skipped{table-layout:auto;width:100%}.load-report table.skipped td,.load-report table.skipped th{text-align:left;vertical-align:top}.load-report table.skipped td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}.about{background:var(--bg2);width:min(720px,100vw - 24px);max-height:calc(100vh - 48px);color:var(--fg);border:1px solid #ffffff1a;border-radius:10px;padding:0;box-shadow:0 12px 40px #0009}.about::backdrop{background:#0008}.about[open]{flex-direction:column;display:flex}.about__head{border-bottom:1px solid #0006;justify-content:space-between;align-items:center;margin:0;padding:10px 14px;display:flex}.about__head h2{margin:0;font-size:15px}.about__head .mini{padding:2px 8px;font-size:18px;line-height:1}.about__body{-webkit-overflow-scrolling:touch;padding:4px 16px 14px;overflow-y:auto}.about__body h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px;font-size:12px}.about__body p,.about__body li{line-height:1.5}.about__body ul{margin:6px 0;padding-left:18px}.about__body a{color:var(--hover)}.about__body code{background:var(--bg3);border-radius:3px;padding:0 4px;font-size:12px}.about__table{border-collapse:collapse;width:100%;font-size:12px}.about__table th{text-align:left;color:var(--muted);font-weight:500}.about__table th,.about__table td{vertical-align:top;border-bottom:1px solid #ffffff12;padding:4px 6px}.about__foot{margin-top:14px}
