:root{--bg:#f5f6f8;--surface:#fff;--border:#d9dce1;--text:#1c1f24;--text-muted:#6b7280;--accent:#2f6feb;--accent-contrast:#fff;--error-bg:#fdeceb;--error-border:#e5534b;--error-text:#8a1f16;--json-key:#8250df;--json-string:#0a7d4f;--json-number:#2f6feb;--json-boolean:#c2410c;--json-null:#6b7280;--json-bracket:#6b7280;--wf-blocked:#9aa1ac;--wf-dns:#0891b2;--wf-connect:#c2410c;--wf-ssl:#8250df;--wf-send:#7db8ff;--wf-wait:#2f6feb;--wf-receive:#0a7d4f;--status-2xx:#0a7d4f;--status-3xx:#0891b2;--status-4xx:#c2410c;--status-5xx:#e5534b;--status-other:#6b7280;--flag-info:#6b7280;--flag-warning:#c2410c;--flag-critical:#e5534b;--mono:ui-monospace, "SF Mono", Consolas, "Cascadia Code", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg:#14161a;--surface:#1b1e24;--border:#2e333c;--text:#e6e8eb;--text-muted:#9aa1ac;--accent:#5b9dff;--accent-contrast:#0b1220;--error-bg:#3a1c1c;--error-border:#e5534b;--error-text:#ffb4ac;--json-key:#c297ff;--json-string:#4fd88f;--json-number:#5b9dff;--json-boolean:#f0a060;--json-null:#9aa1ac;--json-bracket:#9aa1ac;--wf-blocked:#6b7280;--wf-dns:#22d3ee;--wf-connect:#f0a060;--wf-ssl:#c297ff;--wf-send:#7db8ff;--wf-wait:#5b9dff;--wf-receive:#4fd88f;--status-2xx:#4fd88f;--status-3xx:#22d3ee;--status-4xx:#f0a060;--status-5xx:#ff8a80;--status-other:#9aa1ac;--flag-info:#9aa1ac;--flag-warning:#f0a060;--flag-critical:#ff8a80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0}button,select,input{font-family:inherit}.app{flex-direction:column;max-width:1280px;min-height:100%;margin:0 auto;padding:24px 24px 40px;display:flex}.site-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.site-header__brand{color:var(--accent);white-space:nowrap;font-size:15px;font-weight:700;text-decoration:none}.site-header__brand:hover{text-decoration:underline}.site-header__divider{color:var(--text-muted);font-weight:400}.site-header__title{color:var(--text-muted);white-space:nowrap;font-size:15px;font-weight:600}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-header{margin-bottom:16px}.app-header h1{margin:0 0 4px;font-size:28px;font-weight:600}.app-subtitle{color:var(--text-muted);margin:0;font-size:14px}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px;display:flex}.toolbar-spacer{flex:1}.btn,.toggle-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.btn:hover,.toggle-btn:hover{border-color:var(--accent)}.icon-btn{padding:6px 10px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.link-btn:hover{text-decoration:underline}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.tab.active{background:var(--bg);color:var(--text);font-weight:500}.tab-badge{background:var(--flag-warning);color:var(--accent-contrast);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.error-banner{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.error-location{color:var(--error-text);opacity:.85;font-weight:600}.error-message{font-family:var(--mono);word-break:break-word;margin-top:4px;font-size:12.5px}.file-dropzone-wrapper{margin-bottom:12px}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:var(--surface);border-radius:10px;padding:40px 24px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:var(--bg)}.dropzone-icon{margin-bottom:8px;font-size:32px}.dropzone-title{margin-bottom:4px;font-size:15px;font-weight:500}.dropzone-subtitle{color:var(--text-muted);max-width:480px;margin:0 auto;font-size:13px}.file-loaded-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.file-loaded-info{align-items:baseline;gap:10px;display:flex;overflow:hidden}.file-loaded-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-loaded-meta{color:var(--text-muted);white-space:nowrap}.summary-stats{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.stat-chip{cursor:default;color:var(--text);background:0 0;border:none;align-items:baseline;gap:5px;padding:0;font-size:13px;display:flex}.stat-value{font-weight:600}.stat-label{color:var(--text-muted)}.stat-divider{background:var(--border);align-self:stretch;width:1px}.status-chip.status-2xx .stat-value{color:var(--status-2xx)}.status-chip.status-3xx .stat-value{color:var(--status-3xx)}.status-chip.status-4xx .stat-value{color:var(--status-4xx)}.status-chip.status-5xx .stat-value{color:var(--status-5xx)}.status-chip.status-other .stat-value{color:var(--status-other)}.flag-chip{cursor:pointer;border-radius:6px;padding:3px 8px}.flag-chip:hover{background:var(--bg)}.flag-chip .stat-value{color:var(--flag-warning)}.filter-bar{align-items:center}.filter-bar select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:5px 6px;font-size:13px}.search-input{border:1px solid var(--border);background:var(--surface);min-width:160px;color:var(--text);border-radius:6px;flex:1;padding:6px 10px;font-size:13px}.flagged-only-toggle{color:var(--text-muted);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.filter-result-count{color:var(--text-muted);white-space:nowrap;font-size:12px}.waterfall-legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-bottom:10px;padding:0 2px;font-size:11.5px;display:flex}.legend-item{align-items:center;gap:5px;display:inline-flex}.legend-swatch{border-radius:2px;width:9px;height:9px;display:inline-block}.waterfall-blocked{background:var(--wf-blocked)}.waterfall-dns{background:var(--wf-dns)}.waterfall-connect{background:var(--wf-connect)}.waterfall-ssl{background:var(--wf-ssl)}.waterfall-send{background:var(--wf-send)}.waterfall-wait{background:var(--wf-wait)}.waterfall-receive{background:var(--wf-receive)}.main-split{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex}.pane{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.pane-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.request-list{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.request-list-header,.request-row{align-items:center;gap:8px;padding:0 10px;font-size:12.5px;display:flex}.request-list-header{border-bottom:1px solid var(--border);height:30px;color:var(--text-muted);background:var(--bg);font-weight:500}.request-list-body{max-height:420px;overflow-y:auto}.request-row{border-bottom:1px solid var(--border);cursor:pointer;content-visibility:auto;contain-intrinsic-size:30px;height:30px}.request-row:last-child{border-bottom:none}.request-row:hover{background:var(--bg)}.request-row.selected{background:color-mix(in srgb, var(--accent) 14%, var(--surface))}.cell{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cell-flag{text-align:center;flex-shrink:0;width:16px}.cell-name{min-width:120px;font-family:var(--mono);flex:1}.cell-method{width:52px;color:var(--text-muted);flex-shrink:0}.cell-status{flex-shrink:0;width:56px;font-weight:600}.cell-status.status-2xx{color:var(--status-2xx)}.cell-status.status-3xx{color:var(--status-3xx)}.cell-status.status-4xx{color:var(--status-4xx)}.cell-status.status-5xx{color:var(--status-5xx)}.cell-status.status-other{color:var(--status-other)}.cell-type{width:64px;color:var(--text-muted);flex-shrink:0}.cell-size,.cell-time{width:68px;color:var(--text-muted);text-align:right;flex-shrink:0}.cell-waterfall{flex-shrink:0;width:220px}.flag-badge{font-size:11px;line-height:1;display:inline-block}.flag-badge.flag-critical{color:var(--flag-critical)}.flag-badge.flag-warning{color:var(--flag-warning)}.flag-badge.flag-info{color:var(--flag-info)}.waterfall-track{background:var(--bg);border-radius:3px;width:100%;height:14px;position:relative;overflow:hidden}.waterfall-bar{border-radius:2px;min-width:2px;height:100%;display:flex;position:absolute;top:0;overflow:hidden}.waterfall-segment{height:100%}.detail-panel{flex-direction:column;display:flex}.detail-url{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.detail-method{color:var(--accent);font-weight:700}.detail-tabs{border-bottom:1px solid var(--border);padding:6px 8px 0}.detail-tab-content{max-height:420px;padding:12px 14px;overflow-y:auto}.tab-panel{flex-direction:column;gap:16px;display:flex}.empty-state{color:var(--text-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:32px;font-size:13px;display:flex}.empty-state-inline{color:var(--text-muted);flex-direction:column;align-items:flex-start;gap:8px;font-size:13px;display:flex}.large-body-gate{text-align:center;align-items:center;padding:20px}.large-body-gate button{margin:0 4px}.header-group h3{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:0 0 6px;font-size:12px;font-weight:600}.kv-table,.cookie-table{border-collapse:collapse;width:100%;font-size:12.5px}.kv-table td,.cookie-table td,.cookie-table th{border-bottom:1px solid var(--border);vertical-align:top;text-align:left;padding:4px 8px}.cookie-table th{color:var(--text-muted);font-size:11.5px;font-weight:500}.kv-key{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;width:220px}.kv-value{font-family:var(--mono);word-break:break-word}.kv-row-flagged{background:color-mix(in srgb, var(--flag-warning) 10%, transparent)}.reveal-btn{margin-left:8px}.cookie-flag{color:var(--text-muted);border:1px solid var(--border);border-radius:3px;margin-right:2px;padding:0 4px;font-size:10px;font-weight:700;display:inline-block}.raw-pre{background:var(--bg);border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:340px;margin:0;padding:10px;font-size:12.5px;line-height:1.5;overflow:auto}.tree-panel{font-family:var(--mono);font-size:12.5px}.response-image{border:1px solid var(--border);border-radius:6px;max-width:100%}.timing-bar{background:var(--bg);border-radius:3px;height:10px;display:flex;overflow:hidden}.timing-table td:first-child{align-items:center;gap:6px;display:flex}.timing-total-row td{border-top:1px solid var(--border);border-bottom:none;font-weight:600}.security-flag-list{gap:10px}.security-flag-row{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.security-flag-row.severity-critical{border-color:var(--flag-critical)}.security-flag-row.severity-warning{border-color:var(--flag-warning)}.security-flag-body{flex-direction:column;gap:4px;font-size:13px;display:flex}.security-flag-message{font-weight:500}.security-flag-detail{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.tree-line{white-space:nowrap;align-items:baseline;gap:2px;line-height:1.6;display:flex}.tree-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;width:16px;padding:0 4px 0 0;font-size:11px}.json-key{color:var(--json-key)}.json-colon{color:var(--text-muted)}.json-string{color:var(--json-string)}.json-number{color:var(--json-number)}.json-boolean{color:var(--json-boolean)}.json-null{color:var(--json-null)}.json-bracket{color:var(--json-bracket)}.json-comma{color:var(--text-muted)}.tree-collapsed-summary{color:var(--text-muted);font-style:italic}@media (width<=860px){.cell-waterfall{display:none}.filter-bar{flex-direction:column;align-items:stretch}}
