:root{--bg:#f7f8fb;--surface:#fff;--surface-2:#eef3f7;--text:#1c2430;--muted:#5c6878;--line:#d6dde7;--accent:#0f766e;--accent-dark:#115e59;--warn:#b45309;--bad:#b91c1c;--ok:#15803d;--shadow:0 8px 24px #1c243014}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button{border:1px solid var(--accent-dark);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;min-height:38px;padding:0 14px}.button-link{border:1px solid var(--accent-dark);background:var(--accent);color:#fff;border-radius:6px;align-items:center;min-height:38px;padding:9px 14px;text-decoration:none;display:inline-flex}.button-link.secondary,button.secondary{color:var(--accent-dark);background:#fff}button.danger{border-color:var(--bad);color:var(--bad)}button:disabled{cursor:not-allowed;opacity:.55}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:6px;padding:10px 11px}label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.check-row{grid-template-columns:none;align-items:center;gap:9px;display:flex}.check-row input{width:18px;height:18px}pre{color:#e6edf3;white-space:pre-wrap;background:#101820;border-radius:6px;max-height:360px;padding:14px;overflow:auto}.shell{min-height:100vh}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);width:min(100%,420px);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:24px;display:grid}.login-brand{padding-bottom:4px}.topbar{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:18px 28px;display:flex}.topbar-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.brand{gap:3px;display:grid}.brand h1{margin:0;font-size:1.35rem}.brand p{color:var(--muted);margin:0}.layout{grid-template-columns:320px minmax(0,1fr);gap:22px;padding:22px;display:grid}.workbench-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px;padding:22px;display:grid}.sidebar{align-self:start;position:sticky;top:18px}.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.panel header{border-bottom:1px solid var(--line);padding:16px}.panel header h2,.panel header h3{margin:0;font-size:1rem}.panel-body{padding:16px}.stack{gap:14px;display:grid}.actions{flex-wrap:wrap;gap:10px;display:flex}.project-list{gap:10px;display:grid}.project-item{text-align:left;width:100%;color:var(--text);border-color:var(--line);background:#fff;min-height:auto;padding:10px}.project-item.active{border-color:var(--accent);background:#e9f8f5}.project-item strong{overflow-wrap:anywhere;display:block}.project-item span{color:var(--muted);font-size:.82rem}.grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.metric{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:14px}.metric strong{font-size:1.55rem;display:block}.metric span{color:var(--muted)}.section-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.status{background:var(--surface-2);min-height:26px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:.82rem;display:inline-flex}.status.completed,.status.validated,.status.generated,.status.planned,.status.analyzed{color:var(--ok);background:#e9f8ef}.status.failed,.status.error{color:var(--bad);background:#fee2e2}.event-log{gap:8px;max-height:520px;display:grid;overflow:auto}.event{border-left:3px solid var(--line);background:#fbfcfd;padding:7px 10px}.event.success{border-color:var(--ok)}.event.error{border-color:var(--bad)}.event.warning{border-color:var(--warn)}.event small{color:var(--muted);display:block}.event pre{max-height:180px;margin:8px 0 0}.question{border:1px solid var(--line);border-radius:8px;gap:10px;padding:14px;display:grid}.question.answered{background:#f5fbf7}.question-head{flex-wrap:wrap;gap:8px;display:flex}.notice{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:6px;padding:10px 12px}.notice.ok{color:var(--ok);background:#e9f8ef;border-color:#b7e2c4}.notice.bad{color:var(--bad);background:#fee2e2;border-color:#fecaca}.empty{color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:16px}.pipeline{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;display:grid}.pipeline-step{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:4px;min-height:86px;padding:10px;display:grid}.pipeline-step strong,.pipeline-step span,.pipeline-step small{overflow-wrap:anywhere}.pipeline-step.completed{background:#f1fbf4;border-color:#86d39d}.pipeline-step.running{background:#f0f9ff;border-color:#7dd3fc}.pipeline-step.waiting{background:#fff7ed;border-color:#f2c572}.pipeline-step.failed{background:#fff1f2;border-color:#fecaca}.generation-timeline{grid-template-columns:repeat(7,minmax(100px,1fr));gap:8px;display:grid}.timeline-step{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:3px;min-height:78px;padding:9px;display:grid}.timeline-step strong,.timeline-step span,.timeline-step small{overflow-wrap:anywhere}.timeline-step span,.timeline-step small{color:var(--muted)}.timeline-step.completed{background:#f1fbf4;border-color:#86d39d}.timeline-step.running{background:#f0f9ff;border-color:#7dd3fc}.timeline-step.failed{background:#fff1f2;border-color:#fecaca}.list-table,.artifact-list,.job-list,.validation-list{gap:10px;display:grid}.list-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.list-row span,.context-item span,.artifact-item span,.artifact-item small,.job-item span,.job-item small{color:var(--muted);overflow-wrap:anywhere;display:block}.artifact-item,.job-item{text-align:left;width:100%;color:var(--text);border-color:var(--line);background:#fff;min-height:auto;padding:10px}.artifact-item:hover,.job-item:hover,.job-item.active{border-color:var(--accent);background:#e9f8f5}.context-item{border:1px solid var(--line);border-radius:8px;margin-top:8px;padding:10px}.file-list{flex-wrap:wrap;gap:8px;display:flex}.file-list span{border:1px solid var(--line);max-width:100%;color:var(--muted);overflow-wrap:anywhere;background:#fbfcfd;border-radius:999px;padding:5px 9px}h4{margin:8px 0;font-size:.92rem}@media (max-width:940px){.layout,.workbench-layout,.section-grid,.grid,.pipeline,.generation-timeline{grid-template-columns:1fr}.sidebar{position:static}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{justify-content:flex-start}}
