@font-face{font-family:'Satoshi';src:url('fonts/satoshi-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Satoshi';src:url('fonts/satoshi-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Satoshi';src:url('fonts/satoshi-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('fonts/jbmono-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{
  --bg:#f5f6ee;--surface:#fff;--surface-2:#f0f2e6;--border:#dde2cf;--ink:#1c2516;--muted:#5f6a56;
  --primary:#3b7a17;--primary-h:#2f6411;--on-primary:#fff;--link:#2e6a12;--leaf:#8cc63f;
  --ok:#2f7d1f;--ok-bg:#e4f3d6;--bad:#b3261e;--bad-bg:#fbe5e2;--warn:#8a5a00;--warn-bg:#fdf0cf;--merged:#6b46c1;
  --add-bg:#e3f6d5;--add-ln:#cdeeb4;--del-bg:#fde4e1;--del-ln:#f8c9c4;--hl:#fff7cc;
  --font:'Satoshi',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:8px;--shadow:0 1px 2px rgba(28,37,22,.06),0 6px 20px rgba(28,37,22,.07);
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f140c;--surface:#161d12;--surface-2:#1c2517;--border:#2b3822;--ink:#e7eddb;--muted:#9aa88d;
  --primary:#86c940;--primary-h:#9bdb55;--on-primary:#0f1a06;--link:#a3d867;--leaf:#a6e04a;
  --ok:#8fd26a;--ok-bg:#1d3314;--bad:#ff8f86;--bad-bg:#3a1a17;--warn:#f0c15a;--warn-bg:#352a0c;--merged:#b79cf5;
  --add-bg:#16301a;--add-ln:#1f4724;--del-bg:#3a1c1b;--del-ln:#55282a;--hl:#3b3a12;--shadow:0 1px 2px #0006,0 6px 20px #0005;}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--font);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0 0 .5em;font-weight:700}
h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}
p{margin:.5em 0}
code,pre,.mono,textarea.mono{font-family:var(--mono);font-size:.86em}
code{background:var(--surface-2);padding:.1em .35em;border-radius:5px}
pre{margin:0;overflow:auto}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.main{flex:1;padding-top:22px;padding-bottom:48px}
.muted{color:var(--muted)}.small{font-size:.87rem}.mt{margin-top:1.6rem}.grow{flex:1;min-width:0}.inl{display:inline}.big{font-size:1.4rem}
.top{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}
.topbar{display:flex;align-items:center;gap:16px;height:58px}
.brand{display:flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}
.brand:hover{text-decoration:none}.brand span{color:var(--ink)}
.search{flex:1;max-width:420px}
.search input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:7px 14px;color:var(--ink);font:inherit;font-size:.9rem}
.topnav{display:flex;align-items:center;gap:6px;margin-left:auto}
.icon-link{color:var(--ink);padding:6px 10px;border-radius:6px;font-weight:500;font-size:.92rem;white-space:nowrap}
.icon-link:hover{background:var(--surface-2);text-decoration:none}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:7px 14px;border-radius:7px;font:500 .92rem var(--font);cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--surface-2);text-decoration:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn.primary:hover{background:var(--primary-h)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}
.btn.danger:hover{background:var(--bad-bg)}
.btn.sm{padding:4px 10px;font-size:.85rem}
.btn.on{background:var(--ok-bg);border-color:var(--ok)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.linklike{background:none;border:0;color:var(--link);font:inherit;cursor:pointer;padding:6px 14px;width:100%;text-align:left}
.linklike:hover{background:var(--surface-2)}
.count{background:var(--surface-2);border-radius:999px;padding:0 7px;font-size:.78rem;font-weight:500;margin-left:6px;color:var(--muted)}
.count.dot{background:var(--primary);color:var(--on-primary)}
.menu{position:relative}.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:6px 0;z-index:30;max-height:340px;overflow:auto}
.menu-pop.wide{min-width:320px}.menu-pop a{display:block;padding:6px 14px;color:var(--ink)}.menu-pop a:hover,.menu-pop a.cur{background:var(--surface-2);text-decoration:none}
.menu-pop input{margin:0 12px 6px;width:calc(100% - 24px)}
.refpick .menu-pop,.clone .menu-pop{left:0;right:auto}.clone .menu-pop{right:0;left:auto}
.menu-head{padding:6px 14px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.avatar-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--primary);color:var(--on-primary);font-weight:700}
.av{display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;color:#fff;font-size:calc(var(--s)*.5);font-weight:700;flex:none;vertical-align:middle;margin-right:6px}
.ulink{display:inline-flex;align-items:center;font-weight:500}
.foot{border-top:1px solid var(--border);padding:18px 0;color:var(--muted);font-size:.85rem}
input,textarea,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:8px 10px;max-width:100%}
textarea{width:100%;resize:vertical}textarea.mono{font-size:.85rem;line-height:1.5}
label{display:block;font-weight:500;font-size:.92rem}
label>input:not([type=checkbox]):not([type=radio]):not(.inl-input),label>textarea,label>select{display:block;width:100%;margin-top:5px}
.row>label>select{width:auto;min-width:120px}
.side form.stack{margin-top:12px}
label.chk{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400}
fieldset{border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;display:flex;flex-direction:column;gap:8px}
legend{font-weight:700;padding:0 6px;font-size:.9rem}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.row.end{justify-content:flex-end;align-items:center}
.inline-form{display:flex;gap:10px;margin:10px 0;flex-wrap:wrap}.inline-form input:not(.short){flex:1;min-width:160px}.short{width:120px}
.inl-input{display:inline;width:auto;padding:3px 8px}
.narrow{max-width:760px;margin:0 auto}
.authbox{max-width:400px;margin:40px auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;box-shadow:var(--shadow)}
.authbox h1{text-align:center}
.flash{padding:10px 14px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border);margin:10px 0}
.flash.err{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}.flash.ok{background:var(--ok-bg);border-color:var(--ok)}
.token{display:block;margin-top:6px;word-break:break-all;padding:8px}
.empty{text-align:center;padding:48px 20px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--r);margin:16px 0}
.empty.small{padding:18px}.empty.left{text-align:left}
.sect{font-size:1.05rem;margin-bottom:12px}.sect-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.sect-head h1,.sect-head h2{margin:0}
.badge{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:0 9px;font-size:.76rem;font-weight:500;color:var(--muted);margin-left:8px;vertical-align:middle}
.badge.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}.badge.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);margin:8px 0 14px;flex-wrap:wrap}
.seg a{padding:6px 14px;color:var(--ink);font-weight:500;font-size:.9rem}.seg a.on{background:var(--primary);color:var(--on-primary)}.seg a:hover{text-decoration:none;background:var(--surface-2)}.seg a.on:hover{background:var(--primary-h)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:40px 0 36px}
.hero h1{font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);letter-spacing:-.025em;margin:.2em 0}
.eyebrow{color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin:0}
.lede{font-size:1.08rem;color:var(--muted);max-width:52ch}.cta{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}
.term{white-space:pre-wrap;word-break:break-all;background:#141b10;color:#dbe8c8;padding:20px;border-radius:12px;font-size:.85rem;line-height:1.7;box-shadow:var(--shadow);overflow:auto}
.term .muted{color:#7f9070}
.rlist,.plain,.feed{list-style:none;margin:0;padding:0}
.rlist{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.rlist>li{padding:14px 16px;border-bottom:1px solid var(--border)}.rlist>li:last-child{border-bottom:0}
.rcard .rname{font-weight:700;font-size:1.02rem}.rcard p{margin:.2em 0 .5em}.rmeta{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);align-items:center}
.topic{display:inline-block;background:var(--ok-bg);color:var(--link);padding:1px 10px;border-radius:999px;font-size:.8rem;margin:2px 4px 2px 0}
.plain li{padding:4px 0}.feed li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.urow,.irow,.crow{display:flex;gap:12px;align-items:center}.irow .ititle{font-weight:700;color:var(--ink)}.irow.unread{background:var(--surface-2)}
.sicon{width:12px;height:12px;border-radius:50%;background:var(--ok);flex:none;align-self:flex-start;margin-top:6px}
.sicon.closed{background:var(--bad)}.sicon.merged{background:var(--merged)}.sicon.draft{background:var(--muted)}
.state{display:inline-block;padding:2px 12px;border-radius:999px;font-weight:700;font-size:.8rem;background:var(--ok);color:#fff}
.state.closed{background:var(--bad)}.state.merged{background:var(--merged)}.state.draft{background:var(--muted)}
.label{display:inline-block;padding:0 9px;border-radius:999px;font-size:.76rem;font-weight:500;margin-left:3px;background:hsl(var(--h) 70% 88%);color:hsl(var(--h) 60% 24%)}
@media (prefers-color-scheme:dark){.label{background:hsl(var(--h) 40% 22%);color:hsl(var(--h) 70% 82%)}}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.cols.rev{grid-template-columns:minmax(0,1fr) 290px}
.side h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px;border-top:1px solid var(--border);padding-top:14px}.side h3:first-child{margin-top:0;border-top:0;padding-top:0}
.pcard{text-align:left}.pcard h1{margin:12px 0 0}
.repohead{margin:0 0 18px}.rh-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-bottom:12px}
.rh-title{font-size:1.3rem;margin:0;display:flex;align-items:center;flex-wrap:wrap}.sl{color:var(--muted);margin:0 6px}
.rh-actions{display:flex;gap:8px;flex-wrap:wrap}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}
.tab{padding:9px 14px;color:var(--ink);font-weight:500;border-bottom:2px solid transparent;white-space:nowrap;font-size:.92rem}
.tab:hover{background:var(--surface-2);text-decoration:none;border-radius:6px 6px 0 0}.tab.active{border-bottom-color:var(--primary);font-weight:700}
.tabs.sub{margin:14px 0}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar h2{margin:0}
.crumbs{font-size:1.02rem;margin:4px 0}.crumbwrap{margin-bottom:10px}
.file{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin:0 0 18px}
.file>header,.fh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap}
.latest{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center}
.fileactions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tree{width:100%;border-collapse:collapse}.tree td{padding:7px 14px;border-bottom:1px solid var(--border)}.tree tr:last-child td{border-bottom:0}.tree tr:hover{background:var(--surface-2)}
.tree .ico{width:34px;text-align:center}.tree .cmsg{max-width:0;width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree .when{width:130px;text-align:right;white-space:nowrap;font-size:.85rem}
.tree .fname a{color:var(--ink);font-weight:500}
.pad{padding:18px 24px}
.md{overflow-wrap:break-word}.md h1,.md h2{border-bottom:1px solid var(--border);padding-bottom:.3em;margin-top:1.4em}.md>:first-child{margin-top:0}
.md img{max-width:100%}.md pre{background:var(--surface-2);padding:14px;border-radius:var(--r)}.md pre code{background:none;padding:0}
.md table{border-collapse:collapse;display:block;overflow:auto}.md th,.md td{border:1px solid var(--border);padding:6px 12px}
.md blockquote{margin:1em 0;padding:0 1em;border-left:4px solid var(--border);color:var(--muted)}
.md ul.contains-task-list{list-style:none;padding-left:4px}
.blob{display:flex;overflow:auto;font-family:var(--mono);font-size:.84rem;line-height:1.55}
.gutter{display:flex;flex-direction:column;text-align:right;padding:12px 10px;color:var(--muted);user-select:none;background:var(--surface-2);border-right:1px solid var(--border);position:sticky;left:0}
.gutter a{color:var(--muted);display:block;height:1.55em}.gutter a:target,.gutter a:hover{color:var(--ink);text-decoration:none}
.codepre{padding:12px 16px;flex:1;margin:0;min-width:0;line-height:1.55;font-size:inherit}.codepre code{background:none;padding:0;font-size:inherit;display:block;white-space:pre}
.imgview{padding:24px;text-align:center}.imgview img{max-width:100%;border:1px solid var(--border);border-radius:6px}
.hljs-comment,.hljs-quote{color:#7a8a6e;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag{color:#b3265e}.hljs-string,.hljs-regexp,.hljs-addition{color:#2f7d1f}.hljs-number,.hljs-symbol,.hljs-bullet{color:#a65c00}.hljs-title,.hljs-section,.hljs-type,.hljs-class .hljs-title{color:#2a5fa8}.hljs-built_in,.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable{color:#7b3fb0}.hljs-meta,.hljs-deletion{color:#b3261e}
@media (prefers-color-scheme:dark){.hljs-comment,.hljs-quote{color:#7f9072}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag{color:#ff8aa8}.hljs-string,.hljs-regexp,.hljs-addition{color:#9be37a}.hljs-number,.hljs-symbol,.hljs-bullet{color:#ffb86b}.hljs-title,.hljs-section,.hljs-type,.hljs-class .hljs-title{color:#7db7ff}.hljs-built_in,.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable{color:#d3a4ff}.hljs-meta,.hljs-deletion{color:#ff8f86}}
.langbar{display:flex;height:8px;border-radius:99px;overflow:hidden;gap:2px;margin:6px 0 8px}.langbar span{display:block}
.seg0{background:#3b7a17}.seg1{background:#8cc63f}.seg2{background:#e0a526}.seg3{background:#3d8fb0}.seg4{background:#a05fb5}.seg5{background:#c9604a}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.diffstat{margin:6px 0 10px}span.add{color:var(--ok);font-weight:500}span.del{color:var(--bad);font-weight:500}
.filelist{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:8px 14px;margin-bottom:16px;font-size:.88rem;max-height:200px;overflow:auto}
.filelist a{color:var(--ink)}
.st{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:8px;background:var(--warn)}.st.added{background:var(--ok)}.st.deleted{background:var(--bad)}.st.renamed{background:var(--merged)}
table.diff{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.82rem;line-height:1.5}
.diff td{padding:0 8px;vertical-align:top}.diff .ln{width:1%;min-width:44px;text-align:right;color:var(--muted);user-select:none;white-space:nowrap}.diff .ln a{color:inherit}
.diff .code{width:100%;white-space:pre-wrap;word-break:break-all;position:relative}.diff .sg{display:inline-block;width:14px;color:var(--muted);user-select:none}
.diff tr.ins{background:var(--add-bg)}.diff tr.ins .ln{background:var(--add-ln)}.diff tr.del{background:var(--del-bg)}.diff tr.del .ln{background:var(--del-ln)}
.diff tr.hunk td{background:var(--surface-2);color:var(--muted);padding:4px 12px}
.diff tr.cm td{background:var(--surface);padding:10px 14px;font-family:var(--font);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.lc{display:inline-block;position:absolute;left:-2px;margin-top:0}.lc>summary{list-style:none;cursor:pointer;width:18px;height:18px;line-height:17px;text-align:center;border-radius:4px;background:var(--primary);color:var(--on-primary);opacity:0;font-family:var(--font);font-weight:700}
.lc>summary::-webkit-details-marker{display:none}tr:hover .lc>summary,.lc[open]>summary{opacity:1}
.lc form{position:absolute;z-index:5;top:20px;left:0;width:min(440px,80vw);background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:10px;box-shadow:var(--shadow);font-family:var(--font);display:flex;flex-direction:column;gap:8px}
.diff .code .t{padding-left:16px}.diff.blame .bl{width:310px;min-width:310px;font-family:var(--font);font-size:.8rem;white-space:nowrap;padding:0 12px;border-right:1px solid var(--border)}.diff.blame tr.top td{border-top:1px solid var(--border)}
.scrollx{overflow:auto}
.crow .ctitle{font-weight:700;color:var(--ink)}.cact{display:flex;gap:6px;align-items:center}
.commithead{padding:16px 20px}.commithead h2{margin-bottom:.3em}.cbody{white-space:pre-wrap;font-family:var(--mono);font-size:.85rem;background:var(--surface-2);padding:10px 14px;border-radius:var(--r);margin:10px 0}
.pager{display:flex;justify-content:center;gap:10px;margin:18px 0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:12px 0 24px}.stats div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;display:flex;flex-direction:column}.stats b{font-size:1.6rem}.stats span{color:var(--muted);font-size:.85rem}
.tbl{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin:8px 0}.tbl td{padding:8px 12px;border-bottom:1px solid var(--border)}.tbl tr:last-child td{border-bottom:0}.num{text-align:right;width:60px}
.bar{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;min-width:80px}.bar i{display:block;height:100%;background:var(--primary)}
.danger-t{color:var(--bad)}.danger-zone{border:1px solid color-mix(in srgb,var(--bad) 50%,var(--border));border-radius:var(--r)}
.danger-zone form{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border-bottom:1px solid var(--border)}.danger-zone form:last-child{border-bottom:0}
.ihead{margin-bottom:6px}.ihead h1{margin-bottom:8px}
.timeline{display:flex;flex-direction:column;gap:14px}
.cmt{background:var(--surface);border:1px solid var(--border);border-radius:var(--r)}.cmt-head{display:flex;gap:6px;align-items:center;padding:8px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);border-radius:var(--r) var(--r) 0 0;flex-wrap:wrap}.cmt-body{padding:12px 16px}.cmt-body:empty{display:none}
.cmt.inline{margin:6px 0}
.sysevt{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.9rem;padding-left:14px;border-left:2px solid var(--border);margin-left:14px}
.cbox{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-top:6px}
.mergebox{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:10px}
.mergebox.merged{border-color:var(--merged);background:color-mix(in srgb,var(--merged) 8%,var(--surface))}
.chk-line{padding:8px 12px;border-radius:6px;background:var(--surface-2);border-left:4px solid var(--border)}.chk-line.good{border-left-color:var(--ok);background:var(--ok-bg)}.chk-line.bad{border-left-color:var(--bad);background:var(--bad-bg)}.chk-line.warn{border-left-color:var(--warn);background:var(--warn-bg)}
.seg-radio{display:flex;flex-direction:column;gap:6px}.seg-radio label{display:flex;flex-direction:row;gap:8px;font-weight:400;align-items:center}
.pr-create{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 16px;margin:14px 0}.pr-create form{margin-top:12px}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.col{background:var(--surface-2);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:10px}.col h3{margin:0}
.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.card select{padding:3px 6px;font-size:.82rem;margin-top:4px}
.release{display:flex;gap:24px;padding:20px 0;border-bottom:1px solid var(--border)}.rel-meta{width:170px;flex:none}.release h2{margin-bottom:4px}.assets{display:flex;gap:16px;margin-top:10px}
.hit{padding:10px 16px}.hit pre{background:var(--surface-2);padding:6px 10px;border-radius:6px;margin-top:6px;white-space:pre-wrap}
.cm .md{font-family:var(--font)}
@media (max-width:860px){
  .cols,.cols.rev,.hero{grid-template-columns:1fr}.side{order:2}.board{grid-template-columns:1fr}
  .release{flex-direction:column;gap:6px}.rel-meta{width:auto}
  .tree .cmsg{display:none}.topbar{gap:8px;flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:8px}.search{order:3;flex-basis:100%;max-width:none}
  .topnav{gap:0}.wrap{padding:0 14px}.diff.blame .bl{display:none}.authbox{margin:16px auto;padding:20px}
}
@media (max-width:520px){.topnav>.icon-link:nth-child(-n+2){display:none}}
.file>header>b{flex:1;text-align:left}
.filelist a{text-decoration:none}.filelist a:hover{text-decoration:underline}
.filelist .add,.filelist .del{margin-left:6px}

.orghead{display:flex;gap:20px;align-items:center;padding:6px 0 18px;flex-wrap:wrap}
.orghead .av{border-radius:14px}.orghead h1{margin:0 0 2px;font-size:1.7rem}.orghead p{margin:.4em 0 0;max-width:70ch}
.orgbody{padding-top:20px}
.tbl td.end{text-align:right;width:1%;white-space:nowrap}.tbl form{margin:0}
.tbl.people td:first-child{width:60%}
.danger-zone .row{align-items:center}
@media (max-width:860px){.orghead .btn{width:100%;justify-content:center}.danger-zone form{flex-direction:column;align-items:stretch}}

/* discussions */
.cols.left{grid-template-columns:230px minmax(0,1fr)}
.btn.wide{width:100%;justify-content:center}
.catnav{display:flex;flex-direction:column;gap:2px}.catnav a{padding:6px 10px;border-radius:6px;color:var(--ink)}.catnav a:hover{background:var(--surface-2);text-decoration:none}.catnav a.cur{background:var(--surface-2);font-weight:700}
.dcat-head h2{margin:0}.dcat-head p{margin:.2em 0 .6em}
.drow{display:flex;gap:12px;align-items:center}.drow .ititle{font-weight:700;color:var(--ink)}
.demoji{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--surface-2);flex:none;font-size:1.05rem}
.dcount{color:var(--muted);font-size:.85rem;white-space:nowrap;min-width:44px;text-align:right}
.rlist.pinned{border-color:var(--leaf)}
.dfoot{display:flex;gap:12px;align-items:center;padding:0 16px 12px}
.vote{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;padding:2px 10px;font:500 .82rem var(--font);cursor:pointer}
.vote:hover:not(:disabled){background:var(--surface-2)}.vote.on{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.vote:disabled{cursor:default;opacity:.7}
.dpost.answer{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.cmt-head form{margin:0}
.replies{border-top:1px solid var(--border);background:var(--surface-2);padding:8px 16px 12px 32px;border-radius:0 0 var(--r) var(--r);display:flex;flex-direction:column;gap:8px}
.reply{background:var(--surface);border:1px solid var(--border);border-radius:var(--r)}.reply .cmt-head{padding:6px 12px;border-radius:var(--r) var(--r) 0 0}.reply .cmt-body{padding:8px 12px}
.replybox summary{cursor:pointer;color:var(--link);font-size:.9rem;padding:4px 0}.replybox form{margin-top:8px}
.plist{display:flex;flex-wrap:wrap;gap:6px 12px}
@media (max-width:860px){.cols.left{grid-template-columns:1fr}.cols.left .side{order:0}}

/* actions */
.ci{display:inline-block;width:14px;height:14px;border-radius:50%;flex:none;vertical-align:-2px;position:relative;box-sizing:border-box}
.ci.success{background:var(--ok)}.ci.success::after{content:"";position:absolute;left:4.5px;top:2px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ci.failure{background:var(--bad)}.ci.failure::before,.ci.failure::after{content:"";position:absolute;left:6px;top:3px;width:2px;height:8px;background:#fff;transform:rotate(45deg)}.ci.failure::after{transform:rotate(-45deg)}
.ci.cancelled,.ci.skipped{border:2px solid var(--muted)}.ci.cancelled::after,.ci.skipped::after{content:"";position:absolute;left:1px;top:4px;width:8px;height:2px;background:var(--muted);transform:rotate(-45deg)}.ci.skipped{opacity:.6}
.ci.queued,.ci.waiting{border:2px solid var(--muted)}.ci.waiting{border-style:dashed}
.ci.action_required{background:var(--warn)}.ci.action_required::after{content:"!";position:absolute;inset:0;color:#fff;font:700 10px/14px var(--font);text-align:center}
.ci.in_progress{border:2px solid var(--warn);border-right-color:transparent;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ci.in_progress{animation:none;border-right-color:var(--warn);border-style:dotted}}
.runhead h1{display:flex;align-items:center;gap:10px}.runhead .ci{width:20px;height:20px}.runactions{margin-top:10px}.runactions form{margin:0}
.runwf{margin-bottom:12px}.runwf summary{cursor:pointer}.runwf form{margin-top:12px}
.wfexample{text-align:left;max-width:440px;margin:12px auto}
.steps{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.step{border-bottom:1px solid var(--border)}.step:last-child{border-bottom:0}
.step summary{display:flex;gap:10px;align-items:center;padding:9px 14px;cursor:pointer;list-style:none}.step summary::-webkit-details-marker{display:none}
.step summary:hover{background:var(--surface-2)}.step[open] summary{background:var(--surface-2)}
.steplog{margin:0;padding:10px 14px;background:#141b10;color:#dbe8c8;font-size:.8rem;line-height:1.55;white-space:pre-wrap;word-break:break-all;max-height:70vh;overflow:auto}
.steplog-empty{padding:8px 14px 10px 38px}
.checks{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin:10px 0}.checks h3{margin:0;padding:10px 14px;border-bottom:1px solid var(--border);font-size:.95rem;display:flex;gap:8px;align-items:center}.checks ul{margin:0;padding:0;list-style:none}.checks li{display:flex;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border)}.checks li:last-child{border-bottom:0}
