:root{--bg:#0d0f14;--panel:#161a22;--border:#262b36;--text:#c7ccd6;--text-h:#f4f6fa;--accent:#6ea8fe;--pass:#3ecf8e;--fail:#f06d6d;--warn:#e7b85c;color:var(--text);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app-shell{flex-direction:column;height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.replay-btn{background:var(--accent);color:#0d0f14;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:9px 16px;font-size:13px;font-weight:700;transition:filter .12s}.replay-btn:hover:not(:disabled){filter:brightness(1.1)}.replay-btn:disabled{background:var(--panel);color:var(--accent);border:1px solid var(--accent);cursor:default}.app-shell.embed .app-main{height:100vh}.replay-float{z-index:5;position:absolute;top:16px;right:16px;box-shadow:0 4px 16px #0006}.app-header h1{color:var(--text-h);margin:0;font-size:16px}.app-header p{color:var(--text);margin:2px 0 0;font-size:13px}.app-main{flex:1;position:relative;overflow:hidden;container-type:inline-size}.canvas-placeholder{color:var(--text);place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.stats-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);pointer-events:none;background:#161a22d1;border-radius:10px;gap:22px;padding:12px 18px;display:flex;position:absolute;top:16px;left:16px}.stat{flex-direction:column;gap:1px;display:flex}.stat-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;line-height:1.1}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-size:10px}.legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);pointer-events:none;background:#161a22d1;border-radius:10px;flex-direction:column;gap:8px;padding:12px 16px;display:flex;position:absolute;bottom:16px;left:16px}.legend-group{flex-wrap:wrap;gap:16px;display:flex}.legend-item{color:var(--text);align-items:center;gap:6px;font-size:12px;display:flex}.legend-swatch{border-radius:3px;width:12px;height:12px}.legend-ring{box-sizing:border-box;border:2px solid;border-radius:4px;width:12px;height:12px}.cam-toggle{z-index:6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);background:#161a22d9;border-radius:8px;gap:2px;padding:3px;display:flex;position:absolute;top:92px;left:16px}.cam-toggle button{color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:5px 11px;font-size:12px;font-weight:600;transition:color .12s,background .12s}.cam-toggle button:hover{color:var(--text-h)}.cam-toggle button.active{background:var(--accent);color:#0d0f14}.minimap{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);z-index:4;background:#161a22d9;border-radius:10px;padding:6px;position:absolute;bottom:16px;right:16px}.legend{max-width:calc(100% - 250px)}@container (width<=560px){.minimap{display:none}.legend{max-width:calc(100% - 32px)}}.livebar{z-index:6;flex-direction:column;align-items:center;gap:8px;width:min(560px,100% - 440px);display:flex;position:absolute;top:80px;left:50%;transform:translate(-50%)}.livebar-notice{color:var(--warn);border:1px solid var(--warn);text-align:center;background:#161a22eb;border-radius:8px;padding:6px 12px;font-size:12px}.livebar-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.livebar-chip{color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);cursor:pointer;background:#161a22d1;border-radius:999px;padding:4px 10px;font-size:11px;transition:color .12s,border-color .12s}.livebar-chip:hover:not(:disabled){color:var(--text-h);border-color:var(--accent)}.livebar-chip:disabled{opacity:.5;cursor:default}.livebar-row{gap:8px;width:100%;display:flex}.livebar-input{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--text-h);background:#161a22f2;border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:13px}.livebar-input::placeholder{color:var(--text)}.livebar-input:focus{border-color:var(--accent)}.livebar-run{background:var(--accent);color:#0d0f14;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:10px 16px;font-size:13px;font-weight:700}.livebar-run:disabled{background:var(--panel);color:var(--accent);border:1px solid var(--accent);cursor:default}.detail-panel{background:var(--panel);border-left:1px solid var(--border);z-index:8;width:360px;padding:18px 20px;animation:.16s ease-out slide-in;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #00000059}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-size:11px}.detail-live{color:var(--pass);margin-right:8px;font-weight:700;animation:1.2s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.4}}.detail-title{color:var(--text-h);margin:4px 0 0;font-size:18px}.detail-close{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;width:28px;height:28px;font-size:13px}.detail-close:hover{color:var(--text-h);border-color:var(--text)}.eval-row{background:#ffffff05;border:1px solid;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;padding:10px 12px;display:flex}.eval-badge{text-transform:uppercase;color:#0d0f14;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700}.eval-score{color:var(--text-h);font-size:18px;font-weight:700}.eval-note{color:var(--text);flex-basis:100%;font-size:12px}.metrics{gap:24px;margin:4px 0 18px;display:flex}.metric{flex-direction:column;gap:2px;display:flex}.metric-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text);font-size:11px}.metric-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:14px}.field{margin-top:18px}.field h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin:0 0 6px;font-size:12px}.field pre{border:1px solid var(--border);color:var(--text-h);white-space:pre-wrap;word-break:break-word;background:#0d0f14;border-radius:8px;margin:0;padding:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.5}.cmp-shell{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.cmp-shell.embed{height:100vh;min-height:0}.cmp-msg{color:var(--text);justify-content:center;align-items:center}.cmp-strip{border-bottom:1px solid var(--border);background:var(--panel);padding:14px 18px 10px}.cmp-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.cmp-col{min-width:0}.cmp-col-head{color:var(--text-h);align-items:center;gap:8px;font-size:14px;display:flex}.cmp-tag,.cmp-pane-tag{background:var(--accent);color:#0d0f14;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-grid}.cmp-badge{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.cmp-badge.pass{color:var(--pass);border-color:var(--pass)}.cmp-badge.warn{color:var(--warn);border-color:var(--warn)}.cmp-badge.fail{color:var(--fail);border-color:var(--fail)}.cmp-stats{margin:4px 0 6px;font-size:12px}.cmp-search{color:var(--text-h);background:var(--bg);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:4px;margin-bottom:4px;padding:3px 6px;font-family:ui-monospace,Menlo,monospace;font-size:11px}.cmp-note{margin:6px 0 0;font-size:12px;line-height:1.45}.cmp-note.warn{color:var(--warn)}.cmp-note.fail{color:var(--fail)}.cmp-papers{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.cmp-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin-right:4px;font-size:11px}.cmp-paper{color:var(--text-h);border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:3px 8px;font-size:12px;text-decoration:none}.cmp-paper:hover{border-color:var(--accent)}.cmp-paper.a,.cmp-paper.b{border-color:var(--warn)}.cmp-side{text-transform:uppercase;color:var(--accent);margin-right:6px;font-size:10px;font-weight:700}.cmp-paper.a .cmp-side,.cmp-paper.b .cmp-side{color:var(--warn)}.cmp-caveat{color:var(--text);margin:10px 0 0;font-size:12px}.cmp-panes{background:var(--border);flex:1;grid-template-columns:1fr 1fr;gap:1px;min-height:480px;display:grid}.cmp-pane{background:var(--bg);min-height:0;position:relative}.cmp-pane iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.cmp-pane-tag{z-index:2;position:absolute;top:10px;right:10px}@media (width<=860px){.cmp-cols,.cmp-panes{grid-template-columns:1fr}.cmp-shell.embed{height:auto}.cmp-pane{height:70vh}}
