:root{--bg: #ffffff;--rail: #f6f7f9;--ink: #1c1e21;--muted: #5c6570;--line: #e2e5ea;--line-strong: #d0d4db;--select: #f3f6fa;--accent: #3d6d99;--pass: #0e6842;--fail: #9d332c;--unknown: #3a5270;--short: #1d4e89;--partial: #7a4f00;--running: #1d4e89;--focus: #1d4e89;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius: 2px;--font: "WenQuanYi Micro Hei", "Droid Sans Fallback", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--text-meta: 12px;--text-ui: 14px;--text-body: 16px;--text-title: 20px;--leading-meta: 1.45;--leading-ui: 1.6;--leading-body: 1.7;--leading-title: 1.4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:var(--text-ui) / var(--leading-ui) var(--font)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);align-items:start;min-height:100vh;background:var(--bg)}.nav{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;min-width:0;padding:var(--space-4);background:var(--rail);border-right:1px solid var(--line)}.create{display:flex;gap:var(--space-2)}.create input,.by-id input{flex:1;min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;padding:6px 8px}.create input::placeholder,.by-id input::placeholder,textarea::placeholder{color:var(--muted)}.create button,.by-id button,.file,.ghost{border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;padding:6px 10px;white-space:nowrap}.project-list{margin:var(--space-4) 0;flex:1;min-height:0;overflow-y:auto}.project{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:10px 8px}.project.current{background:var(--select);box-shadow:inset 3px 0 0 var(--accent)}.project-main{display:flex;flex-direction:column;gap:2px;min-width:0}.project-name,.file-name,.technical,h1{overflow-wrap:break-word;min-width:0}.project-created{color:var(--muted);font-size:var(--text-meta);line-height:var(--leading-meta)}.project-status{color:var(--muted);white-space:nowrap}.project-status.st-run{color:var(--running)}.project-status.st-partial{color:var(--partial)}.project-status.st-fail{color:var(--fail)}.by-id{margin-top:auto;padding-top:var(--space-4);color:var(--muted);font-size:var(--text-meta)}.by-id summary{cursor:pointer}.by-id form{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.by-id input{font-size:var(--text-ui);color:var(--ink)}.work{min-width:0;padding:var(--space-5) var(--space-6) 64px;background:var(--bg)}.head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}.head h1{flex:1}h1{margin:0 0 var(--space-3);font-size:var(--text-title);font-weight:600;line-height:var(--leading-title)}.report{display:flex;align-items:baseline;gap:var(--space-3);white-space:nowrap}.download{border:0;background:none;padding:0;color:var(--ink);text-decoration:underline}.download[disabled]{color:var(--muted);text-decoration:none;cursor:default;opacity:1}.quiet{color:var(--muted)}.text-button{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline}h2{margin:0;font-size:var(--text-title);font-weight:600;line-height:var(--leading-title)}textarea{width:100%;min-height:140px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:8px 10px;background:#fff;font-size:var(--text-body);line-height:var(--leading-body);resize:vertical}.field{display:block}.files{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0}.file{position:relative;display:inline-flex;align-items:center;cursor:pointer}.file input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.primary{border:0;border-radius:var(--radius);background:var(--ink);color:#fff;padding:7px 14px}button[disabled]:not(.download){opacity:.55;cursor:default}.primary[disabled]{opacity:.4}.received{list-style:none;margin:0 0 var(--space-3);padding:0;color:var(--muted)}.received li{padding:2px 0;overflow-wrap:anywhere}.arranged,.notice{margin:0 0 var(--space-3)}.actions{display:flex;gap:var(--space-2);align-items:center;margin:var(--space-3) 0 var(--space-4)}.summary{margin:0 0 var(--space-4)}.summary summary{cursor:pointer}.status{margin:var(--space-4) 0 var(--space-2)}.version{margin:0 0 var(--space-3);color:var(--muted)}.tone-running{color:var(--running)}.tone-partial{color:var(--partial)}.tone-fail{color:var(--fail)}.abnormal{margin:0 0 var(--space-4);padding:8px 12px;border-left:3px solid var(--partial);background:#fff}.abnormal.failed{border-left-color:var(--fail)}.abnormal p{margin:0}.trace{margin:0 0 var(--space-5)}.trace summary{cursor:pointer}ol{margin:var(--space-2) 0 0;padding-left:18px}li time{color:var(--muted);margin-right:var(--space-2)}.run-id{color:var(--muted);overflow-wrap:anywhere}.split{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;border-top:1px solid var(--line)}table{width:100%;border-collapse:collapse;table-layout:fixed}col.supplier{width:44%}col.model{width:24%}col.stage,col.tech{width:16%}th,td{text-align:left;vertical-align:top;padding:12px 14px}th{font-size:var(--text-meta);font-weight:500;line-height:var(--leading-meta);color:var(--muted);border-bottom:1px solid var(--line)}td{border-bottom:1px solid var(--line)}tr{cursor:pointer}tr.selected td{background:var(--select)}tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.supplier-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.supplier{overflow-wrap:break-word}.past-runs{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);margin-top:var(--space-2)}.model{overflow-wrap:anywhere;white-space:normal}.stage,.tech{white-space:nowrap}.stage.long,.tech.none{color:var(--muted)}.stage.short{color:var(--short)}.stage.verify,.tech.unknown{color:var(--unknown)}.tech.pass{color:var(--pass)}.tech.fail{color:var(--fail)}.detail{position:sticky;top:0;max-height:100vh;overflow-y:auto;min-width:0;padding:16px 18px 28px;border-left:1px solid var(--line)}.detail.linked{border-left:3px solid var(--accent);background:var(--select)}.detail h2{margin:0 0 4px;font-size:var(--text-body);font-weight:600;line-height:1.4;overflow-wrap:anywhere}.detail h3{margin:16px 0 4px;font-size:var(--text-meta);font-weight:500;color:var(--muted)}.detail p,.who{margin:4px 0}.who{overflow-wrap:break-word}blockquote{margin:4px 0 0;padding-left:10px;border-left:2px solid var(--line-strong);font-size:var(--text-body);line-height:var(--leading-body)}.snapshot{max-height:240px;overflow:auto}.checks,.basis{list-style:none;margin:0;padding:0}.checks li,.basis li{padding:8px 0;border-top:1px solid var(--line)}.prices{margin:0}.prices div{display:grid;grid-template-columns:6.5em minmax(0,1fr);gap:8px;padding:6px 0;border-top:1px solid var(--line)}.prices dt{font-weight:600}.prices dd{margin:0;overflow-wrap:break-word;font-size:var(--text-body);line-height:var(--leading-body)}@media(max-width:800px){.shell{grid-template-columns:1fr;min-height:auto}.nav{position:static;height:auto;max-height:50vh;border-right:0;border-bottom:1px solid var(--line)}.project-list{max-height:28vh}.by-id{margin-top:var(--space-3)}.work{padding:var(--space-4)}.head{flex-direction:column;align-items:flex-start}.report{align-items:flex-start;white-space:normal}.split{grid-template-columns:1fr}.detail,.detail.linked{position:static;max-height:none;border-left:0;border-top:3px solid var(--accent)}table,thead,tbody,tr,th,td{display:block;width:auto}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}tr{border-bottom:1px solid var(--line);padding:8px 0}td{border:0;padding:2px 12px}.model,.stage,.tech{white-space:normal}tr.selected td:first-child{box-shadow:none}tr.selected{box-shadow:inset 3px 0 0 var(--accent)}td:before{content:attr(data-label);display:block;color:var(--muted);font-size:var(--text-meta)}.prices div{grid-template-columns:1fr;gap:2px}}
