| * { margin: 0; padding: 0; box-sizing: border-box; } |
|
|
| body { |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
| background: #f0f2f5; |
| color: #333; |
| line-height: 1.6; |
| } |
|
|
| .container { max-width: 960px; margin: 0 auto; padding: 20px; } |
|
|
| header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| margin-bottom: 30px; |
| padding-bottom: 20px; |
| border-bottom: 2px solid #e0e0e0; |
| } |
|
|
| header h1 { font-size: 1.8rem; color: #1a1a2e; } |
|
|
| a { color: #4361ee; text-decoration: none; } |
| a:hover { text-decoration: underline; } |
|
|
| .card { |
| background: white; |
| border-radius: 12px; |
| padding: 24px; |
| margin-bottom: 20px; |
| box-shadow: 0 2px 8px rgba(0,0,0,0.08); |
| } |
|
|
| .card h2 { margin-bottom: 16px; font-size: 1.2rem; color: #1a1a2e; } |
|
|
| .hero { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: 20px; |
| } |
|
|
| .buttons { display: flex; gap: 12px; margin-top: 16px; } |
|
|
| .btn { |
| display: inline-block; |
| padding: 10px 24px; |
| border-radius: 8px; |
| border: none; |
| font-size: 1rem; |
| cursor: pointer; |
| text-decoration: none; |
| transition: background 0.2s; |
| } |
|
|
| .btn-primary { background: #4361ee; color: white; } |
| .btn-primary:hover { background: #3a56d4; } |
|
|
| .btn-secondary { background: #e0e0e0; color: #333; } |
| .btn-secondary:hover { background: #ccc; } |
|
|
| .btn-danger { background: #e63946; color: white; } |
| .btn-danger:hover { background: #c1121f; } |
|
|
| .btn-small { padding: 4px 12px; font-size: 0.85rem; } |
|
|
| .auth-box { |
| max-width: 400px; |
| margin: 40px auto; |
| background: white; |
| border-radius: 12px; |
| box-shadow: 0 2px 8px rgba(0,0,0,0.08); |
| overflow: hidden; |
| } |
|
|
| .tabs { display: flex; } |
| .tab { |
| flex: 1; |
| padding: 14px; |
| border: none; |
| background: #f0f2f5; |
| cursor: pointer; |
| font-size: 1rem; |
| transition: background 0.2s; |
| } |
| .tab.active { background: white; font-weight: 600; } |
|
|
| .auth-form { padding: 24px; } |
| .auth-form.hidden { display: none; } |
|
|
| .auth-form input { |
| width: 100%; |
| padding: 10px 14px; |
| margin-bottom: 12px; |
| border: 1px solid #ddd; |
| border-radius: 8px; |
| font-size: 1rem; |
| } |
|
|
| .error { color: #e63946; font-size: 0.9rem; margin-top: 8px; } |
| .hidden { display: none; } |
|
|
| .dashboard-grid { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: 20px; |
| } |
|
|
| .full-width { grid-column: 1 / -1; } |
|
|
| .model-list { list-style: none; } |
| .model-list li { |
| padding: 8px 0; |
| border-bottom: 1px solid #e0e0e0; |
| font-size: 0.9rem; |
| } |
|
|
| .key-list { list-style: none; margin-top: 12px; } |
| .key-list li { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| padding: 8px 0; |
| border-bottom: 1px solid #eee; |
| font-size: 0.9rem; |
| } |
| .key-list code { |
| background: #f0f2f5; |
| padding: 2px 6px; |
| border-radius: 4px; |
| font-size: 0.8rem; |
| word-break: break-all; |
| } |
|
|
| .progress-container { max-width: 600px; margin: 0 auto; } |
|
|
| .progress-bar-wrapper { |
| width: 100%; |
| height: 30px; |
| background: #e0e0e0; |
| border-radius: 15px; |
| overflow: hidden; |
| margin: 16px 0; |
| } |
|
|
| .progress-bar { |
| height: 100%; |
| background: linear-gradient(90deg, #4361ee, #7209b7); |
| transition: width 0.3s ease; |
| width: 0%; |
| } |
|
|
| .progress-text { |
| text-align: center; |
| font-size: 1.5rem; |
| font-weight: 700; |
| color: #1a1a2e; |
| } |
|
|
| .progress-details { |
| margin-top: 20px; |
| } |
|
|
| .progress-details p { |
| margin: 8px 0; |
| font-size: 0.95rem; |
| } |
|
|
| .session-item { |
| display: flex; |
| align-items: center; |
| gap: 16px; |
| padding: 12px; |
| border-bottom: 1px solid #eee; |
| } |
|
|
| .status { |
| padding: 2px 10px; |
| border-radius: 12px; |
| font-size: 0.85rem; |
| font-weight: 600; |
| } |
|
|
| .status-pending { background: #fff3cd; color: #856404; } |
| .status-downloading { background: #cce5ff; color: #004085; } |
| .status-completed { background: #d4edda; color: #155724; } |
| .status-error { background: #f8d7da; color: #721c24; } |
|
|
| select { |
| width: 100%; |
| padding: 10px 14px; |
| margin-bottom: 12px; |
| border: 1px solid #ddd; |
| border-radius: 8px; |
| font-size: 1rem; |
| background: white; |
| } |
|
|
| @media (max-width: 600px) { |
| .hero, .dashboard-grid { grid-template-columns: 1fr; } |
| } |
|
|