:root{
  --bg:#F2EDE2; --surface:#FCFAF4; --surface-2:#F7F2E6;
  --ink:#23201A; --ink-soft:#6B6355; --rule:#DCD3BE;
  --accent:#AE3A2C; --accent-soft:#F1DCD6;
  --amber:#8F6318; --amber-soft:#EFE1C4;
  --moss:#3F5C36; --moss-soft:#DCE6D2;
  --slate:#4C5560; --slate-soft:#E1E4E7;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#1B1712; --surface:#241F19; --surface-2:#2B251E;
    --ink:#ECE4D4; --ink-soft:#B7AC97; --rule:#3C362C;
    --accent:#E2735F; --accent-soft:#442420;
    --amber:#D9A94D; --amber-soft:#40331B;
    --moss:#8FB27F; --moss-soft:#2C3A27;
    --slate:#9AA6B0; --slate-soft:#31363B;
  }
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  line-height:1.55;
}
a{color:var(--accent);}
h1,h2,h3{font-family:Georgia,'Iowan Old Style',serif; margin:0 0 .35em; text-wrap:balance;}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-variant-numeric:tabular-nums;}

.topbar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.9rem 1.5rem; border-bottom:1px solid var(--rule); background:var(--surface);
  position:sticky; top:0; z-index:10; flex-wrap:wrap;
}
.brand{font-family:Georgia,serif; font-weight:700; font-size:1.05rem;}
.brand .eyebrow{display:block; font-family:ui-monospace,monospace; font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:400;}
.topnav{display:flex; gap:1.2rem; font-size:.9rem;}
.topnav a{color:var(--ink-soft); text-decoration:none; padding:.3em 0; border-bottom:2px solid transparent;}
.topnav a.active{color:var(--ink); border-bottom-color:var(--accent);}

.wrap{max-width:980px; margin:0 auto; padding:2rem 1.5rem 5rem;}

.filters{display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-bottom:1.5rem;}
.filters a, .filters span.tag{
  font-family:ui-monospace,monospace; font-size:.75rem; padding:.3em .7em; border-radius:99px;
  border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; background:var(--surface);
}
.filters a.active{background:var(--ink); color:var(--bg); border-color:var(--ink);}
.stat-row{display:flex; gap:1.5rem; flex-wrap:wrap; margin-bottom:1.5rem;}
.stat{background:var(--surface); border:1px solid var(--rule); border-radius:8px; padding:.8rem 1.1rem; min-width:110px;}
.stat .num{font-family:ui-monospace,monospace; font-size:1.4rem; font-weight:700; display:block;}
.stat .label{font-size:.72rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}

.group{border:1px solid var(--rule); border-radius:8px; background:var(--surface); margin-bottom:1rem; overflow:hidden;}
.group.has-high{border-left:4px solid var(--accent);}
.group:not(.has-high){border-left:4px solid var(--amber);}
.group-head{display:flex; justify-content:space-between; align-items:center; padding:1rem 1.2rem; gap:1rem; flex-wrap:wrap;}
.group-head h2{font-size:1.05rem; margin:0;}
.group-meta{display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; font-size:.8rem; color:var(--ink-soft);}
.group-actions{padding:0 1.2rem 1rem;}
.btn{
  display:inline-block; font-size:.82rem; padding:.4em .9em; border-radius:6px; border:1px solid var(--ink);
  background:var(--ink); color:var(--bg); text-decoration:none; cursor:pointer; font-family:inherit;
}
.btn.secondary{background:transparent; color:var(--ink); }

.chip{display:inline-flex; align-items:center; gap:.3em; font-family:ui-monospace,monospace;
  font-size:.7rem; padding:.15em .55em; border-radius:99px; font-weight:600; white-space:nowrap;}
.chip--high{background:var(--accent-soft); color:var(--accent);}
.chip--medium{background:var(--amber-soft); color:var(--amber);}
.chip--author{background:var(--slate-soft); color:var(--slate);}
.chip--cms{background:var(--moss-soft); color:var(--moss);}
.chip--open{background:var(--slate-soft); color:var(--slate);}
.chip--done{background:var(--moss-soft); color:var(--moss);}
.chip--skipped{background:var(--surface-2); color:var(--ink-soft);}
.chip--retracted{background:var(--moss-soft); color:var(--moss);}

.issue-card{border-top:1px solid var(--rule); padding:.9rem 1.2rem; display:flex; gap:.9rem; align-items:flex-start;}
.issue-card.done{opacity:.55;}
.issue-card .issue-main{flex:1; min-width:0;}
.issue-card .issue-title{font-weight:600; margin-bottom:.2em;}
.issue-card .issue-summary{font-size:.9rem; color:var(--ink-soft); margin-bottom:.3em;}
.issue-card .issue-quote{font-style:italic; font-size:.85rem; color:var(--ink-soft); border-left:2px solid var(--rule); padding-left:.7em; margin:.4em 0;}
.issue-card .issue-meta{display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin-top:.4em;}
.issue-card .article-link{font-size:.82rem; color:var(--ink-soft); text-decoration:none; border-bottom:1px dotted var(--rule);}
.issue-actions{display:flex; gap:.4rem; flex-shrink:0;}
.icon-btn{
  border:1px solid var(--rule); background:var(--surface); border-radius:6px; width:2rem; height:2rem;
  display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.85rem; color:var(--ink-soft);
}
.icon-btn:hover{border-color:var(--ink); color:var(--ink);}
.icon-btn.done-btn.is-done{background:var(--moss-soft); color:var(--moss); border-color:var(--moss);}

.article-head{border-bottom:1px solid var(--rule); padding-bottom:1.2rem; margin-bottom:1.5rem;}
.article-head .byline{color:var(--ink-soft); font-size:.9rem;}
.verdict-badge{display:inline-block; background:var(--ink); color:var(--bg); font-family:ui-monospace,monospace;
  font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; padding:.3em .7em; border-radius:4px; font-weight:700;}
@media (prefers-color-scheme: dark){.verdict-badge{background:var(--ink); color:var(--bg);}}

.section-title{font-family:ui-monospace,monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); margin:2rem 0 .8rem;}

.progress-bar{height:8px; background:var(--surface-2); border-radius:99px; overflow:hidden; border:1px solid var(--rule);}
.progress-bar > div{height:100%; background:var(--moss);}

.dash-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; margin-bottom:2rem;}
.dash-card{background:var(--surface); border:1px solid var(--rule); border-radius:8px; padding:1rem 1.2rem;}
.dash-card h3{font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; font-family:ui-monospace,monospace; color:var(--ink-soft); margin-bottom:.6rem;}

.article-row{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--rule);}
.article-row:last-child{border-bottom:none;}

.retract-list{list-style:none; margin:0; padding:0;}
.retract-list li{border-left:3px solid var(--moss); background:var(--surface); border-radius:0 6px 6px 0; padding:.8rem 1.1rem; margin-bottom:.6rem; font-size:.9rem;}

.empty{color:var(--ink-soft); font-style:italic; padding:2rem 0;}
