@keyframes h2j-spin{to{transform:rotate(360deg)}}.h2j-tool{max-width:760px;margin:0 auto}.h2j-upload-area{border:2px dashed var(--gray-200);border-radius:12px;padding:60px 40px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#fff}.h2j-upload-area.drag-over,.h2j-upload-area:hover{border-color:var(--primary-500);background:var(--gray-50)}.h2j-upload-area .upload-icon{margin-bottom:16px;color:var(--primary-500)}.h2j-upload-area h3{font-size:20px;font-weight:600;color:var(--gray-800);margin-bottom:8px}.h2j-upload-area p{color:var(--gray-500);margin-bottom:20px}.upload-info{margin-top:12px;font-size:13px;color:var(--gray-500)}.h2j-controls{display:flex;flex-direction:column;gap:20px;background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:28px}.h2j-file-info{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.h2j-file-name{font-weight:600;color:var(--gray-800);font-size:15px;word-break:break-all}.h2j-file-size{font-size:13px;color:var(--gray-500)}.h2j-quality-row{display:flex;flex-direction:column;gap:8px}.h2j-label{font-size:14px;font-weight:600;color:var(--gray-700)}.h2j-slider{width:100%;accent-color:var(--primary-500);cursor:pointer;height:6px}.h2j-convert-btn,.h2j-new-btn{align-self:flex-start}.h2j-progress{display:flex;align-items:center;gap:16px;justify-content:center;padding:40px;font-size:15px;color:var(--gray-600)}.h2j-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--primary-500);border-radius:50%;animation:h2j-spin .8s linear infinite;flex-shrink:0}.h2j-result{display:flex;flex-direction:column;gap:20px}.h2j-result-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px}.h2j-result-header h3{font-size:18px;font-weight:600;color:var(--gray-800);margin:0}.h2j-result-stats{display:flex;gap:20px;font-size:13px;color:var(--gray-500);flex-wrap:wrap}.h2j-result-stats strong{color:var(--gray-800)}.h2j-preview-wrap{text-align:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:16px}.h2j-preview{max-width:100%;max-height:400px;border-radius:6px;display:block;margin:0 auto}.h2j-result-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.h2j-result-actions a.btn-primary{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.h2j-error{text-align:center;padding:32px;color:var(--gray-600)}.h2j-error p{margin-bottom:16px;color:#c0392b}