:root{--bg:#0d1117;--panel:#151b23;--panel-2:#1b2330;--border:#2b3240;--text:#e6edf3;--muted:#8b98a9;--accent:#4cc2ff;--ok:#3fb950;--bad:#f85149;--warn:#d29922;--high:#f0883e;--info:#58a6ff;--unknown:#b083f0;--mono:ui-monospace, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 -apple-system,Segoe UI,system-ui,Roboto,sans-serif}#root{min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1;width:min(1280px,100%);margin:0 auto;padding:20px 24px 40px}.top-bar{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);background:#0d1117eb;align-items:center;gap:20px;padding:10px 24px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:8px;display:flex}.brand-mark{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);font-size:17px;font-weight:700}.brand-sub{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:13px}.top-bar-context{align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.top-bar-context .mono{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.top-bar-actions{gap:8px;margin-left:auto;display:flex}.app-footer{border-top:1px solid var(--border);color:var(--muted);text-align:center;padding:14px 24px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px 18px}.panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:14px;font-weight:600}.two-column{grid-template-columns:1fr 1fr;align-items:start;gap:0 16px;display:grid}@media (width<=900px){.two-column{grid-template-columns:1fr}}.tab-body{margin-top:16px}.tab-bar{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.tab{appearance:none;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-weight:500}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.badge{letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-ok{color:var(--ok);background:#3fb95026}.badge-bad{color:var(--bad);background:#f8514926}.badge-warn{color:var(--warn);background:#d2992226}.badge-high{color:var(--high);background:#f0883e26}.badge-info{color:var(--info);background:#58a6ff26}.badge-unknown{color:var(--unknown);background:#b083f026}.badge-muted{color:var(--muted);background:#8b98a926}.mono{font-family:var(--mono);font-size:12.5px}.copy-button{appearance:none;background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12px;text-decoration:none;display:inline-block}.copy-button:hover{border-color:var(--accent)}.primary-button{appearance:none;background:var(--accent);color:#06202e;font:inherit;cursor:pointer;border:none;border-radius:6px;padding:9px 18px;font-weight:600}.primary-button:disabled{opacity:.55;cursor:wait}.action-row{gap:10px;margin-top:14px;display:flex}.note{color:var(--muted);margin:8px 0;font-size:13px}.note-bad{color:#ffb3ae;background:#f8514914;border:1px solid #f8514959;border-radius:6px;padding:8px 12px}.note-warn{color:#ecd396;background:#d2992214;border:1px solid #d2992259;border-radius:6px;padding:8px 12px}.empty-state{color:var(--muted);padding:10px 0;font-style:italic}.filter-row{align-items:center;gap:8px;display:flex}select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;padding:4px 8px;font-size:12.5px}.checkbox-label{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.kv-grid{gap:6px 0;margin:0;display:grid}.kv-row{grid-template-columns:220px 1fr;align-items:baseline;gap:12px;display:grid}.kv-row dt{color:var(--muted);font-size:12.5px}.kv-row dd{overflow-wrap:anywhere;margin:0}.table-scroll{border:1px solid var(--border);border-radius:6px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:var(--panel-2);font-size:11.5px;position:sticky;top:0}th,td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 10px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#4cc2ff0a}tbody tr.selected{background:#4cc2ff1a}.cell-wrap{overflow-wrap:anywhere;max-width:420px}.stage-list{margin:0;padding:0;list-style:none}.stage-list li{border-bottom:1px solid var(--border);gap:12px;padding:8px 0;display:flex}.stage-list li:last-child{border-bottom:none}.stage-list p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.stage-check{color:var(--ok);text-align:center;flex-shrink:0;width:18px;font-weight:700}.stage-failed .stage-check,.stage-failed strong{color:var(--bad)}.stage-skipped{opacity:.45}.status-count-row{flex-wrap:wrap;gap:10px;margin:8px 0;display:flex}.status-count{color:var(--muted);align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.json-root{font-family:var(--mono);font-size:12.5px;line-height:1.55;overflow-x:auto}.json-node>summary{cursor:pointer;list-style:none;display:inline}.json-node>summary:before{content:"▸ ";color:var(--muted)}.json-node[open]>summary:before{content:"▾ "}.json-children{border-left:1px solid var(--border);margin-left:4px;padding-left:18px}.json-key{color:var(--accent)}.json-string{color:#a5d6ff;overflow-wrap:anywhere}.json-number{color:#ffa657}.json-null{color:var(--muted);font-style:italic}.json-punct{color:var(--muted)}.json-entry{padding:1px 0}.scroll-capped{max-height:520px;overflow-y:auto}.raw-text{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);white-space:pre;border-radius:6px;padding:10px 12px;font-size:12.5px;overflow-x:auto}.subsection{border:1px solid var(--border);border-radius:6px;margin-top:12px;padding:8px 12px}.subsection>summary{cursor:pointer;color:var(--muted);font-size:13px}.flag-list{flex-direction:column;gap:6px;display:flex}.flag-item{border:1px solid var(--border);background:var(--panel-2);border-radius:6px}.flag-item>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;list-style:none;display:flex}.flag-category{font-weight:600}.flag-rule{color:var(--accent)}.flag-meta{color:var(--muted);font-size:12px}.flag-source{color:var(--muted);font-size:11.5px;font-family:var(--mono);margin-left:auto}.flag-detail{border-top:1px solid var(--border);padding:10px 12px}.screenshot-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.screenshot-grid figure{cursor:zoom-in;margin:0}.screenshot-grid img{border:1px solid var(--border);border-radius:6px;width:100%;display:block}.screenshot-grid figcaption{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:11px}.lightbox{z-index:50;cursor:zoom-out;background:#05080ceb;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:30px;display:flex;position:fixed;inset:0}.lightbox img{border:1px solid var(--border);border-radius:4px;max-width:100%;max-height:85vh}.lightbox p{color:var(--muted)}.artifacts-layout{grid-template-columns:minmax(380px,5fr) minmax(320px,6fr);align-items:start;gap:16px;display:grid}@media (width<=1000px){.artifacts-layout{grid-template-columns:1fr}}.artifact-list .panel{margin-bottom:12px}.artifact-list tbody tr{cursor:pointer}.artifact-viewer{position:sticky;top:66px}.artifact-image{border:1px solid var(--border);border-radius:6px;max-width:100%}.open-screen,.preview-screen,.rejected-screen{max-width:760px;margin:40px auto 0}.drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;padding:56px 32px;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent);background:#4cc2ff0d}.drop-zone h1{margin:16px 0 6px;font-size:20px}.drop-zone p{color:var(--muted);margin:0}.drop-zone-icon{font-family:var(--mono);color:var(--accent);border:1px solid var(--accent);letter-spacing:.05em;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:700;display:inline-block}.flow-steps{color:var(--muted);gap:6px;margin-top:28px;padding-left:20px;font-size:13px;display:grid}
