html,body{width:100%;height:100%}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}.box-tree-container{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#d4d4d4;overflow:hidden}.box-tree-header{padding:16px;border-bottom:1px solid #3c3c3c;display:flex;justify-content:space-between;align-items:center}.box-tree-header h3{margin:0;font-size:16px;font-weight:600}.tree-controls{display:flex;gap:8px}.tree-controls button{padding:6px 12px;font-size:12px;background:#3c3c3c;color:#d4d4d4;border:1px solid #5c5c5c;border-radius:4px;cursor:pointer;transition:background .2s}.tree-controls button:disabled{background:#2d2d2d;color:gray;border-color:#404040;cursor:not-allowed}.tree-controls button:hover{background:#5c5c5c}.tree-content{flex:1;overflow-y:auto;padding:8px 0}.tree-node{display:flex;align-items:center;padding:6px 8px;border:none;background:transparent;color:#d4d4d4;text-align:left;width:100%;cursor:pointer;gap:6px;border-radius:4px;margin:2px 0}.tree-node:hover{background:#2d2d2d}.tree-node.selected{background:#264f78}.tree-node .toggle-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;padding:0;border:none;background:transparent;color:#d4d4d4;cursor:pointer;border-radius:2px;flex-shrink:0}.tree-node .toggle-icon:hover{background:#3c3c3c}.tree-node .toggle-icon.no-children{cursor:default}.box-type{padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-weight:600;font-size:13px;color:#1e1e1e;flex-shrink:0}.box-size{font-size:12px;color:gray;margin-left:4px}.box-offset{font-size:12px;color:gray;font-family:Courier New,monospace;margin-left:auto}.empty-state{padding:32px 16px;text-align:center;color:gray;font-size:14px}.children{animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hex-viewer-container{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#d4d4d4;font-family:Courier New,monospace;font-size:13px;overflow:hidden}.hex-viewer-dark{--background: #1e1e1e;--text: #d4d4d4;--border: #3c3c3c;--highlight: #264f78;--byte-hover: #2d2d2d}.hex-viewer-light{--background: #ffffff;--text: #1e1e1e;--border: #e0e0e0;--highlight: #e8f4fd;--byte-hover: #f5f5f5}.hex-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--background);border-bottom:1px solid var(--border);flex-shrink:0}.hex-viewer-info{display:flex;gap:20px;font-size:12px;color:gray}.hex-viewer-info span{display:inline-flex;align-items:center;gap:8px}.hex-viewer-info span:before{content:"";display:inline-block;width:1px;height:12px;background:#5c5c5c}.hex-viewer-info span:first-child:before{display:none}.hex-column-headers{display:grid;grid-template-columns:100px 1fr auto;gap:8px;padding:8px 16px;background:#252526;border-bottom:1px solid #3c3c3c;font-size:11px;color:gray;flex-shrink:0}.hex-offset-header{text-align:right;padding-right:12px}.hex-bytes-header{display:flex;gap:4px;justify-content:center}.byte-header{width:24px;text-align:center;font-size:11px}.hex-ascii-header{padding-left:16px;min-width:160px}.hex-list{flex:1;overflow-y:auto}.hex-row{display:grid;grid-template-columns:100px 1fr auto;gap:8px;padding:2px 16px;align-items:center;border-bottom:1px solid #2d2d2d;font-size:13px}.hex-row:hover{background:#252526}.hex-offset{text-align:right;padding-right:12px;color:gray;font-size:12px}.hex-bytes{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.hex-byte-wrapper{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;padding:0;border:none;background:transparent;color:var(--text);cursor:pointer;border-radius:2px;transition:background .1s}.hex-byte-wrapper:hover{background:var(--byte-hover)}.hex-byte-wrapper.selected{background:var(--highlight);color:#fff}.hex-byte-wrapper.empty{cursor:default}.hex-byte{font-size:13px;-webkit-user-select:none;user-select:none}.hex-ascii{display:flex;gap:0;padding-left:16px;min-width:160px;letter-spacing:2px;color:#d4d4d4}.ascii-char{display:inline-block;width:8px;text-align:center}.box-details-container{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#d4d4d4;overflow:hidden;border-left:1px solid #3c3c3c}.box-details-header{padding:16px;border-bottom:1px solid #3c3c3c;flex-shrink:0;display:flex;flex-direction:column;gap:12px}.box-details-header h3{margin:0;font-size:16px;font-weight:600}.binary-view-button{align-self:flex-start;padding:6px 12px;background:#0e639c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:background .15s}.binary-view-button:hover{background:#17b}.binary-view-button:active{background:#0d5a8c}.box-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.box-type-badge{padding:4px 12px;border-radius:4px;font-family:Courier New,monospace;font-weight:600;font-size:13px;color:#1e1e1e}.box-size{font-size:12px;color:gray}.box-offset{font-size:12px;color:gray;font-family:Courier New,monospace}.properties-list{flex:1;overflow-y:auto;padding:8px 0}.property-row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:8px 16px;border-bottom:1px solid #2d2d2d}.property-row:hover{background:#252526}.property-name{display:flex;align-items:center;min-height:24px;color:#9cdcfe}.property-name code{font-size:13px;font-family:Courier New,monospace;word-break:break-word}.property-value{display:flex;align-items:center;min-height:24px;border:none;background:transparent;color:#d4d4d4;text-align:left;width:100%;cursor:default;transition:background .1s;border-radius:2px;padding:4px}.property-value.clickable{cursor:pointer;color:#9cdcfe}.property-value.clickable:hover{background:#2d2d2d}.property-value code{font-size:13px;font-family:Courier New,monospace;word-break:break-word;white-space:pre-wrap;overflow-x:auto}.empty-state{display:flex;align-items:center;justify-content:center;padding:32px 16px;text-align:center;color:gray;font-size:14px}.empty-state p{margin:0}.binary-viewer-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1001}.binary-viewer-modal{background-color:#1e1e1e;border:1px solid #3c3c3c;border-radius:8px;box-shadow:0 8px 32px #00000080;width:900px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.binary-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #3c3c3c;background-color:#252526;border-radius:8px 8px 0 0}.binary-viewer-title h3{margin:0;font-size:16px;color:#fff;font-weight:600}.binary-viewer-box-info{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:12px}.binary-viewer-box-info .box-type-badge{padding:2px 8px;border-radius:4px;font-weight:600;font-size:11px;text-transform:uppercase}.binary-viewer-box-info .box-size,.binary-viewer-box-info .box-offset{color:#ccc;font-family:Courier New,monospace}.binary-viewer-close{background:none;border:none;color:#ccc;font-size:28px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s,color .15s;line-height:1}.binary-viewer-close:hover{background-color:#3c3c3c;color:#fff}.binary-viewer-legend{display:flex;align-items:center;gap:16px;padding:12px 20px;border-bottom:1px solid #3c3c3c;background-color:#1e1e1e;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:#ccc}.legend-color{width:12px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.2)}.legend-label{font-weight:500}.binary-viewer-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.binary-viewer-warning{padding:10px 20px;background-color:#3c3c3c;color:#feca57;font-size:12px;border-bottom:1px solid #4c4c4c}.binary-viewer-scroll{flex:1;overflow-y:auto;padding:16px 20px}.binary-viewer-scroll::-webkit-scrollbar{width:12px}.binary-viewer-scroll::-webkit-scrollbar-track{background:#1e1e1e}.binary-viewer-scroll::-webkit-scrollbar-thumb{background:#4c4c4c;border-radius:6px;border:3px solid #1e1e1e}.binary-viewer-scroll::-webkit-scrollbar-thumb:hover{background:#5c5c5c}.binary-row{display:flex;align-items:center;gap:16px;margin-bottom:4px;font-family:Courier New,monospace;font-size:13px}.binary-offset{color:#858585;font-size:11px;min-width:80px;-webkit-user-select:none;user-select:none}.binary-bytes{display:flex;gap:4px;flex:1}.binary-byte{padding:2px 4px;border-radius:2px;font-family:Courier New,monospace;font-size:12px;letter-spacing:.5px;color:#000;font-weight:500;transition:transform .1s}.binary-byte:hover{transform:scale(1.05);filter:brightness(1.1)}.binary-viewer-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid #3c3c3c;background-color:#252526;font-size:11px;color:#858585;border-radius:0 0 8px 8px}.resizable-divider{position:relative;width:4px;background:#3c3c3c;cursor:col-resize;transition:background .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.resizable-divider:hover,.resizable-divider.hovered{background:#5c5c5c}.resizable-divider.dragging{background:#007acc;transition:background .1s}.divider-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:3px;opacity:0;transition:opacity .2s;pointer-events:none}.resizable-divider:hover .divider-handle,.resizable-divider.hovered .divider-handle,.resizable-divider.dragging .divider-handle{opacity:1}.handle-line{width:2px;height:20px;background:gray;border-radius:1px;transition:background .2s}.resizable-divider:hover .handle-line,.resizable-divider.hovered .handle-line{background:#d4d4d4}.resizable-divider.dragging .handle-line{background:#fff}.main-layout{display:flex;flex-direction:row;height:calc(100vh - 60px);gap:0;background:#3c3c3c;overflow:hidden}.left-panel{display:flex;flex-direction:column;overflow:hidden;background:#1e1e1e;flex-shrink:0}.tree-section{flex:1;overflow:hidden;display:flex;flex-direction:column;border-bottom:1px solid #3c3c3c}.details-section{height:500px;overflow:hidden;display:flex;flex-direction:column}.hex-section{flex:1;overflow:hidden;background:#1e1e1e;min-width:0}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1e1e1e;color:#d4d4d4}#root{width:100vw;height:100vh;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-logo{height:48px;width:48px}.app-logo-container{display:flex;align-items:center;gap:6px}.app-logo-container h1{font-family:monospace;color:#d4d4d4}.app-header{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:60px;background:#252526;border-bottom:1px solid #3c3c3c;flex-shrink:0}.header-left{display:flex;align-items:center;gap:20px}.header-left h1{font-size:20px;font-weight:600;color:#d4d4d4}.file-info{display:flex;align-items:center;gap:12px;padding:6px 12px;background:#3c3c3c;border-radius:4px;font-size:13px}.file-name{color:#9cdcfe;font-weight:500}.file-size{color:gray}.header-right{display:flex;align-items:center;gap:12px}.file-input-label{display:inline-flex;align-items:center;padding:8px 16px;background:#0e639c;color:#fff;border-radius:4px;cursor:pointer;transition:background .2s;font-size:13px;font-weight:500}.file-input-label:hover{background:#17b}.file-input-label input{display:none}.file-input-label input:disabled+span{opacity:.6;cursor:not-allowed}.reset-button{padding:8px 16px;background:#3c3c3c;color:#d4d4d4;border:none;border-radius:4px;cursor:pointer;transition:background .2s;font-size:13px}.reset-button:hover{background:#5c5c5c}.app-main{flex:1;overflow:hidden;position:relative}.loading-overlay{position:absolute;inset:0;background:#1e1e1ee6;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{width:48px;height:48px;border:4px solid #3c3c3c;border-top-color:#0e639c;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-content p{font-size:14px;color:#d4d4d4}.loading-info{display:flex;flex-direction:column;gap:8px;background:#252526;border:1px solid #3c3c3c;border-radius:6px;padding:16px;min-width:240px}.loading-info-item{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px}.loading-info-label{color:gray;font-weight:500}.loading-info-value{color:#9cdcfe;font-weight:500;text-align:right}.error-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#5a1d1d;border:1px solid #f48771;border-radius:8px;padding:24px;text-align:center}.error-message p{margin-bottom:16px;color:#f48771}.error-message button{padding:8px 16px;background:#f48771;color:#1e1e1e;border:none;border-radius:4px;cursor:pointer;font-weight:500}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px}.welcome-screen h2{font-size:32px;font-weight:600;margin-bottom:16px;color:#d4d4d4}.welcome-screen>p{font-size:16px;color:gray;margin-bottom:40px;max-width:500px}.features-list{display:flex;gap:32px;justify-content:center;flex-wrap:wrap}.feature-item{background:#252526;border:1px solid #3c3c3c;border-radius:8px;padding:24px;width:200px;text-align:center}.feature-item h3{font-size:18px;margin-bottom:8px;color:#d4d4d4}.feature-item p{font-size:14px;color:gray;line-height:1.5}
