*,:before,:after{box-sizing:border-box}html,body,#root{color:#e0e0e0;background:#0d0d1a;height:100%;margin:0;padding:0;font-family:Segoe UI,system-ui,sans-serif}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{color:#e0e0e0;background:#1a1a2e;border-bottom:1px solid #2d2d4e;flex-shrink:0;padding:.6rem 1rem}.app-header h1{letter-spacing:.05em;margin:0;font-size:1.1rem;font-weight:600}.viewer{flex:1;display:flex;overflow:hidden}.content{flex-direction:column;flex:1;display:flex;overflow:hidden}.toolbar{background:#0d0d1a;border-bottom:1px solid #2d2d4e;flex-shrink:0;align-items:center;gap:.6rem;padding:.5rem .8rem;display:flex}.toolbar h2{color:#e0e0e0;min-width:6rem;margin:0;font-size:.9rem}.search-box{gap:.4rem;display:flex}.search-box input{color:#e0e0e0;background:#1a1a2e;border:1px solid #3d3d5e;border-radius:4px;width:260px;padding:.3rem .6rem;font-size:.82rem}.search-box input:focus{border-color:#0f3460;outline:none}.search-box button{color:#e0e0e0;cursor:pointer;background:#0f3460;border:1px solid #3d3d5e;border-radius:4px;padding:.3rem .7rem;font-size:.82rem}.search-box button:hover{background:#16498a}.row-count{color:#888;margin-left:auto;font-size:.78rem}.table-wrap{flex:1;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.8rem}thead{z-index:1;position:sticky;top:0}th{color:#9090b0;text-align:left;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;background:#1a1a2e;border-bottom:2px solid #2d2d4e;padding:.45rem .7rem;font-size:.75rem;font-weight:600}td{color:#c8c8d8;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #1e1e30;max-width:320px;padding:.4rem .7rem;overflow:hidden}td em.null{color:#555;font-style:normal}td a{color:#58a6ff;white-space:nowrap;border:1px solid #1e4a80;border-radius:3px;padding:.15rem .5rem;font-size:.75rem;text-decoration:none}td a:hover{background:#0f3460;border-color:#58a6ff}.md5-cell{align-items:center;gap:.4rem;display:flex}.md5-short{color:#a0a0b8;letter-spacing:.03em;font-family:monospace;font-size:.8rem}.copy-btn{color:#888;cursor:pointer;background:#1a1a2e;border:1px solid #3d3d5e;border-radius:3px;flex-shrink:0;padding:.1rem .4rem;font-size:.7rem}.copy-btn:hover{color:#e0e0e0;background:#2d2d4e}tr:hover td{background:#1e2a3e}.pagination{border-top:1px solid #2d2d4e;flex-shrink:0;justify-content:center;align-items:center;gap:.4rem;padding:.5rem;display:flex}.pagination button{color:#e0e0e0;cursor:pointer;background:#1a1a2e;border:1px solid #3d3d5e;border-radius:4px;padding:.3rem .6rem;font-size:.85rem}.pagination button:disabled{opacity:.3;cursor:default}.pagination button:not(:disabled):hover{background:#2d2d4e}.pagination span{color:#888;text-align:center;min-width:5rem;font-size:.82rem}.center-message{color:#c0c0d0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.8rem;padding:2rem;display:flex}.center-message p{margin:0}.hint{color:#666;font-size:.78rem}.progress-bar{background:#2d2d4e;border-radius:4px;width:320px;height:8px;overflow:hidden}.progress-fill{background:#0f3460;border-radius:4px;height:100%;transition:width .2s}.progress-text{color:#888;font-size:.85rem}.error{color:#e06060}.error-detail{color:#a06060;text-align:center;max-width:480px;font-size:.8rem}
