:root { --fg:#1d232a; --muted:#6a737d; --line:#e1e4e8; --bg:#fff; --accent:#0b62a4; --add:#e6ffed; --del:#ffeef0; --warn:#b45309; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui, sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
header.top { display:flex; justify-content:space-between; align-items:center; padding:.6rem 1.2rem; border-bottom:1px solid var(--line); }
header.top .brand { font-weight:700; font-size:1.1rem; color:var(--fg); }
header.top nav a, header.top nav form { margin-left:1rem; }
main { max-width:1100px; margin:1rem auto; padding:0 1rem; }
.inline { display:inline; } button.link { background:none; border:0; color:var(--accent); cursor:pointer; padding:0; font:inherit; }
button { font:inherit; padding:.3rem .8rem; border:1px solid var(--line); background:#f6f8fa; border-radius:4px; cursor:pointer; }
button.danger { color:#b91c1c; }
.muted { color:var(--muted); } .nowrap { white-space:nowrap; } .num { text-align:right; }
.flash { padding:.5rem .8rem; border-radius:4px; background:#eef6ff; margin-bottom:1rem; } .flash.error { background:var(--del); } .flash.success { background:var(--add); }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size:13px; }
pre { margin:0; white-space:pre-wrap; word-break:break-word; }
.badge, .phase, .topic, .branch, .tag, .warn { display:inline-block; font-size:12px; padding:0 .4rem; border-radius:10px; border:1px solid var(--line); }
.phase-public { background:#eef; } .phase-draft { background:#fff7e6; } .topic { background:#eafaf1; } .branch { background:#f3e8ff; } .tag { background:#fef9c3; }
.warn { color:var(--warn); border-color:var(--warn); }
.badge.role { background:#f6f8fa; }
.skip, .sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip:focus { position:static; width:auto; height:auto; clip-path:none; display:block; padding:.4rem 1.2rem; background:#eef6ff; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
main#repo { max-width:1320px; }
.repohead { border-bottom:1px solid var(--line); padding-bottom:.6rem; margin-bottom:1rem; }
.repotitle { display:flex; flex-wrap:wrap; align-items:baseline; gap:.4rem; } .repotitle h1 { margin:.2rem .4rem .2rem 0; }
.repohead p { margin:.2rem 0; }
.clone summary { cursor:pointer; color:var(--accent); width:max-content; }
.clone dl { display:grid; grid-template-columns:max-content minmax(0, 1fr); gap:.3rem .8rem; margin:.4rem 0; }
.clone dt { color:var(--muted); } .clone dd { margin:0; }
code.copy { user-select:all; display:inline-block; max-width:100%; overflow-wrap:anywhere; background:#f6f8fa; padding:.1rem .4rem; border:1px solid var(--line); border-radius:3px; cursor:text; }
.repolayout { display:grid; grid-template-columns:11rem minmax(0, 1fr); gap:2rem; align-items:start; }
.reponav { position:sticky; top:1rem; }
.reponav ul { list-style:none; margin:0; padding:0; } .reponav ul + ul { margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--line); }
.reponav a { display:block; padding:.25rem .6rem; color:var(--fg); border-left:3px solid transparent; }
.reponav a[aria-current] { border-left-color:var(--accent); font-weight:600; background:#f6f8fa; }
.trail ol { list-style:none; margin:0 0 .4rem; padding:0; display:flex; flex-wrap:wrap; font-size:14px; }
.trail li + li::before { content:"›"; padding:0 .4rem; color:var(--muted); }
.mrhead h2 { margin:.2rem 0; } .mrhead p { margin:.2rem 0; }
.tabs { border-bottom:1px solid var(--line); margin:.8rem 0; } .tabs ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.tabs a { display:inline-block; padding:.4rem .8rem; color:var(--fg); border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabs a[aria-current] { border-bottom-color:var(--accent); font-weight:600; }
.subtabs { display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem; margin:.4rem 0 .8rem; border-bottom:1px solid var(--line); font-size:14px; }
.subtabs .label { color:var(--muted); }
.subtabs ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.subtabs a { display:block; padding:.25rem .6rem; color:var(--fg); border-bottom:2px solid transparent; margin-bottom:-1px; }
.subtabs a[aria-current] { border-bottom-color:var(--accent); font-weight:600; }
.subtabs .hint { font-size:11px; color:var(--muted); font-weight:normal; }
@media (max-width: 760px) {
  .repolayout { grid-template-columns:minmax(0, 1fr); gap:.5rem; }
  .reponav { position:static; border-bottom:1px solid var(--line); padding-bottom:.4rem; }
  .reponav, .reponav ul { display:flex; flex-wrap:wrap; }
  .reponav ul + ul { margin:0; padding:0; border:0; }
  .reponav a { border-left:0; border-bottom:2px solid transparent; }
  .reponav a[aria-current] { border-bottom-color:var(--accent); background:none; }
}
table.list { width:100%; border-collapse:collapse; } table.list td, table.list th { border-bottom:1px solid var(--line); padding:.35rem .4rem; text-align:left; vertical-align:top; }
table.code, table.diff { width:100%; border-collapse:collapse; border:1px solid var(--line); }
table.code td.ln, table.diff td.ln { width:1%; color:var(--muted); text-align:right; padding:0 .5rem; user-select:none; font-family:ui-monospace,monospace; font-size:12px; }
table.diff tr.add { background:var(--add); } table.diff tr.del { background:var(--del); } table.diff tr.hunk td { background:#f1f8ff; color:var(--muted); font-family:ui-monospace,monospace; font-size:12px; padding:.2rem .5rem; }
.filediff { margin:1.2rem 0; } .filediff h3 { font-size:14px; background:#f6f8fa; padding:.4rem .6rem; border:1px solid var(--line); margin:0; }
.status { font-size:12px; text-transform:uppercase; margin-right:.4rem; color:var(--muted); }
.form p { margin:.5rem 0; } .form input, .form select, .form textarea { font:inherit; padding:.3rem; min-width:20rem; }
.inline-form p { display:inline-block; margin-right:1rem; }
.markdown { border:1px solid var(--line); padding:1rem 1.5rem; border-radius:4px; margin-top:1rem; }
.repolist { list-style:none; padding:0; } .repolist li { padding:.5rem 0; border-bottom:1px solid var(--line); } .repolist p { margin:.2rem 0 0; }
.revline { margin:.5rem 0; } .crumbs { margin:.5rem 0; } table.meta th { text-align:left; padding-right:1rem; color:var(--muted); font-weight:normal; vertical-align:top; }
.desc { background:#f6f8fa; padding:.6rem; border-radius:4px; } .token { user-select:all; }
.push { border-bottom:1px solid var(--line); } .push h3 { font-size:14px; font-weight:normal; } .pager a { margin-right:1rem; }
.state-open { background:#eafaf1; } .state-merged { background:#ede9fe; } .state-closed { background:#f3f4f6; }
.link { display:inline-block; font-size:12px; color:var(--muted); margin-left:.4rem; }
tr.divergent { background:#fff7ed; } .filters { margin:.5rem 0; } .filters a[aria-current] { font-weight:600; color:var(--fg); }
.thread { border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:4px; padding:.4rem .6rem; margin:.4rem 0; background:#fbfdff; font-family:system-ui, sans-serif; }
.thread.resolved { border-left-color:var(--muted); opacity:.8; } .thread .note { margin:0 0 .3rem; font-size:12px; }
.comment { margin:.3rem 0; } .comment.draft { background:#fff7e6; } .comment .body { border:0; padding:0; margin:.2rem 0 0; }
.commentform textarea, .reviewform textarea { width:100%; font:inherit; } .commentform label, .reviewform label { margin-right:1rem; font-size:13px; }
tr.threads td { padding:.2rem .5rem; background:#fff; } a.addc { color:var(--muted); } a.addc:hover { color:var(--accent); }
tr.base td, tr.hunk.base td { opacity:.65; } .filediff.baseonly h3 { color:var(--muted); }
.verdict-approve { background:var(--add); } .verdict-request_changes { background:var(--del); }
.mergebox, .discussion, .verdicts, .divergence { margin:1.5rem 0; } .mergebox { border:1px solid var(--line); padding:.6rem 1rem; border-radius:4px; }
.blockers { color:#b91c1c; } .review { border-bottom:1px solid var(--line); padding:.4rem 0; } .compare { margin:.6rem 0; }
.divergence { border:1px solid var(--warn); border-radius:4px; padding:.6rem 1rem; background:#fffaf2; }
button[disabled] { opacity:.5; cursor:not-allowed; }
table.diff tr.selected td { background:#fff8c5; } table.diff tr.selected td.ln:first-child { box-shadow:inset 3px 0 0 var(--accent); }
table.diff td.ln a.addc { color:var(--muted); display:block; } table.diff td.ln a.addc:hover { color:var(--accent); text-decoration:underline; }
a.hunkc { margin-left:1rem; font-family:system-ui, sans-serif; }
.tabs .hint { font-size:11px; color:var(--muted); font-weight:normal; }
.threadgroup { margin:1.5rem 0; } .threadgroup h3 { border-bottom:1px solid var(--line); padding-bottom:.2rem; }
.threaditem { margin:1rem 0; } .threaditem .where { margin:.2rem 0; }
ol.steps { margin:.2rem 0 .4rem; padding-left:1.4rem; font-size:14px; }
.commentform .where label { display:block; margin:.2rem 0; } .commentform .where select { max-width:100%; }
details.outline { margin:.5rem 0; } details.outline ul { list-style:none; margin:.3rem 0; padding:0; columns:2 22rem; font-family:ui-monospace,monospace; font-size:13px; }
details.outline li.depth-1 { padding-left:1.2rem; } details.outline li.depth-2 { padding-left:2.4rem; } details.outline li.depth-3 { padding-left:3.6rem; } details.outline li.depth-4 { padding-left:4.8rem; }
.mdtoolbar { display:flex; flex-wrap:wrap; gap:.2rem; margin:.2rem 0; } .mdtoolbar button { font-size:12px; padding:.1rem .5rem; min-width:2rem; }
.mdtoolbar .mdtoggle { margin-left:auto; } .mdpreview { border:1px solid var(--line); border-radius:4px; padding:.3rem .6rem; background:#fff; }
.mdpreview .markdown { border:0; padding:0; margin:0; }
/* narrations: code first, prose beside it (docs/narrations/README.md 1) */
ol.steps { list-style:none; padding:0; margin:1rem 0; counter-reset:step; }
li.step { border-top:1px solid var(--line); padding:.8rem 0; counter-increment:step; }
li.step .code .where { margin:0 0 .3rem; font-size:13px; } li.step .prose { margin:.5rem 0 0 .5rem; padding-left:.6rem; border-left:3px solid var(--accent); } li.step .prose .stephead { margin:0 0 .4rem; }
li.step .prose .stephead::before { content:counter(step) ". "; color:var(--muted); }
table.diff.excerpt tr.marked td { background:#fff8c5; } table.diff.excerpt tr.marked td.ln:first-child { box-shadow:inset 3px 0 0 var(--accent); }
.badge.severity-blocker, .badge.severity-major { border-color:#b91c1c; color:#b91c1c; }
.badge.state-accepted, .badge.state-accepted_modified, .badge.state-implemented { border-color:#15803d; color:#15803d; }
.badge.state-rejected { border-color:var(--muted); color:var(--muted); }
.evidence { font-size:13px; margin:.2rem 0 .4rem; padding-left:1.2rem; }
form.triage textarea { width:100%; } form.triage button.primary { font-weight:600; } form.triage button.small, form.inline button.small { font-size:12px; opacity:.8; }
.decision { font-size:13px; background:#f6f8fa; padding:.3rem .5rem; border-radius:4px; }
form.stacked label { display:block; margin:.3rem 0; }
/* issues */
.issuehead .issuebar { display:flex; flex-wrap:wrap; gap:.6rem; align-items:baseline; }
.inlineform { display:inline-flex; gap:.3rem; align-items:baseline; margin:0; }
.inlineform button { font-size:12px; opacity:.85; }
.issuehead, .pagehead { margin-bottom:.6rem; }
.assignees { list-style:none; margin:.2rem 0; padding:0; } .assignees li { margin:.15rem 0; }
ul.relations { list-style:none; margin:.2rem 0; padding:0; } .relations li { margin:.15rem 0; }
.relationform { display:flex; flex-wrap:wrap; gap:.5rem; align-items:baseline; }
/* the feed: a timeline of events and comments */
ol.feed { list-style:none; margin:.5rem 0; padding:0; }
.feeditem { border-left:2px solid var(--line); padding:.15rem 0 .15rem .7rem; margin:0; }
.feeditem .event { margin:.1rem 0; font-size:13px; color:var(--muted); }
.feeditem .steptitle { margin:.2rem 0 0; font-weight:600; }
/* dependency structure matrix */
table.dsm { border-collapse:collapse; margin:.8rem 0; font-size:13px; }
table.dsm caption { caption-side:top; text-align:left; color:var(--muted); padding-bottom:.3rem; }
table.dsm th, table.dsm td { border:1px solid var(--line); padding:.15rem .45rem; text-align:center; }
table.dsm th[scope=row] { text-align:left; }
table.dsm td.mark { background:var(--accent); color:#fff; font-weight:700; }
