body{background-color:#f4f7fa;color:#333;font-family:Arial,sans-serif;margin:0;padding:0}.app-container{margin:auto;max-width:1200px;padding:20px}h1{color:#00000;margin-bottom:40px;text-align:center}.module{background-color:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 8px #0000000d;margin-bottom:30px;padding:20px}button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 16px}button:hover{background-color:#0056b3}input,select{box-sizing:border-box;display:block;margin-bottom:15px;padding:8px;width:100%}@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}:root{--primary:#4f46e5;--primary-hover:#4338ca;--bg-light:#f9fafb;--bg-light-hover:#f3f4f6;--bg-btn:#f4f4f5;--text-light:#000;--text-dark:#eee}body.dark{--primary:#6366f1;--primary-hover:#8b5cf6;--bg-light:#2a2a2a;--bg-light-hover:#333;--bg-btn:#333;--text-light:#eee}.app-container{background:linear-gradient(180deg,#f1f4f9,#e0e7ff);font-family:Segoe UI,Helvetica Neue,sans-serif;min-height:100vh;padding:24px;transition:background-color .3s ease}.header-bar{align-items:center;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:16px;box-shadow:0 6px 16px #00000026;color:#fff;display:flex;justify-content:space-between;margin-bottom:32px;padding:16px 32px}.toggle-button{background:#fff;border:none;border-radius:12px;box-shadow:0 4px 10px #0000001a;color:#4f46e5;color:var(--primary);cursor:pointer;font-weight:600;padding:8px 16px;transition:background-color .2s}.toggle-button:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover)}.grid-container{grid-column-gap:12px;grid-row-gap:48px;align-items:stretch;column-gap:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:40px;row-gap:48px}.module-card{background:#fff;border-radius:16px;box-shadow:0 6px 16px #0000000f;display:flex;flex-direction:column;min-height:100%;padding:16px;transition:transform .2s ease}.module-card:hover{transform:translateY(-4px)}.module-title{font-size:27px;font-weight:600;margin-bottom:6px}.module-desc{color:#666;font-size:13px;margin-bottom:12px}.task-history-wrapper{background:#fff;border-radius:20px;box-shadow:0 8px 20px #0000000d;padding:24px}body.dark .app-container{background:linear-gradient(180deg,#1e1e1e,#111);color:#000;color:var(--text-light)}body.dark .header-bar{background:linear-gradient(90deg,#4f46e5,#7c3aed);background:linear-gradient(to right,var(--primary),#7c3aed)}body.dark .toggle-button{background:#333;color:#fff}body.dark .toggle-button:hover{background:#555}body.dark .module-card,body.dark .task-history-wrapper{background-color:#f9fafb;background-color:var(--bg-light);box-shadow:0 6px 20px #0000004d;color:#000;color:var(--text-light)}body.dark .module-desc{color:#aaa}.btn-primary{display:block;width:100%}.form-input,.form-select{background-color:#f9fafb;background-color:var(--bg-light);border:1px solid #ccc;border-radius:8px;display:block;font-size:14px;padding:8px 12px;width:100%}.form-input:hover,.form-select:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover)}input[type=file]{background-color:#f9fafb;background-color:var(--bg-light,#f9fafb);border:1px solid #ccc;border-radius:8px;color:#000!important;color:var(--text-light,#000)!important;cursor:pointer;font-size:14px;padding:8px 12px}input[type=file]:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover,#f3f4f6)}input[type=file]::file-selector-button{background-color:#f4f4f5;background-color:var(--bg-btn,#f4f4f5);border:1px solid #ccc;border-radius:8px;color:#000;color:var(--text-light,#000);font-weight:600;padding:6px 16px;transition:background .2s}input[type=file]::file-selector-button:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover,#f3f4f6)}body.dark input[type=file]{color:#000!important;color:var(--text-light,#eee)!important}body.dark input[type=file]::file-selector-button{background-color:#f4f4f5;background-color:var(--bg-btn,#333);color:#000;color:var(--text-light,#eee)}body.dark input[type=file]::file-selector-button:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover,#555)}input[type=file]::-webkit-file-upload-button{background-color:#f4f4f5;background-color:var(--bg-btn,#f4f4f5);border:1px solid #ccc;border-radius:8px;color:#000;color:var(--text-light,#000);font-weight:600;padding:6px 16px;-webkit-transition:background .2s;transition:background .2s}input[type=file]::-webkit-file-upload-button:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover,#f3f4f6)}body.dark input[type=file]::-webkit-file-upload-button{background-color:#f4f4f5;background-color:var(--bg-btn,#333);color:#000;color:var(--text-light,#eee)}body.dark input[type=file]::-webkit-file-upload-button:hover{background-color:#f3f4f6;background-color:var(--bg-light-hover,#555)}.file-wrapper{align-items:center;cursor:pointer;display:flex;gap:8px;position:relative}.file-wrapper input[type=file]{cursor:pointer;inset:0;opacity:0;position:absolute}.file-btn{background:#f4f4f5;background:var(--bg-btn,#f4f4f5);border:1px solid #ccc;border-radius:8px;color:#000;color:var(--text-light,#000);font-weight:600;padding:6px 16px;transition:background .2s}.file-wrapper:hover .file-btn{background:#f3f4f6;background:var(--bg-light-hover,#f3f4f6)}.file-name{color:#000;color:var(--text-light,#000);font-size:14px}.task-table{border-collapse:collapse;font-size:14px;width:100%}.task-table td,.task-table th{border-bottom:1px solid #e5e7eb;padding:8px 12px;white-space:nowrap}.task-table th{color:#374151;font-weight:600;text-align:left}.task-table tbody tr:hover{background-color:#f3f4f6}body.dark .task-table tbody tr:hover{background-color:#374151}body.dark .task-table th{color:#f3f4f6}.task-table .col-id{width:120px}.status-complete{color:#16a34a}.status-running{color:#d97706}.status-failed{color:#dc2626}.status-unknown{color:#6b7280}.btn-action{align-items:center;border-radius:6px;display:inline-flex;font-size:13px;font-weight:600;gap:4px;padding:4px 10px}.btn-action+.btn-action{margin-left:6px}.btn-refresh{background:#1d4ed8;color:#fff}.btn-refresh:hover{background:#2563eb}.btn-delete{background:#dc2626;color:#fff}.btn-delete:hover{background:#ef4444}.btn-download{background:#059669;color:#fff}.btn-download:hover{background:#10b981}body.dark .btn-download,body.dark .btn-download:hover{background:#059669}.site-title,.site-title *,body.dark .site-title,body.dark .site-title *{color:#000!important}.form-textarea{background-color:#f9fafb;background-color:var(--bg-light);border:1px solid #ccc;border-radius:8px;font-size:14px;padding:8px 12px}.btn-primary{background-color:#4f46e5;background-color:var(--primary);border-radius:8px;color:#fff;font-weight:600;padding:10px;text-align:center;transition:background-color .2s ease}.btn-primary:hover{background-color:#4338ca;background-color:var(--primary-hover)}
/*# sourceMappingURL=main.8e741fbc.css.map*/