:root{--ap-font-heading: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--ap-font-body: "Switzer", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--ap-track-h: -.04em;--ap-track-h6: -.02em;--ap-track-body: -.02em;--ap-lh-h1: 1;--ap-lh-h: 1.1;--ap-lh-body: 1.4;--ap-primary: #5235EF;--ap-secondary: #8771FF;--ap-dark: #101011;--ap-gray-1: #2B2B2C;--ap-gray-2: #606266;--ap-gray-3: #A7A7A7;--ap-gray-4: #F0F2F6;--ap-white: #FFFFFF;--ap-black: #000000;--ap-surface-secondary: #F7F7F7;--bg-sidebar: var(--ap-surface-secondary);--bg-midpanel: var(--ap-white);--bg-main: var(--ap-white);--text-primary: var(--ap-dark);--text-secondary: var(--ap-gray-2);--text-tertiary: var(--ap-gray-3);--accent-color: var(--ap-primary);--accent-hover: var(--ap-secondary);--bg-hover: var(--ap-gray-4);--border-color: var(--ap-gray-4);--sidebar-width: 260px;--sidebar-width-collapsed: 72px;--midpanel-width: 320px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--ap-font-body);font-weight:500;font-size:16px;line-height:var(--ap-lh-body);letter-spacing:var(--ap-track-body);color:var(--ap-gray-1);background-color:var(--bg-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;overflow:hidden}#root{height:100%}h1,h2,h3,h4,h5{font-family:var(--ap-font-heading);font-optical-sizing:auto;color:var(--ap-dark);letter-spacing:var(--ap-track-h);line-height:var(--ap-lh-h)}h6{font-family:var(--ap-font-heading);font-optical-sizing:auto;color:var(--ap-dark);letter-spacing:var(--ap-track-h6);line-height:var(--ap-lh-h)}h1{font-weight:600;font-size:70px;line-height:var(--ap-lh-h1)}h2{font-weight:700;font-size:48px}h3{font-weight:600;font-size:40px}h4{font-weight:700;font-size:32px}h5{font-weight:600;font-size:28px}h6{font-weight:600;font-size:22px}button{cursor:pointer;border:none;background:none;font-family:inherit}input,select,textarea{font-family:inherit}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease-in-out}.app-layout{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--bg-main)}.sidebar{display:flex;flex-direction:column;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);transition:width .3s cubic-bezier(.4,0,.2,1);height:100%;flex-shrink:0;position:relative}.sidebar.expanded{width:var(--sidebar-width)}.sidebar.collapsed{width:var(--sidebar-width-collapsed);align-items:center}.mid-panel{display:flex;flex-direction:column;background-color:var(--bg-midpanel);border-right:1px solid var(--border-color);width:var(--midpanel-width);height:100%;flex-shrink:0;transition:transform .3s cubic-bezier(.4,0,.2,1)}.main-panel{flex:1;display:flex;flex-direction:column;height:100%;overflow:auto;background-color:var(--bg-main)}.panel-header{padding:24px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.sidebar{display:flex;flex-direction:column;padding:16px 0;color:var(--text-primary)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin-bottom:24px;height:40px}.logo-container{display:flex;align-items:center;gap:12px;overflow:hidden;white-space:nowrap}.logo-img{height:32px;width:32px;flex-shrink:0;object-fit:contain;border-radius:8px}.logo-text{font-family:var(--ap-font-heading);font-weight:700;font-size:20px;letter-spacing:-.04em;color:var(--ap-dark)}.toggle-btn{color:var(--text-tertiary);padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.toggle-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.sidebar.collapsed .sidebar-header{flex-direction:column;justify-content:center;height:auto;gap:16px;padding:16px 8px}.sidebar.collapsed .toggle-btn{width:100%}.sidebar-nav{flex:1;overflow-y:auto;padding:0 12px;display:flex;flex-direction:column;gap:8px}.nav-section{display:flex;flex-direction:column;gap:4px}.nav-item,.nav-item-header{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--text-secondary);font-size:16px;font-weight:500;transition:all .2s;width:100%;white-space:nowrap;overflow:hidden}.nav-item-header{justify-content:space-between}.nav-item-header-title{display:flex;align-items:center;gap:12px}.nav-item:hover,.nav-item-header:hover{background-color:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background-color:#5235ef14;color:var(--ap-primary)}.sidebar.collapsed .nav-item,.sidebar.collapsed .nav-item-header-title{justify-content:center}.sidebar.collapsed .nav-item-header{justify-content:center;padding:10px}.nav-sub-items{display:flex;flex-direction:column;padding-left:32px;gap:4px;margin-top:4px}.nav-sub-item{text-align:left;padding:8px 12px;border-radius:6px;color:var(--text-secondary);font-size:15px;transition:all .2s}.nav-sub-item:hover{color:var(--text-primary);background-color:var(--bg-hover)}.nav-sub-item.active{color:var(--ap-primary);font-weight:500;background-color:#5235ef0d}.sidebar-footer{padding:16px;border-top:1px solid var(--ap-gray-3);position:relative}.user-profile-btn{display:flex;align-items:center;gap:12px;width:100%;padding:8px;border-radius:8px;transition:background-color .2s}.user-profile-btn:hover{background-color:var(--bg-hover)}.avatar{width:36px;height:36px;border-radius:50%;background-color:var(--ap-gray-3);display:flex;align-items:center;justify-content:center;color:var(--ap-white);flex-shrink:0}.user-info{display:flex;flex-direction:column;align-items:flex-start;overflow:hidden}.username{font-weight:600;font-size:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:150px}.sidebar.collapsed .user-profile-btn{justify-content:center}.user-popup{position:absolute;bottom:calc(100% + 8px);left:16px;right:16px;background-color:var(--ap-white);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);padding:8px;display:flex;flex-direction:column;gap:4px;z-index:50}.sidebar.collapsed .user-popup{left:8px;right:auto;width:160px}.popup-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;color:var(--text-secondary);font-size:15px;transition:background-color .2s,color .2s;width:100%;text-align:left}.popup-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.popup-divider{height:1px;background-color:var(--ap-gray-4);margin:4px 0}.popup-item.text-danger:hover{background-color:#fee2e2;color:#ef4444}.mid-panel{display:flex;flex-direction:column}.mid-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);height:60px}.mid-title{font-family:var(--ap-font-heading);font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--ap-dark)}.mid-body{flex:1;overflow-y:auto;padding:20px}.mid-content{display:flex;flex-direction:column;gap:24px}.text-secondary-msg{font-size:16px;color:var(--ap-gray-2);padding-top:8px}.form-section{display:flex;flex-direction:column;gap:10px}.form-label{font-family:var(--ap-font-heading);font-size:14px;font-weight:600;color:var(--ap-dark);letter-spacing:-.02em}.form-select,.form-input,.form-textarea{font-family:var(--ap-font-body);font-size:15px;font-weight:500;color:var(--ap-gray-1);background-color:var(--ap-white);border:1px solid var(--ap-gray-4);border-radius:8px;padding:10px 14px;outline:none;transition:border-color .2s ease;letter-spacing:-.02em}.form-select:focus,.form-input:focus,.form-textarea:focus{border-color:var(--ap-primary)}.form-select:disabled,.form-input:disabled,.form-textarea:disabled{opacity:.5;cursor:not-allowed}.form-textarea{resize:vertical;min-height:120px;line-height:1.4}.form-input::placeholder,.form-textarea::placeholder{color:var(--ap-gray-3)}.source-toggle{display:flex;gap:0;border:1px solid var(--ap-gray-4);border-radius:8px;overflow:hidden}.toggle-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:500;color:var(--ap-gray-2);background-color:var(--ap-white);transition:all .2s ease;border-right:1px solid var(--ap-gray-4)}.toggle-option:last-child{border-right:none}.toggle-option:hover:not(:disabled){background-color:var(--ap-surface-secondary);color:var(--ap-dark)}.toggle-option.active{background-color:var(--ap-primary);color:var(--ap-white)}.toggle-option:disabled{opacity:.5;cursor:not-allowed}.intensity-options{display:flex;flex-direction:column;gap:8px}.intensity-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--ap-gray-4);border-radius:8px;background-color:var(--ap-white);transition:all .2s ease;text-align:left}.intensity-btn:hover:not(:disabled){border-color:var(--ap-gray-3);background-color:var(--ap-surface-secondary)}.intensity-btn.active{border-color:var(--ap-primary);background-color:#5235ef0d}.intensity-btn:disabled{opacity:.5;cursor:not-allowed}.intensity-name{font-size:15px;font-weight:600;color:var(--ap-dark)}.intensity-btn.active .intensity-name{color:var(--ap-primary)}.intensity-desc{font-size:14px;color:var(--ap-gray-2)}.warning-block{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;background-color:#fff7ed;border:1px solid #FED7AA}.warning-icon{color:#ea580c;flex-shrink:0;margin-top:1px}.warning-block p{font-size:14px;line-height:1.4;color:var(--ap-gray-1)}.warning-block strong{color:var(--ap-dark)}.file-input-hidden{display:none}.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 14px;border:2px dashed var(--ap-gray-4);border-radius:10px;background-color:var(--ap-surface-secondary);color:var(--ap-gray-2);font-size:15px;font-weight:500;cursor:pointer;transition:border-color .2s ease,color .2s ease}.upload-area:hover:not(:disabled){border-color:var(--ap-primary);color:var(--ap-primary)}.upload-area:disabled{opacity:.5;cursor:not-allowed}.file-selected{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--ap-gray-4);border-radius:8px;background-color:var(--ap-white)}.file-icon{color:var(--ap-primary);flex-shrink:0}.file-name{flex:1;font-size:15px;font-weight:500;color:var(--ap-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;color:var(--ap-gray-2);transition:color .15s ease,background-color .15s ease}.file-remove:hover:not(:disabled){color:#dc2626;background-color:#dc262614}.file-remove:disabled{opacity:.5;cursor:not-allowed}.submit-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 20px;border-radius:10px;background-color:var(--ap-primary);color:var(--ap-white);font-size:16px;font-weight:600;transition:background-color .2s ease;box-shadow:var(--shadow-sm)}.submit-btn:hover:not(:disabled){background-color:var(--ap-secondary)}.submit-btn:disabled{opacity:.45;cursor:not-allowed}.main-panel{display:flex;flex-direction:column;padding:0;background-color:var(--bg-main)}.main-header{display:flex;align-items:center;padding:16px 24px;height:60px;background-color:var(--bg-main);border-bottom:1px solid var(--border-color);z-index:10}.main-title{font-family:var(--ap-font-heading);font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--ap-dark)}.main-body{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;overflow-y:auto}.state-container{display:flex;align-items:center;justify-content:center;width:100%;max-width:520px}.idle-card,.processing-card,.completed-card,.failed-card{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;padding:48px 40px;border:1px solid var(--ap-gray-4);border-radius:16px;background-color:var(--ap-white)}.idle-card h3,.processing-card h3,.completed-card h3,.failed-card h3{font-family:var(--ap-font-heading);font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ap-dark);margin-bottom:8px}.idle-card p,.completed-card p,.failed-card p{font-size:16px;color:var(--ap-gray-2);line-height:1.5;max-width:380px}.idle-icon{color:var(--ap-gray-3);margin-bottom:20px}.processing-header{display:flex;align-items:center;gap:10px;margin-bottom:28px}.processing-header h3{margin-bottom:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{color:var(--ap-primary);animation:spin 1.2s linear infinite}.progress-track{width:100%;height:8px;background-color:var(--ap-gray-4);border-radius:4px;overflow:hidden;margin-bottom:28px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--ap-primary),var(--ap-secondary));border-radius:4px;transition:width .6s ease}.step-list{display:flex;flex-direction:column;gap:14px;align-self:stretch;text-align:left}.step-row{display:flex;align-items:center;gap:12px}.step-dot{width:10px;height:10px;border-radius:50%;background-color:var(--ap-gray-4);flex-shrink:0;transition:background-color .3s ease}.step-row.done .step-dot{background-color:var(--ap-primary)}.step-row.current .step-dot{background-color:var(--ap-primary);box-shadow:0 0 0 3px #5235ef33}.step-label{font-size:15px;color:var(--ap-gray-3);transition:color .3s ease}.step-row.done .step-label{color:var(--ap-gray-2)}.step-row.current .step-label{color:var(--ap-dark);font-weight:600}.completed-icon{color:var(--ap-primary);margin-bottom:20px}.download-btn{display:inline-flex;align-items:center;gap:8px;margin-top:24px;padding:12px 24px;border-radius:10px;background-color:var(--ap-primary);color:var(--ap-white);font-size:16px;font-weight:600;text-decoration:none;transition:background-color .2s ease;box-shadow:var(--shadow-sm)}.download-btn:hover{background-color:var(--ap-secondary)}.failed-icon{color:#dc2626;margin-bottom:20px}.cancel-btn{display:inline-flex;align-items:center;gap:6px;margin-top:24px;padding:8px 20px;border-radius:8px;font-size:14px;font-weight:500;color:var(--ap-gray-2);background-color:transparent;border:1px solid var(--ap-gray-4);transition:color .15s ease,border-color .15s ease,background-color .15s ease}.cancel-btn:hover{color:#dc2626;border-color:#dc2626;background-color:#dc26260d}.new-job-btn{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:10px 20px;border-radius:8px;font-size:15px;font-weight:500;color:var(--ap-primary);background-color:transparent;border:1px solid var(--ap-primary);transition:background-color .15s ease,color .15s ease}.new-job-btn:hover{background-color:var(--ap-primary);color:var(--ap-white)}.btn-primary{background-color:var(--ap-primary);color:var(--ap-white);padding:10px 20px;border-radius:8px;font-size:15px;font-weight:500;transition:background-color .2s;box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--ap-secondary)}
