:root{--bg: #f4f3ef;--ink: #1c1b18;--muted: #6f6d65;--line: #e2e0d8;--col: #ecebe5;--accent: #2f5bea}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}.app{min-height:100vh;display:flex;flex-direction:column}.top{height:56px;display:flex;align-items:center;gap:20px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line)}.logo{font-weight:600;font-size:16px}nav{display:flex;gap:4px}.tab{padding:7px 14px;border-radius:8px;color:#5c5a52;text-decoration:none;font-weight:500}.tab.on{background:var(--ink);color:#fff}.btn{margin-left:auto;height:36px;padding:0 14px;border-radius:9px;border:0;background:var(--ink);color:#fff;font:inherit;font-weight:600;cursor:pointer}.error{margin:12px 24px 0;padding:10px 14px;border-radius:8px;background:#fdecec;color:#991b1b}.board{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;padding:16px 24px;overflow-x:auto;flex:1}.col{display:flex;flex-direction:column;gap:8px;background:var(--col);border-radius:12px;padding:10px;min-height:60vh}.colh{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 6px;font-weight:600;font-size:13px}.muted{color:var(--muted);font-weight:500}.pill{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.pill.you{background:#dff4f0;color:#0f5c56}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;cursor:grab}.card:focus-visible{outline:2px solid var(--accent)}.khead{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.ktitle{font-size:13px;font-weight:500;line-height:1.35}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.empty{padding:10px 4px;font-size:12px;color:var(--muted)}@media (max-width: 900px){.board{grid-template-columns:repeat(7,220px)}}button.tab{border:0;background:none;font:inherit;cursor:pointer}button.tab:disabled{color:#b8b5ab;cursor:default}.who{margin-left:auto;display:flex;align-items:center;gap:10px}.top .btn{margin-left:0}.link{border:0;background:none;color:var(--accent);font:inherit;cursor:pointer}.toolbar{display:flex;align-items:center;gap:12px;padding:16px 24px 0}.toolbar h1{margin:0;font-size:22px;font-weight:600}.toolbar .btn{margin-left:auto}.btn{margin-left:0}.btn.secondary{background:#fff;color:var(--ink);border:1px solid #d6d4cc}.btn:disabled{opacity:.6;cursor:default}.notice{margin:12px 24px 0;padding:10px 14px;border-radius:8px;font-size:13px}.notice.error{background:#fdecec;color:#991b1b}.notice.ok{background:#e3f5e8;color:#166534}.panel .notice{margin:0}.col.droppable{outline:2px dashed #c9c7bf;outline-offset:-4px}.pill{background:#f0efe9;color:#4a4841}.pill.ok{background:#e3f5e8;color:#166534}.panels{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding:16px 24px 32px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.panelh{display:flex;justify-content:space-between;align-items:center}.panelh h2{margin:0;font-size:16px;font-weight:600}.small{font-size:12px;margin:0;line-height:1.5}.field{display:flex;flex-direction:column;gap:4px;font-size:13px}.field input,.field textarea{height:36px;border:1px solid #d6d4cc;border-radius:8px;padding:0 10px;font:inherit;background:#fff;color:var(--ink)}.field textarea{height:auto;padding:8px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.field input:disabled,.field textarea:disabled{background:#faf9f5;color:var(--muted)}.actions{display:flex;gap:8px}.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card{cursor:pointer}.pill.agent{background:#efe9fb;color:#5b21b6}.pill.wait{background:#fdf0dc;color:#92400e}.pill.error{background:#fdecec;color:#991b1b}.card .pill{align-self:flex-start}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1b1847;display:flex;justify-content:flex-end;z-index:10}.drawer{width:min(720px,100%);height:100%;overflow-y:auto;background:#fff;padding:20px 28px 28px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box}.drawerh{display:flex;justify-content:space-between;align-items:center}.drawer-title{margin:0;font-size:22px;font-weight:600;line-height:1.3}.drawer .notice{margin:0}.spec-meta{display:flex;gap:6px;flex-wrap:wrap}.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.subtabs button{border:0;background:none;font:inherit;font-weight:500;color:#5c5a52;padding:8px 12px;cursor:pointer;border-bottom:2px solid transparent}.subtabs button.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.md{font-size:14px;line-height:1.6;max-width:72ch}.md h1,.md h2,.md h3{font-size:15px;margin:18px 0 6px}.md table{border-collapse:collapse;font-size:13px;display:block;overflow-x:auto}.md td,.md th{border:1px solid var(--line);padding:4px 8px;text-align:left}.md code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;background:#f0efe9;padding:1px 4px;border-radius:4px}.md pre{background:#1c1b18;color:#e9e7df;padding:12px;border-radius:8px;overflow-x:auto}.md pre code{background:none;color:inherit}.questions{background:#fdf8ee;border:1px solid #f1dfbb;border-radius:10px;padding:12px 16px}.questions h3,.runs h3{margin:0 0 6px;font-size:14px}.questions ul{margin:0;padding-left:18px;line-height:1.55}.actions.sticky{position:sticky;bottom:-28px;background:#fff;padding:12px 0;border-top:1px solid var(--line)}.runs{display:flex;flex-direction:column;gap:6px}.run{display:grid;grid-template-columns:90px 90px 70px 1fr;gap:8px;font-size:13px;align-items:center}.panel.wide{grid-column:1 / -1}.repo-list{display:flex;flex-direction:column}.repo{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid #eeede7}.repo.off{opacity:.55}.repo-name{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:none;padding:0;font:inherit;color:var(--ink);cursor:pointer;text-align:left}.repo-map{border-top:1px solid var(--line);padding-top:10px}.repo-map h3{margin:0;font-size:14px}.relations{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px}.relations th,.relations td{text-align:left;padding:4px 8px;border-bottom:1px solid #eeede7}@media (max-width: 640px){.drawer{padding:16px}.run{grid-template-columns:1fr 1fr}}.notice.wait{background:#fdf0dc;color:#92400e}.card .pill{max-width:100%;white-space:normal;line-height:1.35}.pulls{display:flex;flex-direction:column;gap:10px}.pulls h3{margin:0;font-size:14px}.pull{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.pull-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pull-head a{margin-right:auto;font-size:13px}.comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.comments li{display:flex;flex-direction:column;gap:2px;font-size:13px;padding-left:10px;border-left:3px solid #f1dfbb}.comments li.done{border-left-color:#a7d9b8}.ok-text{color:#166534}.testing,.preview,.plan,.bugs{display:flex;flex-direction:column;gap:8px}.testing h3,.bugs h3{margin:0;font-size:14px}.plan ul{margin:0;padding-left:18px}.scenario{display:grid;grid-template-columns:20px 1fr;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.scenario span{display:flex;flex-direction:column;gap:2px}.scenario.passed{background:#f3faf5;border-color:#a7d9b8}.scenario input{margin-top:3px}.pre{white-space:pre-wrap}.log{max-height:260px;overflow:auto;background:#1c1b18;color:#e9e7df;padding:10px;border-radius:8px;font-size:11px;white-space:pre-wrap}.bug-form{display:flex;flex-direction:column;gap:10px;border:1px solid #f1c9c9;background:#fdf7f7;border-radius:10px;padding:12px 14px}.field select{height:36px;border:1px solid #d6d4cc;border-radius:8px;padding:0 8px;font:inherit;background:#fff}.bug{border-left:3px solid #f1c9c9;padding-left:10px;display:flex;flex-direction:column;gap:4px}.shot{max-width:100%;border-radius:8px;border:1px solid var(--line)}.questions .field{margin-top:6px}.questions .btn{align-self:flex-start;margin-top:8px}.env-create,.env-detail{display:flex;flex-direction:column;gap:10px;padding:10px 0}.env-detail{border-top:1px dashed var(--line)}.checks{display:flex;flex-wrap:wrap;gap:8px 16px}fieldset.field{border:0;padding:0;margin:0}fieldset.field legend{font-size:13px;margin-bottom:4px}.code-area{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}a.btn{text-decoration:none;display:inline-flex;align-items:center}.prototype{width:100%;height:640px;border:1px solid var(--line);border-radius:10px;background:#fff}.rule{display:grid;grid-template-columns:1fr 96px;gap:12px;align-items:center;font-size:13px;padding:6px 0;border-top:1px solid #eeede7}.rule input{height:34px;border:1px solid #d6d4cc;border-radius:8px;padding:0 8px;font:inherit;text-align:right}.rule input:disabled{background:#faf9f5;color:var(--muted)}.console{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;padding:18px 24px;flex:1;min-height:0}.history{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.history h1{margin:0;font-size:22px}.history-item{display:flex;flex-direction:column;gap:6px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}.history-item.on{border-color:var(--ink)}.chat{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;min-height:70vh;overflow:hidden}.chat-body{flex:1;overflow-y:auto;padding:20px 22px}.conversation{display:flex;flex-direction:column;gap:14px}.bubble{padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.55;max-width:900px;display:flex;flex-direction:column;gap:10px}.bubble.me{align-self:flex-end;background:var(--ink);color:#fff;white-space:pre-wrap;max-width:760px}.bubble.agent{border:1px solid var(--line)}.bubble .notice{margin:0}.composer{border-top:1px solid var(--line);background:#faf9f5;padding:14px 22px 16px;display:flex;flex-direction:column;gap:8px}.composer .notice{margin:0}.seg{height:30px;padding:0 12px;border-radius:7px;border:1px solid #d6d4cc;background:#fff;font:inherit;font-size:12px;cursor:pointer}.seg.on{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.push{margin-left:auto}.actions.wrap{flex-wrap:wrap;align-items:center}.btn.danger{color:#991b1b;border-color:#f1c9c9}.refine{display:flex;flex-direction:column;gap:8px}.refine textarea{border:1px solid #d6d4cc;border-radius:8px;padding:8px 10px;font:inherit}.repo-actions{display:flex;gap:12px;align-items:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width: 900px){.console{grid-template-columns:1fr}}.group{display:flex;flex-direction:column;gap:6px;margin-top:6px}.group-title{display:flex;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.exp{display:flex;flex-direction:column;gap:14px}.exp h2{margin:0;font-size:20px}.tag{background:#f0efe9;padding:2px 8px;border-radius:6px;font-size:12px}.metrics{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px;display:block;overflow-x:auto}.metrics th{text-align:left;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding:6px 8px}.metrics td{padding:8px;border-top:1px solid #eeede7;white-space:nowrap}.chart{width:100%;height:auto}.chart .grid{stroke:#eeede7}.chart .tick{font-size:10px;fill:var(--muted)}.chart .line{fill:none;stroke-width:2}.chart .line.on,.chart .dot.on,.sw.on{stroke:#2f5bea;fill:#2f5bea;background:#2f5bea}.chart .line.off,.chart .dot.off,.sw.off{stroke:#b8b5ab;fill:#b8b5ab;background:#b8b5ab}.chart .line.on,.chart .line.off{fill:none}.legend{display:flex;align-items:center;gap:6px}.sw{display:inline-block;width:10px;height:10px;border-radius:2px}.digest{border-color:#c4b5fd}.digest-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;font-size:13px}.digest-cols ul{margin:4px 0 0;padding-left:18px;line-height:1.5}.bad-text{color:#92400e}.followup{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #eeede7;font-size:13px}.close-exp{display:flex;gap:8px;align-items:center;margin-left:auto}.close-exp select,.rule select,.env-create input{height:34px;border:1px solid #d6d4cc;border-radius:8px;padding:0 8px;font:inherit;background:#fff}.approvals{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}.rule input[type=checkbox]{width:18px;height:18px;justify-self:end}.search{flex:1;height:36px;border:1px solid #d6d4cc;border-radius:8px;padding:0 10px;font:inherit}.memory-results{display:flex;flex-direction:column;gap:8px}.hit{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #eeede7;border-radius:8px}.graph-wrap{overflow-x:auto}.graph{width:100%;min-width:640px;height:auto}.legend span{display:inline-flex;align-items:center;gap:4px;margin-right:10px}.release{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}.release h3{margin:0;font-size:14px}.shots{display:flex;flex-direction:column;gap:10px}.shots h3{margin:0;font-size:14px}.shot-row{display:flex;flex-direction:column;gap:4px}.shot-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shot-pair figure{margin:0}.project-switcher{display:flex;align-items:center;gap:8px}.project-switcher select{height:34px;border:1px solid #d6d4cc;border-radius:8px;padding:0 8px;font:inherit;font-weight:600;background:#fff;max-width:220px}.project-new{display:flex;align-items:center;gap:6px}.project-new input{height:34px;border:1px solid #d6d4cc;border-radius:8px;padding:0 8px;font:inherit}.project-scope{display:contents}.setup .steps{display:flex;flex-wrap:wrap;gap:6px}.scope-toggle{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wide-drawer{width:min(880px,100vw)}.runlog{display:flex;flex-direction:column;gap:6px;font-size:13px;overflow-y:auto}.le{padding:6px 10px;border-radius:8px;border:1px solid #eeede7}.le pre{margin:4px 0 0;white-space:pre-wrap;font-size:11px;max-height:220px;overflow:auto;background:#faf9f5;padding:6px 8px;border-radius:6px}.le-platform{border-style:dashed}.le-tool{border-color:#c7d2fe}.le-done{border-color:#a7d9b8;background:#f3faf5}.le-error{border-color:#f1c9c9;background:#fdf7f7}.task-desc{display:flex;flex-direction:column;gap:6px}
