:root{--ink:#153448;--muted:#6d8090;--blue:#16738e;--teal:#2f9d91;--line:#dce5eb;--paper:#f4f7fa;--nav:#112c40;--warn:#9c6818;--red:#b54655}*{box-sizing:border-box}body{margin:0;font:14px/1.6 Inter,'Segoe UI','Microsoft YaHei',sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);padding:9px 16px;font-weight:600;transition:background .15s}button:hover{background:#edf6f8}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:white}button.primary:hover{background:#105d74}button.danger{color:var(--red)}input,select,textarea{width:100%;border:1px solid #cbd8e1;border-radius:6px;padding:9px 11px;background:white;color:var(--ink)}input[type=checkbox]{width:auto;accent-color:var(--blue)}input[type=color]{height:42px;padding:3px}textarea{min-height:160px;font:12px/1.65 ui-monospace,monospace;resize:vertical}label{display:block;font-size:12px;color:var(--muted);font-weight:600}label input,label select,label textarea{margin-top:5px}h1{font-size:29px;line-height:1.3;letter-spacing:-.7px;margin:4px 0 9px}h2{font-size:18px;margin:0 0 14px}h3{font-size:14px;margin:0 0 10px}p{margin:6px 0 16px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.4px;color:var(--teal);font-size:11px;font-weight:750;margin:0 0 8px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:#c1d3df;padding:26px 16px;position:fixed;inset:0 auto 0 0;width:230px;display:flex;flex-direction:column}.brand{padding:0 14px 28px;color:white;font-size:26px;letter-spacing:-1px;font-weight:750}.brand span{color:#72d9ce}.brand small{display:block;letter-spacing:1.2px;font-size:9px;color:#8faec2;font-weight:500}.sidebar button{width:100%;text-align:left;background:transparent;border:0;color:#9fb7c9;margin:3px 0;font-weight:500;padding:10px 14px}.sidebar button:hover,.sidebar button.active{background:#204359;color:white}.sidebar button.active{border-left:3px solid #70d4c8;padding-left:11px}.sidebar .footer{margin-top:auto;font-size:11px;padding:20px 14px 0;color:#8faec2}.main{grid-column:2;min-width:0}.topbar{height:78px;background:white;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:20px}.topbar select{max-width:310px;background:#f8fafc}.topbar .account{margin-left:auto;font-size:12px;color:var(--muted)}.content{padding:30px 34px 50px;max-width:1600px;margin:0 auto}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.pagehead p{margin:0;color:var(--muted)}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:25px;margin-bottom:20px;box-shadow:0 3px 8px #17364803}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;align-items:end}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.end{justify-content:flex-end}.spacer{flex:1}.pill{display:inline-block;border-radius:20px;padding:3px 10px;background:#edf3f7;color:#58768b;font-size:11px;white-space:nowrap}.pill.completed,.pill.available,.pill.ready{background:#e4f4ed;color:#237654}.pill.failed,.pill.unavailable,.pill.BLOCKING{background:#fdebed;color:#af3d50}.pill.pending,.pill.running,.pill.WARNING{background:#fff4de;color:#936216}.stat{font-size:28px;font-weight:650;line-height:1.3}.stat-label{color:var(--muted);font-size:12px;margin-top:6px}.stepper{display:grid;grid-template-columns:repeat(7,1fr);padding:19px 0;border-bottom:1px solid var(--line);margin-bottom:26px;gap:8px}.step{font-size:11px;text-align:center;color:var(--muted)}.step b{display:block;width:29px;height:29px;border-radius:50%;border:1px solid var(--line);margin:0 auto 7px;line-height:27px;background:white}.step.active{color:var(--blue);font-weight:700}.step.active b{background:var(--blue);color:white;border-color:var(--blue)}.step.done b{background:#d9f0eb;color:#238674;border-color:#d9f0eb}.choice{padding:22px;text-align:left;min-height:100px;display:block}.choice.selected{border:2px solid var(--blue);background:#f0f8fa;padding:21px}.choice strong{display:block;font-size:16px}.choice span{display:block;color:var(--muted);font-size:12px;margin-top:7px}.notice{border-left:3px solid var(--teal);padding:10px 14px;background:#f0f8f7;margin:18px 0;color:#386c69;font-size:12px}.notice.warning{border-color:#d4a64f;background:#fffaed;color:#846324}.notice.error{border-color:#c95065;background:#fff0f2;color:#9a3547}.table-scroll{overflow:auto;max-height:570px;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;background:#f3f7fa;font-size:11px;color:#506b7e;position:sticky;top:0;z-index:1}th,td{padding:11px 13px;border-bottom:1px solid #e5edf2;max-width:340px;overflow:hidden;text-overflow:ellipsis}tr:hover td{background:#f9fbfc}td.wrap{white-space:normal}.empty{padding:45px;text-align:center;color:var(--muted)}.actions{margin-top:24px;display:flex;justify-content:space-between;gap:12px}.small{font-size:11px}.mono{font-family:ui-monospace,monospace}.login{max-width:440px;margin:12vh auto;padding:40px}.login .brand{color:var(--ink);padding:0 0 32px}.login label{margin:18px 0}.login button{width:100%;margin-top:10px}.preview-img{display:block;width:100%;max-height:650px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:8px}.details{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,monospace;max-height:460px;overflow:auto;background:#f7fafc;padding:15px;border-radius:7px}.artifact{display:flex;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:16px 0}.artifact:last-child{border:0}.artifact .name{font-weight:600}.artifact .name small{font-weight:400;color:var(--muted);display:block}.upload{border:1px dashed #a9becd;padding:22px;border-radius:8px;background:#fafcfd}.download-row button{padding:6px 12px;font-size:11px}.toolbar{display:flex;gap:12px;margin-bottom:16px;align-items:end;flex-wrap:wrap}.toolbar label{flex:1;min-width:130px}.progress-note{font-size:12px;color:var(--muted);margin-top:10px}#toast{position:fixed;right:24px;bottom:24px;max-width:min(580px,90vw);padding:15px 20px;background:#193e55;color:white;box-shadow:0 5px 30px #112c4033;border-radius:8px;z-index:999;display:none;white-space:pre-wrap;max-height:40vh;overflow:auto}#toast.error{background:#923448}.busy{opacity:.65;pointer-events:none}details summary{cursor:pointer;font-weight:600;padding:7px 0}a{color:var(--blue)}.checklist label{display:flex;gap:9px;align-items:center;padding:8px 0;font-weight:400;color:var(--ink)}.checklist input{margin:0}.tagline{font-size:12px;color:var(--muted);margin-top:6px}.module-box{border:1px solid var(--line);border-radius:8px;padding:18px}.module-box h3{text-transform:uppercase;font-size:12px;letter-spacing:.6px}.scorebar{height:5px;background:#e6eff2;margin-top:10px;border-radius:4px;overflow:hidden}.scorebar span{display:block;height:100%;background:var(--teal)}.mobile-brand{display:none}
@media(max-width:1000px){.sidebar{width:190px}.shell{grid-template-columns:190px 1fr}.content{padding:24px 20px}.topbar{padding:0 20px}.grid.two{grid-template-columns:1fr}.brand{font-size:23px}}
@media(max-width:700px){.shell{display:block}.sidebar{position:relative;width:100%;padding:12px;display:block}.sidebar .brand{padding:2px 10px 12px;font-size:22px}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{width:auto;white-space:nowrap;margin:0}.sidebar .footer{display:none}.topbar{height:auto;padding:12px;gap:8px;flex-wrap:wrap}.topbar .account{display:none}.topbar select{flex:1;max-width:none}.content{padding:20px 12px}.stepper{gap:3px}.step{font-size:9px}.step b{width:24px;height:24px;line-height:22px}.card{padding:18px}.pagehead{display:block}.pagehead .row{margin-top:10px}.grid{grid-template-columns:1fr}h1{font-size:24px}}
