:root{--bg: #f4f6f8;--panel: #ffffff;--ink: #1b2530;--muted: #5c6b7a;--line: #dde4ea;--accent: #0e3a2f;--accent-2: #176b53;--warn: #b45309;--err: #b91c1c;--ok: #15803d;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}.app main{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.topnav{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--accent);color:#fff;padding:12px 24px}.topnav a{color:#fff;text-decoration:none}.brand{font-weight:700;font-size:18px}.brand-sub{font-weight:400;font-size:12px;opacity:.75;margin-left:8px}.topnav nav{display:flex;gap:16px}.topnav nav a{font-size:14px;opacity:.8;padding-bottom:2px;border-bottom:2px solid transparent}.topnav nav a.active{opacity:1;border-bottom-color:#fff}h1{font-size:22px;margin:20px 0 12px}h2{font-size:17px;margin:28px 0 10px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:20px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}tr:last-child td{border-bottom:none}.row-link{color:var(--accent-2);font-weight:600;text-decoration:none}.row-link:hover{text-decoration:underline}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}button,.button{font:inherit;font-weight:600;border:none;border-radius:6px;padding:8px 14px;cursor:pointer;background:var(--accent-2);color:#fff;text-decoration:none;display:inline-block}button.secondary{background:#fff;color:var(--accent-2);border:1px solid var(--accent-2)}button:disabled{opacity:.5;cursor:not-allowed}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.badge.status-planning,.badge.status-created,.badge.status-coding,.badge.status-review,.badge.status-building{background:#dbeafe;color:#1d4ed8}.badge.status-plan_review,.badge.status-awaiting_build{background:#fef3c7;color:#92400e}.badge.status-completed{background:#dcfce7;color:var(--ok)}.badge.status-failed,.badge.status-locked{background:#fee2e2;color:var(--err)}.badge.status-rejected{background:#e5e7eb;color:#4b5563}.badge.score-ok{background:#dcfce7;color:var(--ok)}.badge.score-warn{background:#fef3c7;color:var(--warn)}.badge.score-bad{background:#fee2e2;color:var(--err)}.notice{border-radius:6px;padding:10px 12px;font-size:14px;margin:10px 0}.notice.warn{background:#fef3c7;color:#7c4a03;border:1px solid #f3d38b}.notice.err{background:#fee2e2;color:#7f1d1d;border:1px solid #f0aeae}.notice.info{background:#e0f2fe;color:#0c4a6e;border:1px solid #b6dcf1}.muted{color:var(--muted);font-size:13px}.log{list-style:none;margin:0;padding:0;font-size:13px;max-height:320px;overflow-y:auto}.log li{display:grid;grid-template-columns:96px 92px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.log li.handoff{background:#f0fdf9}.log li.notification{background:#eff6ff}.log li.warning{background:#fffbeb}.log li.error{background:#fef2f2}.log .agent{font-weight:700;text-transform:capitalize}.log .etype{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.4px;padding-top:2px}pre.diff{background:#0f172a;color:#d3e0f0;font-size:12px;padding:12px;border-radius:6px;overflow-x:auto;line-height:1.5}pre.diff .add{color:#86efac}pre.diff .hdr{color:#93c5fd}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.chip{background:#eef2f5;border:1px solid var(--line);border-radius:999px;font-size:12px;padding:2px 10px;color:#374151}.bar-row{display:grid;grid-template-columns:220px 1fr 90px;gap:10px;align-items:center;margin:6px 0;font-size:13px}.bar-track{background:#eef2f5;border-radius:4px;height:14px;overflow:hidden}.bar-fill{background:var(--accent-2);height:100%}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}.stat-card .value{font-size:24px;font-weight:700;margin-top:4px}.error-text{color:var(--err);font-size:14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 860px){.two-col{grid-template-columns:1fr}}
