.sft-container{max-width:960px;margin:0 auto;padding:24px 20px 60px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#374151}.sft-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.sft-page-header h1{font-size:24px;font-weight:700;color:#111827;margin:0 0 4px}.sft-container .subtitle{color:#6b7280;font-size:14px;margin:0}.sft-tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:24px}.sft-tab{padding:12px 24px;font-size:15px;font-weight:500;color:#6b7280;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s;margin-bottom:-2px}.sft-tab:hover{color:#374151}.sft-tab.active{color:#8b7cf6;border-bottom-color:#8b7cf6}.sft-tab-panel{display:none}.sft-tab-panel.active{display:block}.sft-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;margin-bottom:20px}.sft-card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.sft-card-header h3{font-size:16px;font-weight:600;color:#111827;margin:0}.sft-step-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#8b7cf6;color:#fff;font-size:13px;font-weight:700;border-radius:50%;flex-shrink:0}.sft-card-desc{font-size:13px;color:#6b7280;margin:0 0 16px;line-height:1.5}.sft-card-desc code{background:#f3f4f6;padding:1px 6px;border-radius:4px;font-size:12px;color:#8b7cf6}.sft-field{margin-bottom:18px}.sft-field label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.sft-field input[type=text],.sft-field input[type=number],.sft-field select,.sft-field textarea{width:100%;padding:10px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#111827;font-size:14px;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.sft-field input:focus,.sft-field select:focus,.sft-field textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.sft-field textarea{min-height:80px;resize:vertical}.sft-field .hint{font-size:12px;color:#9ca3af;margin-top:4px}.sft-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.sft-form-grid{grid-template-columns:1fr}}.upload-zone{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;position:relative;background:#fafafa}.upload-zone:hover,.upload-zone.dragover{border-color:#8b7cf6;background:#8b7cf60a}.upload-zone .upload-icon{margin-bottom:12px}.upload-zone .upload-text{font-size:14px;color:#6b7280}.upload-zone .upload-text strong{color:#8b7cf6}.upload-zone .upload-hint{font-size:12px;color:#9ca3af;margin-top:8px}.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.file-list{margin-top:16px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:8px;font-size:13px}.file-item .file-name{color:#374151;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item .file-size{color:#9ca3af;margin:0 12px;white-space:nowrap}.file-item .file-remove{color:#ef4444;cursor:pointer;background:none;border:none;font-size:16px;padding:0 4px;line-height:1}.file-item .file-remove:hover{color:#dc2626}.sft-btn{padding:10px 24px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:background .2s,opacity .2s,box-shadow .2s;font-family:inherit;display:inline-flex;align-items:center;gap:8px}.sft-btn-primary{background:#8b7cf6;color:#fff}.sft-btn-primary:hover{background:#7c3aed;box-shadow:0 2px 8px #8b7cf64d}.sft-btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.sft-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.sft-btn-secondary:hover{background:#e5e7eb}.sft-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.sft-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.sft-grid{grid-template-columns:1fr}}.job-list{display:flex;flex-direction:column;gap:12px}.job-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px;display:flex;align-items:center;gap:20px;transition:border-color .2s,box-shadow .2s}.job-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000a}.job-status-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.job-status-dot.provisioning,.job-status-dot.training{background:#f59e0b;animation:pulse 1.5s infinite}.job-status-dot.completed{background:#10b981}.job-status-dot.failed{background:#ef4444}.job-status-dot.uploading{background:#3b82f6;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.job-info{flex:1;min-width:0}.job-name{font-size:15px;font-weight:600;color:#111827;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-meta{font-size:12px;color:#9ca3af;display:flex;gap:16px;flex-wrap:wrap}.job-actions{display:flex;gap:8px;flex-shrink:0}.job-actions .sft-btn{padding:6px 14px;font-size:12px}.progress-bar-container{width:100%;background:#f3f4f6;border-radius:6px;height:8px;margin-top:8px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#8b7cf6,#a78bfa);border-radius:6px;transition:width .5s ease}.empty-state{text-align:center;padding:60px 20px;color:#9ca3af}.empty-state p{font-size:14px;margin-bottom:20px;color:#6b7280}.status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.provisioning{background:#f59e0b1a;color:#d97706}.status-badge.training{background:#8b7cf61a;color:#8b7cf6}.status-badge.uploading{background:#3b82f61a;color:#3b82f6}.status-badge.completed{background:#10b9811a;color:#059669}.status-badge.failed{background:#ef44441a;color:#dc2626}.log-console{background:#111827;border:1px solid #1f2937;border-radius:8px;padding:16px;font-family:Courier New,monospace;font-size:12px;color:#34d399;max-height:300px;overflow-y:auto;line-height:1.6;white-space:pre-wrap;word-break:break-all}.advanced-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;color:#6b7280;font-size:13px;font-weight:500;margin-bottom:16px;-webkit-user-select:none;user-select:none;padding:8px 0}.advanced-toggle:hover{color:#374151}.advanced-chevron{transition:transform .2s}.advanced-chevron.open{transform:rotate(90deg)}.advanced-content{display:none}.advanced-content.open{display:block}.sft-modal-overlay{position:fixed;inset:0;background:#0006;z-index:10000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sft-modal-content{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:32px;max-width:700px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.sft-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.sft-modal-header h2{margin:0;font-size:20px;font-weight:600;color:#111827}.sft-modal-close{background:none;border:none;color:#9ca3af;font-size:28px;cursor:pointer;line-height:1;padding:0;transition:color .2s}.sft-modal-close:hover{color:#374151}.file-item.model-file-item{background:#f0fdf4;border:1px solid #bbf7d0;gap:10px;justify-content:flex-start}.file-item.model-file-item input[type=checkbox]{accent-color:#8b7cf6;width:15px;height:15px;cursor:pointer}.file-tag{font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500;white-space:nowrap}.file-tag.from-model{background:#8b7cf61a;color:#8b7cf6}.file-tag.pdf{background:#fef3c7;color:#d97706}
