| * { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| [hidden] { |
| display: none !important; |
| } |
|
|
| body { |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; |
| background: #f5f5ff; |
| min-height: 100vh; |
| display: flex; |
| flex-direction: column; |
| } |
|
|
| |
| header { |
| background: white; |
| border-bottom: 1px solid #e8e8f0; |
| padding: 0 32px; |
| height: 52px; |
| display: flex; |
| align-items: center; |
| } |
|
|
| .brand { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| font-weight: 700; |
| font-size: 16px; |
| color: #1e1b4b; |
| } |
|
|
| |
| main { |
| display: flex; |
| flex: 1; |
| height: calc(100vh - 52px); |
| overflow: hidden; |
| } |
|
|
| |
| .left-panel { |
| width: 260px; |
| min-width: 260px; |
| background: white; |
| border-right: 1px solid #e8e8f0; |
| padding: 20px 16px; |
| display: flex; |
| flex-direction: column; |
| gap: 12px; |
| overflow-y: auto; |
| } |
|
|
| |
| .upload-zone { |
| border: 2px dashed #c7d2fe; |
| border-radius: 14px; |
| padding: 28px 16px; |
| text-align: center; |
| cursor: pointer; |
| transition: border-color 0.2s, background 0.2s; |
| } |
|
|
| .upload-zone:hover, |
| .upload-zone.dragover { |
| border-color: #6366f1; |
| background: #f5f3ff; |
| } |
|
|
| .upload-title { |
| font-size: 15px; |
| font-weight: 600; |
| color: #1e1b4b; |
| margin: 10px 0 12px; |
| } |
|
|
| .choose-btn { |
| background: white; |
| border: 1.5px solid #d1d5db; |
| color: #374151; |
| padding: 6px 16px; |
| border-radius: 20px; |
| font-size: 13px; |
| cursor: pointer; |
| transition: border-color 0.2s; |
| } |
|
|
| .choose-btn:hover { border-color: #6366f1; color: #6366f1; } |
|
|
| |
| .file-card { |
| background: #6366f1; |
| border-radius: 10px; |
| padding: 10px 12px; |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| } |
|
|
| .file-info { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| min-width: 0; |
| } |
|
|
| .file-name { |
| display: block; |
| font-size: 13px; |
| font-weight: 500; |
| color: white; |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| max-width: 140px; |
| } |
|
|
| .file-duration { |
| display: block; |
| font-size: 11px; |
| color: #c7d2fe; |
| margin-top: 2px; |
| } |
|
|
| .delete-btn { |
| background: none; |
| border: none; |
| color: #c7d2fe; |
| cursor: pointer; |
| padding: 4px; |
| flex-shrink: 0; |
| display: flex; |
| align-items: center; |
| transition: color 0.2s; |
| } |
|
|
| .delete-btn:hover { color: white; } |
|
|
| |
| .process-btn { |
| width: 100%; |
| background: #6366f1; |
| color: white; |
| border: none; |
| padding: 12px; |
| border-radius: 10px; |
| font-size: 14px; |
| font-weight: 600; |
| cursor: pointer; |
| transition: background 0.2s; |
| } |
|
|
| .process-btn:hover { background: #4f46e5; } |
| .process-btn:disabled { background: #a5b4fc; cursor: not-allowed; } |
|
|
| |
| #status { |
| font-size: 13px; |
| color: #6b7280; |
| text-align: center; |
| } |
|
|
| #status.error { color: #dc2626; } |
| #status.success { color: #16a34a; } |
|
|
| |
| .right-panel { |
| flex: 1; |
| padding: 28px 32px; |
| overflow-y: auto; |
| display: flex; |
| flex-direction: column; |
| } |
|
|
| |
| .empty-state { |
| flex: 1; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| gap: 12px; |
| color: #c7d2fe; |
| font-size: 14px; |
| } |
|
|
| |
| .player-section { |
| display: flex; |
| flex-direction: column; |
| gap: 20px; |
| } |
|
|
| .player-wrap { |
| background: white; |
| border-radius: 16px; |
| padding: 20px; |
| box-shadow: 0 2px 12px rgba(99,102,241,0.08); |
| } |
|
|
| audio { |
| width: 100%; |
| border-radius: 8px; |
| } |
|
|
| video { |
| width: 100%; |
| max-height: 60vh; |
| object-fit: contain; |
| border-radius: 8px; |
| background: #000; |
| } |
|
|
| |
| .toggle-row { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 12px; |
| } |
|
|
| .toggle-label { |
| font-size: 14px; |
| font-weight: 500; |
| color: #9ca3af; |
| } |
|
|
| .enhanced-label { color: #6366f1; font-weight: 600; } |
|
|
| .toggle-switch { |
| position: relative; |
| display: inline-block; |
| width: 48px; |
| height: 26px; |
| } |
|
|
| .toggle-switch input { display: none; } |
|
|
| .toggle-slider { |
| position: absolute; |
| inset: 0; |
| background: #e5e7eb; |
| border-radius: 999px; |
| cursor: pointer; |
| transition: background 0.2s; |
| } |
|
|
| .toggle-slider:before { |
| content: ''; |
| position: absolute; |
| width: 20px; |
| height: 20px; |
| left: 3px; |
| top: 3px; |
| background: white; |
| border-radius: 50%; |
| transition: transform 0.2s; |
| box-shadow: 0 1px 4px rgba(0,0,0,0.15); |
| } |
|
|
| .toggle-switch input:checked + .toggle-slider { background: #6366f1; } |
| .toggle-switch input:checked + .toggle-slider:before { transform: translateX(22px); } |
|
|
| |
| .control-card { |
| background: white; |
| border-radius: 14px; |
| padding: 16px 20px; |
| box-shadow: 0 2px 12px rgba(99,102,241,0.06); |
| } |
|
|
| .control-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| margin-bottom: 10px; |
| } |
|
|
| .control-name { |
| font-size: 14px; |
| font-weight: 500; |
| color: #374151; |
| } |
|
|
| .control-value { |
| font-size: 13px; |
| color: #6366f1; |
| font-weight: 600; |
| } |
|
|
| input[type="range"] { |
| width: 100%; |
| accent-color: #6366f1; |
| cursor: pointer; |
| } |
|
|
| .slider-hints { |
| display: flex; |
| justify-content: space-between; |
| font-size: 11px; |
| color: #9ca3af; |
| margin-top: 6px; |
| } |
|
|
| |
| .download-btn { |
| display: block; |
| text-align: center; |
| background: white; |
| color: #6366f1; |
| border: 1.5px solid #6366f1; |
| padding: 12px; |
| border-radius: 10px; |
| font-size: 14px; |
| font-weight: 600; |
| text-decoration: none; |
| transition: background 0.2s, color 0.2s; |
| } |
|
|
| .download-btn:hover { |
| background: #6366f1; |
| color: white; |
| } |
|
|
| |
| @media (max-width: 640px) { |
| main { flex-direction: column; height: auto; } |
| .left-panel { width: 100%; border-right: none; border-bottom: 1px solid #e8e8f0; } |
| } |
|
|