:root{--bg:#f7f7fb;--card:#fff;--ink:#1d1b2c;--muted:#6b6880;--line:#e6e4ef;--brand:#6d4aff;--brand-2:#5536e6;--green:#12a46b;--warn:#c47a00;--red:#d43c3c;--radius:14px}
*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand-2);text-decoration:none}a:hover{text-decoration:underline}
main section{margin-bottom:22px}main section.card{margin-bottom:16px}
main{max-width:1120px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:28px;line-height:1.2;margin:0 0 8px}h2{font-size:19px;margin:0 0 12px}
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:800;font-size:19px;color:var(--ink);display:flex;align-items:center;gap:8px}.brand:hover{text-decoration:none}
.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;font-weight:900}
.top nav{display:flex;gap:18px;align-items:center}.me{color:var(--muted)}
.foot{text-align:center;color:var(--muted);font-size:14px;padding:30px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:0 0 16px}
.center{text-align:center}.narrow{max-width:560px;margin:30px auto}
.muted{color:var(--muted)}.small{font-size:13.5px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.error{color:var(--red)}.card.error{border-color:#f3c2c2;background:#fff6f6}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:10px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brand-2);text-decoration:none}.btn:disabled{opacity:.6;cursor:wait}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{background:#f1effa}
.btn.small{padding:6px 12px;font-size:14px}.btn.big{padding:14px 22px;font-size:17px}.btn.wide{width:100%;margin-top:8px}.btn.green{background:var(--green)}
.icon{background:none;border:0;cursor:pointer;color:var(--muted);padding:2px 5px;font-size:14px}.icon:hover{color:var(--ink)}
form{margin:0}.stack{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-weight:600}
input[type=text],input[type=email],input:not([type]),textarea{font:inherit;font-weight:400;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%}
textarea{resize:vertical}input:focus,textarea:focus{outline:2px solid #c9bcff;border-color:var(--brand)}
fieldset.choice{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}fieldset legend{font-weight:600;margin-bottom:8px}
label.option{flex-direction:row;align-items:flex-start;gap:12px;font-weight:400;border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}
label.option:has(input:checked){border-color:var(--brand);background:#f6f3ff}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.hero{padding:34px 0 10px}.hero h1{font-size:44px;letter-spacing:-.02em}.hero em{color:var(--brand);font-style:normal}
.lead{font-size:18px;color:#3b3852;max-width:760px}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 34px}
.how div{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}.how p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.how span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#efeaff;color:var(--brand);font-weight:800;margin-right:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.repo-card{color:var(--ink);display:block}.repo-card:hover{border-color:#cfc5ff;text-decoration:none}
.repo-title{font-weight:700;font-size:17px}.repo-card p{margin:6px 0 10px;font-size:14.5px}
.meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--muted)}
.badge{display:inline-block;font-size:12.5px;font-weight:600;padding:2px 9px;border-radius:99px;background:#f0eff5;color:#4a475e}
.badge.mirror{background:#eef4ff;color:#2d5bd6}.badge.hosted{background:#f1ecff;color:var(--brand-2)}
.safety-ok{background:#e7f8f0;color:var(--green)}.safety-caution{background:#fff4df;color:var(--warn)}.safety-danger{background:#ffe8e8;color:var(--red)}
.status-draft{background:#fff4df;color:var(--warn)}.status-merged{background:#e7f8f0;color:var(--green)}.status-published{background:#eef4ff;color:#2d5bd6}
.m-exact,.m-clean{background:#e7f8f0;color:var(--green)}.m-ai{background:#f1ecff;color:var(--brand-2)}.m-skipped{background:#f0eff5}
.repo-head,.patch-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:1fr 330px;gap:20px;align-items:start}
.side-col{position:sticky;top:76px}
.create{background:linear-gradient(135deg,#fbfaff,#f3efff);border-color:#ddd3ff}
.patch-list{display:flex;flex-direction:column;gap:10px}
.patch-card{display:flex;gap:14px;align-items:flex-start;margin:0;padding:16px}
.vote{display:flex;flex-direction:column;align-items:center;min-width:34px;color:var(--muted);font-weight:700;font-size:14px}
.vote-btn{background:#f4f3f8;border:1px solid var(--line);border-radius:8px;width:34px;height:30px;cursor:pointer;color:var(--muted)}.vote-btn.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.patch-body{flex:1;min-width:0}.patch-title{font-weight:700;font-size:16.5px;color:var(--ink)}.patch-body p{margin:4px 0 8px;font-size:14.5px;color:#3b3852}
.patch-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
ol.sel{padding-left:20px;margin:10px 0}ol.sel li{margin:6px 0;display:list-item}
.sel-ctl{display:inline-flex;margin-left:4px;vertical-align:middle}.sel-ctl form{display:inline}
ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:6px 0;border-bottom:1px solid var(--line)}ul.plain li:last-child{border:0}
.readme summary,details.card summary{cursor:pointer;font-weight:700}
pre.wrap,.wrap{white-space:pre-wrap;word-wrap:break-word;font:inherit;margin:10px 0 0}
pre.wrap{font-family:ui-monospace,Menlo,monospace;font-size:13px;max-height:500px;overflow:auto;background:#fafafa;padding:12px;border-radius:8px}
.crumbs{margin:0 0 10px}
.chat .msgs,.msgs{display:flex;flex-direction:column;gap:12px;margin:6px 0 16px}
.msg{display:flex;flex-direction:column;max-width:85%}.msg .who{font-size:12.5px;color:var(--muted);margin:0 4px 3px;font-weight:600}
.msg .bubble{padding:11px 14px;border-radius:14px;white-space:pre-wrap;word-wrap:break-word}
.msg.user{align-self:flex-end}.msg.user .who{align-self:flex-end}.msg.user .bubble{background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.msg.assistant .bubble{background:#f2f1f7;border-bottom-left-radius:4px}
.msg.note{align-self:center;max-width:100%}.msg.note .who{display:none}.msg.note .bubble{background:#fff8e6;color:#7a5a00;font-size:14px}
.publish{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:14px;border-radius:10px;background:#effaf4;border:1px solid #c9eedb;flex-wrap:wrap}
.job{font-size:14.5px}.job-head{font-weight:600;display:flex;align-items:center;gap:8px}
.events{margin:10px 0 0;padding:0 0 0 18px;max-height:260px;overflow:auto;color:var(--muted);font-size:13.5px}.events li{margin:2px 0;word-break:break-word}
.spinner{width:14px;height:14px;border-radius:50%;border:2px solid #d9d2ff;border-top-color:var(--brand);display:inline-block;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.steps{padding-left:22px}.steps li{margin:8px 0}
.diff summary{margin-bottom:6px}.file{border:1px solid var(--line);border-radius:10px;margin:12px 0;overflow:hidden}
.file-head{background:#fafafc;padding:8px 12px;border-bottom:1px solid var(--line);font-size:13.5px}
.add{color:var(--green)}.del{color:var(--red)}.pad{padding:8px 12px}
table.lines{border-collapse:collapse;width:100%;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
table.lines td{padding:0 8px;vertical-align:top}table.lines td:first-child{width:18px;color:var(--muted);user-select:none}
table.lines code{white-space:pre-wrap;word-break:break-all}
tr.add{background:#ecfbf3}tr.del{background:#fff0f0}tr.hunk{background:#f2f0ff;color:var(--muted)}
.maint{border-color:#ddd3ff}
@media (max-width:860px){.cols{grid-template-columns:1fr}.side-col{position:static}.how{grid-template-columns:1fr}.hero h1{font-size:34px}.patch-card{flex-wrap:wrap}}
.grow{flex:1;display:flex;flex-direction:column;gap:8px}.grow textarea,.grow input[type=file]{margin-top:4px;font-weight:400}
label input,label textarea,label .small,label .muted{font-weight:400}
.grow{gap:4px}
.explore-head{margin:8px 0 18px}.explore-head h1{font-size:30px}
.showcase .repo-card{display:flex;flex-direction:column;gap:10px;margin:0}
.repo-top{display:flex;gap:12px;align-items:center}
.avatar{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#efeaff;color:var(--brand-2);font-weight:800;text-transform:uppercase;flex:none}
.repo-desc{margin:0;font-size:14.5px;color:#3b3852;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.top-patches{list-style:none;margin:0;padding:10px 12px;background:#faf9fe;border-radius:10px;font-size:13.5px;color:#4a475e}
.top-patches li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.showcase .meta{margin-top:auto}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--muted);cursor:pointer}.linkish:hover{color:var(--ink)}
.auth .provider{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px}
.pico{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:800;font-size:13px;color:#fff}.pico.g{background:#4285f4}.pico.gh{background:#24292f;font-size:10px}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:18px 0}.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--line)}
.notice{background:#effaf4;border:1px solid #c9eedb;border-radius:10px;padding:14px}
.avatar.big{width:48px;height:48px;font-size:22px}
.grow-input{flex:1;min-width:200px}.tokens{margin-top:14px}.token{user-select:all;background:#fff}
.howto{margin-top:18px}.howto ul{padding-left:18px;font-size:14.5px}.git pre{margin:10px 0}
.empty-repo h3{font-size:15px;margin:18px 0 6px}
pre.cmd{background:#1d1b2c;color:#ece9ff;padding:14px 16px;border-radius:10px;font:13px/1.6 ui-monospace,Menlo,monospace;overflow:auto;margin:0;user-select:all}
details.create summary{cursor:pointer}details.create form{margin-top:14px}
.plainlink{color:inherit}.badge.private{background:#fff4df;color:var(--warn);vertical-align:middle;font-size:13px}
.repo-head h1 .badge{margin-left:8px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 20px}
.tabs a{padding:10px 14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink);text-decoration:none}.tabs a.on{color:var(--ink);border-bottom-color:var(--brand)}
.tabs .count{background:#efedf6;border-radius:99px;padding:1px 8px;font-size:12px;margin-left:4px}
.getit .clone{display:flex;flex-direction:column;gap:4px;flex:1;min-width:260px}.getit .clone input{font-size:13px;padding:8px 10px;background:#fafafc}
details.code summary{cursor:pointer}
ul.tree{list-style:none;margin:6px 0 0;padding-left:0;font-size:14px}ul.tree ul.tree{padding-left:20px;margin:0}
ul.tree li{padding:3px 0}ul.tree summary{cursor:pointer;list-style:none}ul.tree summary::-webkit-details-marker{display:none}
.readme{padding:0;overflow:hidden}.readme-head{padding:10px 20px;border-bottom:1px solid var(--line);background:#fafafc}
.markdown{padding:8px 26px 20px;line-height:1.65}.markdown h1,.markdown h2{border-bottom:1px solid var(--line);padding-bottom:6px;margin:22px 0 12px}
.markdown h1{font-size:26px}.markdown h2{font-size:21px}.markdown h3{font-size:17px;margin:18px 0 8px}
.markdown pre{background:#f6f5fa;padding:12px 14px;border-radius:8px;overflow:auto;font-size:13px}
.markdown code{font-family:ui-monospace,Menlo,monospace;font-size:.9em;background:#f1effa;padding:1px 5px;border-radius:5px}.markdown pre code{background:none;padding:0}
.markdown blockquote{margin:10px 0;padding:2px 14px;border-left:3px solid #d9d2ff;color:var(--muted)}
.markdown table{border-collapse:collapse;margin:12px 0;font-size:14px}.markdown th,.markdown td{border:1px solid var(--line);padding:6px 10px}
.markdown img{max-width:100%}.markdown hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.blob{padding:0;overflow:hidden}.blob-head{padding:10px 16px;border-bottom:1px solid var(--line);background:#fafafc}
table.code-lines{border-collapse:collapse;width:100%;font:12.5px/1.6 ui-monospace,Menlo,monospace}
table.code-lines td{padding:0 12px;vertical-align:top}table.code-lines td.ln{width:1%;color:#a9a6b8;text-align:right;user-select:none;border-right:1px solid var(--line)}
table.code-lines code{white-space:pre-wrap;word-break:break-word}
.about ul{margin:6px 0 14px}.narrow-wide{max-width:820px}
.getit h2{margin-bottom:12px}.getit .clone{display:flex;flex-direction:column;gap:4px;margin:14px 0 8px;font-weight:400}
.getit .clone input{font-size:12.5px;padding:8px 10px;background:#fafafc;width:100%}.code-head{margin-bottom:8px}
