@backtrack-js/browser 0.5.3 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -54
- package/bin/cli.cjs +5 -2
- package/bin/export-context.cjs +50 -0
- package/bin/mcp.cjs +19 -0
- package/bin/symbolize.cjs +214 -66
- package/dist/capturers/browser.d.ts +18 -0
- package/dist/capturers/errors.d.ts +3 -1
- package/dist/capturers/network.d.ts +11 -1
- package/dist/capturers/rrweb.d.ts +2 -0
- package/dist/capturers/sanitizer.d.ts +1 -0
- package/dist/core/flight-recorder.d.ts +9 -0
- package/dist/dev-server.cjs +3 -6
- package/dist/dev-server.js +128 -90
- package/dist/incident-reports-9iXHIaBD.js +1242 -0
- package/dist/incident-reports-Cjos7N-u.cjs +51 -0
- package/dist/index.cjs +53 -38
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2357 -2079
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp.cjs +2 -0
- package/dist/mcp.js +203 -0
- package/dist/storage/batch-writer.d.ts +6 -0
- package/dist/storage/incident-manager.d.ts +10 -6
- package/dist/types/artifact.d.ts +50 -0
- package/dist/types/browser-context.d.ts +34 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/options.d.ts +15 -0
- package/dist/types/timeline.d.ts +11 -0
- package/dist/types/visual-proposal.d.ts +1 -0
- package/dist/utils/context-package.d.ts +4 -0
- package/dist/utils/incident-query.d.ts +93 -0
- package/dist/utils/incident-reports.d.ts +18 -0
- package/dist/utils/interactions.d.ts +13 -0
- package/dist/utils/markdown.d.ts +3 -0
- package/dist/validation/structure.d.ts +11 -0
- package/dist/validation/validate.d.ts +3 -1
- package/dist/viewer/assets/{index-092olPra.css → index-DXHvcqkw.css} +1 -1
- package/dist/viewer/assets/index-_sgOsnDM.js +337 -0
- package/dist/viewer/index.html +2 -2
- package/dist/widget/element-editor.d.ts +7 -0
- package/dist/widget/widget.d.ts +9 -2
- package/package.json +113 -99
- package/dist/markdown-Ao5Ah9MF.cjs +0 -8
- package/dist/markdown-D3C94OlY.js +0 -493
- package/dist/viewer/assets/index-BkV3C4kX.js +0 -197
|
@@ -8,12 +8,14 @@ export interface ValidationFailure {
|
|
|
8
8
|
errors: string[];
|
|
9
9
|
}
|
|
10
10
|
export type ValidationResult = ValidationSuccess | ValidationFailure;
|
|
11
|
+
export declare const MAX_INCIDENT_DESCRIPTION_LENGTH = 4000;
|
|
12
|
+
export declare const isIncidentDescriptionText: (value: unknown) => value is string;
|
|
11
13
|
/**
|
|
12
14
|
* Valida se annotationImage é estritamente uma imagem data:base64 segura (png, jpeg ou webp),
|
|
13
15
|
* rejeitando http:, https:, javascript:, file: e payloads acima de 10 MB.
|
|
14
16
|
*/
|
|
15
17
|
export declare function isValidAnnotationImage(value: unknown): value is string;
|
|
16
|
-
/** Validates the envelope and
|
|
18
|
+
/** Validates the envelope and known rrweb collections before handing them to the player. */
|
|
17
19
|
export declare function isReplayEvent(value: unknown): boolean;
|
|
18
20
|
/**
|
|
19
21
|
* Valida a integridade e o schema de um artefato .ffr.json do Flight Recorder.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--bg-app: #0f1117;--bg-surface: #161a23;--bg-surface-elevated: #1e2430;--bg-surface-active: #1e2430;--bg-code: #050811;--bg-input: #131720;--border-subtle: #262d3d;--border-strong: #3b4252;--border-focus: #3b82f6;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-main: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-dim: #475569;--blue-500: #2563eb;--blue-600: #1d4ed8;--blue-focus: #3b82f6;--red-500: #ef4444;--red-bg: rgba(239, 68, 68, .12);--red-border: rgba(239, 68, 68, .35);--red-text: #f87171;--amber-500: #f59e0b;--amber-bg: rgba(245, 158, 11, .12);--amber-border: rgba(245, 158, 11, .35);--amber-text: #fbbf24;--emerald-500: #10b981;--emerald-text: #34d399;--radius-sm: 6px;--radius-md: 8px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-secondary);font-family:var(--font-sans);font-size:13px;line-height:1.4;height:100vh;overflow:hidden;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#334155;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#475569}.app-container{display:flex;flex-direction:column;height:100%;background-color:var(--bg-app);overflow:hidden}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;z-index:30}.header-primary-band{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid rgba(30,41,59,.8);min-height:42px}.header-brand-wrap{display:flex;align-items:center;gap:8px;min-width:0}.brand-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--blue-focus);flex-shrink:0}.brand-title{font-size:13px;font-weight:600;color:var(--text-main);letter-spacing:-.01em;white-space:nowrap}.brand-version-badge{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:1px 5px;border-radius:var(--radius-sm);background-color:var(--bg-surface-active);color:var(--text-secondary);border:1px solid var(--border-subtle);flex-shrink:0}.incident-status-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;font-weight:500;background-color:var(--bg-surface-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}.header-secondary-band{display:flex;align-items:center;padding:4px 14px;background-color:#0b1120;min-height:32px;overflow-x:auto}.incident-meta-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%}.meta-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.meta-label{color:var(--text-muted)}.meta-value{color:var(--text-main);font-weight:500}.meta-chip-btn{background-color:var(--bg-surface);cursor:pointer;transition:background-color .1s ease,border-color .1s ease;outline:none}.meta-chip-btn:hover{background-color:var(--bg-surface-elevated);border-color:var(--border-strong)}.meta-chip-btn:focus-visible{outline:2px solid var(--border-focus)}.meta-id{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.meta-copied{color:var(--emerald-text);font-weight:700;margin-left:2px}.meta-chip-host{max-width:220px}.meta-chip-host .meta-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;display:inline-block;vertical-align:bottom}.meta-chip-drops.is-warning{border-color:var(--red-border);background-color:var(--red-bg)}.meta-chip-drops.is-warning .meta-value{color:var(--red-text)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--blue-500);color:#fff;border:1px solid var(--blue-600);border-radius:var(--radius-md);padding:6px 14px;font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .1s ease;-webkit-user-select:none;user-select:none;outline:none}.btn-primary:hover{background-color:var(--blue-600)}.btn-primary:focus-visible{outline:2px solid var(--blue-focus);outline-offset:1px}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--bg-surface-active);color:var(--text-main);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:4px 10px;font-family:var(--font-sans);font-size:11px;font-weight:500;cursor:pointer;transition:background-color .1s ease,border-color .1s ease;-webkit-user-select:none;user-select:none;outline:none}.btn-secondary:hover{background-color:#27354f;border-color:#475569}.btn-secondary:focus-visible{outline:2px solid var(--blue-focus);outline-offset:1px}.mobile-tab-nav{display:none}@media (max-width: 960px){.mobile-tab-nav{display:flex;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:4px 10px;gap:6px;flex-shrink:0}.mobile-tab-btn{flex:1;background-color:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-md);padding:6px 12px;font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;text-align:center;transition:background-color .1s ease,color .1s ease;outline:none}.mobile-tab-btn:hover{color:var(--text-main);background-color:var(--bg-surface-elevated)}.mobile-tab-btn.is-active{background-color:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong);font-weight:600}.mobile-tab-btn:focus-visible{outline:2px solid var(--blue-focus)}}.main-layout{display:flex;flex:1;overflow:hidden;padding:10px;gap:10px;background-color:var(--bg-app)}.pane-wrapper{display:flex;flex-direction:column;min-height:0}.replay-wrapper{flex:1.35;min-width:0}.timeline-wrapper{width:clamp(300px,30vw,460px);flex-shrink:0}.timeline-toggle{align-self:center;flex:0 0 24px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.timeline-toggle:hover{color:var(--text-main)}.timeline-toggle:focus-visible{outline:2px solid var(--blue-focus)}@media (min-width: 961px){.pane-wrapper.mobile-hidden{display:flex!important}}@media (max-width: 960px){.main-layout{flex-direction:column;padding:6px;gap:6px}.replay-wrapper,.timeline-wrapper{width:100%!important;flex:1}.pane-wrapper.mobile-hidden{display:none!important}}.replay-pane{flex:1;display:flex;flex-direction:column;background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);overflow:hidden;min-height:0}.replay-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;position:relative;padding:12px;background-color:#070a12}.replay-scaler-frame{position:relative;background-color:#000;border-radius:var(--radius-md);border:1px solid var(--border-strong);overflow:hidden;flex-shrink:0;transition:width .1s ease,height .1s ease}.replay-top-overlay{position:absolute;top:8px;left:8px;z-index:30;display:flex;align-items:center;gap:6px;pointer-events:none}.scale-pill{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-sm);background-color:#090d16d9;border:1px solid var(--border-strong);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.replay-frame-wrapper{transform-origin:top left;position:relative;background-color:#fff}.replayer-wrapper{position:relative!important;width:100%!important;height:100%!important;overflow:hidden}.replayer-wrapper iframe{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;border:none!important;outline:none!important;background-color:#fff!important;display:block!important;z-index:1!important}.replayer-mouse-tail{position:absolute!important;top:0!important;left:0!important;pointer-events:none!important;z-index:10!important}.replayer-mouse{position:absolute!important;z-index:20!important;pointer-events:none!important}.player-controls-bar{position:relative;background-color:#0b101c;border-top:1px solid var(--border-subtle);padding:8px 12px;display:flex;flex-direction:column;gap:8px;flex-shrink:0;z-index:20}.scrubber-track-container{position:relative;width:100%;height:14px;display:flex;align-items:center;cursor:pointer}.scrubber-track-bg{position:relative;width:100%;height:4px;background-color:#1e293b;border-radius:2px;overflow:visible}.scrubber-fill{height:100%;background-color:var(--blue-500);border-radius:2px;position:relative;pointer-events:none}.scrubber-thumb-indicator{position:absolute;right:-5px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background-color:#fff;border:2px solid var(--blue-500)}.milestone-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;border:1px solid #0b101c;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;z-index:15;pointer-events:auto}.milestone-marker:hover{transform:translate(-50%,-50%) scale(2);box-shadow:0 0 8px #fff9;z-index:25}.marker-network{background-color:var(--text-secondary)}.marker-console{background-color:var(--amber-500)}.marker-error{background-color:var(--red-500);box-shadow:0 0 5px #ef4444cc}.marker-navigation{background-color:var(--text-secondary)}.marker-generic{background-color:#64748b}.seek-slider-overlay{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;z-index:10}.scrubber-hover-tooltip{position:absolute;bottom:calc(100% + 8px);transform:translate(-50%);background-color:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:4px;padding:4px 8px;font-family:var(--font-mono);font-size:11px;white-space:nowrap;pointer-events:none;z-index:40;box-shadow:0 4px 14px #0009;display:flex;flex-direction:column;align-items:center;gap:2px;max-width:320px;animation:tooltipFadeIn .08s ease-out}.scrubber-hover-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:4px;border-style:solid;border-color:#334155 transparent transparent transparent}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,2px)}to{opacity:1;transform:translate(-50%)}}.scrubber-hover-tooltip .tooltip-time{font-weight:700;color:#38bdf8;letter-spacing:.5px}.scrubber-hover-tooltip .tooltip-event{font-family:var(--font-sans);font-size:10px;color:#cbd5e1;max-width:280px;overflow:hidden;text-overflow:ellipsis}.scrubber-hover-tooltip .tooltip-event.is-error{color:#fca5a5;font-weight:600}.jump-feedback-toast{font-size:11px;font-family:var(--font-mono);color:#fca5a5;background-color:#ef444426;border:1px solid rgba(239,68,68,.35);padding:2px 8px;border-radius:var(--radius-sm);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:tooltipFadeIn .15s ease-out}.btn-jump-error.is-no-error{opacity:.7;border-color:#94a3b84d;color:var(--text-secondary);background-color:#94a3b81a}.btn-jump-error.is-no-error:hover{opacity:1;background-color:#94a3b833;color:var(--text-main);border-color:var(--border-subtle)}.controls-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto;white-space:nowrap;padding-right:68px;min-height:30px}.controls-toolbar>div,.controls-left-group>*{flex-shrink:0}.btn-step,.time-display{white-space:nowrap}.btn-play-pause{min-width:65px}.jump-feedback-toast{position:absolute;bottom:100%;left:12px}.replay-options{position:absolute;right:12px;bottom:8px;z-index:30}.replay-options>summary{list-style:none;height:26px;padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface-active);color:var(--text-main);font-size:11px;cursor:pointer}.replay-options>summary:focus-visible{outline:2px solid var(--blue-focus)}.replay-options-panel{position:absolute;right:0;bottom:34px;width:min(330px,calc(100vw - 48px));max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--bg-surface-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:0 8px 24px #0008;font-size:12px}.replay-options-panel .control-item,.replay-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.replay-options-panel p,.replay-option>span{font-size:11px;line-height:1.6;color:var(--text-secondary)}.controls-left-group{display:flex;align-items:center;gap:8px}.btn-play-pause{height:26px;padding:0 10px;border-radius:var(--radius-sm);background-color:var(--text-main);color:#0b0f17;font-family:var(--font-sans);font-size:11px;font-weight:600;border:1px solid var(--text-main);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color .1s ease;outline:none}.btn-play-pause:hover{background-color:#e2e8f0}.btn-play-pause:focus-visible{outline:2px solid var(--blue-focus)}.step-buttons-group{display:flex;align-items:center;background-color:var(--bg-surface);border-radius:var(--radius-sm);padding:1px;border:1px solid var(--border-subtle)}.btn-step{height:22px;padding:0 6px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:2px;cursor:pointer;transition:background-color .1s ease,color .1s ease;outline:none}.btn-step:hover{color:var(--text-main);background-color:var(--bg-surface-elevated)}.btn-step:focus-visible{outline:2px solid var(--blue-focus)}.btn-step-frame{font-weight:600;color:#38bdf8;padding:0 7px}.btn-step-frame:hover{background-color:#38bdf826;color:#7dd3fc}.btn-jump-error{height:26px;padding:0 9px;border-radius:var(--radius-sm);background-color:#ef444424;color:#fca5a5;font-family:var(--font-sans);font-size:11px;font-weight:600;border:1px solid rgba(239,68,68,.45);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .12s ease;outline:none}.btn-jump-error:hover{background-color:#ef4444;color:#fff;border-color:#ef4444}.btn-jump-error:focus-visible{outline:2px solid var(--red-border)}.step-divider{width:1px;height:12px;background-color:var(--border-subtle);margin:0 1px}.time-display{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px}.time-current{color:var(--text-main);font-weight:600}.time-divider{color:var(--text-dim)}.time-total{color:var(--text-muted)}.controls-right-group{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px}.control-item{display:flex;align-items:center;gap:4px}.control-label{color:var(--text-muted)}.control-select{background-color:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-sm);padding:2px 6px;font-family:var(--font-mono);font-size:11px;cursor:pointer;outline:none}.control-select:focus-visible{border-color:var(--blue-focus);outline:1px solid var(--blue-focus)}.timeline-pane{flex:1;display:flex;flex-direction:column;background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);overflow:hidden;min-height:0}.timeline-header{padding:8px 10px;border-bottom:1px solid var(--border-subtle);background-color:#0b101c;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.search-input-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:8px;color:var(--text-muted);pointer-events:none;display:flex}.timeline-search{width:100%;background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font-sans);font-size:12px;padding:5px 8px 5px 28px;outline:none}.timeline-search:focus{border-color:var(--blue-focus)}.filter-tabs-row{display:flex;align-items:center;gap:3px;overflow-x:auto}.filter-tab{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:11px;font-weight:500;color:var(--text-muted);background-color:transparent;border:1px solid transparent;cursor:pointer;white-space:nowrap;outline:none}.filter-tab:hover{color:var(--text-secondary);background-color:var(--bg-surface-elevated)}.filter-tab.active{background-color:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong);font-weight:600}.filter-tab:focus-visible{outline:2px solid var(--blue-focus)}.tab-count{font-family:var(--font-mono);font-size:10px;padding:0 4px;border-radius:2px;background-color:var(--bg-app);color:var(--text-secondary)}.tab-count-error{background-color:var(--red-bg);color:var(--red-text)}.tab-count-network{background-color:var(--bg-surface-active);color:var(--text-secondary)}.timeline-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.timeline-item{display:flex;flex-direction:column;padding:5px 8px;border-radius:var(--radius-sm);border:1px solid transparent;border-left:3px solid transparent;background-color:transparent;cursor:pointer;outline:none;transition:background-color .1s ease}.timeline-item:hover{background-color:var(--bg-surface-elevated)}.timeline-item.active{background-color:var(--bg-surface-elevated);border-left-color:var(--blue-500)}.timeline-item:focus-visible{outline:2px solid var(--blue-focus)}.timeline-row-main{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;min-width:0}.timeline-col-time{color:var(--text-muted);width:52px;flex-shrink:0}.timeline-col-badge-wrap{flex-shrink:0}.timeline-badge{display:inline-block;padding:1px 4px;border-radius:2px;font-family:var(--font-mono);font-size:10px;font-weight:500;line-height:1.2}.badge-neutral{background-color:var(--bg-surface-active);color:var(--text-secondary);border:1px solid var(--border-subtle)}.badge-warn{background-color:var(--amber-bg);color:var(--amber-text);border:1px solid var(--amber-border)}.badge-error{background-color:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border)}.timeline-col-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.timeline-summary-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.timeline-summary-text.is-error{color:var(--red-text)}.timeline-col-status{flex-shrink:0;text-align:right;font-size:10.5px}.timeline-col-meta{color:var(--text-muted)}.timeline-col-meta.is-error{color:var(--red-text)}.timeline-details-panel{margin-top:6px;padding:6px 8px;background-color:var(--bg-code);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.details-row{margin-bottom:3px;word-break:break-all}.details-url{color:var(--text-main)}.details-code{margin-top:4px;padding:6px;background-color:var(--bg-app);border-radius:2px;border:1px solid var(--border-subtle);overflow-x:auto;white-space:pre-wrap;word-break:break-all;font-size:10.5px}.details-error-code{color:var(--red-text)}.timeline-empty-message{padding:24px;text-align:center;color:var(--text-muted);font-size:12px}.timeline-footer{padding:6px 10px;border-top:1px solid var(--border-subtle);background-color:#0b101c;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted);flex-shrink:0}.timeline-footer-status{color:var(--text-muted)}.timeline-footer-count{font-family:var(--font-mono);color:var(--text-dim)}.importer-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;background-color:var(--bg-app)}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:40px 24px;text-align:center;max-width:480px;width:100%;background-color:var(--bg-surface);cursor:pointer;transition:border-color .1s ease,background-color .1s ease;outline:none}.dropzone:hover,.dropzone.dragover{border-color:var(--blue-focus);background-color:var(--bg-surface-elevated)}.dropzone:focus-visible{outline:2px solid var(--blue-focus)}.dropzone-icon{margin-bottom:12px;color:var(--blue-focus);display:flex;justify-content:center}.dropzone h2{font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text-main);letter-spacing:-.01em}.dropzone-description{color:var(--text-secondary);font-size:12px;margin-bottom:18px;line-height:1.5}.importer-hint{color:var(--text-muted);font-size:11px;margin-top:14px;line-height:1.4}.import-error{margin-top:14px;background-color:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border);border-radius:var(--radius-md);padding:10px 14px;max-width:480px;width:100%;font-size:11px;font-family:var(--font-mono)}.import-error ul{margin-top:6px;padding-left:16px}.resolved-stack{margin-top:8px;display:flex;flex-direction:column;gap:6px}.resolved-frame{background-color:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.resolved-frame>summary{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;background-color:var(--bg-surface-elevated);font-family:var(--font-mono);font-size:11px;color:var(--text-main);-webkit-user-select:none;user-select:none}.resolved-frame>summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.resolved-frame-location{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resolved-frame-copy{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:10px;padding:2px 6px;border-radius:3px;cursor:pointer;font-family:var(--font-sans);white-space:nowrap;flex-shrink:0}.resolved-frame-copy:hover{background:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong)}.resolved-frame-copy:focus-visible{outline:2px solid var(--border-focus)}.source-context{overflow-x:auto;background-color:var(--bg-code);font-family:var(--font-mono);font-size:11px;line-height:1.5}.source-context pre{margin:0;padding:6px 0}.source-context code{display:block;font-family:inherit}.source-line{display:flex;padding:0 10px;min-width:fit-content}.source-line-active{background-color:#ef444426;border-left:2px solid var(--red-500)}.source-line-number{display:inline-block;width:44px;text-align:right;padding-right:12px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex-shrink:0;border-right:1px solid var(--border-subtle);margin-right:12px}.source-line-active .source-line-number{color:var(--red-text);font-weight:600}.source-line-content{color:var(--text-secondary);white-space:pre}.source-line-active .source-line-content{color:var(--text-main);font-weight:500}.source-line-pointer .source-line-number{border-right:1px solid transparent}.source-line-pointer .source-line-content{color:var(--red-text);font-weight:700}.details-original-stack{margin-top:8px}.details-original-stack>summary{font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}@media (min-width: 601px){.mobile-tab-nav{display:none}.main-layout{flex-direction:row;min-height:0;gap:6px}.replay-wrapper{width:auto!important;min-width:0;flex:1}.timeline-wrapper{width:clamp(280px,30vw,460px)!important;flex:0 0 auto}.main-layout .pane-wrapper.mobile-hidden{display:flex!important}.main-layout.timeline-collapsed .timeline-wrapper{width:44px!important}}@media (max-width: 600px){.timeline-toggle{display:none}}.header-primary-band,.header-secondary-band{background:var(--bg-app)}.brand-title{font-size:16px}.timeline-header,.timeline-footer{background:var(--bg-app)}.activity-tabs{gap:8px}.timeline-header{position:relative;z-index:2}.activity-tabs{overflow:visible}.timeline-filter-menu{margin-left:auto;flex-shrink:0;position:static}.timeline-filter-menu .timeline-filter-panel{z-index:5}.timeline-filter-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--text-secondary);position:relative;border-radius:6px}.timeline-filter-menu>summary:hover{color:var(--text-main);background:var(--bg-surface-elevated)}.timeline-filter-menu>summary:focus-visible{outline:2px solid var(--blue-focus)}.filter-active-dot{position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:#85dfc9}.timeline-filter-panel{position:absolute;right:10px;top:46px;width:min(300px,calc(100vw - 40px));max-height:55vh;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg-surface-elevated);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 10px 25px #0009;color:var(--text-main);font-size:12px}.timeline-filter-panel p{color:var(--text-secondary);font-size:11px;line-height:1.5}.timeline-filter-panel fieldset{border:0;display:flex;flex-direction:column;gap:8px}.timeline-filter-panel legend{padding-bottom:10px;color:var(--text-secondary)}.timeline-filter-panel label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-filter-panel input[type=checkbox]{accent-color:#85dfc9}.timeline-filter-panel input[type=search]{width:100%;padding:8px;color:var(--text-main);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:6px}.activity-tabs .filter-tab{font-size:13px;padding:7px 10px}.timeline-toggle{align-self:auto;flex:0 0 28px;width:28px;height:30px;border:0;background:transparent}.timeline-pane.is-collapsed .timeline-header{padding:10px 7px}.timeline-pane.is-collapsed .activity-tabs>:not(.timeline-toggle),.timeline-pane.is-collapsed .timeline-header>:not(.activity-tabs),.timeline-pane.is-collapsed .timeline-list,.timeline-pane.is-collapsed .timeline-footer{display:none}.timeline-row-main{font-family:var(--font-sans);font-size:12px}.timeline-col-time,.timeline-col-status{font-family:var(--font-mono);font-size:11px}.timeline-item{padding:8px 10px}.player-controls-bar{padding:10px 18px 12px;gap:5px;background:#111720}.scrubber-track-bg{height:5px;background:#303949}.scrubber-fill{background:#85dfc9}.scrubber-thumb-indicator{width:15px;height:15px;right:-7px;background:#85dfc9;border:0}.marker-error{width:7px;height:7px;border:1px solid #111720;border-radius:50%;background:#ef4444;box-shadow:none}.scrubber-ticks{display:flex;justify-content:space-between;font:11px var(--font-mono);color:var(--text-muted);margin-bottom:4px}.controls-toolbar{min-height:38px;padding-right:110px;gap:16px}.controls-left-group{gap:10px}.btn-play-pause,.btn-jump-error{height:36px;border-radius:8px;padding:0 16px;font-size:15px}.btn-play-pause{min-width:110px;justify-content:center;background:#85dfc9;border-color:#85dfc9;color:#11241f}.btn-play-pause:hover{background:#a0e8d7}.btn-play-pause svg{width:16px;height:16px}.btn-jump-error{font-weight:400;background:transparent;color:#f0a9ab;border-color:#5e383b}.step-buttons-group{background:transparent;border:0;border-left:1px solid var(--border-subtle);border-radius:0;gap:6px;padding-left:12px;height:32px}.step-label{font:12px var(--font-sans);color:var(--text-secondary);margin-right:3px}.btn-step{height:30px;padding:0 6px;color:var(--text-main);font-size:14px}.btn-step-frame{color:var(--text-main)}.time-display{background:transparent;border:0;padding:0 6px;font-size:13px}.controls-right-group>.control-item>label{display:none}.controls-right-group .control-select{height:36px;padding:0 12px;font-size:14px;min-width:76px}.replay-options{right:18px;bottom:13px}.replay-options>summary{height:36px;padding:8px 14px;font-size:13px;background:transparent;border-radius:8px}.replay-options-panel{bottom:44px}.app-header{background:var(--bg-app)}.header-primary-band{padding:10px 18px;min-height:54px;border-bottom:1px solid var(--border-subtle)}.header-brand-wrap{gap:10px}.brand-icon{color:#85dfc9}.brand-title{font-size:17px;font-weight:600}.brand-version-badge{background:transparent;border:0;color:var(--text-muted)}.header-actions{gap:8px}.share-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--text-main);overflow:clip}.share-drawer-overlay[open]{display:flex;justify-content:flex-end}.share-drawer-overlay::backdrop{background:#0f11178c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.share-drawer{position:absolute;top:0;right:0;width:min(480px,100%);height:100%;background:var(--bg-app);border-left:1px solid var(--border-subtle);box-shadow:-12px 0 40px #0005;display:flex;flex-direction:column}.share-drawer-overlay[open] .share-drawer{animation:share-drawer-in .18s ease-out both}.share-drawer>:first-child{flex-shrink:0}.share-drawer-body{padding:18px 24px;display:flex;flex-direction:column;gap:18px;flex:1;min-height:0;overflow-y:auto}.share-drawer-card{display:flex;flex-direction:column;gap:10px}.share-drawer-card+.share-drawer-card{border-top:1px solid var(--border-subtle);padding-top:16px}.share-drawer-card>.btn-primary,.share-drawer-card>.btn-secondary{min-height:38px;width:100%;justify-content:center;border-radius:8px}.share-format-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.share-format-option:hover{background:var(--bg-surface-elevated);border-color:var(--border-strong)}.share-format-option:has(input:checked){background:#2563eb1f;border-color:var(--blue-focus)}.share-format-option:focus-within{outline:2px solid var(--blue-focus);outline-offset:2px}.share-drawer button:focus-visible{outline:2px solid var(--blue-focus);outline-offset:2px}.share-drawer input{min-width:0}#share-drawer-title{font-size:18px;line-height:1.4}.share-drawer-body p,.share-drawer-body div,.share-drawer-body label,.share-drawer-body input{font-size:12px!important;line-height:1.4!important}.share-drawer-card>div:first-child>strong{font-size:14px!important}.share-format-option>div>span{font-size:13px!important}.share-drawer-body button{font-size:13px!important;min-height:36px}@keyframes share-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.share-drawer-overlay[open] .share-drawer{animation:none}}.header-actions .btn-secondary{height:36px;padding:0 12px;gap:8px;font-size:13px;line-height:1;background:transparent;border-color:transparent;color:var(--text-secondary);font-weight:500;white-space:nowrap}.header-actions .btn-secondary svg{width:16px;height:16px;flex-shrink:0}.header-actions .btn-secondary:hover{background:var(--bg-surface-elevated);border-color:var(--border-subtle);color:var(--text-main)}.header-actions .btn-secondary[aria-label="Carregar outro incidente"]{background:#2563eb29;border-color:var(--border-subtle);color:#93c5fd}.header-actions .btn-secondary[aria-label="Carregar outro incidente"]:hover{background:var(--bg-surface-elevated);border-color:var(--blue-focus)}.header-actions .btn-secondary:last-child{background:var(--blue-500);border-color:var(--blue-focus);color:#fff}.header-actions .btn-secondary:last-child:hover{background:var(--blue-600)}.header-actions .btn-secondary:focus-visible{outline-offset:3px}@media (max-width: 760px){.header-primary-band{flex-wrap:wrap;gap:10px}.header-actions{margin-left:0;flex-shrink:1;flex-wrap:wrap;gap:6px}}.header-secondary-band{padding:6px 18px;min-height:34px}.incident-meta-chips{gap:8px}.meta-chip{background:transparent;border-color:transparent;padding:2px 0;gap:6px;align-items:baseline;line-height:18px}.meta-chip+.meta-chip{padding-left:10px;border-left:1px solid var(--border-subtle);border-radius:0}.meta-label{font-family:var(--font-sans);font-size:12px;color:var(--text-secondary)}.meta-value{font-weight:400;font-size:12px;line-height:inherit}.meta-chip-btn:hover{background:var(--bg-surface);border-color:var(--border-subtle)}@media (max-width: 600px){.timeline-pane.is-collapsed .timeline-header>:not(.activity-tabs),.timeline-pane.is-collapsed .timeline-list,.timeline-pane.is-collapsed .timeline-footer{display:flex}.timeline-pane.is-collapsed .activity-tabs>:not(.timeline-toggle){display:inline-flex}}.replayer-wrapper{position:relative}.replayer-mouse{position:absolute;width:20px;height:20px;transition:left .05s linear,top .05s linear;background-size:contain;background-position:center center;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==);border-color:transparent}.replayer-mouse:after{content:"";display:inline-block;width:20px;height:20px;background:#4950f6;border-radius:100%;transform:translate(-50%,-50%);opacity:.3}.replayer-mouse.active:after{animation:click .2s ease-in-out 1}.replayer-mouse.touch-device{background-image:none;width:70px;height:70px;border-width:4px;border-style:solid;border-radius:100%;margin-left:-37px;margin-top:-37px;border-color:#4950f600;transition:left 0s linear,top 0s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device.touch-active{border-color:#4950f6;transition:left .25s linear,top .25s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device:after{opacity:0}.replayer-mouse.touch-device.active:after{animation:touch-click .2s ease-in-out 1}.replayer-mouse-tail{position:absolute;pointer-events:none}@keyframes click{0%{opacity:.3;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}@keyframes touch-click{0%{opacity:0;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}
|
|
1
|
+
:root{--bg-app: #0f1117;--bg-surface: #161a23;--bg-surface-elevated: #1e2430;--bg-surface-active: #1e2430;--bg-code: #050811;--bg-input: #131720;--border-subtle: #262d3d;--border-strong: #3b4252;--border-focus: #3b82f6;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-main: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-dim: #475569;--blue-500: #2563eb;--blue-600: #1d4ed8;--blue-focus: #3b82f6;--red-500: #ef4444;--red-bg: rgba(239, 68, 68, .12);--red-border: rgba(239, 68, 68, .35);--red-text: #f87171;--amber-500: #f59e0b;--amber-bg: rgba(245, 158, 11, .12);--amber-border: rgba(245, 158, 11, .35);--amber-text: #fbbf24;--emerald-500: #10b981;--emerald-text: #34d399;--radius-sm: 6px;--radius-md: 8px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-secondary);font-family:var(--font-sans);font-size:13px;line-height:1.4;height:100vh;overflow:hidden;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#334155;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#475569}.app-container{display:flex;flex-direction:column;height:100%;background-color:var(--bg-app);overflow:hidden}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;z-index:30}.header-primary-band{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid rgba(30,41,59,.8);min-height:42px}.header-brand-wrap{display:flex;align-items:center;gap:8px;min-width:0}.brand-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--blue-focus);flex-shrink:0}.brand-title{font-size:13px;font-weight:600;color:var(--text-main);letter-spacing:-.01em;white-space:nowrap}.brand-version-badge{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:1px 5px;border-radius:var(--radius-sm);background-color:var(--bg-surface-active);color:var(--text-secondary);border:1px solid var(--border-subtle);flex-shrink:0}.incident-status-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;font-weight:500;background-color:var(--bg-surface-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}.header-secondary-band{display:flex;align-items:center;padding:4px 14px;background-color:#0b1120;min-height:32px;overflow-x:auto}.incident-meta-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%}.meta-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.meta-label{color:var(--text-muted)}.meta-value{color:var(--text-main);font-weight:500}.meta-chip-btn{background-color:var(--bg-surface);cursor:pointer;transition:background-color .1s ease,border-color .1s ease;outline:none}.meta-chip-btn:hover{background-color:var(--bg-surface-elevated);border-color:var(--border-strong)}.meta-chip-btn:focus-visible{outline:2px solid var(--border-focus)}.meta-id{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.meta-copied{color:var(--emerald-text);font-weight:700;margin-left:2px}.meta-chip-host{max-width:220px}.meta-chip-host .meta-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;display:inline-block;vertical-align:bottom}.meta-chip-drops.is-warning{border-color:var(--red-border);background-color:var(--red-bg)}.meta-chip-drops.is-warning .meta-value{color:var(--red-text)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--blue-500);color:#fff;border:1px solid var(--blue-600);border-radius:var(--radius-md);padding:6px 14px;font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .1s ease;-webkit-user-select:none;user-select:none;outline:none}.btn-primary:hover{background-color:var(--blue-600)}.btn-primary:focus-visible{outline:2px solid var(--blue-focus);outline-offset:1px}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--bg-surface-active);color:var(--text-main);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:4px 10px;font-family:var(--font-sans);font-size:11px;font-weight:500;cursor:pointer;transition:background-color .1s ease,border-color .1s ease;-webkit-user-select:none;user-select:none;outline:none}.btn-secondary:hover{background-color:#27354f;border-color:#475569}.btn-secondary:focus-visible{outline:2px solid var(--blue-focus);outline-offset:1px}.mobile-tab-nav{display:none}@media (max-width: 960px){.mobile-tab-nav{display:flex;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:4px 10px;gap:6px;flex-shrink:0}.mobile-tab-btn{flex:1;background-color:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-md);padding:6px 12px;font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;text-align:center;transition:background-color .1s ease,color .1s ease;outline:none}.mobile-tab-btn:hover{color:var(--text-main);background-color:var(--bg-surface-elevated)}.mobile-tab-btn.is-active{background-color:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong);font-weight:600}.mobile-tab-btn:focus-visible{outline:2px solid var(--blue-focus)}}.main-layout{display:flex;flex:1;overflow:hidden;padding:10px;gap:10px;background-color:var(--bg-app)}.pane-wrapper{display:flex;flex-direction:column;min-height:0}.replay-wrapper{flex:1.35;min-width:0}.timeline-wrapper{width:clamp(300px,30vw,460px);flex-shrink:0}.timeline-toggle{align-self:center;flex:0 0 24px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.timeline-toggle:hover{color:var(--text-main)}.timeline-toggle:focus-visible{outline:2px solid var(--blue-focus)}@media (min-width: 961px){.pane-wrapper.mobile-hidden{display:flex!important}}@media (max-width: 960px){.main-layout{flex-direction:column;padding:6px;gap:6px}.replay-wrapper,.timeline-wrapper{width:100%!important;flex:1}.pane-wrapper.mobile-hidden{display:none!important}}.replay-pane{flex:1;display:flex;flex-direction:column;background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);overflow:hidden;min-height:0}.replay-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;position:relative;padding:12px;background-color:#070a12}.replay-scaler-frame{position:relative;background-color:#000;border-radius:var(--radius-md);border:1px solid var(--border-strong);overflow:hidden;flex-shrink:0;transition:width .1s ease,height .1s ease}.replay-top-overlay{position:absolute;top:8px;left:8px;z-index:30;display:flex;align-items:center;gap:6px;pointer-events:none}.scale-pill{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-sm);background-color:#090d16d9;border:1px solid var(--border-strong);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.replay-frame-wrapper{transform-origin:top left;position:relative;background-color:#fff}.replayer-wrapper{position:relative!important;width:100%!important;height:100%!important;overflow:hidden}.replayer-wrapper iframe{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;border:none!important;outline:none!important;background-color:#fff!important;display:block!important;z-index:1!important}.replayer-mouse-tail{position:absolute!important;top:0!important;left:0!important;pointer-events:none!important;z-index:10!important}.replayer-mouse{position:absolute!important;z-index:20!important;pointer-events:none!important}.player-controls-bar{position:relative;background-color:#0b101c;border-top:1px solid var(--border-subtle);padding:8px 12px;display:flex;flex-direction:column;gap:8px;flex-shrink:0;z-index:20}.scrubber-track-container{position:relative;width:100%;height:14px;display:flex;align-items:center;cursor:pointer}.scrubber-track-bg{position:relative;width:100%;height:4px;background-color:#1e293b;border-radius:2px;overflow:visible}.scrubber-fill{height:100%;background-color:var(--blue-500);border-radius:2px;position:relative;pointer-events:none}.scrubber-thumb-indicator{position:absolute;right:-5px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background-color:#fff;border:2px solid var(--blue-500)}.milestone-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;border:1px solid #0b101c;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;z-index:15;pointer-events:auto}.milestone-marker:hover{transform:translate(-50%,-50%) scale(2);box-shadow:0 0 8px #fff9;z-index:25}.marker-network{background-color:var(--text-secondary)}.marker-console{background-color:var(--amber-500)}.marker-error{background-color:var(--red-500);box-shadow:0 0 5px #ef4444cc}.marker-navigation{background-color:var(--text-secondary)}.marker-generic{background-color:#64748b}.seek-slider-overlay{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;z-index:10}.scrubber-hover-tooltip{position:absolute;bottom:calc(100% + 8px);transform:translate(-50%);background-color:#0f172a;color:#f8fafc;border:1px solid #334155;border-radius:4px;padding:4px 8px;font-family:var(--font-mono);font-size:11px;white-space:nowrap;pointer-events:none;z-index:40;box-shadow:0 4px 14px #0009;display:flex;flex-direction:column;align-items:center;gap:2px;max-width:320px;animation:tooltipFadeIn .08s ease-out}.scrubber-hover-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:4px;border-style:solid;border-color:#334155 transparent transparent transparent}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,2px)}to{opacity:1;transform:translate(-50%)}}.scrubber-hover-tooltip .tooltip-time{font-weight:700;color:#38bdf8;letter-spacing:.5px}.scrubber-hover-tooltip .tooltip-event{font-family:var(--font-sans);font-size:10px;color:#cbd5e1;max-width:280px;overflow:hidden;text-overflow:ellipsis}.scrubber-hover-tooltip .tooltip-event.is-error{color:#fca5a5;font-weight:600}.jump-feedback-toast{font-size:11px;font-family:var(--font-mono);color:#fca5a5;background-color:#ef444426;border:1px solid rgba(239,68,68,.35);padding:2px 8px;border-radius:var(--radius-sm);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:tooltipFadeIn .15s ease-out}.btn-jump-error.is-no-error{opacity:.7;border-color:#94a3b84d;color:var(--text-secondary);background-color:#94a3b81a}.btn-jump-error.is-no-error:hover{opacity:1;background-color:#94a3b833;color:var(--text-main);border-color:var(--border-subtle)}.controls-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto;white-space:nowrap;padding-right:68px;min-height:30px}.controls-toolbar>div,.controls-left-group>*{flex-shrink:0}.btn-step,.time-display{white-space:nowrap}.btn-play-pause{min-width:65px}.jump-feedback-toast{position:absolute;bottom:100%;left:12px}.replay-options{position:absolute;right:12px;bottom:8px;z-index:30}.replay-options>summary{list-style:none;height:26px;padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface-active);color:var(--text-main);font-size:11px;cursor:pointer}.replay-options>summary:focus-visible{outline:2px solid var(--blue-focus)}.replay-options-panel{position:absolute;right:0;bottom:34px;width:min(330px,calc(100vw - 48px));max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px;background:var(--bg-surface-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:0 8px 24px #0008;font-size:12px}.replay-options-panel .control-item,.replay-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.replay-options-panel p,.replay-option>span{font-size:11px;line-height:1.6;color:var(--text-secondary)}.controls-left-group{display:flex;align-items:center;gap:8px}.btn-play-pause{height:26px;padding:0 10px;border-radius:var(--radius-sm);background-color:var(--text-main);color:#0b0f17;font-family:var(--font-sans);font-size:11px;font-weight:600;border:1px solid var(--text-main);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color .1s ease;outline:none}.btn-play-pause:hover{background-color:#e2e8f0}.btn-play-pause:focus-visible{outline:2px solid var(--blue-focus)}.step-buttons-group{display:flex;align-items:center;background-color:var(--bg-surface);border-radius:var(--radius-sm);padding:1px;border:1px solid var(--border-subtle)}.btn-step{height:22px;padding:0 6px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:2px;cursor:pointer;transition:background-color .1s ease,color .1s ease;outline:none}.btn-step:hover{color:var(--text-main);background-color:var(--bg-surface-elevated)}.btn-step:focus-visible{outline:2px solid var(--blue-focus)}.btn-step-frame{font-weight:600;color:#38bdf8;padding:0 7px}.btn-step-frame:hover{background-color:#38bdf826;color:#7dd3fc}.btn-jump-error{height:26px;padding:0 9px;border-radius:var(--radius-sm);background-color:#ef444424;color:#fca5a5;font-family:var(--font-sans);font-size:11px;font-weight:600;border:1px solid rgba(239,68,68,.45);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .12s ease;outline:none}.btn-jump-error:hover{background-color:#ef4444;color:#fff;border-color:#ef4444}.btn-jump-error:focus-visible{outline:2px solid var(--red-border)}.step-divider{width:1px;height:12px;background-color:var(--border-subtle);margin:0 1px}.time-display{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:11px}.time-current{color:var(--text-main);font-weight:600}.time-divider{color:var(--text-dim)}.time-total{color:var(--text-muted)}.controls-right-group{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px}.control-item{display:flex;align-items:center;gap:4px}.control-label{color:var(--text-muted)}.control-select{background-color:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-sm);padding:2px 6px;font-family:var(--font-mono);font-size:11px;cursor:pointer;outline:none}.control-select:focus-visible{border-color:var(--blue-focus);outline:1px solid var(--blue-focus)}.timeline-pane{flex:1;display:flex;flex-direction:column;background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);overflow:hidden;min-height:0}.timeline-header{padding:8px 10px;border-bottom:1px solid var(--border-subtle);background-color:#0b101c;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.search-input-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:8px;color:var(--text-muted);pointer-events:none;display:flex}.timeline-search{width:100%;background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font-sans);font-size:12px;padding:5px 8px 5px 28px;outline:none}.timeline-search:focus{border-color:var(--blue-focus)}.filter-tabs-row{display:flex;align-items:center;gap:3px;overflow-x:auto}.filter-tab{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:11px;font-weight:500;color:var(--text-muted);background-color:transparent;border:1px solid transparent;cursor:pointer;white-space:nowrap;outline:none}.filter-tab:hover{color:var(--text-secondary);background-color:var(--bg-surface-elevated)}.filter-tab.active{background-color:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong);font-weight:600}.filter-tab:focus-visible{outline:2px solid var(--blue-focus)}.tab-count{font-family:var(--font-mono);font-size:10px;padding:0 4px;border-radius:2px;background-color:var(--bg-app);color:var(--text-secondary)}.tab-count-error{background-color:var(--red-bg);color:var(--red-text)}.tab-count-network{background-color:var(--bg-surface-active);color:var(--text-secondary)}.timeline-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.timeline-item{display:flex;flex-direction:column;padding:5px 8px;border-radius:var(--radius-sm);border:1px solid transparent;border-left:3px solid transparent;background-color:transparent;cursor:pointer;outline:none;transition:background-color .1s ease}.timeline-item:hover{background-color:var(--bg-surface-elevated)}.timeline-item.active{background-color:var(--bg-surface-elevated);border-left-color:var(--blue-500)}.timeline-item:focus-visible{outline:2px solid var(--blue-focus)}.timeline-row-main{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;min-width:0}.timeline-col-time{color:var(--text-muted);width:52px;flex-shrink:0}.timeline-col-badge-wrap{flex-shrink:0}.timeline-badge{display:inline-block;padding:1px 4px;border-radius:2px;font-family:var(--font-mono);font-size:10px;font-weight:500;line-height:1.2}.badge-neutral{background-color:var(--bg-surface-active);color:var(--text-secondary);border:1px solid var(--border-subtle)}.badge-warn{background-color:var(--amber-bg);color:var(--amber-text);border:1px solid var(--amber-border)}.badge-error{background-color:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border)}.timeline-col-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.timeline-summary-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.timeline-summary-text.is-error{color:var(--red-text)}.timeline-col-status{flex-shrink:0;text-align:right;font-size:10.5px}.timeline-col-meta{color:var(--text-muted)}.timeline-col-meta.is-error{color:var(--red-text)}.timeline-details-panel{margin-top:6px;padding:6px 8px;background-color:var(--bg-code);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.details-row{margin-bottom:3px;word-break:break-all}.details-url{color:var(--text-main)}.details-code{margin-top:4px;padding:6px;background-color:var(--bg-app);border-radius:2px;border:1px solid var(--border-subtle);overflow-x:auto;white-space:pre-wrap;word-break:break-all;font-size:10.5px}.details-error-code{color:var(--red-text)}.timeline-empty-message{padding:24px;text-align:center;color:var(--text-muted);font-size:12px}.timeline-footer{padding:6px 10px;border-top:1px solid var(--border-subtle);background-color:#0b101c;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted);flex-shrink:0}.timeline-footer-status{color:var(--text-muted)}.timeline-footer-count{font-family:var(--font-mono);color:var(--text-dim)}.importer-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;background-color:var(--bg-app)}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:40px 24px;text-align:center;max-width:480px;width:100%;background-color:var(--bg-surface);cursor:pointer;transition:border-color .1s ease,background-color .1s ease;outline:none}.dropzone:hover,.dropzone.dragover{border-color:var(--blue-focus);background-color:var(--bg-surface-elevated)}.dropzone:focus-visible{outline:2px solid var(--blue-focus)}.dropzone-icon{margin-bottom:12px;color:var(--blue-focus);display:flex;justify-content:center}.dropzone h2{font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text-main);letter-spacing:-.01em}.dropzone-description{color:var(--text-secondary);font-size:12px;margin-bottom:18px;line-height:1.5}.importer-hint{color:var(--text-muted);font-size:11px;margin-top:14px;line-height:1.4}.import-error{margin-top:14px;background-color:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border);border-radius:var(--radius-md);padding:10px 14px;max-width:480px;width:100%;font-size:11px;font-family:var(--font-mono)}.import-error ul{margin-top:6px;padding-left:16px}.resolved-stack{margin-top:8px;display:flex;flex-direction:column;gap:6px}.resolved-frame{background-color:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.resolved-frame>summary{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;background-color:var(--bg-surface-elevated);font-family:var(--font-mono);font-size:11px;color:var(--text-main);-webkit-user-select:none;user-select:none}.resolved-frame>summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.resolved-frame-location{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resolved-frame-copy{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:10px;padding:2px 6px;border-radius:3px;cursor:pointer;font-family:var(--font-sans);white-space:nowrap;flex-shrink:0}.resolved-frame-copy:hover{background:var(--bg-surface-active);color:var(--text-main);border-color:var(--border-strong)}.resolved-frame-copy:focus-visible{outline:2px solid var(--border-focus)}.source-context{overflow-x:auto;background-color:var(--bg-code);font-family:var(--font-mono);font-size:11px;line-height:1.5}.source-context pre{margin:0;padding:6px 0}.source-context code{display:block;font-family:inherit}.source-line{display:flex;padding:0 10px;min-width:fit-content}.source-line-active{background-color:#ef444426;border-left:2px solid var(--red-500)}.source-line-number{display:inline-block;width:44px;text-align:right;padding-right:12px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex-shrink:0;border-right:1px solid var(--border-subtle);margin-right:12px}.source-line-active .source-line-number{color:var(--red-text);font-weight:600}.source-line-content{color:var(--text-secondary);white-space:pre}.source-line-active .source-line-content{color:var(--text-main);font-weight:500}.source-line-pointer .source-line-number{border-right:1px solid transparent}.source-line-pointer .source-line-content{color:var(--red-text);font-weight:700}.details-original-stack{margin-top:8px}.details-original-stack>summary{font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}@media (min-width: 601px){.mobile-tab-nav{display:none}.main-layout{flex-direction:row;min-height:0;gap:6px}.replay-wrapper{width:auto!important;min-width:0;flex:1}.timeline-wrapper{width:clamp(280px,30vw,460px)!important;flex:0 0 auto}.main-layout .pane-wrapper.mobile-hidden{display:flex!important}.main-layout.timeline-collapsed .timeline-wrapper{width:44px!important}}@media (max-width: 600px){.timeline-toggle{display:none}}.header-primary-band,.header-secondary-band{background:var(--bg-app)}.brand-title{font-size:16px}.timeline-header,.timeline-footer{background:var(--bg-app)}.activity-tabs{gap:8px}.timeline-header{position:relative;z-index:2}.activity-tabs{overflow:visible}.timeline-filter-menu{margin-left:auto;flex-shrink:0;position:static}.timeline-filter-menu .timeline-filter-panel{z-index:5}.timeline-filter-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--text-secondary);position:relative;border-radius:6px}.timeline-filter-menu>summary:hover{color:var(--text-main);background:var(--bg-surface-elevated)}.timeline-filter-menu>summary:focus-visible{outline:2px solid var(--blue-focus)}.filter-active-dot{position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:#85dfc9}.timeline-filter-panel{position:absolute;right:10px;top:46px;width:min(300px,calc(100vw - 40px));max-height:55vh;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg-surface-elevated);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 10px 25px #0009;color:var(--text-main);font-size:12px}.timeline-filter-panel p{color:var(--text-secondary);font-size:11px;line-height:1.5}.timeline-filter-panel fieldset{border:0;display:flex;flex-direction:column;gap:8px}.timeline-filter-panel legend{padding-bottom:10px;color:var(--text-secondary)}.timeline-filter-panel label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-filter-panel input[type=checkbox]{accent-color:#85dfc9}.timeline-filter-panel input[type=search]{width:100%;padding:8px;color:var(--text-main);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:6px}.activity-tabs .filter-tab{font-size:13px;padding:7px 10px}.timeline-toggle{align-self:auto;flex:0 0 28px;width:28px;height:30px;border:0;background:transparent}.timeline-pane.is-collapsed .timeline-header{padding:10px 7px}.timeline-pane.is-collapsed .activity-tabs>:not(.timeline-toggle),.timeline-pane.is-collapsed .timeline-header>:not(.activity-tabs),.timeline-pane.is-collapsed .timeline-list,.timeline-pane.is-collapsed .timeline-footer{display:none}.timeline-row-main{font-family:var(--font-sans);font-size:12px}.timeline-col-time,.timeline-col-status{font-family:var(--font-mono);font-size:11px}.timeline-item{padding:8px 10px}.player-controls-bar{padding:10px 18px 12px;gap:5px;background:#111720}.scrubber-track-bg{height:5px;background:#303949}.scrubber-fill{background:#85dfc9}.scrubber-thumb-indicator{width:15px;height:15px;right:-7px;background:#85dfc9;border:0}.marker-error{width:7px;height:7px;border:1px solid #111720;border-radius:50%;background:#ef4444;box-shadow:none}.scrubber-ticks{display:flex;justify-content:space-between;font:11px var(--font-mono);color:var(--text-muted);margin-bottom:4px}.controls-toolbar{min-height:38px;padding-right:110px;gap:16px}.controls-left-group{gap:10px}.btn-play-pause,.btn-jump-error{height:36px;border-radius:8px;padding:0 16px;font-size:15px}.btn-play-pause{min-width:110px;justify-content:center;background:#85dfc9;border-color:#85dfc9;color:#11241f}.btn-play-pause:hover{background:#a0e8d7}.btn-play-pause svg{width:16px;height:16px}.btn-jump-error{font-weight:400;background:transparent;color:#f0a9ab;border-color:#5e383b}.step-buttons-group{background:transparent;border:0;border-left:1px solid var(--border-subtle);border-radius:0;gap:6px;padding-left:12px;height:32px}.step-label{font:12px var(--font-sans);color:var(--text-secondary);margin-right:3px}.btn-step{height:30px;padding:0 6px;color:var(--text-main);font-size:14px}.btn-step-frame{color:var(--text-main)}.time-display{background:transparent;border:0;padding:0 6px;font-size:13px}.controls-right-group>.control-item>label{display:none}.controls-right-group .control-select{height:36px;padding:0 12px;font-size:14px;min-width:76px}.replay-options{right:18px;bottom:13px}.replay-options>summary{height:36px;padding:8px 14px;font-size:13px;background:transparent;border-radius:8px}.replay-options-panel{bottom:44px}.app-header{background:var(--bg-app)}.header-primary-band{padding:10px 18px;min-height:54px;border-bottom:1px solid var(--border-subtle)}.header-brand-wrap{gap:10px}.brand-icon{color:#85dfc9}.brand-title{font-size:17px;font-weight:600}.brand-version-badge{background:transparent;border:0;color:var(--text-muted)}.header-actions{gap:8px}.share-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--text-main);overflow:clip}.share-drawer-overlay[open]{display:flex;justify-content:flex-end}.share-drawer-overlay::backdrop{background:#0f11178c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.share-drawer{position:absolute;top:0;right:0;width:min(480px,100%);height:100%;background:var(--bg-app);border-left:1px solid var(--border-subtle);box-shadow:-12px 0 40px #0005;display:flex;flex-direction:column}.share-drawer-overlay[open] .share-drawer{animation:share-drawer-in .18s ease-out both}.share-drawer>:first-child{flex-shrink:0}.share-drawer-body{padding:18px 24px;display:flex;flex-direction:column;gap:18px;flex:1;min-height:0;overflow-y:auto}.share-drawer-card{display:flex;flex-direction:column;gap:10px}.share-drawer-card+.share-drawer-card{border-top:1px solid var(--border-subtle);padding-top:16px}.share-drawer-card>.btn-primary,.share-drawer-card>.btn-secondary{min-height:38px;width:100%;justify-content:center;border-radius:8px}.share-format-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.share-format-option:hover{background:var(--bg-surface-elevated);border-color:var(--border-strong)}.share-format-option:has(input:checked){background:#2563eb1f;border-color:var(--blue-focus)}.share-format-option:focus-within{outline:2px solid var(--blue-focus);outline-offset:2px}.share-drawer button:focus-visible{outline:2px solid var(--blue-focus);outline-offset:2px}.share-drawer input{min-width:0}#share-drawer-title{font-size:18px;line-height:1.4}.share-drawer-body p,.share-drawer-body div,.share-drawer-body label,.share-drawer-body input{font-size:12px!important;line-height:1.4!important}.share-drawer-card>div:first-child>strong{font-size:14px!important}.share-format-option>div>span{font-size:13px!important}.share-drawer-body button{font-size:13px!important;min-height:36px}@keyframes share-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.share-drawer-overlay[open] .share-drawer{animation:none}}.header-actions .btn-secondary{height:36px;padding:0 12px;gap:8px;font-size:13px;line-height:1;background:transparent;border-color:transparent;color:var(--text-secondary);font-weight:500;white-space:nowrap}.header-actions .btn-secondary svg{width:16px;height:16px;flex-shrink:0}.header-actions .btn-secondary:hover{background:var(--bg-surface-elevated);border-color:var(--border-subtle);color:var(--text-main)}.header-actions .btn-secondary[aria-label="Carregar outro incidente"]{background:#2563eb29;border-color:var(--border-subtle);color:#93c5fd}.header-actions .btn-secondary[aria-label="Carregar outro incidente"]:hover{background:var(--bg-surface-elevated);border-color:var(--blue-focus)}.header-actions .btn-secondary:last-child{background:var(--blue-500);border-color:var(--blue-focus);color:#fff}.header-actions .btn-secondary:last-child:hover{background:var(--blue-600)}.header-actions .btn-secondary:focus-visible{outline-offset:3px}@media (max-width: 760px){.header-primary-band{flex-wrap:wrap;gap:10px}.header-actions{margin-left:0;flex-shrink:1;flex-wrap:wrap;gap:6px}}.header-secondary-band{padding:6px 18px;min-height:34px}.incident-meta-chips{gap:8px}.meta-chip{background:transparent;border-color:transparent;padding:2px 0;gap:6px;align-items:baseline;line-height:18px}.meta-chip+.meta-chip{padding-left:10px;border-left:1px solid var(--border-subtle);border-radius:0}.meta-label{font-family:var(--font-sans);font-size:12px;color:var(--text-secondary)}.meta-value{font-weight:400;font-size:12px;line-height:inherit}.meta-chip-btn:hover{background:var(--bg-surface);border-color:var(--border-subtle)}@media (max-width: 600px){.timeline-pane.is-collapsed .timeline-header>:not(.activity-tabs),.timeline-pane.is-collapsed .timeline-list,.timeline-pane.is-collapsed .timeline-footer{display:flex}.timeline-pane.is-collapsed .activity-tabs>:not(.timeline-toggle){display:inline-flex}}.incident-context{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:12px 24px;color:var(--text-main)}.incident-context summary{cursor:pointer;font-weight:600;font-size:13px;width:fit-content}.incident-context summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:4px}.incident-context p{font-size:12px;line-height:1.5;color:var(--text-secondary);margin:12px 0 0}.incident-context fieldset{border:0;padding:0;margin:12px 0 0;min-width:0}.context-legend{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.context-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.context-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px}.context-fields textarea{width:100%;box-sizing:border-box;padding:10px;font:inherit;color:var(--text-main);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:6px;resize:vertical;min-height:64px}.context-fields textarea:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.context-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.context-actions button{min-height:36px;padding:8px 12px}.incident-context [role=alert]{color:#fca5a5}@media (max-width: 640px){.incident-context{padding:12px 16px}.context-fields{grid-template-columns:1fr;gap:10px}.context-actions button{min-height:44px}.context-fields textarea{font-size:16px}}.visual-proposal-panel{flex-shrink:0;border-bottom:1px solid var(--border-color, #334155);background:var(--bg-panel, #0f172a);color:var(--text-primary, #e2e8f0);font-size:13px}.visual-proposal-panel summary{cursor:pointer;padding:10px 20px;font-weight:600}.visual-proposal-panel summary:focus-visible{outline:2px solid #38bdf8;outline-offset:-2px}.visual-proposal-content{padding:0 20px 12px;max-height:35vh;overflow:auto}.visual-proposal-content p{margin:8px 0;line-height:1.5}.visual-proposal-content section{margin:12px 0}.visual-proposal-content code{overflow-wrap:anywhere}.visual-proposal-content table{border-collapse:collapse;width:100%}.visual-proposal-content caption{text-align:left;margin:6px 0}.visual-proposal-content th,.visual-proposal-content td{padding:6px;text-align:left;border-bottom:1px solid var(--border-color, #334155);overflow-wrap:anywhere}.replayer-wrapper{position:relative}.replayer-mouse{position:absolute;width:20px;height:20px;transition:left .05s linear,top .05s linear;background-size:contain;background-position:center center;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==);border-color:transparent}.replayer-mouse:after{content:"";display:inline-block;width:20px;height:20px;background:#4950f6;border-radius:100%;transform:translate(-50%,-50%);opacity:.3}.replayer-mouse.active:after{animation:click .2s ease-in-out 1}.replayer-mouse.touch-device{background-image:none;width:70px;height:70px;border-width:4px;border-style:solid;border-radius:100%;margin-left:-37px;margin-top:-37px;border-color:#4950f600;transition:left 0s linear,top 0s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device.touch-active{border-color:#4950f6;transition:left .25s linear,top .25s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device:after{opacity:0}.replayer-mouse.touch-device.active:after{animation:touch-click .2s ease-in-out 1}.replayer-mouse-tail{position:absolute;pointer-events:none}@keyframes click{0%{opacity:.3;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}@keyframes touch-click{0%{opacity:0;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}.replay-options .replay-options-panel{width:min(380px,calc(100vw - 48px));max-height:min(660px,calc(100dvh - 165px));gap:16px;padding:20px;background:#1b2029;border-radius:12px;font-size:13px}.replay-options-heading{display:flex;align-items:center;gap:12px}.replay-options-heading strong{flex:1;font-size:16px;line-height:1.3}.replay-options-panel button{background:transparent;border:1px solid var(--border-strong);border-radius:7px;color:var(--text-main);padding:7px 12px;cursor:pointer;font:inherit}.replay-options-panel button:hover{background:var(--bg-surface-active)}.replay-options-panel button:focus-visible,.replay-options-panel input:focus-visible{outline:2px solid var(--blue-focus);outline-offset:3px}.replay-options-heading button{border:0;padding:0 4px;font-size:23px;color:var(--text-secondary)}.replay-options-panel .replay-option{width:100%;gap:10px}.replay-options-panel .replay-option>span{font-size:12px;line-height:1.5}.trace-selection-actions{display:flex;align-items:center;gap:8px;width:100%;margin:4px 0}.trace-selection-actions>span{flex:1;font-size:10px;color:var(--text-secondary);letter-spacing:.05em}.trace-toggle-row{display:flex;align-items:center;gap:10px;width:100%;cursor:pointer;min-height:26px}.trace-category-name{flex:1;font-weight:600}.trace-category-name small{display:block;font-size:11px;font-weight:400;color:var(--text-secondary);margin-top:2px}.trace-category-count{font:11px var(--font-mono);color:var(--text-secondary)}.trace-category-dot{width:9px;height:9px;border-radius:50%;background:var(--trace-color);flex-shrink:0}.trace-error{--trace-color: #ef4444}.trace-network{--trace-color: #4996ff}.trace-console{--trace-color: #98a2b3}.trace-navigation{--trace-color: #48c58e}.trace-performance{--trace-color: #f5b942}.trace-marker{--trace-color: #aa87f4}.trace-toggle-row input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:19px;border:1px solid #48505e;border-radius:20px;background:#11151c;position:relative;margin:0;cursor:pointer;flex-shrink:0}.trace-toggle-row input:after{content:"";position:absolute;width:13px;height:13px;top:2px;left:2px;border-radius:50%;background:#94a3b8;transition:transform .12s ease}.trace-toggle-row input:checked{background:#2563eb;border-color:#3b82f6}.trace-toggle-row input:checked:after{transform:translate(15px);background:#fff}.replay-trust-section{border-top:1px solid var(--border-subtle);padding-top:14px}.replay-section-label{color:var(--text-secondary);font-size:10px;letter-spacing:.05em;margin-bottom:9px}.replay-trust-card{background:#2b2518;border:1px solid #65522a;border-radius:9px;padding:12px;color:#f7cf76}.replay-options-panel .replay-trust-card p{color:#d4b66e;font-size:11px;line-height:1.45;margin:7px 0 10px}.replay-canvas-card{margin-top:10px;padding:12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-input)}.replay-options-panel .replay-canvas-card p{color:var(--text-secondary);font-size:11px;line-height:1.45;margin:7px 0 0}.replay-options-panel .replay-zoom-row{border-top:1px solid var(--border-subtle);padding-top:12px;flex-direction:row;align-items:center;justify-content:space-between;width:100%}.replay-zoom-row .control-label{font-size:10px;letter-spacing:.05em}.replay-zoom-row .control-select{font-size:12px;height:30px}.replay-options-footer{display:flex;align-items:center;justify-content:space-between}.replay-options-footer span{color:var(--text-secondary);font-size:11px}.replay-options-footer button{background:var(--blue-500);border-color:var(--blue-focus)}@media (prefers-reduced-motion: reduce){.trace-toggle-row input:after{transition:none}}.player-controls-bar .scrubber-fill,.player-controls-bar .scrubber-thumb-indicator{background:var(--blue-500)}.player-controls-bar .btn-play-pause{background:var(--blue-500);border-color:var(--blue-focus);color:#fff}.player-controls-bar .btn-play-pause:hover{background:var(--blue-focus)}.timeline-filter-menu .timeline-filter-panel{width:min(380px,calc(100vw - 40px));max-height:calc(100dvh - 180px);padding:20px;gap:14px;background:#1b2029;border-radius:12px;font-size:13px}.filter-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.filter-panel-heading strong{font-size:16px}.timeline-filter-panel .filter-panel-heading button{border:0;padding:0 4px;font-size:23px;color:var(--text-secondary)}.timeline-filter-menu .timeline-filter-panel p{margin:-8px 0 0;font-size:12px}.timeline-filter-panel button{cursor:pointer;font:inherit;color:var(--text-main);background:transparent;border:1px solid var(--border-strong);border-radius:7px;padding:8px 12px}.timeline-filter-panel button:hover{background:var(--bg-surface-active)}.timeline-filter-panel button:focus-visible{outline:2px solid var(--blue-focus);outline-offset:2px}.filter-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.filter-panel-toolbar span{color:var(--text-secondary);font-size:11px}.filter-panel-toolbar button.is-active{border-color:#ef4444;background:#ef44441a;color:#fca5a5}.timeline-filter-menu .timeline-filter-panel legend{font-size:10px;letter-spacing:.05em;padding-bottom:12px}.timeline-filter-menu .timeline-filter-panel label{flex-wrap:nowrap;min-height:24px;gap:9px;cursor:pointer}.timeline-filter-menu .timeline-filter-panel input[type=checkbox]{accent-color:#3b82f6;width:15px;height:15px;flex-shrink:0;margin:0}.filter-category-name{flex:1;font-weight:600}.filter-category-count{font:11px var(--font-mono);color:var(--text-secondary)}.filter-category-dot{width:9px;height:9px;border-radius:50%;background:#98a2b3;flex-shrink:0}.filter-category-error .filter-category-dot{background:#ef4444}.filter-category-network .filter-category-dot{background:#4996ff}.filter-category-navigation .filter-category-dot{background:#48c58e}.filter-category-performance .filter-category-dot{background:#f5b942}.filter-category-marker .filter-category-dot{background:#aa87f4}.filter-console-levels{margin-left:12px;padding-left:18px;border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:8px}.timeline-filter-panel label:has(input:disabled){opacity:.45;cursor:default}.filter-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border-subtle);margin-top:8px;padding-top:16px}.timeline-filter-panel .filter-done{background:#e5e7eb;color:#111827;border-color:#e5e7eb}.timeline-filter-panel .filter-done:hover{background:#fff}.network-details{min-width:0}.network-details .filter-tabs-row{border-bottom:1px solid var(--border-subtle);margin-bottom:10px}.network-details h4{margin:14px 0 6px;color:var(--text-main);font-size:11px}.network-details [role=tabpanel]:focus-visible{outline:2px solid var(--blue-focus);outline-offset:2px}.network-headers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:5px 12px;margin:0}.network-headers dt{color:var(--text-main);font-weight:600;overflow-wrap:anywhere}.network-headers dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.network-notice{color:var(--text-muted);font-size:10px;line-height:1.5}.network-response,.network-json{max-height:360px;overflow:auto}.network-json-node{padding-left:12px}.network-json-node summary{cursor:pointer;color:var(--text-main);overflow-wrap:anywhere}.network-json-node summary span{color:var(--text-muted)}.network-json-value{padding:3px 0 3px 12px;overflow-wrap:anywhere;white-space:pre-wrap}.saved-visual-screens{flex-shrink:0;padding:8px 20px;border-bottom:1px solid var(--border-color,#334155);background:var(--bg-panel,#0f172a);color:var(--text-primary,#e2e8f0);font-size:13px}.saved-visual-screens button,.visual-screen-editor>header button,.visual-proposal-content>button{font:inherit;color:inherit;border:1px solid #334155;border-radius:8px;padding:8px 12px;background:#1e293b;cursor:pointer}.saved-visual-screens button:focus-visible,.visual-screen-editor button:focus-visible,.visual-proposal-content>button:focus-visible{outline:2px solid #83b6ff;outline-offset:2px}.saved-visual-screens button:disabled{opacity:.5;cursor:default}.saved-visual-screens section{max-height:40vh;overflow:auto;padding-top:8px}.saved-visual-screens article{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #334155}.saved-visual-screens article>div{flex:1;min-width:0;overflow-wrap:anywhere}.saved-visual-screens p{color:#94a3b8;margin:6px 0;line-height:1.5}.visual-screen-editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;display:flex;flex-direction:column;background:#0f1420;color:#e6ebf5}.visual-screen-editor>header{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid #28344d;flex-shrink:0}.visual-screen-editor h2{font-size:16px;margin:0}.visual-screen-editor header p{font-size:12px;color:#94a3b8;margin:5px 0 0}.visual-screen-editor>[role=alert]{padding:12px 18px;color:#fbbf24}.visual-screen-canvas{flex:1;overflow:auto;min-height:0;padding:12px}.visual-screen-canvas .replayer-wrapper{position:relative;max-width:none!important;transform:none!important}.visual-screen-canvas .replayer-mouse,.visual-screen-canvas .replayer-mouse-tail{display:none!important}.visual-screen-canvas iframe{border:1px solid #28344d;background:#fff;display:block}@media (max-width:600px){.saved-visual-screens article{flex-wrap:wrap}.saved-visual-screens article>div{flex-basis:100%}}
|