:root{
  --bg:#0e1117; --panel:#161b22; --panel2:#1c2230; --ink:#e6edf3; --muted:#9aa7b4;
  --line:#2a313c; --accent:#4f9cff; --accent2:#a371f7; --good:#3fb950; --warn:#d29922; --bad:#f85149;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1180px;margin:0 auto;padding:36px 24px 80px}
code,.mono{font-family:var(--mono)}

header{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:26px;
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;justify-content:space-between}
header h1{font-size:1.6rem;margin:0;letter-spacing:-.02em}
header .sub{color:var(--muted);font-size:.85rem;font-family:var(--mono)}
.statusline{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.conn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.8rem;
  padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel2)}
.conn .dot{width:9px;height:9px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 0 transparent}
.conn.live{color:var(--good);border-color:var(--good)} .conn.live .dot{background:var(--good);
  box-shadow:0 0 8px var(--good);animation:pulse 1.8s infinite}
.conn.down{color:var(--warn);border-color:var(--warn)} .conn.down .dot{background:var(--warn)}
.conn.stale{color:var(--warn)}
@keyframes pulse{0%{opacity:1}50%{opacity:.35}100%{opacity:1}}
.updated{color:var(--muted);font-size:.78rem;font-family:var(--mono)}

.banner{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent2);
  border-radius:10px;padding:12px 16px;margin:0 0 26px;color:var(--muted);font-size:.88rem}
.banner b{color:var(--ink)}
.banner .nomoney{color:var(--warn);font-family:var(--mono);font-size:.78rem;border:1px solid var(--warn);
  border-radius:6px;padding:1px 7px;margin-left:6px}

h2{font-size:1.05rem;margin:34px 0 14px;letter-spacing:-.01em;display:flex;align-items:baseline;gap:10px}
h2 .sec{font-family:var(--mono);font-size:.72rem;color:var(--accent);font-weight:400}

/* Milestones */
.milestones{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ms-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.ms-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.ms-key{font-family:var(--mono);color:var(--accent);font-weight:700;font-size:.95rem}
.ms-title{color:var(--ink);font-size:.86rem;font-weight:600;flex:1}
.ms-count{font-family:var(--mono);color:var(--muted);font-size:.78rem;white-space:nowrap}
.ms-bar{position:relative;height:14px;border-radius:7px;overflow:hidden;background:var(--panel2);border:1px solid var(--line)}
.ms-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),var(--good));
  transition:width .4s ease}
.ms-desc{color:var(--muted);font-size:.76rem;margin-top:8px;line-height:1.4}

/* Status board */
.board{display:grid;gap:12px;grid-template-columns:repeat(6,1fr)}
@media(max-width:1100px){.board{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.board{grid-template-columns:repeat(2,1fr)}}
.col{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;min-height:120px}
.col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
  padding-bottom:8px;border-bottom:1px solid var(--line)}
.col-name{font-size:.82rem;font-weight:600;display:flex;align-items:center;gap:7px}
.col-name .swatch{width:8px;height:8px;border-radius:2px;background:var(--muted)}
.col-count{font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.col[data-status="Backlog"] .swatch{background:var(--muted)}
.col[data-status="Blocked"] .swatch{background:var(--bad)}
.col[data-status="Ready"] .swatch{background:var(--accent)}
.col[data-status="In progress"] .swatch{background:var(--warn)}
.col[data-status="PR open"] .swatch{background:var(--accent2)}
.col[data-status="Done"] .swatch{background:var(--good)}
.chips{display:flex;flex-direction:column;gap:7px}
.chip{display:block;background:var(--panel2);border:1px solid var(--line);border-radius:8px;
  padding:7px 9px;font-size:.78rem;color:var(--ink);transition:border-color .15s}
.chip:hover{border-color:var(--accent);text-decoration:none}
.chip .num{font-family:var(--mono);color:var(--muted);font-size:.72rem;margin-right:5px}
.chip .mtag{font-family:var(--mono);font-size:.66rem;color:var(--accent);margin-left:5px}
.chip .real{display:inline-block;font-family:var(--mono);font-size:.62rem;color:var(--warn);
  border:1px solid var(--warn);border-radius:4px;padding:0 5px;margin-left:5px;vertical-align:middle}
.empty{color:var(--muted);font-size:.74rem;font-style:italic;padding:4px 2px}

/* Activity feed */
.feed{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 0;max-height:420px;overflow:auto}
.feed-item{display:flex;gap:12px;align-items:baseline;padding:9px 16px;border-bottom:1px solid var(--line);font-size:.82rem}
.feed-item:last-child{border-bottom:none}
.feed-item .fts{font-family:var(--mono);font-size:.7rem;color:var(--muted);white-space:nowrap;min-width:74px}
.feed-item .fkind{font-family:var(--mono);font-size:.66rem;padding:1px 7px;border-radius:5px;border:1px solid var(--line);white-space:nowrap}
.fkind.k-issue-closed,.fkind.k-pr-merged{color:var(--good);border-color:var(--good)}
.fkind.k-pr-opened{color:var(--accent2);border-color:var(--accent2)}
.fkind.k-issue-status{color:var(--accent);border-color:var(--accent)}
.feed-item .ftext{flex:1;color:var(--ink)}
.feed-empty{color:var(--muted);font-size:.8rem;padding:16px;font-style:italic}

footer{margin-top:54px;color:var(--muted);font-size:.78rem;border-top:1px solid var(--line);padding-top:16px;font-family:var(--mono)}
