@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{--color-primary: #C7EFFF;--color-primary-light: #E7F6FE;--color-primary-dark: #8DD3F0;--color-black: #1A1A1A;--color-white: #FFFFFF;--color-gray-50: #FAFAFA;--color-gray-100: #F2F2F2;--color-gray-200: #E0E0E0;--color-gray-300: #C6C6C6;--color-gray-400: #8C8C8C;--color-gray-500: #777777;--color-gray-600: #535353;--color-gray-700: #3A3A3A;--color-success: #4CD964;--color-success-light: #D6FFD6;--color-warning: #FFB800;--color-warning-light: #FFF8CF;--color-error: #EB003D;--color-error-light: #F39D98;--color-info: #007AFF;--color-purple: #E5DDFF;--color-orange: #FEE3CA;--color-yellow: #FFF8CF;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-size-4xl: 32px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-black);background-color:var(--color-gray-50);line-height:1.5;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}a{color:var(--color-info);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none}.btn:hover{text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-black)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-white);color:var(--color-black);border:1px solid var(--color-gray-200)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-100)}.btn-success{background-color:var(--color-success);color:var(--color-white)}.btn-success:hover:not(:disabled){filter:brightness(.9)}.btn-icon-text{gap:4px}.btn-text-stable{position:relative;display:inline-block}.btn-text-sizer{visibility:hidden}.btn-text-actual{position:absolute;left:0;right:0;top:0;text-align:center;white-space:nowrap}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){filter:brightness(.9)}.btn-warning{background-color:var(--color-warning);color:var(--color-black)}.btn-warning:hover:not(:disabled){filter:brightness(.9)}.btn-ghost{background-color:transparent;color:var(--color-gray-600)}.btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md)}.btn-icon{padding:var(--spacing-sm);width:36px;height:36px}.card{background-color:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:space-between}.card-body{padding:var(--spacing-md)}.card-footer{padding:var(--spacing-md);border-top:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-600);margin-bottom:var(--spacing-xs)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background-color:var(--color-white);transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary-dark);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-400)}.form-textarea{min-height:100px;resize:vertical}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23535353' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm) center;padding-right:var(--spacing-xl)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.badge-running{background-color:var(--color-primary-light);color:var(--color-info)}.badge-completed{background-color:var(--color-success-light);color:#2d7d32}.badge-waiting{background-color:var(--color-warning-light);color:#8b6914}.badge-failed{background-color:var(--color-error-light);color:var(--color-error)}.badge-pending{background-color:var(--color-gray-100);color:var(--color-gray-600)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-gray-100)}.table th{font-weight:500;color:var(--color-gray-500);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.table tr:hover td{background-color:var(--color-gray-50)}.progress{height:8px;background-color:var(--color-gray-100);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background-color:var(--color-primary);background-image:linear-gradient(45deg,rgba(141,211,240,.6) 25%,transparent 25%,transparent 50%,rgba(141,211,240,.6) 50%,rgba(141,211,240,.6) 75%,transparent 75%,transparent);background-size:40px 40px;border-radius:var(--radius-full);transition:width var(--transition-normal);animation:progress-bar-stripes 1.7s linear infinite}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}.progress-bar.success{background-color:var(--color-success);background-image:none;animation:none}.progress-bar.failed{background-color:var(--color-error);background-image:none;animation:none}.progress-bar.research{background-image:none;animation:none}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.research-progress{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-100)}.research-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.research-progress .progress{margin-bottom:var(--spacing-sm)}.tabs{display:flex;gap:var(--spacing-xs);border-bottom:1px solid var(--color-gray-200);margin-bottom:var(--spacing-md)}.tab{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-weight:500;color:var(--color-gray-500);cursor:pointer;border:none;border-radius:var(--radius-md) var(--radius-md) 0 0;background:transparent;transition:background-color var(--transition-fast),color var(--transition-fast)}.tab:after{content:attr(data-text);font-weight:600;height:0;color:transparent;overflow:hidden;visibility:hidden;pointer-events:none}.tab:hover{color:var(--color-gray-600);background-color:var(--color-gray-50);text-decoration:none}.tab.active{color:var(--color-black);font-weight:600;background-color:var(--color-primary);margin-bottom:-1px;border-bottom:1px solid var(--color-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast)}.modal{background-color:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:500px;max-height:90vh;overflow:auto;animation:slideUp var(--transition-normal)}.modal-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);border-top:1px solid var(--color-gray-100);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{animation:spin 1.2s linear infinite}.container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.inline{display:inline}.inline-block{display:inline-block}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-muted{color:var(--color-gray-500)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.empty-state{padding:var(--spacing-2xl);text-align:center;color:var(--color-gray-500)}.empty-state-icon{margin-bottom:var(--spacing-md);color:var(--color-gray-300)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-gray-100);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}
