:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{background:#f9fafb;margin:0;font-family:system-ui,-apple-system,sans-serif}main{max-width:1100px;margin:auto}.header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 40px;display:flex}.logo{color:#111827;align-items:center;gap:8px;font-size:18px;font-weight:600;text-decoration:none;transition:color .2s;display:flex}.logo:hover{color:#2563eb}.logo-icon{width:24px;height:24px;display:block}.nav{align-items:center;gap:20px;display:flex}.nav a{color:#374151;font-weight:500;text-decoration:none}.nav a:hover{color:#111827}.register-btn{background:#2563eb;border-radius:6px;padding:6px 14px;color:#fff!important}.register-btn:hover{background:#1e40af}.logout-btn{cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:6px 14px;color:#fff!important}.logout-btn:hover{background:#1e40af}.auth-page{justify-content:center;align-items:center;height:calc(100vh - 80px);display:flex}.auth-card{background:#fff;border-radius:10px;flex-direction:column;gap:14px;width:320px;margin-top:-210px;padding:40px;display:flex;box-shadow:0 8px 25px #00000014}.auth-card h2{margin-bottom:10px}.auth-card input{border:1px solid #d1d5db;border-radius:6px;padding:10px}.auth-input-wrapper{align-items:center;display:flex;position:relative}.auth-input-wrapper input{width:100%}.input-spinner{border:2px solid #2563eb4d;border-top-color:#2563eb;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;position:absolute;right:10px}.input-check{color:#16a34a;font-weight:700;position:absolute;right:10px}.input-error-icon{color:#dc2626;font-weight:700;position:absolute;right:10px}.field-error{color:#dc2626;text-align:left;margin-top:-6px;font-size:14px}.auth-card input:focus{border-color:#2563eb;outline:none}.auth-card button{color:#fff;background:#2563eb;border:none;border-radius:6px;margin-top:10px;padding:10px;font-weight:500}.auth-submit-btn{justify-content:center;align-items:center;height:40px;min-height:40px;display:flex}.auth-submit-btn:not(:disabled):hover{cursor:pointer;background:#1e40af}.register-submit-btn:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.auth-error{color:#dc2626;margin-top:8px;font-size:14px}.auth-success{color:#16a34a;margin-top:8px;font-size:14px}.spinner{box-sizing:border-box;border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}.spinner.dark{border:2px solid #2563eb4d;border-top-color:#2563eb}.spinner.large{border-width:3px;width:32px;height:32px}.spinner-container{justify-content:center;padding:20px 0;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.dashboard{text-align:left;padding:40px}.dashboard-header{justify-content:space-between;align-items:center;display:flex}.plus-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:700;line-height:1;transition:background .2s,transform 50ms;display:inline-flex}.plus-btn:hover{background:#1d4ed8}.plus-btn:active{transform:scale(.96)}.jobs-table{border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;overflow:hidden;box-shadow:0 2px 6px #0000000d}.jobs-table th{text-align:left;background:#f3f4f6;border-bottom:1px solid #e5e7eb;padding:14px;font-weight:600}.jobs-table td{border-bottom:1px solid #f1f5f9;padding:14px}.jobs-table tr:hover{background:#f9fafb}.jobs-table tr:last-child td{border-bottom:none}.jobs-table button{color:#fff;cursor:pointer;border:none;border-radius:6px;margin-right:8px;padding:5px 10px}.run-job-btn{background:#16a34a}.run-job-btn:hover{background:#15803d}.view-job-btn{background:#2563eb}.view-job-btn:hover{background:#1e40af}.job-details-page{flex-direction:column;align-items:center;padding:40px;display:flex}.job-details-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:900px;padding:28px;box-shadow:0 2px 6px #0000000d}.job-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.job-title-group{align-items:center;gap:15px;display:flex}.job-title{margin:0}.job-status-badge{color:#fff;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.job-status-badge.active{background:#16a34a}.job-status-badge.inactive{background:#dc2626}.job-actions{align-items:center;gap:10px;display:flex}.job-edit-btn{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:6px;padding:4px 10px;font-size:13px}.job-edit-btn:hover{color:#fff;background:#2563eb}.job-run-btn{color:#fff;cursor:pointer;background:#f59e42;border:none;border-radius:6px;padding:4px 10px;font-size:13px}.job-run-btn:hover{background:#d97706}.job-delete-btn{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:4px 10px;font-size:13px}.job-delete-btn:hover{background:#b91c1c}.job-detail-row{justify-content:space-between;margin-bottom:16px;display:flex}.job-edit-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:650px;padding:28px;box-shadow:0 2px 6px #0000000d}.form-field{flex-direction:column;margin-bottom:18px;display:flex}.form-field label{margin-bottom:6px;font-weight:600}.form-field input,.form-field textarea{border:1px solid #e5e7eb;border-radius:6px;padding:10px;font-size:14px}.form-field textarea{resize:vertical;min-height:90px}.form-field input:focus,.form-field textarea:focus{border-color:#2563eb;outline:none}.form-field select{appearance:none;cursor:pointer;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%236b7280' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.188l3.71-3.957a.75.75 0 111.08 1.04l-4.25 4.53a.75.75 0 01-1.08 0l-4.25-4.53a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;border:1px solid #e5e7eb;border-radius:8px;padding:10px 36px 10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-field select:hover{border-color:#2563eb}.form-field select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.checkbox-field label{align-items:center;gap:8px;font-weight:500;display:flex}.job-form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.upload-btn{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:6px;padding:8px 14px;font-weight:500;transition:background .2s}.upload-btn:hover{background-color:#1d4ed8}.upload-btn:disabled{cursor:not-allowed}.file-list{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-direction:column;gap:8px;margin-top:6px;padding:10px;display:flex}.file-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;transition:background .2s,border .2s;display:flex}.file-delete-btn{color:#9ca3af;cursor:pointer;background:0 0;border:none;font-size:14px;transition:color .2s}.file-delete-btn:hover{color:#dc2626}.cancel-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 14px}.cancel-btn:hover{background:#f3f4f6}.save-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:80px;padding:8px 14px;display:flex}.save-btn:hover{background:#1d4ed8}.save-btn:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.save-btn.saving{color:#fff;background:#2563eb}.job-runs-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:900px;margin-top:30px;padding:20px;box-shadow:0 2px 6px #0000000d}.job-runs-card h2{margin-top:0;margin-bottom:16px}.job-runs-table{border-collapse:separate;border-spacing:0;border-radius:8px;width:100%;overflow:hidden}.job-runs-table th{text-align:center;background:#f3f4f6;border-bottom:1px solid #e5e7eb;padding:12px;font-size:14px;font-weight:600}.job-runs-table td{text-align:center;border-bottom:1px solid #f1f5f9;padding:12px;font-size:14px}.job-runs-table tr:hover{background:#f9fafb}.job-runs-table tr:last-child td{border-bottom:none}.run-status{color:#fff;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.status-icon{font-size:12px;line-height:1}.status-text{font-size:12px}.run-status.success{background:#16a34a}.run-status.failed{background:#dc2626}.run-status.running{background:#f59e0b}.run-status.pending{background:#6b7280}.run-status.cancelled{background:#374151}.view-job-run-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:6px 12px;font-size:13px}.view-job-run-btn:hover{background:#1e40af}.view-job-run-btn:active{background:#1d4ed8}.job-run-page{justify-content:center;padding:40px;display:flex}.job-run-card{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:900px;padding:28px;box-shadow:0 2px 6px #0000000d}.job-run-details{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.job-run-logs{color:#e5e7eb;white-space:pre-wrap;background:#0f172a;border-radius:8px;max-height:400px;padding:16px;font-family:monospace;font-size:13px;overflow:auto}.email-status{align-items:center;display:inline-flex;position:relative}.email-error-tooltip{opacity:0;color:#fff;white-space:pre-wrap;z-index:9999;pointer-events:none;background-color:#333;border-radius:4px;width:300px;padding:8px;transition:opacity .2s;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.email-status:hover .email-error-tooltip{opacity:1;pointer-events:auto}.file-list{flex-direction:column;gap:8px;margin-top:6px;display:flex}.file-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;align-items:center;padding:10px 12px;transition:background .2s,border .2s;display:flex}.file-item:hover{background:#f3f4f6;border-color:#d1d5db}.file-name{color:#111827;font-size:14px;font-weight:500}.command-box{color:#e2e8f0;background:#0f172a;padding:16px;font-family:monospace}.account-page{justify-content:center;padding:40px;display:flex}.account-card{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:500px;padding:28px;box-shadow:0 2px 6px #0000000d}.account-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.account-title{margin:0}.account-row{justify-content:space-between;margin-bottom:16px;font-size:15px;display:flex}.account-row strong{color:#374151}.account-row input{border:1px solid #d1d5db;border-radius:6px;padding:6px 10px;font-size:14px}.account-row input:focus{border-color:#2563eb;outline:none}.account-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.edit-btn{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:6px;padding:6px 14px;font-size:14px;font-weight:500}.edit-btn:hover{color:#fff;background:#1e40af}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal{background:#fff;border-radius:10px;width:420px;max-width:90%;padding:24px;animation:.2s fadeIn;box-shadow:0 15px 40px #0003}.modal-title{margin:0 0 12px}.modal-body{margin-bottom:16px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:6px;padding:8px 14px}.modal-btn.confirm{color:#fff;background:#dc2626}.modal-btn.confirm:hover{background:#b91c1c}.modal-btn.cancel{background:#ddd}.modal-btn.cancel:hover{background:#ccc}.toast{color:#fff;z-index:2000;border-radius:6px;align-items:center;gap:10px;padding:12px 16px;animation:.2s slideIn;display:flex;position:fixed;top:75px;right:20px;box-shadow:0 8px 20px #0003}.toast.success{background:#16a34a}.toast.error{background:#dc2626}.toast.info{background:#2563eb}.toast.exit{animation:.2s forwards slideOut}.toast-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:16px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
