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}#root{width:100%;min-height:100vh}:root[data-theme=light]{--bg-color: #f5f7fa;--content-bg: #ffffff;--card-bg: #ffffff;--header-bg: #ffffff;--sidebar-bg: #f8f9fa;--table-header-bg: #f8f9fa;--text-color: #2c3e50;--text-secondary: #6c757d;--border-color: #e1e8ed;--hover-bg: #f0f2f5;--primary-color: #667eea;--input-bg: #ffffff}:root[data-theme=dark]{--bg-color: #000000;--content-bg: #0a0a0a;--card-bg: #141414;--header-bg: #0a0a0a;--sidebar-bg: #050505;--table-header-bg: #141414;--text-color: #e4e6eb;--text-secondary: #b0b3b8;--border-color: #2a2a2a;--hover-bg: #1f1f1f;--primary-color: #667eea;--input-bg: #141414}*{margin:0;padding:0;box-sizing:border-box}.app{min-height:100vh;background:var(--bg-color);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background .3s ease}.loading-app{align-items:center;justify-content:center}.loading-container{text-align:center;padding:60px 40px;background:var(--card-bg);border-radius:20px;box-shadow:0 10px 40px #0000001a;max-width:500px}.loading-container h2{color:var(--text-color);margin:20px 0 10px;font-size:2rem}.loading-container p{color:var(--text-secondary);font-size:1.1rem;margin:10px 0}.loading-note{font-size:.9rem!important;color:var(--text-secondary)!important;opacity:.7}.loading-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.loading-box{background:var(--card-bg);padding:40px;border-radius:12px;text-align:center;box-shadow:0 10px 40px #0000004d}.loading-box p{color:var(--text-color);margin-top:20px;font-size:1.1rem}.error-toast{position:fixed;top:80px;right:20px;background:#fee;border:2px solid #fcc;border-radius:10px;padding:15px 20px;color:#c33;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1500;animation:slideInRight .3s ease}@keyframes slideInRight{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.spinner{width:50px;height:50px;border:5px solid var(--border-color);border-top:5px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-header{height:60px;background:var(--header-bg);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000001a}.header-left{display:flex;align-items:center;gap:30px}.logo{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:700;color:var(--primary-color);cursor:pointer;-webkit-user-select:none;user-select:none}.logo-icon{width:24px;height:24px;border-radius:4px}.logo-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.file-name-display{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;color:var(--text-color);max-width:300px}.file-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.file-icon svg{width:18px;height:18px}.file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.header-menu{display:flex;gap:10px}.menu-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-color);font-size:.95rem;cursor:pointer;transition:all .3s ease}.menu-item:hover{background:var(--hover-bg);color:var(--primary-color)}.menu-icon{display:flex;align-items:center;justify-content:center}.menu-icon svg{width:18px;height:18px}.header-right{display:flex;gap:10px;align-items:center}.header-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);font-size:.9rem;cursor:pointer;transition:all .3s ease}.header-btn:hover{background:var(--hover-bg);border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-1px)}.header-btn-text{border:none;padding:8px 14px}.header-btn-text:hover{background:var(--hover-bg);border:none}.header-btn-icon{border:none;padding:8px;min-width:36px;justify-content:center}.header-btn-icon:hover{background:var(--hover-bg);border:none}.btn-icon{display:flex;align-items:center;justify-content:center}.btn-icon svg{width:18px;height:18px}.language-selector{position:relative;display:inline-block}.language-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:150px;overflow:hidden;z-index:1000;animation:slideDown .2s ease;padding:4px 0}.language-dropdown:before{content:"";position:absolute;top:-4px;left:0;right:0;height:4px;background:transparent}.language-option{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;margin:0 4px;border-radius:6px;color:var(--text-color);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.language-option:hover{background:var(--hover-bg);color:var(--primary-color)}.language-option.active{background:#667eea1a;color:var(--primary-color);font-weight:500}.language-option.active:hover{background:#667eea26}.language-name{font-size:.9rem}.check-icon{color:var(--primary-color);display:flex;align-items:center;justify-content:center}.check-icon svg{width:16px;height:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background:var(--card-bg);border-radius:12px;padding:30px;min-width:400px;max-width:500px;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease}.modal-content h2{margin:0 0 20px;color:var(--text-color);font-size:1.5rem;display:flex;align-items:center;gap:12px}.version-badge{display:inline-flex;align-items:center;padding:4px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.75rem;font-weight:600;border-radius:12px;letter-spacing:.5px}.modal-content p{color:var(--text-secondary);line-height:1.6;margin-bottom:20px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-btn{padding:10px 20px;border:1px solid var(--border-color);border-radius:8px;background:transparent;color:var(--text-color);cursor:pointer;font-size:.95rem;transition:all .3s ease}.modal-btn:hover{background:var(--hover-bg);border-color:var(--primary-color)}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.login-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:var(--text-color);font-size:.9rem;font-weight:500}.form-group input{padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--input-bg);color:var(--text-color);font-size:.95rem;transition:all .3s ease}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.app-header{padding:0 10px}.header-left{gap:15px}.logo-text{display:none}.header-btn span:not(.btn-icon),.menu-item span:not(.menu-icon){display:none}.modal-content{min-width:90%;margin:0 20px}}.sidebar{display:flex;height:calc(100vh - 60px);background:var(--bg-color);transition:all .3s ease}.sidebar-tabs{width:200px;background:var(--sidebar-bg);padding:20px 10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;transition:width .3s ease,padding .3s ease}.sidebar.collapsed .sidebar-tabs{width:60px;padding:20px 5px}.sidebar-divider{width:1px;background:var(--border-color);position:relative;flex-shrink:0;transition:width .2s ease,background .2s ease}.sidebar-divider:before{content:"";position:absolute;inset:0 -15px;z-index:1}.sidebar-divider:hover{width:3px;background:var(--primary-color)}.sidebar.collapsed .sidebar-divider{width:0}.sidebar.collapsed .sidebar-divider:before{left:-20px;right:0}.sidebar-tab{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:.95rem;cursor:pointer;transition:all .3s ease;text-align:left;white-space:nowrap}.sidebar.collapsed .sidebar-tab{justify-content:center;padding:12px 8px}.sidebar-tab:hover{background:var(--hover-bg);color:var(--text-color)}.sidebar-tab.active{background:var(--primary-color);color:#fff;box-shadow:0 2px 8px #667eea4d}.tab-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.tab-icon svg{width:100%;height:100%}.tab-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.tab-warning-icon{flex-shrink:0;color:#f59e0b;display:inline-flex;align-items:center;justify-content:center;animation:pulse-warning 2s ease-in-out infinite}.tab-warning-icon svg{width:16px;height:16px}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.6}}.sidebar-tab.active .tab-warning-icon{color:#fbbf24}.sidebar-content{flex:1;overflow-y:auto;padding:20px;background:var(--content-bg);position:relative}.sidebar-toggle-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);font-size:.75rem;cursor:pointer;opacity:0;transition:opacity .2s ease,background .2s ease;z-index:10;box-shadow:0 2px 6px #00000026}.sidebar-divider:hover .sidebar-toggle-btn{opacity:1}.sidebar-toggle-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.sidebar.collapsed .sidebar-toggle-btn{left:-10px;opacity:1}.no-file-message{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);gap:20px}.no-file-icon{opacity:.5;display:flex;align-items:center;justify-content:center}.no-file-icon svg{width:64px;height:64px}.no-file-message p{font-size:1.1rem;margin:0}@media(max-width:768px){.sidebar{flex-direction:column}.sidebar-tabs{width:100%;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:10px;border-right:none;border-bottom:1px solid var(--border-color)}.sidebar-tab{flex-direction:column;gap:4px;padding:8px 12px;min-width:80px}.tab-label{font-size:.8rem}.sidebar-content{height:calc(100vh - 120px)}}.media-overview{width:100%}.page-title{font-size:1.3rem;color:var(--text-color);margin:0 0 15px;font-weight:600}.overview-content{display:flex;flex-direction:column;gap:15px}.info-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:3px;overflow:hidden}.section-title{font-size:.9rem;color:var(--text-color);font-weight:600;margin:0;padding:6px 10px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color)}.stream-info{font-size:.8rem;color:var(--text-secondary);font-weight:400}.info-list{list-style:none;margin:0;padding:0}.info-item{display:flex;justify-content:flex-start;align-items:center;padding:2px 10px;border-bottom:1px solid var(--border-color);transition:background-color .15s ease;line-height:1.3}.info-item:last-child{border-bottom:none}.info-item:hover{background-color:var(--hover-bg)}.info-label{font-size:.8rem;color:var(--text-secondary);font-weight:500;flex-shrink:0;margin-right:15px;min-width:110px}.info-value{font-size:.8rem;color:var(--text-color);font-weight:400;text-align:left;word-break:break-word;position:relative;display:inline-block}.warning-icon{font-size:.85rem;color:#f59e0b;margin-left:6px;cursor:help;display:inline;vertical-align:middle}.info-item.has-warning{background-color:#f59e0b0d}.info-item.has-warning:hover{background-color:#f59e0b1a}.no-streams{padding:20px;text-align:center;color:var(--text-secondary);font-size:.9rem}.format-warnings{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:3px;overflow:hidden}.warning-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f59e0b26;border-bottom:1px solid rgba(245,158,11,.3)}.warning-header .warning-icon{font-size:1rem;margin:0}.warning-title{font-size:.9rem;font-weight:600;color:var(--text-color)}.warning-list{list-style:none;margin:0;padding:0}.warning-item{padding:6px 10px;font-size:.8rem;color:var(--text-color);border-bottom:1px solid rgba(245,158,11,.2);line-height:1.4}.warning-item:last-child{border-bottom:none}.warning-item:before{content:"• ";color:#f59e0b;font-weight:700;margin-right:6px}@media(max-width:768px){.info-item{flex-direction:column;align-items:flex-start;gap:4px;padding:8px 12px}.info-label{margin-right:0;min-width:auto}}.pagination-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--card-bg);border-top:1px solid var(--border-color);gap:16px;flex-wrap:wrap}.pagination-info{font-size:.9rem;color:var(--text-color);display:flex;align-items:center;gap:4px}.pagination-buttons{display:flex;align-items:center;gap:8px}.pagination-btn{padding:6px 12px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);cursor:pointer;font-size:1rem;transition:all .2s ease;min-width:36px;display:flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--primary-color)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.page-number{padding:6px 12px;font-size:.9rem;color:var(--text-color);font-weight:500;min-width:60px;text-align:center}@media(max-width:768px){.pagination-controls{flex-direction:column;gap:10px}.pagination-info{font-size:.85rem}.pagination-btn{padding:4px 10px;font-size:.9rem;min-width:32px}}.frame-list{width:100%}.frame-list-with-detail{display:flex;height:calc(100vh - 120px);position:relative}.frame-list-left{display:flex;flex-direction:column;overflow:hidden;position:relative;width:var(--panel-width, 50%)}.frame-detail-panel{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;width:var(--panel-width, 50%)}.frame-list-resizer{width:8px;background:var(--border-color);cursor:ew-resize;position:relative;display:flex;align-items:center;justify-content:center;transition:background .2s ease;flex-shrink:0}.frame-list-resizer:hover,.frame-list-resizer.resizing{background:var(--primary-color)}.resizer-handle-vertical{width:3px;height:40px;background:var(--text-secondary);border-radius:2px;opacity:.5}.frame-list-resizer:hover .resizer-handle-vertical,.frame-list-resizer.resizing .resizer-handle-vertical{opacity:1;background:#fff}.frame-list-header{display:flex;justify-content:flex-end;align-items:center;gap:20px;flex-wrap:wrap}.filter-buttons{display:flex;gap:6px;flex-wrap:wrap}.filter-btn{padding:4px 10px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);cursor:pointer;font-size:.8rem;transition:all .2s ease;white-space:nowrap}.filter-btn:hover{background:var(--hover-bg)}.filter-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary);gap:20px}.no-data-icon{font-size:4rem;opacity:.5}.no-data p{font-size:1.1rem;margin:0}.frame-table-container{overflow-x:auto;overflow-y:auto;background:var(--card-bg);border-radius:12px;border:1px solid var(--border-color);flex:1;min-height:0;position:relative}.scroll-buttons{position:absolute;bottom:20px;right:20px;z-index:1000;pointer-events:none}.scroll-buttons .scroll-button{pointer-events:auto}.scroll-button{width:48px;height:48px;border-radius:50%;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-color);font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .2s ease}.scroll-button:hover{background:var(--primary-color);color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #00000040}.scroll-button:active{transform:scale(.95)}.frame-table{width:100%;border-collapse:collapse}.frame-table thead{background:var(--table-header-bg);position:sticky;top:0;z-index:10}.frame-table th{padding:3px 6px;text-align:left;font-weight:600;color:var(--text-color);font-size:.7rem;border-bottom:2px solid var(--border-color)}.frame-table tbody tr:hover{background:var(--hover-bg)}.frame-table tbody tr.selected{background:#1d4ed8bf!important}.frame-table td{padding:1.5px 6px;color:var(--text-color);font-size:.7rem;border-bottom:1px solid var(--border-color);line-height:1.1}.frame-row{transition:background .2s ease;cursor:pointer}.frame-row:hover{background:var(--hover-bg)}.frame-row.selected{background:var(--primary-color);color:#fff}.frame-row.selected td{color:#fff}.frame-row.header-row{background:#fff3e0}.frame-row.header-row.selected{background:var(--primary-color)}.frame-header-signature{font-weight:700;color:var(--primary-color)}.frame-type-icon{display:inline-flex;align-items:center;vertical-align:middle;margin-right:4px}.frame-type-label{color:var(--text-secondary);font-size:.9em;margin-left:4px}.frame-offset-cell,.frame-timestamp-cell{font-family:monospace;font-size:.9em}.frame-interval-cell{text-align:left;font-family:monospace}.picture-type-badge{font-weight:700}.frame-type-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:600;text-transform:uppercase}.frame-type-badge.i{background:#e3f2fd;color:#1976d2}.frame-type-badge.p{background:#f3e5f5;color:#7b1fa2}.frame-type-badge.b{background:#fff3e0;color:#f57c00}.frame-type-badge.a{background:#e8f5e9;color:#388e3c}.stream-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500}.stream-badge.video{background:#e3f2fd;color:#1976d2}.stream-badge.audio{background:#fce4ec;color:#c2185b}.remark-cell{font-size:.75rem;color:var(--text-secondary);font-style:italic}.frame-limit-warning{display:flex;align-items:center;justify-content:flex-start;gap:6px;margin-top:8px;padding:6px 12px;background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:4px;color:#f57c00;font-size:.75rem;font-weight:400}.frame-detail-content{display:flex;flex-direction:column;height:100%;overflow:hidden}.detail-title{padding:15px 20px;margin:0;border-bottom:1px solid var(--border-color);font-size:1.1rem;color:var(--text-color)}.detail-sections{flex:1;display:flex;flex-direction:column;overflow:hidden}.detail-tree-section{display:flex;flex-direction:column;overflow:hidden;border-bottom:1px solid var(--border-color);height:var(--section-height, 50%)}.detail-hex-section{display:flex;flex-direction:column;overflow:hidden;height:var(--section-height, 50%)}.detail-resizer{height:8px;background:var(--border-color);cursor:ns-resize;position:relative;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.detail-resizer:hover,.detail-resizer.dragging{background:var(--primary-color)}.resizer-handle{width:40px;height:3px;background:var(--text-secondary);border-radius:2px;opacity:.5}.detail-resizer:hover .resizer-handle,.detail-resizer.dragging .resizer-handle{opacity:1;background:#fff}.detail-tree-section h4{padding:10px 20px;margin:0;background:var(--table-header-bg);font-size:.9rem;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.hex-section-header{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color)}.hex-section-header h4{margin:0;padding:0;font-size:.9rem;color:var(--text-secondary);border-bottom:none;background:transparent}.ascii-toggle-btn{background:transparent;border:none;cursor:pointer;padding:4px;color:var(--text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center;border-radius:3px;opacity:.7}.ascii-toggle-btn:hover{background:var(--hover-bg);color:var(--primary-color);opacity:1}.ascii-toggle-btn svg{display:block}.tree-view{flex:1;overflow-y:auto;padding:6px 10px;font-family:Monaco,Menlo,Consolas,monospace;font-size:.65rem;line-height:1.4}.tree-view-title{font-size:.75rem;font-weight:600;color:var(--primary-color);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-color)}.tree-node{margin:.25px 0;margin-left:calc(var(--tree-level, 0) * 5px)}.tree-node-label{font-weight:700;color:var(--primary-color);margin-bottom:.25px;padding:.25px 2px;border-bottom:1px solid var(--border-color);background:#3b82f60d;border-radius:2px;display:flex;align-items:center;gap:2px}.tree-node-label.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.tree-node-label.clickable:hover{background:#3b82f61a}.tree-node-label.clickable.selected{background:var(--primary-color);color:#fff;border-bottom-color:#ff6b00}.tree-node-label.clickable.selected .tree-node-icon{color:#ffffffe6}.tree-node-icon{font-size:.6rem;color:var(--text-secondary);display:inline-block;width:10px;text-align:center}.tree-node-children{margin-top:.25px}.tree-leaf{padding:.25px 2px;margin:0;margin-left:calc(var(--tree-level, 0) * 5px);border-radius:2px;cursor:pointer;transition:all .12s ease;display:flex;gap:3px;border-left:2px solid transparent}.tree-leaf:hover{background:var(--hover-bg);border-left-color:var(--primary-color)}.tree-leaf.selected{background:var(--primary-color);color:#fff;border-left-color:#ff6b00}.tree-leaf-key{font-weight:600;color:var(--text-secondary);min-width:120px;flex-shrink:0}.tree-leaf.selected .tree-leaf-key{color:#ffffffe6}.tree-leaf-value{color:var(--text-color);word-break:break-all;flex:1}.tree-leaf.selected .tree-leaf-value{color:#fff;font-weight:500}.binary-bits-container{display:flex;align-items:center;gap:4px;margin-left:8px;padding:2px 4px;background:#6464640d;border-radius:3px;border:1px dashed var(--border-color)}.binary-bit{display:inline-flex;flex-direction:column;align-items:center;gap:1px;font-family:Consolas,Monaco,monospace;font-size:.75rem;color:#4ec9b0}.binary-bit-value{padding:1px 3px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:2px;min-width:16px;text-align:center;font-weight:700}.binary-bit-label{font-size:.65rem;color:var(--text-secondary);white-space:nowrap}.binary-bit.highlighted .binary-bit-value{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.field-info-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:2px;background:#2196f3;color:#fff;border-radius:50%;cursor:pointer;font-size:10px;font-weight:700;font-family:Arial,sans-serif;transition:all .2s ease;-webkit-user-select:none;user-select:none;vertical-align:middle;position:relative}.field-info-icon:hover{background:#1976d2;transform:scale(1.1)}.field-info-tooltip{position:fixed;background:#fffef0;border:1px solid #e6d89f;border-radius:3px;box-shadow:0 2px 8px #0003;padding:3px 5px;min-width:120px;max-width:250px;font-size:10px;z-index:1000;white-space:nowrap;transform:translateY(-50%)}.field-info-tooltip:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:4px solid transparent;border-right-color:#e6d89f}.field-info-tooltip:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);margin-right:-1px;border:3px solid transparent;border-right-color:#fffef0}.field-info-description{color:#555;font-size:10px;line-height:1.4;padding:2px 0}.field-info-values{display:flex;flex-direction:column;gap:1px}.field-info-item{display:flex;align-items:center;gap:4px;padding:1px 2px;border-radius:2px;transition:background .15s ease;font-size:10px;line-height:1.3}.field-info-item:hover{background:#e6d89f40}.field-info-value{font-family:Consolas,Monaco,monospace;font-weight:600;color:#c77700;min-width:30px;font-size:10px}.field-info-name{color:#555;flex:1;font-size:10px}.hex-view{flex:1;overflow-y:auto;padding:10px 20px;font-family:Monaco,Menlo,Consolas,monospace;font-size:.75rem;background:#1e1e1e;color:#d4d4d4}.hex-view-empty{padding:20px;text-align:center;color:var(--text-secondary)}.hex-truncated-notice{margin-top:15px;padding:10px 15px;background:#ffa5001a;border-left:3px solid #ffa500;color:orange;font-size:.85rem;font-family:Monaco,Menlo,Consolas,monospace}.hex-line{display:flex;gap:15px;margin-bottom:2px;line-height:1.5;position:relative}.hex-offset{color:#858585;-webkit-user-select:none;user-select:none}.hex-bytes{display:flex;gap:4px;flex-wrap:wrap}.hex-byte{color:#d4d4d4;transition:all .2s ease;position:relative}.hex-byte.highlighted{background:orange;color:#000}.hex-byte.emulation-prevention{position:relative;cursor:help}.hex-byte.emulation-prevention:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom right,transparent 0%,transparent calc(50% - .5px),#ff0000 calc(50% - .5px),#ff0000 calc(50% + .5px),transparent calc(50% + .5px),transparent 100%);pointer-events:none}.hex-byte.emulation-prevention .emulation-prevention-tooltip{visibility:hidden;opacity:0;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:8px 12px;background-color:var(--tooltip-bg, #333);color:var(--tooltip-text, #fff);font-size:12px;line-height:1.4;border-radius:4px;white-space:nowrap;box-shadow:0 2px 8px #0003;z-index:1000;transition:opacity .2s,visibility .2s;pointer-events:none}.hex-byte.emulation-prevention .emulation-prevention-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--tooltip-bg, #333)}.hex-byte.emulation-prevention:hover .emulation-prevention-tooltip{visibility:visible;opacity:1}.hex-separator{display:inline-block;width:12px}.hex-ascii{color:#858585;margin-left:10px}.hex-binary-annotation{position:absolute;right:10px;top:0;color:#4ec9b0;font-size:.7rem;background:#4ec9b01a;padding:2px 8px;border-radius:3px;font-family:Monaco,Menlo,Consolas,monospace;white-space:nowrap}.hex-binary-annotation:before{content:"";position:absolute;right:100%;top:50%;width:120px;height:0;border-top:1px dashed #4ec9b0;opacity:.6}.binary-bit-highlighted{color:#000;background:orange;padding:0;border-radius:0}.binary-separator{display:inline-block;width:8px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:.9rem;color:var(--text-secondary)}@media(max-width:768px){.frame-table th,.frame-table td{padding:10px 12px;font-size:.85rem}}.packet-limit-warning{padding:4px 8px}.packet-limit-warning span{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:12px;border-radius:4px}:root[data-theme=light] .packet-limit-warning span{background:#fff3cd;color:#856404}:root[data-theme=dark] .packet-limit-warning span{background:#3d3200;color:#ffc107}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.chart-controls{display:flex;gap:20px;align-items:center;flex:1}.control-btn{padding:8px 16px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.9rem;transition:all .3s ease;display:flex;align-items:center;gap:6px}.control-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-1px)}.control-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.chart-style-toggle{display:flex;gap:0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.chart-style-toggle .control-btn{border-radius:0;border:none;border-right:1px solid var(--border-color)}.chart-style-toggle .control-btn:last-child{border-right:none}.chart-style-toggle .control-btn:hover{transform:none}.chart-type-selector{display:flex;gap:0;align-items:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.chart-type-label{color:var(--text-color);font-size:.9rem;font-weight:500;padding:0 12px;white-space:nowrap}.chart-type-btn{padding:8px 16px;background:transparent;border:none;border-left:1px solid var(--border-color);color:var(--text-color);cursor:pointer;font-size:.9rem;transition:all .3s ease}.chart-type-btn:first-of-type{border-left:none}.chart-type-btn:hover{background:#1976d21a}.chart-type-btn.active{background:var(--primary-color);color:#fff}.zoom-slider-container{display:flex;align-items:center;gap:15px;flex:1;max-width:400px}.zoom-label{color:var(--text-color);font-size:.9rem;font-weight:500;white-space:nowrap;min-width:80px}.zoom-slider{flex:1;height:6px;border-radius:3px;background:var(--border-color);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary-color);cursor:pointer;transition:all .2s ease}.zoom-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px var(--primary-color)}.zoom-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--primary-color);cursor:pointer;border:none;transition:all .2s ease}.zoom-slider::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px var(--primary-color)}.chart-legend{display:flex;gap:20px;margin-bottom:20px;padding:15px;background:var(--card-bg);border-radius:8px;border:1px solid var(--border-color);align-items:center;justify-content:flex-start}.legend-item{display:flex;align-items:center;gap:8px;color:var(--text-color);font-size:.9rem}.legend-line{width:30px;height:1px;border-radius:1px}.legend-dot{width:12px;height:12px;border-radius:50%}.chart-container{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:20px;min-height:600px;overflow:hidden;-webkit-user-select:none;user-select:none}.chart-canvas{width:100%;height:600px;display:block}@media(max-width:768px){.chart-header{flex-direction:column;align-items:flex-start}.chart-controls{width:100%;flex-wrap:wrap}.control-btn{flex:1;min-width:100px}.chart-legend{flex-wrap:wrap}}.chart-type-toggle{display:flex;align-items:center;margin-left:auto}.toggle-switch{display:flex;gap:0;background:var(--card-bg);border:1px solid var(--border-color);overflow:hidden}.toggle-option{flex:1;display:flex;align-items:center;justify-content:center;padding:4px 8px;background:transparent;border:none;border-right:1px solid var(--border-color);color:var(--text-color);cursor:pointer;transition:all .3s ease}.toggle-option:last-child{border-right:none}.toggle-option svg{width:14px;height:14px;display:block}.toggle-option:hover{background:#1976d21a}.toggle-option.active{background:var(--primary-color);color:#fff}.timestamp-chart{width:100%}.timestamp-chart .legend-dot.video-dot{background:#1976d2}.timestamp-chart .legend-dot.audio-dot{background:#4caf50}.timestamp-chart .legend-dot.i-frame{background:#1976d2}.timestamp-chart .legend-dot.p-frame{background:#7b1fa2}.timestamp-chart .legend-dot.b-frame{background:#f57c00}.bitrate-chart{width:100%}.bitrate-chart .legend-line.video-line{background:#1976d2}.bitrate-chart .legend-line.audio-line{background:#4caf50}.avsync-chart{width:100%}.avsync-chart .legend-line.sync-line{background:#764ba2}.avsync-chart .legend-line.perfect-sync{background:#4caf50}.frame-interval-chart{width:100%}.frame-interval-chart .legend-line.video-line{background:#1976d2}.frame-interval-chart .legend-line.audio-line{background:#4caf50}.frame-interval-chart .legend-dot.warning-dot{background:#ef4444}.mp4-box-tree-page{display:flex;flex-direction:column;height:100%;padding:15px;overflow:hidden}.mp4-box-tree-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary)}.mp4-box-tree-empty .empty-icon{display:inline-flex;margin-bottom:1rem;opacity:.5}.mp4-box-tree-empty .empty-icon svg{width:64px;height:64px}.mp4-box-tree-empty p{font-size:1rem;margin:0}.mp4-box-tree-container{display:flex;gap:0;height:100%;position:relative}.mp4-box-tree{display:flex;flex-direction:column;min-width:200px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:3px;overflow:hidden}.mp4-box-resizer{width:8px;cursor:col-resize;background:transparent;position:relative;flex-shrink:0;transition:background-color .15s ease}.mp4-box-resizer:hover{background:var(--primary-color);opacity:.3}.mp4-box-resizer:active{background:var(--primary-color);opacity:.5}.mp4-box-tree-header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color)}.mp4-box-tree-header-left{display:flex;align-items:center;gap:8px}.mp4-box-tree-action-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:2px;padding:2px;color:var(--text-color);cursor:pointer;transition:all .15s ease;opacity:.6}.mp4-box-tree-action-btn:hover{background:var(--hover-bg);opacity:1}.mp4-box-tree-action-btn svg{display:block}.mp4-box-tree-title{font-size:.9rem;font-weight:600;color:var(--text-color)}.mp4-box-search{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--input-bg);border:1px solid var(--border-color);border-radius:4px;flex:1;max-width:250px}.mp4-box-search-icon{flex-shrink:0;opacity:.5}.mp4-box-search-input{flex:1;border:none;background:transparent;outline:none;font-size:.8rem;color:var(--text-color);min-width:0}.mp4-box-search-input::placeholder{color:var(--text-secondary);opacity:.6}.mp4-box-search-clear{flex-shrink:0;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;line-height:1;padding:0 2px;opacity:.6;transition:opacity .15s ease}.mp4-box-search-clear:hover{opacity:1}.mp4-box-tree-content{flex:1;overflow-y:auto;padding:4px;font-size:.8rem;line-height:1.4}.mp4-box-node{margin:0}.mp4-box-label{display:flex;align-items:center;gap:4px;padding:2px 4px;min-height:20px;border-radius:2px;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.mp4-box-label.clickable{cursor:pointer}.mp4-box-label.clickable:hover{background:var(--hover-bg)}.mp4-box-label.selected{background:var(--hover-bg);border-left:2px solid var(--primary-color);padding-left:2px}.mp4-box-label.matched{background:#667eea26;border-left:2px solid rgba(102,126,234,.5);padding-left:2px}.mp4-box-label.matched .mp4-box-type{font-weight:600;color:var(--primary-color)}.mp4-box-label.matched.selected{border-left:2px solid var(--primary-color)}.mp4-box-arrow{width:12px;font-size:.7rem;color:var(--text-secondary);flex-shrink:0}.mp4-box-icon{display:inline-flex;align-items:center;flex-shrink:0;margin-right:4px;color:var(--text-color)}.mp4-box-type{font-weight:600;color:var(--text-color);font-family:Monaco,Menlo,Consolas,monospace}.mp4-box-info{color:var(--text-secondary);opacity:.85;font-size:.75rem;margin-left:4px}.mp4-box-children{margin:0}.mp4-box-tree-content::-webkit-scrollbar{width:8px}.mp4-box-tree-content::-webkit-scrollbar-track{background:var(--card-bg)}.mp4-box-tree-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.mp4-box-tree-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.mp4-box-details{display:flex;flex-direction:column;min-width:200px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:3px;overflow:hidden}.mp4-box-details-header{padding:6px 10px;background:var(--table-header-bg);border-bottom:1px solid var(--border-color);font-size:.9rem;font-weight:600;color:var(--text-color)}.mp4-box-details-empty{padding:40px 20px;text-align:center;color:var(--text-secondary);font-size:.85rem}.mp4-box-details-content{flex:1;overflow-y:auto;padding:8px}.mp4-box-details-title{font-size:.85rem;font-weight:600;color:var(--text-color);padding:6px 8px;background:var(--hover-bg);border-radius:3px;margin-bottom:8px}.mp4-box-details-describe{font-size:.75rem;line-height:1.5;color:var(--text-secondary);padding:12px;background:rgba(var(--primary-color-rgb, 59, 130, 246),.05);border-top:1px solid var(--border-color);margin-top:12px}.mp4-box-details-describe-label{font-weight:600;color:var(--primary-color);margin-bottom:6px}.mp4-box-details-describe-text{font-style:italic;line-height:1.6}.mp4-box-details-list{flex:1;overflow-y:auto;list-style:none;margin:0;padding:0}.mp4-box-detail-item{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:15px;align-items:center;padding:2px 10px;border-bottom:1px solid var(--border-color);transition:background-color .15s ease;line-height:1.3}.mp4-box-detail-item:last-child{border-bottom:none}.mp4-box-detail-item:hover{background-color:var(--hover-bg)}.mp4-box-detail-name{font-size:.8rem;color:var(--text-secondary);font-weight:500;text-align:left;word-break:break-word}.mp4-box-detail-value{font-size:.8rem;color:var(--text-color);font-weight:400;text-align:left;word-break:break-word}.mp4-box-detail-table-container{padding:10px;border-bottom:1px solid var(--border-color)}.mp4-box-detail-table-title{font-size:.8rem;color:var(--text-secondary);font-weight:500;margin-bottom:8px}.mp4-box-detail-table{width:100%;border-collapse:collapse;font-size:.75rem}.mp4-box-detail-table th{background-color:rgba(var(--primary-color-rgb, 59, 130, 246),.1);color:var(--text-secondary);font-weight:500;padding:6px 10px;text-align:left;border:1px solid var(--border-color)}.mp4-box-detail-table td{padding:4px 10px;border:1px solid var(--border-color);color:var(--text-color);word-break:break-all}.mp4-box-detail-table tbody tr:hover{background-color:var(--hover-bg)}.mp4-box-detail-object-container{padding:10px;border-bottom:1px solid var(--border-color)}.mp4-box-detail-object-title{font-size:.8rem;color:var(--text-secondary);font-weight:500;margin-bottom:8px;padding:4px 8px;background-color:rgba(var(--primary-color-rgb, 59, 130, 246),.1);border-radius:4px}.mp4-box-detail-object-fields{padding-left:12px;border-left:2px solid var(--border-color)}.mp4-box-detail-nested{display:grid;grid-template-columns:250px 1fr;gap:15px;align-items:center;padding:4px 10px;font-size:.75rem;transition:background-color .15s ease}.mp4-box-detail-nested:hover{background-color:var(--hover-bg)}.mp4-box-detail-nested .mp4-box-detail-name{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-align:left;word-break:break-word}.mp4-box-detail-nested .mp4-box-detail-value{font-size:.75rem;color:var(--text-color);font-weight:400;text-align:left;word-break:break-word}.mp4-box-details-content::-webkit-scrollbar{width:8px}.mp4-box-details-content::-webkit-scrollbar-track{background:var(--card-bg)}.mp4-box-details-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.mp4-box-details-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app-footer{background:var(--header-bg);border-top:1px solid var(--border-color);padding:20px;display:flex;justify-content:center;align-items:center;margin-top:auto;box-shadow:0 -2px 8px #0000000d}.footer-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;max-width:1200px;width:100%}.footer-row{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.footer-copyright{color:var(--text-secondary);font-size:.875rem}.footer-separator{color:var(--border-color);font-size:.875rem;-webkit-user-select:none;user-select:none}.footer-contact{color:var(--text-secondary);font-size:.875rem;display:flex;align-items:center;gap:6px}.footer-qq-link{color:var(--text-secondary);text-decoration:none;transition:color .2s ease;font-weight:500}.footer-qq-link:hover{color:var(--primary-color)}.footer-links{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.footer-link{display:flex;align-items:center;gap:8px;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:color .2s ease}.footer-link:hover{color:var(--primary-color)}.footer-icon{width:20px;height:20px;object-fit:contain}@media(max-width:768px){.footer-row{flex-direction:column;gap:8px}.footer-separator{display:none}.footer-links{flex-direction:column;gap:12px}}
