:root{--paper:#f5f2e9;--panel:#fffdf7;--ink:#202b29;--muted:#65716b;--line:#d9ded3;--teal:#12675e;--teal-dark:#0b4c45;--accent:#bd7f34;--danger:#a63831;--serif:"Iowan Old Style","Palatino Linotype","Songti SC","SimSun",serif;--sans:"Trebuchet MS","Microsoft YaHei","PingFang SC",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--sans)}button,input,select,textarea{font:inherit}a{color:var(--teal)}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:3px;padding:9px 16px;background:var(--panel);color:var(--ink)}button:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bc9d5a;outline-offset:3px}.primary{background:var(--teal);color:white;border-color:var(--teal);font-weight:700}.primary:hover:not(:disabled){background:var(--teal-dark);color:#fff}.quiet{background:transparent}.danger{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:Consolas,"Courier New",monospace;overflow-wrap:anywhere}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:var(--teal);margin:0 0 14px}.masthead{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--line)}.brand{margin:0;color:var(--ink);font:700 26px var(--serif);letter-spacing:.04em}.brand a{color:inherit;text-decoration:none}.brand span{font-weight:400;margin-left:8px}.header-meta{display:flex;gap:20px;align-items:center}main:not(.login-shell){max-width:1440px;margin:auto;padding:40px 24px}.workspace-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);gap:24px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);padding:26px}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}.section-heading h2{font:400 21px var(--serif);margin:0}.section-heading>button,.section-heading>#detail-status{margin-left:auto}.section-number{font:12px Consolas,monospace;color:var(--teal);border-top:2px solid var(--teal);padding-top:4px;align-self:stretch}label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}input,textarea,select{width:100%;padding:10px 11px;border:1px solid #c7cfc3;border-radius:3px;background:#fffefa;color:var(--ink)}textarea{min-height:105px;resize:vertical}input[type=file]{font-size:12px;padding:10px;background:var(--paper)}input[type=file]::file-selector-button{font:inherit;border:0;background:var(--teal);color:white;padding:7px 10px;margin-right:12px;border-radius:2px}.field{margin:21px 0}.field small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.file-summary{white-space:pre-line;overflow-wrap:anywhere}.required{color:var(--accent);margin-left:5px}.submit-note{font-size:11px;color:var(--muted);margin:24px 0 14px}#submit-job{width:100%;display:flex;justify-content:space-between}.filters{display:flex;gap:12px;margin-bottom:15px}.filters label{flex:1;font-size:11px;color:var(--muted)}.filters select{margin-top:5px;padding:8px;font-weight:400;font-size:12px}.job-list{display:flex;flex-direction:column;gap:0;min-height:170px}.job-row{display:block;text-align:left;border:0;border-top:1px solid var(--line);border-radius:0;padding:16px 12px;background:transparent;width:100%}.job-row.selected{background:#edf3ed;box-shadow:inset 3px 0 var(--teal)}.job-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.job-row strong{font-size:13px}.job-row-meta{display:block;font-size:11px;color:var(--muted);margin-top:7px}.badge{display:inline-block;font-size:10px;line-height:1.5;padding:3px 8px;background:#eaeee7;color:var(--muted);border-radius:2px;white-space:nowrap}.badge.running,.badge.starting{color:#08594f;background:#e1f0e9}.badge.succeeded{background:#dfece0;color:#2b663a}.badge.failed,.badge.timed_out,.badge.interrupted{background:#f5e6df;color:#963c2c}.pagination{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:12px;font-size:11px}.pagination button{padding:6px 9px}.detail{margin-top:24px}.empty{color:var(--muted);font-size:13px;text-align:center;padding:38px 12px}.detail-top{display:flex;align-items:start;justify-content:space-between;gap:22px}.detail-top h3{margin:0;font-size:19px;font-weight:400}.detail-top p{margin:7px 0}.actions{display:flex;gap:10px;flex-shrink:0}.actions button{font-size:12px}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:26px;border-top:1px solid var(--line);padding-top:18px}.detail-columns h3{font-size:13px;font-weight:700;margin:10px 0 18px}.steps{list-style:none;padding:0;margin:0 0 30px}.step{border-left:1px solid var(--line);padding:0 0 17px 20px;position:relative}.step::before{content:"";width:7px;height:7px;background:var(--teal);border-radius:50%;position:absolute;left:-4px;top:8px}.step-title{font-size:12px;overflow-wrap:anywhere}.step-info{font-size:11px;color:var(--muted)}.attempt{font-size:11px;border-top:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}.artifact{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.artifact a{overflow-wrap:anywhere;text-underline-offset:4px}.artifact small{white-space:nowrap;color:var(--muted)}details{margin-top:25px}summary{font-size:12px;cursor:pointer;color:var(--teal)}pre{font:11px/1.6 Consolas,monospace;max-height:400px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper);padding:15px}.notice{font-size:12px;padding:12px 14px;border-left:3px solid var(--teal);background:#e9efe6;overflow-wrap:anywhere}.warning{background:#f5ecdb;border-color:var(--accent);color:#735522}.error{color:var(--danger);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.error:empty{display:none}.error-block{padding:12px;background:#f7ece5;border-left:3px solid var(--danger)}footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px;margin-top:26px}.skip-link{position:absolute;top:-80px;padding:10px;background:var(--panel);z-index:5}.skip-link:focus{top:10px}.login-shell{min-height:100vh;max-width:480px;margin:auto;padding:40px 22px;display:grid;align-items:center}.login-card{padding:40px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--teal);box-shadow:14px 14px 0 #e7e9dd}.login-card h1{font:400 29px var(--serif);margin:0 0 30px}.login-card input{margin-bottom:20px}.login-card .primary{width:100%;display:flex;justify-content:space-between;margin:10px 0 20px}[hidden]{display:none!important}@media(max-width:950px){.workspace-grid{grid-template-columns:1fr 1fr}.panel{padding:20px}.detail-top{flex-wrap:wrap}.detail-columns{gap:24px}}@media(max-width:720px){.masthead{height:70px;padding:0 18px}.brand{font-size:21px}.header-meta{gap:12px;font-size:11px}.header-meta button{padding:5px 10px}main:not(.login-shell){padding:28px 16px}.workspace-grid,.detail-columns{grid-template-columns:1fr}.detail-columns{gap:18px}.panel{padding:20px 16px}.filters{gap:8px}.actions{flex-wrap:wrap}.pagination{gap:5px}footer{display:block}footer span{display:block;margin-top:8px}.login-card{padding:28px;box-shadow:7px 7px 0 #e7e9dd}}@media(prefers-reduced-motion:no-preference){.panel,.login-card{animation:arrive .35s ease-out both}.queue{animation-delay:.06s}.detail{animation-delay:.12s}@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
dialog{width:min(460px,calc(100vw - 40px));padding:30px;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:3px;background:var(--panel);color:var(--ink);box-shadow:0 24px 80px #102b2940}dialog::backdrop{background:#102b2980}dialog h2{font:400 25px var(--serif);margin:0 0 18px}#confirmation-message{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.confirmation-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}
