.shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:32px;padding:0 28px;height:64px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(255,122,24,.04),transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:10px}.brand-mark{color:var(--amber);letter-spacing:-3px;font-size:18px;transform:skew(-12deg);display:inline-block}.brand-name{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.06em}.brand-sub{font-size:11px;color:var(--ink-faint);letter-spacing:.12em}.nav{display:flex;gap:6px}.navlink{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px;color:var(--ink-dim);border:1px solid transparent;transition:color .15s,border-color .15s,background .15s}.navlink:hover{color:var(--ink)}.navlink.active{color:var(--amber);border-color:var(--line-bright);background:var(--panel)}.navlink .faint{font-size:10px}.user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.user .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.logout{background:transparent;border:1px solid var(--line-bright);color:var(--ink-dim);font-size:11px;letter-spacing:.14em;padding:6px 12px;text-transform:uppercase;transition:.15s}.logout:hover{color:var(--red);border-color:var(--red)}.content{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:40px 28px 60px}.statusbar{display:flex;gap:18px;align-items:center;padding:0 28px;height:32px;border-top:1px solid var(--line);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--green);background:var(--bg-2)}.statusbar .faint{letter-spacing:.14em}@media (max-width: 680px){.topbar{gap:16px;padding:10px 16px;height:auto;flex-wrap:wrap}.brand-sub{display:none}.content{padding:24px 16px 48px}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:32px;position:relative}.login-wrap:before{content:"";position:absolute;width:760px;height:760px;border-radius:50%;border:1px solid var(--line);box-shadow:inset 0 0 0 200px #ff7a1803;background:conic-gradient(from 0deg,transparent 0 78%,rgba(255,122,24,.1) 92%,transparent 100%);animation:sweep 7s linear infinite;pointer-events:none;opacity:.5}@keyframes sweep{to{transform:rotate(360deg)}}.login-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;max-width:980px;width:100%;align-items:center}.aside-tag{font-size:11px;letter-spacing:.22em;color:var(--ink-faint);margin-bottom:22px}.aside-title{font-family:var(--display);font-weight:700;font-size:76px;line-height:.92;margin:0 0 24px;letter-spacing:-.01em;text-shadow:0 0 40px rgba(255,122,24,.12)}.aside-desc{color:var(--ink-dim);line-height:1.85;font-size:15px;max-width:420px;margin:0 0 34px}.aside-readout{display:grid;gap:9px;font-size:12px;max-width:360px}.aside-readout>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line)}.aside-readout .green{color:var(--green)}.login-card{padding:30px 30px 22px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.card-head .tag{color:var(--amber)}.login-btn{width:100%;justify-content:center;margin-top:6px}.login-err{color:var(--red);font-size:12.5px;padding:9px 12px;margin-bottom:14px;border:1px solid var(--red);background:#ff3b540f;letter-spacing:.04em}.card-foot{font-size:10px;letter-spacing:.14em;text-align:center;margin-top:18px}@media (max-width: 820px){.login-grid{grid-template-columns:1fr;gap:32px}.aside-title{font-size:56px}.login-wrap:before{width:480px;height:480px}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:30px}.page-title{font-family:var(--display);font-weight:700;font-size:40px;margin:6px 0 0;letter-spacing:.01em}.head-meta{font-size:11px;letter-spacing:.18em}.upload-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:start}.drop-panel{padding:18px}.dropzone{border:1px dashed var(--line-bright);background:repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 12px,transparent 12px 24px);min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;cursor:pointer;text-align:center;padding:30px;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--amber)}.dropzone.over{border-color:var(--amber);background:#ff7a180f}.dropzone.has{border-style:solid;border-color:var(--line-bright);cursor:default}.drop-icon{font-size:56px;color:var(--ink-faint);line-height:1}.drop-icon.ok{color:var(--green);text-shadow:0 0 22px rgba(25,230,160,.4)}.drop-main{font-size:16px}.drop-sub{font-size:11px;letter-spacing:.16em;text-transform:uppercase}.file-name{font-family:var(--mono);font-size:15px;color:var(--ink);padding:6px 14px;background:var(--bg-2);border:1px solid var(--line-bright)}.change-btn{margin-top:8px;font-size:11px;padding:8px 16px}.upbar{margin-top:16px}.upbar-track{height:8px;background:var(--bg-2);border:1px solid var(--line-bright);overflow:hidden}.upbar-fill{height:100%;background:linear-gradient(90deg,var(--amber),var(--amber-soft));transition:width .2s ease;box-shadow:0 0 12px var(--amber)}.upbar-label{margin-top:8px;font-size:11px;letter-spacing:.16em;color:var(--amber)}.opt-panel{padding:24px}.toggle{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:14px;margin:6px 0 4px;-webkit-user-select:none;user-select:none}.toggle input{display:none}.toggle-box{width:20px;height:20px;border:1px solid var(--line-bright);background:var(--bg-2);position:relative;flex:none;transition:.15s}.toggle input:checked+.toggle-box{border-color:var(--amber);background:var(--amber)}.toggle input:checked+.toggle-box:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#000;font-size:13px;font-weight:700}.go-btn{width:100%;justify-content:center;margin-top:26px}.opt-foot{font-size:11px;line-height:1.7;margin-top:16px;letter-spacing:.04em}@media (max-width: 820px){.upload-layout{grid-template-columns:1fr}.page-title{font-size:30px}.head-meta{display:none}}.job-list{display:flex;flex-direction:column;gap:2px}.job-row{display:grid;grid-template-columns:1fr 110px 110px 130px 28px;align-items:center;gap:14px;padding:15px 18px;background:var(--panel);border:1px solid var(--line);cursor:pointer;transition:border-color .14s,background .14s,transform .14s}.job-row:hover{border-color:var(--line-bright);background:var(--panel-2);transform:translate(3px)}.job-row.head{background:transparent;border:0;padding:4px 18px 8px;cursor:default;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.job-row.head:hover{transform:none}.job-file{display:flex;align-items:center;gap:12px;min-width:0}.job-idx{color:var(--ink-faint);font-size:12px}.job-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.job-team{font-size:11px;color:var(--amber);border:1px solid var(--line-bright);padding:2px 7px;flex:none}.job-go{font-size:16px;text-align:center}.empty{padding:64px;text-align:center;color:var(--ink-dim)}.empty-icon{font-size:56px;color:var(--ink-faint);margin-bottom:14px}@media (max-width: 720px){.job-row{grid-template-columns:1fr 90px 28px}.job-row>:nth-child(3),.job-row>:nth-child(4),.job-row.head>:nth-child(3),.job-row.head>:nth-child(4){display:none}}.report-head{align-items:center}.report-actions{display:flex;gap:10px}.report-actions .btn{font-size:12px;padding:10px 18px}.hud{display:flex;align-items:center;padding:18px 26px;margin-bottom:22px;gap:0;overflow-x:auto}.hud-step{display:flex;align-items:center;gap:10px;color:var(--ink-faint);white-space:nowrap}.hud-dot{width:11px;height:11px;border:1px solid currentColor;flex:none;transform:rotate(45deg)}.hud-cn{font-size:13px}.hud-en{font-size:10px;letter-spacing:.16em}.hud-bar{width:46px;height:1px;background:var(--line-bright);margin:0 14px}.hud-step.past{color:var(--green)}.hud-step.past .hud-dot{background:var(--green);box-shadow:0 0 8px var(--green)}.hud-step.active{color:var(--amber)}.hud-step.active .hud-dot{background:var(--amber);box-shadow:0 0 10px var(--amber);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{transform:rotate(45deg) scale(1.35)}}.report-grid{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}@media (max-width: 980px){.report-grid{grid-template-columns:1fr}}.report-panel{display:flex;flex-direction:column;min-height:520px}.report-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.rec{color:var(--ink-faint)}.rec.live{color:var(--red);animation:blink 1.2s steps(2) infinite}.report-body{padding:30px 34px;max-height:72vh;overflow-y:auto}.waiting{display:flex;flex-direction:column;align-items:center;gap:16px;padding:90px 0;color:var(--ink-dim);letter-spacing:.1em}.waiting-spin{font-size:40px;color:var(--amber);animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.md{font-family:var(--body);line-height:1.85;color:var(--ink);font-size:15px}.md h1{font-family:var(--display);font-size:30px;font-weight:700;margin:0 0 22px;padding-bottom:14px;border-bottom:2px solid var(--amber);letter-spacing:.01em}.md h2{font-family:var(--display);font-size:21px;font-weight:700;margin:36px 0 14px;padding-left:14px;border-left:3px solid var(--amber);color:var(--ink)}.md h3{font-family:var(--display);font-size:16px;margin:24px 0 10px;color:var(--amber-soft);letter-spacing:.02em}.md p{margin:0 0 14px}.md strong{color:#fff;font-weight:700}.md ul,.md ol{margin:0 0 16px;padding-left:22px}.md li{margin:6px 0}.md li::marker{color:var(--amber)}.md a{color:var(--amber);border-bottom:1px solid var(--line-bright)}.md code{font-family:var(--mono);font-size:13px;background:var(--bg-2);padding:2px 6px;border:1px solid var(--line);color:var(--amber-soft)}.md blockquote{margin:16px 0;padding:10px 18px;border-left:3px solid var(--line-bright);background:var(--bg-2);color:var(--ink-dim)}.md hr{border:0;border-top:1px dashed var(--line-bright);margin:26px 0}.md table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px}.md th,.md td{border:1px solid var(--line);padding:8px 12px;text-align:left}.md th{background:var(--bg-2);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}.md tr:hover td{background:var(--panel-2)}.gallery{display:flex;flex-direction:column;gap:16px;position:sticky;top:84px}.shot{padding:8px;cursor:zoom-in;transition:border-color .15s,transform .15s}.shot:hover{border-color:var(--amber);transform:translateY(-2px)}.shot img{width:100%;display:block;background:#0b0e10}.shot figcaption{padding:9px 6px 4px;font-size:11px;letter-spacing:.08em;color:var(--ink-dim);display:flex;justify-content:space-between}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#030506eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;cursor:zoom-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox img{max-width:94vw;max-height:84vh;border:1px solid var(--line-bright);box-shadow:0 0 60px #000000b3}.lightbox-cap{font-size:12px;letter-spacing:.12em;color:var(--ink-dim)}@media (max-width: 980px){.gallery{position:static;flex-direction:row;flex-wrap:wrap}.shot{flex:1 1 240px}}:root{--bg: #07090a;--bg-2: #0c1012;--panel: #0f1417;--panel-2: #131a1e;--line: #1d2a30;--line-bright: #2c4049;--ink: #d7e4e8;--ink-dim: #7d9199;--ink-faint: #4a5a61;--amber: #ff7a18;--amber-soft: #ffae6b;--ct: #4ea3ff;--t: #ff5a3c;--green: #19e6a0;--red: #ff3b54;--display: "Chakra Petch", "Noto Sans SC", sans-serif;--mono: "JetBrains Mono", "Noto Sans SC", monospace;--body: "Noto Sans SC", "Chakra Petch", sans-serif;--clip: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px) )}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(1200px 800px at 80% -10%,rgba(255,122,24,.07),transparent 60%),radial-gradient(900px 700px at 0% 110%,rgba(78,163,255,.06),transparent 55%),linear-gradient(var(--line) 1px,transparent 1px) 0 0 / 46px 46px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0 / 46px 46px,var(--bg);opacity:.55;-webkit-mask-image:radial-gradient(120% 120% at 50% 30%,#000 55%,transparent 100%);mask-image:radial-gradient(120% 120% at 50% 30%,#000 55%,transparent 100%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);opacity:.35}a{color:inherit;text-decoration:none}button{font-family:var(--display);cursor:pointer}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}::selection{background:var(--amber);color:#000}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--line-bright);border:2px solid var(--bg-2)}::-webkit-scrollbar-thumb:hover{background:var(--amber)}.mono{font-family:var(--mono)}.tag{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.amber,.hl{color:var(--amber)}.panel{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.015),transparent 40%),var(--panel);border:1px solid var(--line);clip-path:var(--clip)}.panel:after{content:"";position:absolute;top:0;right:0;width:14px;height:14px;background:linear-gradient(225deg,var(--line-bright) 0 50%,transparent 50%)}.brk{position:relative}.brk:before,.brk:after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--amber);opacity:.7}.brk:before{left:-5px;top:-5px;border-right:0;border-bottom:0}.brk:after{right:-5px;bottom:-5px;border-left:0;border-top:0}.btn{position:relative;display:inline-flex;align-items:center;gap:9px;padding:12px 22px;background:var(--amber);color:#0a0604;border:none;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);transition:transform .12s ease,box-shadow .2s ease,background .2s ease}.btn:hover{box-shadow:0 0 0 1px var(--amber),0 8px 30px #ff7a1859;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{background:var(--line-bright);color:var(--ink-faint);cursor:not-allowed;box-shadow:none;transform:none}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-bright);clip-path:none}.btn.ghost:hover{border-color:var(--amber);color:var(--amber);box-shadow:none}.field{display:block;margin-bottom:18px}.field>label{display:block;margin-bottom:8px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim)}.input{width:100%;padding:13px 15px;background:var(--bg-2);color:var(--ink);border:1px solid var(--line-bright);font-family:var(--mono);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:var(--ink-faint)}.input:focus{outline:none;border-color:var(--amber);box-shadow:inset 0 0 0 1px #ff7a184d}.pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border:1px solid currentColor}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.queued{color:var(--ink-dim)}.pill.running{color:var(--amber)}.pill.running:before{animation:blink 1s steps(2) infinite}.pill.done{color:var(--green)}.pill.failed{color:var(--red)}@keyframes blink{50%{opacity:.2}}.row{display:flex;align-items:center;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between}.muted{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.grow{flex:1}hr.div{border:0;border-top:1px dashed var(--line-bright);margin:22px 0}.caret{display:inline-block;width:9px;height:1.05em;background:var(--amber);margin-left:2px;vertical-align:text-bottom;animation:blink .9s steps(2) infinite}
