/* Default politburo site theme — the fixed default look. A project changes only
   its colors via .politburo/_theme.css (Phase 040-030), layered in at build.
   Custom-property seams (--pb-*) are what a project theme is allowed to recolor. */
:root {
  --pb-bg: #12141a; --pb-fg: #e7e9ee; --pb-muted: #98a0b3;
  --pb-accent: #d33; --pb-card: #1b1e27; --pb-line: #2a2e3a;
  --pb-done: #3fb950; --pb-progress: #d29922; --pb-pending: #6e7681;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--pb-bg); color: var(--pb-fg);
  font: 15px/1.5 system-ui, sans-serif; }
.pb-root { max-width: 62rem; margin: 0 auto; padding: 2rem 1.25rem; }
a { color: var(--pb-accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { margin: 0 0 .25rem; }
.pb-sub, .pb-meta, .pb-nav { color: var(--pb-muted); }
.pb-nav { margin-bottom: 1rem; font-size: .9rem; }
.pb-projects, .pb-memex-list { list-style: none; padding: 0; }
.pb-projects li, .pb-memex-list li { padding: .5rem 0; border-bottom: 1px solid var(--pb-line); }
.pb-board { display: grid; gap: .75rem; margin-top: 1rem; }
.pb-phase { background: var(--pb-card); border: 1px solid var(--pb-line);
  border-radius: 8px; padding: .75rem 1rem; }
.pb-phase header { display: flex; justify-content: space-between; align-items: baseline; }
.pb-phase-title { font-weight: 600; }
.pb-progress { color: var(--pb-muted); font-variant-numeric: tabular-nums; }
.pb-bar { height: 6px; background: var(--pb-line); border-radius: 3px; overflow: hidden; margin: .4rem 0; }
.pb-bar > span { display: block; height: 100%; background: var(--pb-progress); }
.pb-status-done .pb-bar > span { background: var(--pb-done); }
.pb-status-pending .pb-bar > span { background: var(--pb-pending); }
.pb-summary { margin: .35rem 0 0; color: var(--pb-muted); }
.pb-tasks { list-style: none; padding: .25rem 0 0; margin: .35rem 0 0; }
.pb-tasks li { padding: .15rem 0; font-size: .92rem; }
.pb-tasks li.pb-closed { color: var(--pb-muted); text-decoration: line-through; }
.pb-doc, .pb-plan-doc { margin-top: 1rem; }
.pb-type { color: var(--pb-muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }

/* login control (site/static/login.js) */
.pb-auth { position: fixed; right: .75rem; bottom: .75rem; z-index: 20;
  display: flex; align-items: center; gap: .5rem;
  background: var(--pb-card); border: 1px solid var(--pb-line);
  border-radius: 999px; padding: .3rem .5rem .3rem .8rem;
  font-size: .85rem; color: var(--pb-muted); }
.pb-auth button { font: inherit; cursor: pointer; color: var(--pb-accent);
  background: none; border: 1px solid var(--pb-line);
  border-radius: 999px; padding: .15rem .7rem; }
.pb-auth button:hover { border-color: var(--pb-accent); }
