:root{font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#132238;background:#f6f8fb;font-synthesis:none;font-size:14px;--primary:#0d7c79;--border:#e2e8f0;--muted:#778493}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button,input,select,textarea{outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #0d7c79}h1,h2,p{margin:0}h1{font-size:29px;letter-spacing:-1px;line-height:1.35;font-weight:700}h2{font-size:17px;display:flex;align-items:center;gap:11px;line-height:24px;font-weight:650}h2 svg{color:#4b5d71}p{line-height:1.7}.muted{color:var(--muted);font-size:13px}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);padding:24px 12px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:14px;font-size:19px;font-weight:700;padding:0 12px}.brand svg{color:var(--primary)}nav{display:flex;flex-direction:column;gap:11px;margin-top:33px}nav button{border:0;background:none;color:#4b5c71;display:flex;gap:16px;align-items:center;padding:13px 18px;text-align:left;border-radius:9px;font-weight:500}nav button.selected{color:var(--primary);background:#e7f4f3;font-weight:650}nav button:hover{background:#f0f6f7}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 12px 0;color:var(--muted);border-top:1px solid var(--border)}.sidebar-bottom button{border:0;background:transparent;color:var(--muted)}.app-body{width:calc(100% - 220px);margin-left:220px}.topbar{height:61px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;padding:0 28px;gap:16px}.connection{display:flex;align-items:center;gap:10px;color:#7c8996;font-size:13px}.connection i{width:7px;height:7px;border-radius:50%;background:#bac2ca}.connection.connected i{background:#42ad71}.connection svg{color:#53657a}main{max-width:1460px;margin:0 auto;padding:25px 32px 40px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-heading p{color:var(--muted);font-size:15px;margin-top:6px}.page-heading>.btn{font-size:12px}.primary-grid{display:grid;grid-template-columns:minmax(370px,1.35fr) minmax(310px,1fr);gap:18px}.panel{border:1px solid var(--border);border-radius:12px;background:#fff;padding:24px}.register-panel h2,.progress-panel h2{margin-bottom:30px}.register-panel>label{display:block;margin-bottom:24px;font-weight:550;font-size:14px}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;border:1px solid #dfe5ec;border-radius:6px;background:#fff;color:#23364b;padding:11px 13px;min-height:43px;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#9aa4af}label>input:not([type=checkbox]),label>select{margin-top:9px}select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;font-weight:400;font-size:13px}input[type=checkbox]{accent-color:var(--primary);width:17px;height:17px;margin:0;vertical-align:middle;flex-shrink:0}.register-panel>.checkbox-label{display:flex;align-items:center;gap:11px;margin:4px 0 28px;font-size:13px;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dbe3ec;background:#fff;padding:10px 14px;border-radius:7px;color:#31485f;font-size:13px;line-height:18px;white-space:nowrap;font-weight:500}.btn:hover:not(:disabled){background:#f0f6f7}.btn.primary{color:#fff;background:var(--primary);border-color:var(--primary)}.btn.primary:hover:not(:disabled){background:#096c69}.btn.danger{color:#fff;background:#d94964;border-color:#d94964}.btn.danger.ghost{color:#d94964;background:#fff;border-color:#f0cbd2}.btn.ghost{background:transparent}.start-button{width:100%;height:49px;font-size:15px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px;margin-top:10px;color:#8793a0;font-size:12px}.form-footer>span{display:flex;align-items:center;gap:10px}.form-footer .btn{font-size:12px;padding:5px 8px}.progress-panel{padding-left:25px}.progress-panel h2{gap:11px}.progress-panel h2 .badge{margin-left:auto}.step-list{margin:0;padding:0 4px 0 18px;list-style:none}.step-list li{display:flex;gap:23px;position:relative;min-height:83px}.step-list li:last-child{min-height:55px}.step-list li:not(:last-child):before{content:"";position:absolute;top:29px;bottom:8px;left:10px;border-left:1px dashed #d0d8e1}.step-dot{height:23px;width:23px;border:1.5px solid #9daab7;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;margin-top:1px;color:var(--primary)}.step-list strong{font-size:14px;line-height:24px;font-weight:550}.step-list li>div>span{display:block;font-size:12px;color:#85929e;margin-top:2px;line-height:20px}.step-list .complete .step-dot{background:var(--primary);color:#fff;border-color:var(--primary)}.step-list .current .step-dot{border-color:var(--primary)}.step-list .current strong{color:var(--primary)}.step-list .broken .step-dot{color:#d94964;border-color:#d94964}.log-panel{margin-top:18px;padding:23px}.log-panel h2{margin-bottom:20px}.log-id{margin-left:auto;font-size:11px;font-weight:400}.log-list{max-height:270px;min-height:160px;overflow:auto;background:#fbfcfe;border:1px solid #e9edf2;border-radius:7px;padding:14px 16px}.log-row{display:flex;gap:18px;font-size:13px;padding:6px 0;line-height:1.65}.log-row time{color:#8a97a4;font-size:12px;flex-shrink:0;font-variant-numeric:tabular-nums}.log-row.error{color:#c83753}.log-row.warning{color:#9b6a1c}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 15px;color:#8d99a6;font-size:13px;gap:12px}.empty svg{color:#c6cfd8}.log-empty{min-height:151px;border:1px solid #e9edf2;border-radius:7px}.result-strip{display:flex;align-items:center;gap:14px;border:1px solid #bde2d7;background:#f3faf7;border-radius:10px;padding:15px 20px;margin-top:18px}.result-icon{border-radius:50%;background:#deefe9;color:#177455;padding:8px;display:flex}.result-strip strong{font-size:15px;color:#176e57}.result-strip p{font-size:12px;color:#698476;margin-top:2px}.result-strip>.btn{margin-left:auto}.error-banner{background:#fff4f5;border:1px solid #f0d1d6;color:#b83853;border-radius:9px;padding:13px 16px;display:flex;gap:10px;align-items:center;margin-bottom:16px;font-size:13px}.result-strip+.error-banner{margin-top:16px}.error-banner>.btn{margin-left:auto}.error-text{color:#c43852;font-size:12px}.badge{font-size:11px;padding:4px 9px;line-height:16px;background:#f1f4f7;border-radius:5px;color:#718195;font-weight:500;white-space:nowrap}.badge.success,.badge.ready,.badge.available{background:#e7f5ed;color:#19774e}.badge.running,.badge.queued,.badge.in_use{background:#e5f2fa;color:#2a7194}.badge.verified,.badge.cooldown{background:#fbf2e0;color:#996b1d}.badge.failed{background:#fdebf0;color:#b63656}.import-panel{margin-bottom:22px}.import-panel>p{margin-top:9px;margin-bottom:16px}.import-panel textarea{height:100px;resize:vertical;margin-bottom:14px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.right{justify-content:flex-end}.file-button{cursor:pointer}.file-button input{display:none}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.count{font-size:12px;color:var(--muted);font-weight:400}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#778697;font-size:12px;font-weight:500;background:#f8fafc;padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:14px;border-bottom:1px solid #edf0f4;color:#40576d;white-space:nowrap}td strong{font-weight:550}td small{display:block;color:#96a2ae;font-size:11px;margin-top:5px}td small.error-text{color:#bb5266;max-width:240px;white-space:normal}.checkbox-cell{width:32px}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.resources-panel>h2{margin-bottom:22px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:13px 22px;border-radius:9px;background:#fff;border:1px solid #cddfd8;color:#235e4d;box-shadow:0 7px 30px #13223816;z-index:50;max-width:90vw}.toast.error{color:#a7364f;border-color:#eac2cc}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#15263b44;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40}.modal{width:420px;background:#fff;border-radius:12px;padding:26px;box-shadow:0 20px 60px #13223820}.modal>p{margin-top:14px;margin-bottom:25px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:30px}.login-card{width:410px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:34px;box-shadow:0 14px 50px #13223808}.login-card .brand{padding:0;margin-bottom:32px}.login-card h1{font-size:25px}.login-card>p{margin:10px 0 24px}.login-card>label{display:block;margin-bottom:20px;font-size:13px;font-weight:550}.login-card>.btn{width:100%;margin-top:14px}.loading-page{display:flex;min-height:100vh;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.embedded .sidebar{display:none}.embedded .app-body{width:100%;margin-left:0}.embedded .topbar{height:57px;justify-content:space-between;padding:0 22px}.embedded-nav{margin:0;flex-direction:row;gap:6px}.embedded-nav button{padding:8px 13px;font-size:13px}.embedded main{padding:22px}.embedded h1{font-size:24px}.embedded .register-panel h2,.embedded .progress-panel h2{margin-bottom:23px}@media(min-width:1600px){main{padding-top:32px}.primary-grid{grid-template-columns:minmax(430px,1.35fr) minmax(330px,1fr)}}@media(max-width:1050px){.sidebar{width:185px}.brand{font-size:17px;gap:8px;padding:0 5px}.app-body{margin-left:185px;width:calc(100% - 185px)}main{padding:24px 20px}.primary-grid{grid-template-columns:minmax(270px,1.15fr) minmax(250px,1fr)}.panel{padding:20px}.step-list{padding-left:2px}.step-list li{gap:16px}.step-list li>div>span{font-size:11px}.table-toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;display:block;padding:18px 16px 12px;border-right:0;border-bottom:1px solid var(--border)}.sidebar .brand{padding-left:5px}.sidebar nav{flex-direction:row;gap:5px;margin-top:20px;overflow:auto}.sidebar nav button{padding:9px 10px;font-size:12px;gap:7px;white-space:nowrap}.sidebar nav svg{width:16px}.sidebar-bottom{display:none}.app-body{margin:0;width:100%}.topbar{height:43px;padding:0 18px}.primary-grid{grid-template-columns:1fr}main{padding:21px 16px}.page-heading{gap:10px}.page-heading h1{font-size:25px}.page-heading p{font-size:12px}.progress-panel .step-list{display:grid;grid-template-columns:1fr 1fr;gap:18px 10px}.step-list li{min-height:60px}.step-list li:not(:last-child):before{display:none}.step-list li>div>span{font-size:11px}.log-row{gap:10px;font-size:12px}.log-panel{padding:18px}.embedded .topbar{height:auto;min-height:54px;flex-wrap:wrap;padding:8px 12px;gap:7px}.embedded-nav{gap:2px}.embedded-nav button{padding:7px 8px;font-size:12px}.embedded .connection{font-size:11px}.embedded main{padding:17px 12px}.result-strip{flex-wrap:wrap;padding:14px}.result-strip>.btn{margin-left:47px}.log-id{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
