@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sc-chinese-simplified-400-normal-Ba7eOkfT.woff2) format("woff2");unicode-range:U+2e80-2fdf,U+3000-303f,U+31c0-31ef,U+3400-4dbf,U+4e00-9fff,U+f900-faff,U+ff00-ffef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sc-latin-400-normal-C8q2FS1w.woff2) format("woff2");unicode-range:U+0000-024f}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sc-chinese-simplified-600-normal-CI4uXaOp.woff2) format("woff2");unicode-range:U+2e80-2fdf,U+3000-303f,U+31c0-31ef,U+3400-4dbf,U+4e00-9fff,U+f900-faff,U+ff00-ffef}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/noto-sans-sc-latin-600-normal-D5ts6k_I.woff2) format("woff2");unicode-range:U+0000-024f}:root{font-family:Noto Sans SC,Inter,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:#202522;background:#f4f6f4;font-synthesis:none;text-rendering:optimizeLegibility;letter-spacing:0;--ink: #202522;--muted: #68716b;--border: #d9dedb;--surface: #ffffff;--subtle: #f0f3f1;--green: #176b4d;--green-dark: #10523b;--amber: #9a5a16;--red: #a33c35}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit;letter-spacing:0}button,a,input,select{outline-color:var(--green);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin:0}.centered-screen,.login-screen{min-height:100vh;display:grid;place-items:center}.centered-screen{align-content:center;gap:18px;color:var(--green)}.login-screen{padding:24px;background:#f4f6f4}.login-panel{width:min(100%,360px);display:grid;gap:16px;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 38px #1c241f17}.login-panel h1{margin-bottom:8px;font-size:23px;font-weight:650}.brand-mark{width:44px;height:44px;display:grid;place-items:center;color:#fff;background:var(--ink);border-radius:6px}label{display:grid;gap:7px;min-width:0;color:#424a45;font-size:13px;font-weight:600}input[type=password],select{width:100%;height:42px;padding:0 12px;color:var(--ink);background:#fff;border:1px solid #cbd2ce;border-radius:5px}input[type=password]:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b4d1a}.form-error{color:var(--red);font-size:13px}.primary-button,.quiet-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0}.primary-button{min-height:42px;padding:0 16px;color:#fff;font-weight:650;background:var(--green);border-radius:5px}.primary-button:hover:not(:disabled){background:var(--green-dark)}.app-shell{min-height:100vh}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:#f7faf8;background:#202522;border-bottom:1px solid #111512}.brand,.topbar-actions,.service-state{display:flex;align-items:center}.brand{gap:10px;font-size:15px;font-weight:680}.topbar-actions{gap:18px}.service-state{gap:7px;color:#c8d0cb;font-size:12px}.state-dot{width:7px;height:7px;background:#61c798;border-radius:50%}.quiet-button{padding:7px 9px;color:#dce3df;background:transparent;border-radius:4px;font-size:13px}.quiet-button:hover{color:#fff;background:#343b37}.main-content{width:min(100%,1500px);margin:0 auto}.error-banner{min-height:46px;display:flex;align-items:center;gap:10px;margin:18px 28px 0;padding:9px 12px;color:#762d27;background:#fff0ee;border:1px solid #e6bbb6;border-radius:5px;font-size:13px}.error-banner span{flex:1}.upload-section{padding:26px 28px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.section-heading h2{font-size:16px;font-weight:680}.section-heading p{margin-top:4px;color:var(--muted);font-size:12px}.upload-form{display:grid;grid-template-columns:minmax(230px,1.5fr) minmax(150px,.65fr) minmax(220px,1fr) auto;align-items:end;gap:14px}.file-control input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.file-selection{height:42px;display:flex;align-items:center;gap:9px;min-width:0;padding:0 12px;color:#4d5650;background:#fff;border:1px dashed #aeb8b2;border-radius:5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-selection:hover{border-color:var(--green);color:var(--green)}.file-selection svg{flex:0 0 auto}.upload-button{min-width:130px}.upload-limit{margin-top:10px;color:#7b847e;font-size:11px}.workspace{min-height:calc(100vh - 245px);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);background:var(--surface)}.jobs-section{min-width:0;padding:24px 0 40px 28px}.table-heading{padding-right:20px}.icon-button{width:34px;height:34px;flex:0 0 auto;padding:0;color:#58625c;background:transparent;border-radius:4px}.icon-button:hover:not(:disabled){color:var(--ink);background:var(--subtle)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}th{padding:9px 12px;color:#6c756f;background:#f7f9f7;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:11px;font-weight:650;text-align:left}th:first-child{width:44%}th:nth-child(2){width:23%}th:nth-child(3){width:12%}td{height:64px;padding:8px 12px;color:#505953;border-bottom:1px solid #e6eae7;font-size:12px;vertical-align:middle}tr[data-selected=true] td{background:#f0f6f2}.document-link{width:100%;display:flex;align-items:center;gap:10px;min-width:0;padding:0;color:var(--ink);background:transparent;border:0;text-align:left}.document-link>span{min-width:0}.document-link strong,.document-link small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-link strong{font-size:13px;font-weight:620}.document-link small{margin-top:4px;color:#7a837d;font-size:11px}.status{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 7px;border-radius:4px;font-size:11px;font-weight:650;line-height:1.2}.status-queued{color:#615c32;background:#f3f0d9}.status-running,.status-cancelling{color:#1a5e46;background:#e0f1e8}.status-succeeded{color:#176243;background:#e0f2e8}.status-succeeded_with_warnings{color:#81500f;background:#fff0d5}.status-failed,.status-cancelled{color:#8a342e;background:#f9e5e2}.progress-value{font-variant-numeric:tabular-nums}.empty-state,.detail-empty{display:grid;place-items:center;align-content:center;gap:10px;min-height:230px;color:#89918c;font-size:13px}.detail-section{min-width:0;padding:25px 28px 40px;background:#fbfcfb;border-left:1px solid var(--border)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--border)}.detail-header h2{max-width:430px;margin-top:5px;overflow-wrap:anywhere;font-size:16px;line-height:1.35}.detail-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:6px}.detail-actions .quiet-button.danger-action{color:#8a342d;border:1px solid #e7c4c0}.detail-actions .danger-action:hover:not(:disabled){color:#6f241f;background:#fcecea}.detail-actions .quiet-button:not(.danger-action){color:#315e4c;border:1px solid #bfd4ca}.detail-actions .quiet-button:not(.danger-action):hover:not(:disabled){color:#1c4b3a;background:#edf5f1}.danger-action{color:#8a342d}.danger-action:disabled{cursor:wait;opacity:.5}.eyebrow{color:#79827c;font-size:10px;font-weight:700;text-transform:uppercase}.job-progress{height:4px;margin-top:-1px;overflow:hidden;background:#e1e6e3}.job-progress div{height:100%;background:var(--green);transition:width .3s ease}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:18px 0 0}.detail-facts>div{min-width:0;padding:11px 0;border-bottom:1px solid #e3e7e4}.detail-facts>div:nth-child(odd){padding-right:16px}.detail-facts dt{color:#7a837d;font-size:10px}.detail-facts dd{margin:5px 0 0;color:#353c38;font-size:12px}.detail-facts .wide-fact{grid-column:1 / -1;padding-right:0}.digest{overflow:hidden;color:#5c665f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px!important;text-overflow:ellipsis;white-space:nowrap}.terminal-error,.error-banner{overflow-wrap:anywhere}.terminal-error{display:flex;gap:10px;margin-top:18px;padding:12px 0;color:#7f312b;border-top:1px solid #edcbc7;border-bottom:1px solid #edcbc7}.terminal-error p{margin-top:4px;font-size:12px}.artifact-section,.issue-section{margin-top:24px}.subheading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.subheading h3{font-size:13px}.subheading span{color:#7c857f;font-size:11px}.issue-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;color:#80571d;border-top:1px solid #eadfc9}.issue-row strong,.issue-row small{display:block;overflow-wrap:anywhere}.issue-row strong{font-size:12px}.issue-row small{margin-top:2px;color:#817563;font-size:11px}.artifact-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;color:#323a35;border-top:1px solid #e0e5e2;text-decoration:none}.artifact-row:hover{color:var(--green)}.artifact-row strong,.artifact-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-row strong{font-size:12px}.artifact-row small,.muted{margin-top:3px;color:#7b847e;font-size:11px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.upload-form{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:1fr}.jobs-section{padding-right:20px}.detail-section{border-top:1px solid var(--border);border-left:0}}@media(max-width:620px){.topbar{padding:0 16px}.service-state{display:none}.main-content{width:100%}.upload-section,.detail-section{padding-right:16px;padding-left:16px}.jobs-section{padding-left:16px}.upload-form{grid-template-columns:1fr}.upload-button{width:100%}table{min-width:0}th:first-child{width:64%}th:nth-child(2){width:36%}th:nth-child(3),th:nth-child(4),td:nth-child(3),td:nth-child(4){display:none}.error-banner{margin-right:16px;margin-left:16px}}@media(prefers-reduced-motion:reduce){.spin{animation-duration:1.8s}.job-progress div{transition:none}}
