:root{--bg:#05060c;--bg-2:#0a0d18;--panel:rgba(20,24,38,0.72);--panel-2:rgba(28,33,52,0.7);--border:rgba(120,140,200,0.18);--border-strong:rgba(140,160,255,0.4);--text:#eef1fb;--muted:#97a0bd;--accent:#4f7bff;--accent-2:#a25bff;--accent-3:#22d3ee;--ok:#2ee6a6;--warn:#ffcc66;--err:#ff6b6b;--glow:0 0 0 1px rgba(120,140,255,0.08),0 8px 40px rgba(80,110,255,0.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}body{position:relative;min-height:100vh;background:radial-gradient(900px 600px at 12% -8%,rgba(79,123,255,.22),transparent 60%),radial-gradient(800px 600px at 100% 0,rgba(162,91,255,.18),transparent 55%),radial-gradient(700px 500px at 50% 120%,rgba(34,211,238,.12),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg-2));background-attachment:fixed}body:before{inset:0;background-image:linear-gradient(rgba(120,140,200,.05) 1px,transparent 0),linear-gradient(90deg,rgba(120,140,200,.05) 1px,transparent 0);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 30%,black,transparent 80%);mask-image:radial-gradient(circle at 50% 30%,black,transparent 80%)}body:after,body:before{content:"";position:fixed;pointer-events:none;z-index:0}body:after{left:50%;top:-30%;width:120vw;height:60vh;transform:translateX(-50%);background:conic-gradient(from 180deg at 50% 50%,transparent,rgba(79,123,255,.12),transparent,rgba(162,91,255,.12),transparent);filter:blur(60px);opacity:.7;animation:drift 22s linear infinite}@keyframes drift{to{transform:translateX(-50%) rotate(1turn)}}.wrap{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:48px 22px 96px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.brand .dot{width:16px;height:16px;border-radius:50%;background:conic-gradient(from 0deg,var(--accent),var(--accent-2),var(--accent-3),var(--accent));box-shadow:0 0 16px rgba(79,123,255,.8),0 0 32px rgba(162,91,255,.5);animation:pulse 3s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}h1{font-size:30px;letter-spacing:.5px;margin:0;font-weight:800;background:linear-gradient(100deg,#ffffff 10%,#b9c6ff 45%,#d9b3ff 75%,#8fe9ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 40px rgba(120,140,255,.25)}.sub{color:var(--muted);font-size:13.5px;margin:8px 0 28px;letter-spacing:.2px}.steps{display:flex;gap:10px;margin-bottom:26px}.steps .st{flex:1 1;padding:10px 14px;border-radius:12px;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--muted);font-size:13px;font-weight:600;transition:all .25s ease}.steps .st.active{border-color:var(--border-strong);color:var(--text);box-shadow:var(--glow),inset 0 0 20px rgba(79,123,255,.08)}.steps .st.done{color:var(--ok);border-color:rgba(46,230,166,.35)}.card{position:relative;background:var(--panel);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:18px;padding:22px;margin-bottom:18px;box-shadow:var(--glow);overflow:hidden}.card:before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;background:linear-gradient(140deg,rgba(120,140,255,.5),transparent 40%,transparent 70%,rgba(162,91,255,.4));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.6}label{display:block;font-size:13px;color:var(--muted);margin:16px 0 7px;font-weight:500}input[type=text],select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;color:var(--text);padding:11px 13px;font-size:14px;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}input[type=text]:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,123,255,.18)}textarea{resize:vertical;min-height:64px}.row{display:flex;gap:12px}.row>div{flex:1 1}button{position:relative;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:white;border:none;border-radius:12px;padding:12px 20px;font-size:14px;font-weight:700;letter-spacing:.3px;cursor:pointer;box-shadow:0 6px 24px rgba(79,123,255,.35);transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 34px rgba(120,100,255,.5);filter:brightness(1.08)}button.secondary{background:var(--panel-2);border:1px solid var(--border);color:var(--text);box-shadow:none}button.secondary:hover:not(:disabled){border-color:var(--border-strong);box-shadow:var(--glow)}button:disabled{opacity:.5;cursor:not-allowed}.uploader{border:1.5px dashed var(--border-strong);border-radius:14px;padding:22px;text-align:center;color:var(--muted);cursor:pointer;background:rgba(79,123,255,.04);transition:background .2s ease,border-color .2s ease}.uploader:hover{background:rgba(79,123,255,.08);border-color:var(--accent)}.uploader img{max-height:200px;border-radius:12px}.dir{background:var(--panel-2);border:1px solid var(--border);border-radius:14px;padding:16px;margin:10px 0}.dir.chosen{border-color:var(--border-strong);box-shadow:inset 0 0 24px rgba(79,123,255,.08)}.pill{display:inline-block;font-size:11px;padding:3px 9px;border-radius:999px;background:rgba(79,123,255,.16);color:#9db4ff;margin-left:8px}.hint{font-size:12px;color:var(--muted);margin-top:6px}.err{color:var(--err);font-size:13px;margin-top:10px}.progress{display:flex;align-items:center;gap:10px;color:var(--text);font-size:14px}.spinner{width:18px;height:18px;border-left:2px solid var(--border);border-bottom:2px solid var(--border);border-right-color:var(--border);border-top-color:var(--border);border-top:2px solid var(--accent);border-right:2px solid var(--accent-2);border-radius:50%;animation:spin .8s linear infinite;box-shadow:0 0 12px rgba(79,123,255,.4)}@keyframes spin{to{transform:rotate(1turn)}}.actions{display:flex;gap:12px;margin-top:20px}video{width:100%;border-radius:12px;background:#000}a.dl{color:#9db4ff;font-size:13px;text-decoration:none}a.dl:hover{color:var(--accent-3)}.steplog{font-size:12px;color:var(--muted);margin-top:8px}.steplog span{margin-right:12px}.tabs{display:flex;gap:8px;margin-bottom:22px;padding:5px;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;width:-moz-fit-content;width:fit-content}.tabs .tab{background:transparent;border:none;color:var(--muted);font-weight:600;box-shadow:none;padding:9px 22px}.tabs .tab:hover:not(.active){color:var(--text);transform:none}.tabs .tab.active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 4px 18px rgba(79,123,255,.4)}.history-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.history-bar .hint{font-size:13px}.history-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}@media (max-width:820px){.history-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.history-grid{grid-template-columns:1fr}}.hcard{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.hcard:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--glow)}.thumb{position:relative;aspect-ratio:9/16;background:radial-gradient(120% 80% at 50% 0,rgba(79,123,255,.22),transparent 60%),linear-gradient(160deg,#11152480,#0a0d18);border-bottom:1px solid var(--border);overflow:hidden}.thumb.ready{cursor:pointer}.thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:0}.thumb-cover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.thumb-cover:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(120,140,200,.06) 1px,transparent 0),linear-gradient(90deg,rgba(120,140,200,.06) 1px,transparent 0);background-size:22px 22px;-webkit-mask-image:radial-gradient(circle at 50% 45%,black,transparent 75%);mask-image:radial-gradient(circle at 50% 45%,black,transparent 75%)}.thumb-cover .badge{position:absolute;top:10px;left:10px}.play-btn{position:relative;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 0 6px rgba(79,123,255,.12),0 8px 26px rgba(79,123,255,.45);padding:0 0 0 3px}.thumb.ready:hover .play-btn{transform:scale(1.08);box-shadow:0 0 0 8px rgba(79,123,255,.16),0 10px 30px rgba(120,100,255,.6)}.thumb-state{position:relative;font-size:12.5px;color:var(--muted)}.hcard-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:1 1}.hcard-title{font-size:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hcard-meta{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11px;padding:2px 8px;border-radius:7px;background:rgba(79,123,255,.1);border:1px solid var(--border);color:#9db4ff}.hcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:4px}.hcard-foot .hint{margin-top:0;font-size:11px}.badge{font-size:11px;padding:3px 10px;border-radius:999px;background:rgba(10,13,24,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.badge.succeeded{color:var(--ok);border-color:rgba(46,230,166,.45)}.badge.pending,.badge.running{color:var(--warn);border-color:rgba(255,204,102,.45)}.badge.failed{color:var(--err);border-color:rgba(255,107,107,.45)}