:root{color:#eceef1;font-synthesis:none;text-rendering:optimizelegibility;--surface:#1b1d20;--surface-raised:#22252a;--surface-hover:#292d33;--border:#363a40;--border-strong:#4b5058;--text:#eceef1;--muted:#9da3ad;--subtle:#969da8;--accent:#4ea1ff;--accent-soft:#4ea1ff24;--value:#65d6a7;--warning:#f0b85a;--danger:#ff7373;--mono:"Fira Mono", "SFMono-Regular", Consolas, monospace;background:#151618;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background:#151618}body{min-width:320px;min-height:100vh;color:var(--text);background:#151618}button,input{font:inherit}button{color:inherit}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:min(100%,1120px);min-height:100vh;margin:0 auto;padding:0 24px 40px}.app-shell.has-analysis{width:min(100%,1800px)}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;min-height:58px;display:flex}.brand-lockup,.progress-header,.progress-status,.progress-actions,.elapsed-time,.file-identity,.structure-toolbar,.structure-title-group,.tree-actions,.offset-search,.key-cell,.inspector-heading,.hex-dump-heading,.secondary-button,.icon-button,.error-panel{align-items:center;display:flex}.brand-lockup{gap:10px;min-width:0}.brand-mark{border:1px solid var(--border-strong);width:32px;height:32px;color:var(--accent);background:var(--surface);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.brand-lockup h1{letter-spacing:0;font-size:16px;line-height:1.2}.brand-lockup div>span{color:var(--muted);letter-spacing:0;margin-top:2px;font-size:11px;display:block}.secondary-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;gap:7px;min-height:34px;padding:6px 11px}.secondary-button:hover,.icon-button:hover{border-color:var(--border-strong);background:var(--surface-hover)}.secondary-button:focus-visible,.icon-button:focus-visible,.disclosure-button:focus-visible,.tree-row:focus-visible,.offset-search input:focus-visible,.dropzone:focus-within{outline:2px solid var(--accent);outline-offset:2px}.upload-view{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 150px);padding:44px 0;display:flex}.upload-view>img{object-fit:contain;width:148px;height:148px;margin-bottom:20px}.upload-copy{max-width:540px}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.upload-copy h2{letter-spacing:0;margin-top:7px;font-size:28px;line-height:1.2}.upload-copy p{color:var(--muted);margin-top:9px;font-size:14px;line-height:1.6}.dropzone{border:1px dashed var(--border-strong);width:min(100%,620px);min-height:126px;color:var(--muted);background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-top:28px;padding:24px;display:flex}.dropzone:hover,.dropzone.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.dropzone span{font-size:14px;font-weight:600}.dropzone small{color:var(--subtle);font-size:11px}.engine-loading,.progress-panel,.error-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:min(100%,720px);margin:72px auto 0}.engine-loading{min-height:120px;color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.progress-panel{padding:22px}.progress-header{justify-content:space-between;gap:20px}.progress-status{gap:12px;min-width:0}.progress-status>div{min-width:0}.progress-status strong,.progress-status span{display:block}.progress-status strong{font-size:14px}.progress-status span,.progress-panel>p{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:11px}.elapsed-time{color:var(--muted);font-family:var(--mono);flex:none;gap:6px;font-size:12px}.progress-actions{flex:none;gap:10px}.progress-cancel{min-height:32px}.progress-track{background:#30343a;border-radius:3px;width:100%;height:6px;margin-top:18px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--value);height:100%;transition:width .16s}.progress-fill.indeterminate{width:32%;animation:1.2s ease-in-out infinite progress-slide}.error-panel{color:var(--danger);border-color:#ff737380;align-items:flex-start;gap:12px;padding:18px}.error-panel strong{font-size:13px}.error-panel p{color:#e4b8b8;overflow-wrap:anywhere;margin-top:3px;font-size:12px}.analysis-view{padding-top:14px}.analysis-summary{border:1px solid var(--border);background:var(--surface);border-radius:6px;justify-content:space-between;align-items:stretch;gap:24px;min-height:58px;display:flex}.file-identity{border-right:1px solid var(--border);gap:10px;min-width:220px;max-width:380px;padding:10px 14px}.file-identity>div{min-width:0}.file-identity strong,.file-identity span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.file-identity strong{font-size:12px}.file-identity span{color:var(--muted);font-family:var(--mono);margin-top:3px;font-size:10px}.analysis-summary dl{flex:1;grid-template-columns:repeat(6,minmax(92px,1fr));display:grid}.analysis-summary dl>div{border-left:1px solid var(--border);min-width:0;padding:9px 12px}.analysis-summary dl>div:first-child{border-left:0}.analysis-summary dt{color:var(--muted);letter-spacing:0;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:600}.analysis-summary dd{color:var(--text);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;font-weight:500;overflow:hidden}.structure-section{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-top:12px;overflow:hidden}.structure-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;gap:18px;min-height:52px;padding:8px 10px 8px 14px}.structure-title-group{gap:12px;min-width:0}.structure-title-group h2{letter-spacing:0;white-space:nowrap;align-items:center;gap:7px;font-size:14px;display:flex}.structure-title-group>span{color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.tree-actions{justify-content:flex-end;gap:6px}.offset-search{gap:6px}.offset-search label{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:600}.offset-search input{border:1px solid var(--border);width:132px;height:34px;color:var(--text);font-family:var(--mono);background:#17191c;border-radius:5px;padding:0 9px;font-size:11px}.offset-search input::placeholder{color:#626873}.icon-button{border:1px solid var(--border);cursor:pointer;background:#1a1c1f;border-radius:5px;flex:0 0 34px;justify-content:center;width:34px;height:34px}.offset-error,.tree-error{color:var(--danger);background:#ff737312;border-bottom:1px solid #ff73734d;padding:7px 14px;font-size:11px}.structure-workspace{grid-template-columns:minmax(0,1fr) minmax(520px,36vw);min-width:0;display:grid}.tree-scroll{border-right:1px solid var(--border);scrollbar-color:#454a52 #1b1d20;min-width:0;height:calc(100vh - 206px);min-height:500px;overflow:auto}.tree-grid{min-width:1160px;font-size:11px}.tree-grid-header,.tree-row{grid-template-columns:112px minmax(270px,1.15fr) 164px minmax(320px,1.25fr) minmax(260px,1fr);display:grid}.tree-grid-header{z-index:4;color:#b9bec6;border-bottom:1px solid var(--border-strong);letter-spacing:0;text-transform:uppercase;background:#25282d;align-items:center;min-height:30px;font-size:10px;font-weight:700;position:sticky;top:0}.tree-grid-header>span,.tree-row>span{border-right:1px solid #30343a;align-items:center;min-width:0;height:100%;padding:0 9px;display:flex}.tree-grid-header>span:last-child,.tree-row>span:last-child{border-right:0}.tree-row{color:#d9dde3;cursor:default;background:#1b1d20;border-bottom:1px solid #2b2e33;align-items:stretch;min-height:34px}.tree-row:nth-child(odd){background:#1d1f23}.tree-row:hover{background:var(--surface-hover)}.tree-row.selected{color:#f5f8ff;background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.tree-row.node-root,.tree-row.node-group,.tree-row.node-array{font-weight:500}.tree-row.node-range{background:#202329}.tree-row.node-gap .key-label,.tree-row.node-gap .size-cell,.tree-row .size-cell.fragmented{color:var(--warning)}.tree-grid-header>span:first-child,.offset-cell{z-index:2;background:inherit;position:sticky;left:0}.tree-grid-header>span:first-child{z-index:5}.offset-cell,.hex-cell,.size-cell,.value-cell{font-family:var(--mono);white-space:nowrap;font-weight:400}.offset-cell{color:#aeb5bf}.hex-cell{color:#c7ccd3;text-overflow:ellipsis;overflow:hidden}.size-cell{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.key-cell{gap:4px;overflow:hidden;padding-left:calc(7px + var(--tree-depth) * 17px)!important}.disclosure-button,.disclosure-spacer{flex:0 0 24px;width:24px;height:28px}.disclosure-button{color:#bec4cc;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.disclosure-button:hover{color:#fff;background:#ffffff14}.disclosure-button:disabled{opacity:.55;cursor:progress}.key-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.key-cell.has-dex-preview .key-label{flex:none}.dex-semantic-label{min-width:0;color:var(--value);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.node-kind{color:var(--subtle);text-transform:uppercase;flex:none;font-size:10px;font-weight:600}.value-cell{color:var(--value);text-overflow:ellipsis;overflow:hidden}.byte-inspector{scrollbar-color:#454a52 #191b1e;background:#191b1e;min-width:0;height:calc(100vh - 206px);min-height:500px;padding:14px;overflow:hidden auto}.inspector-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px}.inspector-heading h3{overflow-wrap:anywhere;letter-spacing:0;margin-top:4px;font-size:14px;line-height:1.35}.range-state{color:var(--value);font-family:var(--mono);font-size:10px}.range-state.fragmented{color:var(--warning)}.inspector-meta{border-bottom:1px solid var(--border);padding:8px 0}.inspector-meta>div{grid-template-columns:94px minmax(0,1fr);gap:10px;padding:4px 0;display:grid}.inspector-meta dt{color:var(--muted);font-size:10px}.inspector-meta dd{color:#d9dde3;min-width:0;font-family:var(--mono);overflow-wrap:anywhere;font-size:10px}.inspector-value{padding-top:12px}.dex-preview{border-bottom:1px solid var(--border);padding:12px 0}.dex-preview>p{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.5}.dex-preview-list{margin-top:7px;list-style:none}.dex-preview-list li{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:3px 0;font-size:10px;display:grid}.dex-preview-list code,.dex-class-preview code{min-width:0;color:var(--value);font-family:var(--mono);overflow-wrap:anywhere;white-space:normal}.dex-preview-list span,.dex-preview-evidence{color:var(--muted)}.dex-class-preview{gap:4px;margin-top:10px;display:grid}.inspector-value code{color:var(--value);font-family:var(--mono);overflow-wrap:anywhere;margin-top:5px;font-size:11px;line-height:1.5;display:block}.inspector-description{color:#b2b8c1;overflow-wrap:anywhere;margin-top:10px;font-size:11px;line-height:1.55}.hex-dump-heading{justify-content:space-between;margin-top:16px}.hex-dump-heading>span:last-child{color:var(--subtle);font-family:var(--mono);font-size:10px}.hex-dump{color:#d7dbe1;width:100%;font-family:var(--mono);font-variant-numeric:tabular-nums;background:#111214;border:1px solid #30343a;border-radius:5px;margin-top:7px;padding:10px;font-size:10px;line-height:1.65;overflow:hidden}.hex-dump-line{grid-template-columns:8ch minmax(0,1fr) 16ch;align-items:center;gap:10px;min-width:0;display:grid}.hex-dump-offset{color:#929aa6}.hex-dump-bytes,.hex-dump-ascii{align-items:center;min-width:0;display:grid}.hex-dump.columns-16 .hex-dump-bytes{grid-template-columns:repeat(16,2ch);gap:.55ch}.hex-dump.columns-16 .hex-dump-ascii{color:#aeb5bf;grid-template-columns:repeat(16,1ch)}.hex-dump.columns-8 .hex-dump-bytes{grid-template-columns:repeat(8,2ch);column-gap:.8ch}.hex-byte,.hex-ascii-byte{text-align:center;min-width:0}.hex-byte.selected,.hex-ascii-byte.selected{color:#fff;background:#2f6fae;box-shadow:inset 0 -2px #79b9ff}.hex-byte.selected{border-radius:2px}.hex-dump-empty{color:var(--subtle)}.hex-truncated{color:var(--subtle);margin-top:7px;font-size:10px}.spinner{flex:none;animation:1s linear infinite spin}@keyframes progress-slide{0%{transform:translate(-110%)}to{transform:translate(320%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=1250px){.analysis-summary{overflow-x:auto}.analysis-summary dl{min-width:700px}.structure-workspace{grid-template-columns:minmax(0,1fr)}.tree-scroll{border-right:0;border-bottom:1px solid var(--border);height:58vh;min-height:440px}.byte-inspector{height:auto;min-height:0;max-height:420px}}@media (width<=760px){.app-shell,.app-shell.has-analysis{padding:0 12px 24px}.brand-lockup div>span{display:none}.secondary-button{width:36px;min-width:36px;padding:0;font-size:0}.secondary-button svg{width:17px;height:17px}.upload-view{min-height:calc(100vh - 90px);padding:28px 0}.upload-view>img{width:112px;height:112px}.upload-copy h2{font-size:24px}.progress-header{flex-direction:column;align-items:flex-start}.elapsed-time{padding-left:0}.progress-actions{justify-content:space-between;width:100%;padding-left:36px}.analysis-summary{flex-direction:column;gap:0}.file-identity{border-right:0;border-bottom:1px solid var(--border);max-width:none}.analysis-summary dl{min-width:650px}.structure-toolbar{flex-direction:column;align-items:flex-start}.tree-actions{width:100%}.offset-search{flex:1;min-width:0}.offset-search label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.offset-search input{width:100%;min-width:0}.icon-button{flex-basis:40px;width:40px;height:40px}.offset-search input{height:40px}.tree-scroll{height:56vh;min-height:390px}.tree-row{min-height:40px}.disclosure-button,.disclosure-spacer{flex-basis:40px;width:40px;height:40px}.byte-inspector{padding:12px}.hex-dump{padding:8px;font-size:10px}.hex-dump-line{grid-template-columns:8ch minmax(0,1fr);align-items:start;gap:6px;padding:2px 0}.hex-dump-bytes{row-gap:2px}.hex-dump-ascii{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
