:root{--ink:#251f21;--ink2:#585254;--rule:#eae9ea;--teal:#73a89a;--red:#ed313e;--sand:#f4efec}
*{box-sizing:border-box}body{margin:0;font:14px/22px system-ui,sans-serif;color:var(--ink);background:#fff}
main{max-width:1100px;margin:0 auto;padding:20px}h1{font-weight:400;font-size:28px;margin:8px 0}h2{font-weight:400;font-size:20px;margin:22px 0 8px}
nav{display:flex;gap:18px;border-bottom:1px solid var(--rule);overflow-x:auto}nav button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 0;font:inherit;color:var(--ink2);cursor:pointer;min-height:44px;white-space:nowrap}nav button.on{color:var(--ink);border-color:var(--ink)}
button,input,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--rule);border-radius:4px;padding:8px;width:100%;color:var(--ink)}textarea{min-height:56px}
.btn,.chip{border:1px solid var(--rule);background:#fff;border-radius:4px;padding:6px 12px;cursor:pointer;min-height:36px;width:auto}.on.btn,.on.chip{background:var(--ink);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.tile{border:1px solid var(--rule);border-radius:8px;padding:10px}.tile b{display:block;font-size:24px}
.row{display:grid;grid-template-columns:120px 1fr auto auto;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--rule);cursor:pointer}.box{border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.card{border:1px solid var(--rule);border-radius:8px;padding:14px;margin:8px 0}.mini{font-size:12px;color:var(--ink2)}.proj{font-size:12px;font-weight:600;color:var(--ink2);text-transform:uppercase}
.msg{margin:6px 0;padding:6px 8px;border-radius:6px;background:var(--sand)}.msg.assistant{background:#e9f2ef}.login{max-width:320px;margin:20vh auto}.err{color:var(--red)}
@media(max-width:600px){.row{grid-template-columns:1fr auto}.row .rt{grid-column:1/-1}}
.bubbles{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--rule);border-radius:8px;margin:8px 0;background:#fbfaf9}
.bub{max-width:80%;padding:8px 12px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere}.bub .mini{display:block}
.bub.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}.bub.me .mini{color:#d6d3d4}
.bub.ai{align-self:flex-start;background:#e9f2ef;border-bottom-left-radius:4px}

.pi{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;color:#fff;font-size:11px;font-weight:700;margin-right:6px;vertical-align:-3px;text-transform:none}.pimg{object-fit:contain;background:#fff;border:1px solid var(--rule);padding:1px;display:inline-block}.tag{font-size:12px;border:1px solid var(--rule);border-radius:10px;padding:1px 8px}.card.pr1{border-left:3px solid var(--red)}

.card.k-wait,.row.k-wait{border-left:4px solid #d99a2b}.card.k-run,.row.k-run{border-left:4px solid #73a89a}.card.k-watch,.row.k-watch{border-left:4px solid #6f9bd1}.card.k-pause,.row.k-pause{border-left:4px solid #b4b0b2}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0;font-size:12px;color:var(--ink2)}.sw{display:inline-block;width:14px;height:10px;border-radius:2px;margin-right:4px}
.k-run.sw,.gbar.k-run{background:#73a89a}.k-wait.sw,.gbar.k-wait{background:#d99a2b}.k-watch.sw,.gbar.k-watch{background:#6f9bd1}.k-pause.sw,.gbar.k-pause{background:repeating-linear-gradient(45deg,#c0bebf 0 4px,#fff 4px 8px);border:1px solid #c0bebf}
.gscroll{overflow-x:auto}.gantt{min-width:820px}.grow{display:grid;grid-template-columns:300px 1fr;border-bottom:1px solid var(--rule);align-items:center}.glabel{padding:4px 8px;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gtrack{position:relative;height:26px}.gtick{position:absolute;top:4px;font-size:11px;color:var(--ink2)}.gbar{position:absolute;top:7px;height:12px;border-radius:3px}.gtoday{position:absolute;top:0;bottom:0;width:2px;background:var(--red);opacity:.6}
.sub{margin:4px 0;padding:2px 8px;border-left:3px solid #d99a2b;background:#fdf3de;list-style:none}.sub.done{border-color:#4d9a6a;background:#e6f4ea}
@media(max-width:600px){.grow{grid-template-columns:130px 1fr}.gantt{min-width:640px}.glabel{font-size:11px}}
