html{--sans:"DM Sans", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--heading:"DM Sans", system-ui, sans-serif;--graph-viewport:min(74vh, 720px);--graph-viewport-min:400px}html[data-theme=light]{--surface-page:#ececf0;--surface-card:#fff;--surface-muted:#f5f5f7;--border:#d8d8e0;--border-strong:#b8b8c4;--text:#3b3b45;--text-muted:#6b6b78;--text-strong:#101018;--accent:#4f46e5;--accent-hover:#4338ca;--on-accent:#fff;--danger:#b91c1c;--warn-bg:#fffbeb;--warn-border:#fcd34d;--warn-text:#854d0e;--error-bg:#fef2f2;--error-border:#fca5a5;--graph-chrome:#dedee6;--graph-canvas:#f2f2f6;--graph-frame-border:#c4c4d0;--graph-frame-shadow:0 8px 28px #00000014;--graph-tool-bg:#ffffffeb;--graph-tool-border:#0000001a;--graph-tool-fg:#3f3f46;--graph-tool-hover-bg:#fff;--graph-tool-hover-border:#00000029;--graph-accent-bg:#4f46e51f;--graph-accent-border:#4f46e559;--graph-accent-fg:#4338ca;--graph-accent-hover-bg:#4f46e533;--talker-active-bg:#eef2ff;--talker-active-border:#a5b4fc;--talker-active-shadow:0 0 0 1px #4f46e533;--hero-shadow:0 1px 3px #0000000f;--row-tcp-bg:#3b82f609;--row-udp-bg:#22c55e09;--row-icmp-bg:#f59e0b0b;--proto-tcp-bg:#3b82f61f;--proto-tcp-fg:#2563eb;--proto-udp-bg:#22c55e1f;--proto-udp-fg:#16a34a;--proto-icmp-bg:#f59e0b1f;--proto-icmp-fg:#b45309;--flag-high-bg:#ef44441f;--flag-high-fg:#dc2626;--flag-medium-bg:#f59e0b24;--flag-medium-fg:#d97706;--flag-low-bg:#6366f11f;--flag-low-fg:#4f46e5}html[data-theme=dark]{--surface-page:#050505;--surface-card:#0c0c0c;--surface-muted:#141414;--border:#262626;--border-strong:#404040;--text:#d4d4d4;--text-muted:#8c8c8c;--text-strong:#fafafa;--accent:#d4d4d4;--accent-hover:#f5f5f5;--on-accent:#0a0a0a;--danger:#f87171;--warn-bg:#1a1814;--warn-border:#92400e;--warn-text:#fbbf24;--error-bg:#1c1010;--error-border:#b91c1c;--graph-chrome:#0a0a0a;--graph-canvas:#000;--graph-frame-border:#1f1f1f;--graph-frame-shadow:inset 0 1px 0 #ffffff08, 0 16px 48px #000000a6;--graph-tool-bg:#0c0c0cf5;--graph-tool-border:#ffffff14;--graph-tool-fg:#c4c4c4;--graph-tool-hover-bg:#1a1a1a;--graph-tool-hover-border:#ffffff24;--graph-accent-bg:#ffffff14;--graph-accent-border:#fff3;--graph-accent-fg:#f0f0f0;--graph-accent-hover-bg:#ffffff1f;--talker-active-bg:#1f1f1f;--talker-active-border:#525252;--talker-active-shadow:0 0 0 1px #ffffff14;--hero-shadow:0 1px 0 #ffffff08;--row-tcp-bg:#3b82f612;--row-udp-bg:#22c55e0f;--row-icmp-bg:#f59e0b12;--proto-tcp-bg:#3b82f633;--proto-tcp-fg:#60a5fa;--proto-udp-bg:#22c55e2e;--proto-udp-fg:#4ade80;--proto-icmp-bg:#f59e0b2e;--proto-icmp-fg:#fbbf24;--flag-high-bg:#ef44442e;--flag-high-fg:#f87171;--flag-medium-bg:#f59e0b2e;--flag-medium-fg:#fbbf24;--flag-low-bg:#818cf82e;--flag-low-fg:#a5b4fc}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--sans);color:var(--text);background-color:var(--surface-page);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px}#root{min-height:100vh}h1,h2,h3{color:var(--text-strong);font-family:var(--heading);font-weight:600}strong{color:var(--text-strong);font-weight:600}@media (width<=720px){html{--graph-viewport:min(54vh, 600px);--graph-viewport-min:280px}}.page-shell{flex-direction:column;gap:1.5rem;width:min(1280px,100% - 2rem);margin:1.25rem auto 2.5rem;display:flex}.hero-banner{background:var(--surface-card);border:1px solid var(--border);box-shadow:var(--hero-shadow);border-radius:12px;padding:1.75rem 2rem;animation:.38s ease-out reveal-up}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.15rem;display:flex}.hero-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.theme-switch{border:1px solid var(--border);border-radius:8px;flex-shrink:0;display:inline-flex;overflow:hidden}.theme-switch button{font-family:var(--sans);background:var(--surface-muted);color:var(--text-muted);cursor:pointer;border:none;margin:0;padding:.42rem .85rem;font-size:.8125rem;font-weight:600;transition:background .12s,color .12s}.theme-switch button:hover{color:var(--text-strong);background:var(--surface-card)}.theme-switch button.is-active{background:var(--accent);color:var(--on-accent)}.github-link{border:1px solid var(--border-strong);background:linear-gradient(180deg, var(--surface-card), var(--surface-muted));color:var(--text-strong);border-radius:10px;align-items:center;gap:.75rem;padding:.55rem .85rem;text-decoration:none;transition:transform .14s,border-color .14s,background .14s;display:inline-flex;box-shadow:0 1px #0000000a}.github-link:hover{border-color:var(--accent);background:var(--surface-card);transform:translateY(-1px)}.github-link__icon{fill:currentColor;width:1.15rem;height:1.15rem;color:var(--text-strong);flex-shrink:0}.github-link__content{flex-direction:column;align-items:flex-start;gap:.1rem;display:inline-flex}.github-link__label{letter-spacing:.01em;font-size:.8125rem;font-weight:700}.github-link__repo{color:var(--text-muted);font-size:.6875rem;font-family:var(--mono);word-break:break-all}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0;font-size:.6875rem;font-weight:600}.hero-banner h1{letter-spacing:-.02em;margin:.4rem 0 .35rem;font-size:1.75rem;font-weight:700}.intro{max-width:56ch;color:var(--text-muted);margin:0;font-size:.9375rem;line-height:1.55}.intro strong{color:var(--text-strong)}.control-panel{background:var(--surface-card);border:1px solid var(--border);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:.5rem 1.25rem;padding:1rem 1.25rem;animation:.44s ease-out reveal-up;display:grid}.upload-button{background:var(--accent);color:var(--on-accent);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-size:.875rem;font-weight:600;transition:background .15s;display:inline-flex}.upload-button:hover{background:var(--accent-hover)}.file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.file-caption{font-family:var(--mono);color:var(--text-strong);margin:0;font-size:.8125rem}.hint{color:var(--text-muted);grid-column:1/-1;margin:0;font-size:.8125rem}.status{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text);border-radius:8px;margin:0;padding:.65rem 1rem;font-size:.875rem}.status.error{background:var(--error-bg);border-color:var(--error-border);color:var(--danger)}.metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;animation:.52s ease-out reveal-up;display:grid}.metrics article{border:1px solid var(--border);background:var(--surface-card);border-radius:10px;padding:1rem}.metrics h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.6875rem;font-weight:600}.metrics p{color:var(--text-strong);font-family:var(--mono);margin:.35rem 0 0;font-size:1.125rem;font-weight:500}.export-card{padding:1.15rem 1.25rem}.export-card h2{margin:0;font-size:1.0625rem}.export-lead{color:var(--text-muted);max-width:72ch;margin:.4rem 0 .85rem;font-size:.8125rem;line-height:1.5}.export-actions{flex-wrap:wrap;gap:.5rem;display:flex}.export-btn{font-family:var(--sans);border:1px solid var(--border-strong);background:var(--surface-muted);color:var(--text-strong);cursor:pointer;border-radius:8px;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;transition:background .12s,border-color .12s}.export-btn:hover{background:var(--surface-card);border-color:var(--accent);color:var(--text-strong)}.grid-layout{grid-template-columns:minmax(0,2fr) minmax(240px,1fr);align-items:stretch;gap:1rem;display:grid}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;animation:.6s ease-out reveal-up}.card h2{margin:0;font-size:1.0625rem}.card p{color:var(--text-muted);margin-top:.45rem;font-size:.875rem;line-height:1.5}.graph-card{padding:1.25rem 1.25rem 1.35rem}.graph-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.15rem;display:flex}.graph-legend{flex-wrap:wrap;gap:.5rem .85rem;margin:.15rem 0 0;padding:0;list-style:none;display:flex}.graph-legend li{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.legend-glyph{border:2px solid;flex-shrink:0;width:12px;height:12px}.legend-glyph--internal{background:#6366f1;border-color:#a5b4fc;border-radius:3px}.legend-glyph--external{background:#14b8a6;border-color:#5eead4;border-radius:50%}.legend-glyph--flagged{border-color:var(--flag-high-fg);background:0 0;border-radius:50%}.graph-card-lead{color:var(--text-muted);max-width:62ch;margin:.3rem 0 0;font-size:.8125rem;line-height:1.5}.dense-tip{color:var(--text-muted);background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;margin:.65rem 0 0;padding:.55rem .75rem;font-size:.8125rem;font-weight:500}.graph-workspace{min-height:var(--graph-viewport);grid-template-columns:minmax(0,1fr) minmax(220px,270px);align-items:stretch;gap:1rem;margin-top:1rem;display:grid}.graph-frame{min-height:var(--graph-viewport);background:var(--graph-chrome);border:1px solid var(--graph-frame-border);box-shadow:var(--graph-frame-shadow);border-radius:10px;position:relative;overflow:hidden}.graph-toolbar{z-index:2;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:calc(100% - 20px);display:flex;position:absolute;top:10px;right:10px}.graph-tool-btn{font-family:var(--sans);border:1px solid var(--graph-tool-border);background:var(--graph-tool-bg);color:var(--graph-tool-fg);cursor:pointer;border-radius:6px;padding:.35rem .6rem;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.graph-tool-btn:hover{background:var(--graph-tool-hover-bg);border-color:var(--graph-tool-hover-border);color:var(--text-strong)}.graph-tool-btn--accent{background:var(--graph-accent-bg);border-color:var(--graph-accent-border);color:var(--graph-accent-fg)}.graph-tool-btn--accent:hover{background:var(--graph-accent-hover-bg);border-color:var(--accent);color:var(--graph-accent-fg)}.graph-canvas{width:100%;height:var(--graph-viewport);min-height:var(--graph-viewport-min);background:var(--graph-canvas);border:none;border-radius:0}.graph-inspector{border:1px solid var(--border);background:var(--surface-muted);border-radius:10px;flex-direction:column;gap:.6rem;min-height:0;padding:1rem;display:flex}.inspector-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.6875rem;font-family:var(--heading);margin:0;font-weight:600}.inspector-placeholder{color:var(--text-muted);margin:0;font-size:.8125rem;line-height:1.55}.inspector-ip{font-size:.875rem;font-weight:600;font-family:var(--mono);color:var(--text-strong);word-break:break-all;margin:0}.geo-loading{color:var(--accent);margin:0;font-size:.8125rem}.geo-info{background:var(--surface-card);border:1px solid var(--border);min-height:100px;font-family:var(--mono);color:var(--text);white-space:pre-wrap;word-wrap:break-word;border-radius:8px;flex:1;margin:0;padding:.75rem;font-size:.75rem;line-height:1.55;overflow:auto}.talkers-lead{color:var(--text-muted);margin:.3rem 0 0;font-size:.8125rem}.talkers-card{min-height:var(--graph-viewport);flex-direction:column;display:flex}.talker-list{flex-direction:column;flex:1;gap:.4rem;min-height:0;margin:.65rem 0 0;padding:0 4px 0 0;list-style:none;display:flex;overflow-y:auto}.talker-list li{margin:0}.talker-row{text-align:left;border:1px solid var(--border);background:var(--surface-muted);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:8px;padding:.6rem .75rem;transition:border-color .12s,background .12s,box-shadow .12s}.talker-row:hover{background:var(--surface-card);border-color:var(--border-strong)}.talker-row--active{background:var(--talker-active-bg);border-color:var(--talker-active-border);box-shadow:var(--talker-active-shadow)}.talker-row-main{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.talker-row strong{font-family:var(--mono);font-size:.8125rem}.talker-bytes{font-family:var(--mono);color:var(--text-muted);flex-shrink:0;font-size:.8125rem}.talker-row small{color:var(--text-muted);margin-top:.3rem;font-size:.75rem;display:block}.proto-badge{font-size:.6875rem;font-weight:700;font-family:var(--mono);letter-spacing:.02em;border-radius:4px;padding:.1em .45em;line-height:1.4;display:inline-block}.proto-badge--tcp{background:var(--proto-tcp-bg);color:var(--proto-tcp-fg)}.proto-badge--udp{background:var(--proto-udp-bg);color:var(--proto-udp-fg)}.proto-badge--icmp{background:var(--proto-icmp-bg);color:var(--proto-icmp-fg)}.proto-badge--other{background:var(--surface-muted);color:var(--text-muted)}.flags-card{padding:1.15rem 1.25rem}.flags-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.flags-card h2{margin:0;font-size:1.0625rem}.flags-lead{color:var(--text-muted);margin:.3rem 0 0;font-size:.8125rem}.flags-counts{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.flags-clear{color:var(--proto-udp-fg);font-size:.8125rem;font-weight:600}.flag-count{font-family:var(--mono);white-space:nowrap;border-radius:6px;padding:.2em .6em;font-size:.75rem;font-weight:700}.flag-count--high{background:var(--flag-high-bg);color:var(--flag-high-fg)}.flag-count--medium{background:var(--flag-medium-bg);color:var(--flag-medium-fg)}.flag-count--low{background:var(--flag-low-bg);color:var(--flag-low-fg)}.flags-rule-list{flex-direction:column;gap:.35rem;margin:.95rem 0 0;padding:0;list-style:none;display:flex}.flag-rule{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;font-size:.8125rem;overflow:hidden}.flag-rule-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.5rem .7rem;transition:background .12s;display:flex}.flag-rule-head:hover{background:var(--surface-card)}.flag-sev-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.flag-sev-dot--high{background:var(--flag-high-fg)}.flag-sev-dot--medium{background:var(--flag-medium-fg)}.flag-sev-dot--low{background:var(--flag-low-fg)}.flag-rule-name{color:var(--text-strong);flex:1;font-weight:600}.flag-rule-sev{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.6875rem;font-weight:600}.flag-rule-count{font-family:var(--mono);color:var(--text-strong);text-align:right;min-width:2.5ch;font-size:.75rem;font-weight:700}.flag-rule-chevron{color:var(--text-muted);flex-shrink:0;font-size:.7rem;transition:transform .15s}.flag-rule-chevron.is-open{transform:rotate(180deg)}.flag-rule-detail{border-top:1px solid var(--border);background:var(--surface-card);padding:.25rem .8rem .75rem}.flag-rule-desc{color:var(--text-muted);margin:.6rem 0 .4rem;font-size:.8125rem;line-height:1.5}.flag-detail-group{margin-top:.7rem}.flag-detail-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .4rem;font-size:.6875rem;font-weight:600}.flag-entry-list{flex-direction:column;gap:.3rem;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.flag-entry{border:1px solid var(--border);background:var(--surface-muted);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:6px;align-items:center;gap:.55rem;padding:.4rem .6rem;transition:border-color .12s,background .12s;display:flex}.flag-entry:hover:not(:disabled){border-color:var(--accent);background:var(--surface-card)}.flag-entry:disabled{cursor:default}.flag-entry.is-active{border-color:var(--talker-active-border);background:var(--talker-active-bg)}.flag-entry-num{font-family:var(--mono);color:var(--text-muted);flex-shrink:0;min-width:4ch;font-size:.75rem;font-weight:700}.flag-entry-ip{font-family:var(--mono);color:var(--text-strong);flex-shrink:0;font-size:.8125rem;font-weight:600}.flag-entry-addr{font-family:var(--mono);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:40%;font-size:.75rem;overflow:hidden}.flag-entry-detail{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.75rem;overflow:hidden}.flag-entry-more{color:var(--text-muted);margin:.45rem 0 0;font-size:.75rem}.packets-card{padding:1.25rem}.packets-lead{color:var(--text-muted);margin:.3rem 0 0;font-size:.8125rem}.packet-table-outer{margin-top:.85rem}.packet-table-toolbar{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.packet-filter{min-width:0;font-family:var(--mono);border:1px solid var(--border-strong);background:var(--surface-muted);color:var(--text-strong);border-radius:8px;flex:1;padding:.45rem .7rem;font-size:.8125rem}.packet-filter::placeholder{color:var(--text-muted);font-family:var(--sans)}.packet-filter:focus{border-color:var(--accent);background:var(--surface-card);outline:none}.packet-table-stat{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.8125rem}.stat-flagged{font-family:var(--mono);color:var(--flag-high-fg);font-weight:700}.pkt-filter-btn{font-family:var(--sans);border:1px solid var(--border-strong);background:var(--surface-muted);color:var(--text-strong);cursor:pointer;border-radius:7px;padding:.35rem .7rem;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s}.pkt-filter-btn:hover{background:var(--surface-card);border-color:var(--accent)}.pkt-filter-btn--active{background:var(--flag-high-bg);border-color:var(--flag-high-fg);color:var(--flag-high-fg)}.packet-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:min(60vh,560px);overflow-y:auto}.packet-table{border-collapse:collapse;width:100%;font-size:.75rem;font-family:var(--mono);table-layout:fixed}.packet-table thead{z-index:1;background:var(--surface-muted);position:sticky;top:0}.packet-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .6rem;font-size:.6875rem;font-weight:600;overflow:hidden}.packet-table td{border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;color:var(--text);padding:.25rem .6rem;overflow:hidden}.col-num{width:52px}.col-time{width:100px}.col-addr{width:172px}.col-proto{width:72px}.col-len{width:52px}.col-flags-dots{width:44px}.packet-row{cursor:pointer;height:28px;transition:background 70ms}.packet-spacer td{border:none;padding:0}.packet-spacer:hover{filter:none}.packet-row--tcp{background:var(--row-tcp-bg)}.packet-row--udp{background:var(--row-udp-bg)}.packet-row--icmp{background:var(--row-icmp-bg)}.packet-row:hover{filter:brightness(.96)}html[data-theme=dark] .packet-row:hover{filter:brightness(1.18)}.packet-row--selected{outline:1px solid var(--talker-active-border);outline-offset:-1px;background:var(--talker-active-bg)!important;filter:none!important}.packet-row--flagged-high{box-shadow:inset 3px 0 0 var(--flag-high-fg)}.packet-row--flagged-medium{box-shadow:inset 3px 0 0 var(--flag-medium-fg)}.packet-row--flagged-low{box-shadow:inset 3px 0 0 var(--flag-low-fg)}.packet-flags-dots{white-space:nowrap}.flag-dot{vertical-align:middle;cursor:help;border-radius:50%;width:7px;height:7px;margin-right:3px;display:inline-block}.flag-dot--high{background:var(--flag-high-fg)}.flag-dot--medium{background:var(--flag-medium-fg)}.flag-dot--low{background:var(--flag-low-fg)}.packet-time{color:var(--text-muted)}.packet-addr{color:var(--text-strong)}.packet-info{color:var(--text-muted);font-family:var(--sans);font-size:.75rem}.packet-table-notice{color:var(--text-muted);margin:.45rem 0 0;font-size:.75rem}.hex-dump-panel{border:1px solid var(--border);background:var(--surface-muted);border-radius:8px;margin-top:1rem;overflow:hidden}.hex-dump-meta{border-bottom:1px solid var(--border);background:var(--surface-card);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.hex-meta-chip{font-family:var(--mono);color:var(--text-muted);background:var(--surface-muted);border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:.1em .5em;font-size:.6875rem}.hex-meta-addr{font-family:var(--mono);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:160px;font-size:.78125rem;overflow:hidden}.hex-meta-info{font-family:var(--sans);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:2;min-width:120px;font-size:.78125rem;font-style:italic;overflow:hidden}.hex-flags{border-bottom:1px solid var(--border);flex-direction:column;gap:.4rem;margin:0;padding:.6rem 1rem;list-style:none;display:flex}.hex-flag{align-items:baseline;gap:.55rem;font-size:.78125rem;line-height:1.45;display:flex}.hex-flag .flag-sev-dot{align-self:center}.hex-flag strong{color:var(--text-strong);white-space:nowrap}.hex-flag-detail{color:var(--text-muted)}.hex-flag--high strong{color:var(--flag-high-fg)}.hex-flag--medium strong{color:var(--flag-medium-fg)}.hex-dump-body{padding:.85rem 1rem;overflow-x:auto}.hex-row{font-family:var(--mono);gap:2ch;font-size:.75rem;line-height:1.7;display:flex}.hex-row--header{color:var(--text-muted);border-bottom:1px solid var(--border);letter-spacing:.03em;margin-bottom:.4rem;padding-bottom:.35rem;font-size:.6875rem;font-weight:600}.hex-col{white-space:pre;flex-shrink:0}.hex-offset{width:6ch;color:var(--text-muted)}.hex-bytes{width:48ch;color:var(--text-strong)}.hex-ascii{color:var(--text-muted);letter-spacing:.04em}.hex-dump-truncated{border-top:1px solid var(--border);color:var(--text-muted);font-size:.75rem;font-family:var(--sans);margin:0;padding:.45rem 1rem}@keyframes reveal-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1120px){.grid-layout{grid-template-columns:1fr}.talkers-card{min-height:auto}.talker-list{max-height:400px}}@media (width<=720px){.page-shell{gap:1rem;width:min(100% - 1rem,1280px);margin:.75rem auto 1.5rem}.hero-banner{padding:1.25rem}.control-panel{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.graph-workspace{grid-template-columns:1fr;min-height:auto}.graph-frame{min-height:var(--graph-viewport)}.graph-canvas{height:var(--graph-viewport);min-height:var(--graph-viewport-min)}.graph-inspector{min-height:180px}}
