@import url("https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap");:root{--bg:#080910;--bg1:#0c0e18;--bg2:#10121e;--bg3:#14172a;--glass:hsla(0,0%,100%,.028);--glass2:hsla(0,0%,100%,.055);--brd:hsla(0,0%,100%,.07);--brd2:hsla(0,0%,100%,.12);--brd3:rgba(0,212,170,.25);--a:#00d4aa;--a2:#00b894;--a3:#008c71;--a-glow:rgba(0,212,170,.18);--a-dim:rgba(0,212,170,.07);--red:#f46;--yellow:#ffc947;--blue:#4ea8ff;--purple:#a78bfa;--tx:#dde1f0;--tx2:#8890a8;--tx3:#4a5068;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:22px;--font-display:"Syne",sans-serif;--font-body:"Outfit",sans-serif;--font-mono:"JetBrains Mono",monospace;--ease:cubic-bezier(.25,.46,.45,.94);--spring:cubic-bezier(.34,1.56,.64,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{height:100%;background:var(--bg);color:var(--tx);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 60% at 10% -10%,rgba(0,212,170,.055) 0,transparent 60%),radial-gradient(ellipse 60% 40% at 90% 110%,rgba(78,168,255,.035) 0,transparent 60%);pointer-events:none;z-index:0}#app,main{position:relative;z-index:1;min-height:100vh}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--a3);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--a)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes toastIn{0%{opacity:0;transform:translateX(16px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes scanDown{0%{top:-2px}to{top:100%}}@keyframes glowPulse{0%,to{box-shadow:0 0 0 rgba(0,212,170,0)}50%{box-shadow:0 0 24px rgba(0,212,170,.22)}}.toast{position:fixed;top:20px;right:20px;z-index:99999;padding:12px 16px;font-family:var(--font-body);font-size:13px;font-weight:500;border:1px solid;border-radius:var(--r-md);max-width:320px;word-break:break-word;animation:toastIn .3s var(--spring);pointer-events:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;align-items:center;gap:8px}.toast:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0;background:currentColor}.toast.success{background:rgba(0,212,170,.1);border-color:rgba(0,212,170,.3);color:var(--a)}.toast.error{background:rgba(255,68,102,.1);border-color:rgba(255,68,102,.3);color:var(--red)}.toast.warn{background:rgba(255,201,71,.1);border-color:rgba(255,201,71,.3);color:var(--yellow)}.toast.info{background:rgba(78,168,255,.1);border-color:rgba(78,168,255,.3);color:var(--blue)}.shell,.sidebar{display:flex;min-height:100vh}.sidebar{width:240px;background:linear-gradient(180deg,var(--bg1) 0,var(--bg) 100%);border-right:1px solid var(--brd);flex-direction:column;transition:width .28s var(--ease);overflow:hidden;flex-shrink:0;position:relative}.sidebar:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--a),transparent);opacity:.35}.sidebar.collapsed{width:64px}.sb-logo{padding:22px 18px 18px;border-bottom:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between}.sidebar.collapsed .sb-logo{justify-content:center;padding:18px 0}.sb-brand{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--tx);letter-spacing:-.3px}.sb-brand span{color:var(--a)}.sb-sub{font-family:var(--font-body);letter-spacing:2.5px;margin-top:2px;text-transform:uppercase}.sb-sub,.sb-toggle{font-size:10px;color:var(--tx3)}.sb-toggle{background:var(--glass);border:1px solid var(--brd);width:26px;height:26px;border-radius:var(--r-sm);cursor:pointer;flex-shrink:0;transition:all .18s;display:flex;align-items:center;justify-content:center}.sb-toggle:hover{background:var(--glass2);border-color:var(--brd2);color:var(--tx)}.sb-nav{flex:1 1;padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sidebar.collapsed .sb-nav{padding:10px 0;align-items:center}.sb-link{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--r-md);background:transparent;border:1px solid transparent;color:var(--tx3);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:500;transition:all .16s var(--ease);text-align:left;white-space:nowrap;text-decoration:none;position:relative}.sidebar.collapsed .sb-link{width:44px;height:44px;padding:0;justify-content:center}.sb-icon{width:30px;height:30px;border-radius:var(--r-sm);background:var(--glass);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;transition:all .16s var(--ease);border:1px solid transparent}.sidebar.collapsed .sb-icon{width:40px;height:40px;border-radius:var(--r-md)}.sb-link:hover{color:var(--tx);background:var(--glass);border-color:var(--brd)}.sb-link:hover .sb-icon{background:var(--a-dim);border-color:rgba(0,212,170,.12)}.sb-link.active{color:var(--a);background:var(--a-dim);border-color:var(--brd3)}.sb-link.active .sb-icon{background:rgba(0,212,170,.14);border-color:rgba(0,212,170,.2)}.sb-link-label{flex:1 1}.sb-link-dot{width:5px;height:5px;border-radius:50%;background:var(--a);opacity:0;transition:opacity .16s;flex-shrink:0}.sb-link.active .sb-link-dot{opacity:1}.sb-foot{border-top:1px solid var(--brd);padding:14px 10px;display:flex;flex-direction:column;gap:8px}.sb-user{gap:10px;padding:10px;border-radius:var(--r-md);background:var(--glass);border:1px solid var(--brd)}.sb-avatar,.sb-user{display:flex;align-items:center}.sb-avatar{width:30px;height:30px;border-radius:var(--r-sm);background:var(--a-dim);border:1px solid rgba(0,212,170,.2);justify-content:center;font-family:var(--font-display);font-size:11px;font-weight:800;color:var(--a);flex-shrink:0}.sb-user-name{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-user-role{font-size:10px;color:var(--tx3);letter-spacing:.3px}.role-badge{padding:3px 10px;font-size:10px;font-weight:600;letter-spacing:.8px;border-radius:99px;display:inline-flex;gap:4px;border:1px solid}.btn-logout,.role-badge{align-items:center;font-family:var(--font-body)}.btn-logout{display:flex;justify-content:center;gap:8px;background:transparent;border:1px solid var(--brd);color:var(--tx3);padding:8px 12px;border-radius:var(--r-md);cursor:pointer;font-size:12px;font-weight:500;width:100%;transition:all .18s var(--ease)}.btn-logout:hover{background:rgba(255,68,102,.07);border-color:rgba(255,68,102,.3);color:var(--red)}.main{flex:1 1;display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.topbar{height:54px;border-bottom:1px solid var(--brd);background:rgba(8,9,16,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;padding:0 28px;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;z-index:50}.topbar,.topbar-path{display:flex;align-items:center}.topbar-path{gap:6px;font-family:var(--font-body);font-size:13px;color:var(--tx3)}.topbar-path .sep{opacity:.35}.topbar-path .cur{color:var(--tx);font-weight:600}.topbar-right{gap:12px}.topbar-right,.topbar-status{display:flex;align-items:center}.topbar-status{gap:6px;font-family:var(--font-body);font-size:12px;color:var(--tx3)}.live-ring{width:8px;height:8px;border-radius:50%;background:var(--a);position:relative}.live-ring:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--a);animation:pulse 2s ease infinite}.page-content{flex:1 1;overflow-y:auto;padding:32px 28px}.page-header{margin-bottom:32px;animation:fadeUp .4s var(--ease)}.page-title{display:flex;align-items:center;gap:12px;margin-bottom:6px}.page-title h1{font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--tx);letter-spacing:-.3px}.page-sub{color:var(--tx3);font-size:13px}.page-line{width:28px;height:2px;background:linear-gradient(90deg,var(--a),transparent);margin-top:12px}.badge,.page-line{border-radius:99px}.badge{padding:3px 10px;font-size:11px;font-weight:600;font-family:var(--font-body);letter-spacing:.4px;background:var(--a-dim);color:var(--a);border:1px solid rgba(0,212,170,.2)}.badge.red{background:rgba(255,68,102,.1);color:var(--red);border-color:rgba(255,68,102,.2)}.badge.yellow{background:rgba(255,201,71,.1);color:var(--yellow);border-color:rgba(255,201,71,.2)}.badge.cyan{background:rgba(78,168,255,.1);color:var(--blue);border-color:rgba(78,168,255,.2)}.badge.purple{background:rgba(167,139,250,.1);color:var(--purple);border-color:rgba(167,139,250,.2)}.card{background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-lg);padding:20px;animation:fadeUp .4s var(--ease);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,box-shadow .2s}.card:hover{border-color:var(--brd2)}.card.glow{border-color:rgba(0,212,170,.13);box-shadow:0 0 30px rgba(0,212,170,.04),inset 0 0 30px rgba(0,212,170,.02)}.card.glow:hover{border-color:rgba(0,212,170,.22);box-shadow:0 0 40px rgba(0,212,170,.08)}.card-title{font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--tx3);letter-spacing:1.2px;margin-bottom:16px;text-transform:uppercase}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.grid3{grid-template-columns:1fr 1fr 1fr;grid-gap:14px}.grid3,.grid4{display:grid;gap:14px}.grid4{grid-template-columns:repeat(4,1fr);grid-gap:14px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px}.grid-scripts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:16px;gap:16px}.stat-box{background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-lg);padding:20px;position:relative;overflow:hidden;transition:border-color .2s,transform .2s var(--spring)}.stat-box:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--a),transparent);opacity:0;transition:opacity .2s}.stat-box:hover{border-color:var(--brd2);transform:translateY(-2px)}.stat-box:hover:before{opacity:.5}.stat-lbl{font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--tx3);letter-spacing:.8px;text-transform:uppercase;margin-bottom:10px}.stat-val{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--tx);line-height:1}.stat-val span{color:var(--a)}.status-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--brd);font-family:var(--font-body);font-size:13px}.status-row:last-child{border-bottom:none}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.on{background:var(--a);box-shadow:0 0 8px var(--a)}.status-dot.off{background:var(--red);box-shadow:0 0 8px var(--red)}.fld-wrap{margin-bottom:16px}.fld-label{font-size:12px;font-weight:600;color:var(--tx2);margin-bottom:7px;letter-spacing:.2px}.fld,.fld-label{display:block;font-family:var(--font-body)}.fld{width:100%;background:hsla(0,0%,100%,.04);border:1px solid var(--brd);border-radius:var(--r-md);color:var(--tx);padding:11px 14px;font-size:13px;outline:none;transition:border .18s,box-shadow .18s,background .18s}.fld:focus{border-color:rgba(0,212,170,.5);background:rgba(0,212,170,.04);box-shadow:0 0 0 3px rgba(0,212,170,.09)}.fld::placeholder{color:var(--tx3)}.fld:-moz-read-only{color:var(--tx3);cursor:default}.fld:read-only{color:var(--tx3);cursor:default}select.fld{cursor:pointer}textarea.fld{resize:vertical;min-height:80px}.fld[type=file]{padding:8px 14px;cursor:pointer}.fld[type=file]::-webkit-file-upload-button{background:var(--a);color:#051a15;border:none;border-radius:var(--r-sm);padding:4px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;margin-right:12px}.fld[type=file]::file-selector-button{background:var(--a);color:#051a15;border:none;border-radius:var(--r-sm);padding:4px 12px;font-family:var(--font-body);font-size:12px;font-weight:600;cursor:pointer;margin-right:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:var(--r-md);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .18s var(--ease);letter-spacing:.1px;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn:not(:disabled):active{transform:scale(.97)}.btn-p{background:var(--a);color:#051a15;box-shadow:0 2px 14px rgba(0,212,170,.25)}.btn-p:not(:disabled):hover{background:var(--a2);box-shadow:0 4px 22px rgba(0,212,170,.35);transform:translateY(-1px)}.btn-o{background:transparent;color:var(--a);border:1px solid rgba(0,212,170,.32)}.btn-o:not(:disabled):hover{background:var(--a-dim);border-color:rgba(0,212,170,.55);transform:translateY(-1px)}.btn-d{background:transparent;color:var(--red);border:1px solid rgba(255,68,102,.28)}.btn-d:not(:disabled):hover{background:rgba(255,68,102,.08);border-color:rgba(255,68,102,.55)}.btn-w{background:transparent;color:var(--yellow);border:1px solid rgba(255,201,71,.28)}.btn-w:not(:disabled):hover{background:rgba(255,201,71,.08);border-color:rgba(255,201,71,.55)}.btn-c{background:transparent;color:var(--blue);border:1px solid rgba(78,168,255,.28)}.btn-c:not(:disabled):hover{background:rgba(78,168,255,.08);border-color:rgba(78,168,255,.55)}.btn-blk{background:var(--glass);color:var(--tx3);border:1px solid var(--brd)}.btn-blk:not(:disabled):hover{background:var(--glass2);color:var(--tx)}.btn-w100{width:100%}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--brd);margin-bottom:24px}.tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--tx3);padding:10px 16px;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .18s;margin-bottom:-1px;border-radius:var(--r-sm) var(--r-sm) 0 0}.tab:hover{color:var(--tx);background:var(--glass)}.tab.active{color:var(--a);border-bottom-color:var(--a)}.loader{display:flex;align-items:center;gap:10px;color:var(--tx3);font-size:13px;font-weight:500}.spin-ring{width:16px;height:16px;border:2px solid var(--brd);border-top-color:var(--a);border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.empty-state{color:var(--tx3);font-size:13px;text-align:center;padding:48px 0}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s var(--ease)}.modal-box{background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r-xl);padding:28px;max-width:520px;width:90%;box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 0 1px hsla(0,0%,100%,.04);animation:scaleIn .25s var(--spring)}.modal-head{justify-content:space-between;margin-bottom:20px}.modal-close,.modal-head{display:flex;align-items:center}.modal-close{background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-sm);color:var(--tx3);cursor:pointer;width:28px;height:28px;justify-content:center;font-size:14px;transition:all .18s}.modal-close:hover{background:var(--glass2);color:var(--tx)}.key-display{background:rgba(0,212,170,.05);border:1px solid rgba(0,212,170,.2);border-radius:var(--r-md);padding:14px 18px;font-family:var(--font-mono);font-size:14px;color:var(--a);letter-spacing:2px;text-align:center;word-break:break-all;-webkit-user-select:all;-moz-user-select:all;user-select:all}.info-box{padding:12px 14px;background:rgba(78,168,255,.06);border:1px solid rgba(78,168,255,.15);border-radius:var(--r-md);font-size:12px;color:var(--tx3);margin-bottom:16px;line-height:1.7}.divider{width:100%;height:1px;background:var(--brd);margin:20px 0}.script-card{background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-lg);padding:20px;cursor:pointer;transition:all .2s var(--ease);position:relative;overflow:hidden;animation:fadeUp .4s var(--ease)}.script-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,212,170,.04),transparent 60%);opacity:0;transition:opacity .2s}.script-card:hover{border-color:var(--brd2);box-shadow:0 8px 32px rgba(0,0,0,.2);transform:translateY(-3px)}.script-card:hover:before{opacity:1}.script-card.locked{border-color:rgba(255,201,71,.13)}.lock-tag{position:absolute;top:12px;right:12px;background:rgba(255,201,71,.1);border:1px solid rgba(255,201,71,.25);color:var(--yellow);padding:3px 9px;font-size:10px;font-weight:600;border-radius:99px;letter-spacing:.8px}.code-block{background:var(--bg);border:1px solid var(--brd);border-radius:var(--r-md);padding:16px;position:relative;overflow:auto}.code-block pre{font-family:var(--font-mono);font-size:12px;color:var(--tx2);margin:0;line-height:1.7}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{background:var(--glass);color:var(--tx3);border:1px solid var(--brd);border-radius:var(--r-md);padding:7px 16px;cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:500;transition:all .18s}.filter-btn:hover{color:var(--tx);border-color:var(--brd2);background:var(--glass2)}.filter-btn.active{background:var(--a-dim);color:var(--a);border-color:rgba(0,212,170,.32);font-weight:600}.chat-wrap{display:grid;grid-template-columns:1fr 200px;grid-gap:16px;gap:16px;height:calc(100vh - 160px);min-height:400px}.chat-box{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-lg);overflow:hidden}.chat-header{padding:14px 18px;border-bottom:1px solid var(--brd);display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:var(--tx2)}.chat-msgs{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:4px}.chat-msg{padding:8px 12px;border-radius:var(--r-md);animation:fadeUp .25s var(--ease);transition:background .15s}.chat-msg:hover{background:var(--glass)}.chat-msg.mine{background:rgba(0,212,170,.05)}.chat-msg-head{display:flex;align-items:center;gap:8px;margin-bottom:3px}.chat-msg-user{font-size:12px;font-weight:700}.chat-msg-role{font-size:10px;font-weight:600;letter-spacing:.5px;padding:1px 7px;border-radius:99px;border:1px solid}.chat-msg-time{font-size:11px;color:var(--tx3);margin-left:auto}.chat-msg-body{color:var(--tx2);font-size:13px;line-height:1.5}.chat-input-row{border-top:1px solid var(--brd);padding:12px;display:flex;gap:10px}.online-box{background:var(--glass);border:1px solid var(--brd);border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden}.online-head{padding:14px 14px 10px;border-bottom:1px solid var(--brd);font-size:11px;font-weight:600;color:var(--tx3);letter-spacing:1px;text-transform:uppercase}.online-list{flex:1 1;overflow-y:auto;padding:8px}.online-user{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--r-sm);transition:background .15s}.online-user:hover{background:var(--glass)}.online-user-dot{width:6px;height:6px;border-radius:50%;background:var(--a);box-shadow:0 0 6px var(--a);flex-shrink:0}.step-labels{display:flex;gap:8px;margin-bottom:6px}.step-lbl{flex:1 1;padding:8px;text-align:center;font-size:11px;font-weight:600;letter-spacing:.8px;background:var(--glass);color:var(--tx3);border:1px solid var(--brd);border-radius:var(--r-md);transition:all .3s}.step-lbl.done{background:var(--a-dim);color:var(--a);border-color:rgba(0,212,170,.28)}.step-lbl.active{background:rgba(0,212,170,.07);color:var(--a);border-color:rgba(0,212,170,.38)}.step-bar{height:3px;background:var(--brd);border-radius:99px;position:relative;overflow:hidden}.step-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,var(--a),var(--a2));border-radius:99px;transition:width .5s var(--ease);box-shadow:0 0 8px var(--a)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative}.login-box{background:var(--bg1);border:1px solid var(--brd2);border-radius:var(--r-xl);padding:clamp(32px,6vw,52px) clamp(28px,6vw,48px);width:100%;max-width:440px;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.5),0 0 0 1px hsla(0,0%,100%,.04);animation:scaleIn .5s var(--spring)}@media(max-width:640px){.grid2,.grid3,.grid4{grid-template-columns:1fr}.grid-auto{grid-template-columns:1fr 1fr}.chat-wrap{grid-template-columns:1fr}.online-box{display:none}.page-content{padding:20px 16px}.sidebar{position:fixed;z-index:9999;height:100vh;box-shadow:8px 0 32px rgba(0,0,0,.6)}.main{margin-left:64px}}