/* /platform/github-app — the page's own rules (ported from the 02.10 etalon's inline <style>; the kit's rules stay in y.css / ui.css) */
.gh{max-width:1300px;margin:64px auto 0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;text-align:left}
.prw{background:#fff;border-radius:16px;overflow:hidden;color:#0f172a;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);height:540px;display:flex;flex-direction:column}
.prw .hd{padding:16px 20px;border-bottom:1px solid #eef1f5}
.prw .hd b{font-size:17px;font-weight:700}
.prw .hd .m{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:12px;color:#596779;flex-wrap:wrap}
.prw .hd .st{display:inline-flex;gap:6px;align-items:center;font-weight:650;padding:4px 10px;border-radius:999px;color:#fff;background:#16a34a;transition:background .3s}
.prw .hd .br{font:500 11.5px ui-monospace,monospace;color:#1d4fc4;background:#eef3ff;border-radius:5px;padding:2px 6px}
.tl3{flex:1;overflow:hidden;padding:14px 20px;position:relative}
.tl3::before{content:"";position:absolute;left:35px;top:14px;bottom:0;width:2px;background:#eef1f5}
.evt{position:relative;display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;padding:7px 0;animation:uIn .45s var(--ease) both;transition:background .3s;border-radius:10px}
.evt .ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f1f5f9;color:#475569;z-index:1;border:3px solid #fff}
.evt .ic svg{width:15px;height:15px}
.evt .tx{font-size:13px;line-height:1.5;padding-top:5px}
.evt .tx b{font-weight:650}
.evt .tx small{color:#596779;font-size:11.5px;margin-left:6px}
.evt .bd{margin-top:6px;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.5;color:#1e293b}
.evt .bd .sh{display:flex;gap:6px;margin-top:8px}
.evt .bd .sh i{width:72px;height:44px;border-radius:6px;background:linear-gradient(180deg,#f1f5f9 0 20%,#fff 20%);border:1px solid #e2e8f0}
.evt.hl{background:#f5f8ff}
.evt .ic.g{background:#e4faf0;color:#0b7648}.evt .ic.b{background:#e8f0fe;color:#1d4fc4}.evt .ic.r{background:#fdebec;color:#b91c1c}
.chk{display:grid;gap:4px;margin-top:6px}
.chk div{display:flex;gap:8px;align-items:center;font-size:12px}
.perm{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#131419,#0e0f12);padding:18px;display:flex;flex-direction:column}
.perm h3{font:600 15px/1.3 "Plus Jakarta Sans"}
.perm>p{margin-top:4px;font-size:13px;color:var(--ink3)}
.pr2{display:grid;gap:6px;margin-top:14px}
.pr2 div{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:13.5px;color:var(--ink2);transition:all .3s}
.pr2 div span:last-child{font-size:12px;font-weight:650}
.pr2 div.w span:last-child{color:#e9bd73}
.pr2 div.r span:last-child{color:var(--ink3)}
.pr2 div.lit{border-color:rgba(233,189,115,.6);background:rgba(233,189,115,.08);color:#fff}
.did{margin-top:auto;padding-top:14px;display:grid;gap:6px}
.did div{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--ink3);transition:color .3s}
.did div i{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--ink4);display:grid;place-items:center;font-size:10px;font-style:normal;font-weight:800;transition:all .3s}
.did div.on{color:var(--ink)}
.did div.on i{background:#7fd8a8;border-color:#7fd8a8;color:#0a0b0d}
/* ---- permissions table ---- */
.pt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:56px;align-items:start}
.ptab{background:#fff;border-radius:16px;overflow:hidden;color:#0f172a}
.ptab .tb{display:flex;gap:6px;padding:12px;border-bottom:1px solid #eef1f5}
.ptab .tb button{all:unset;cursor:pointer;font-size:13px;font-weight:600;padding:8px 12px;border-radius:9px;color:#475569;transition:all .2s}
.ptab .tb button.on{background:#0f172a;color:#fff}
.ptab .row{display:grid;grid-template-columns:1fr 130px;gap:10px;padding:10px 16px;border-top:1px solid #f4f5f7;font-size:13px;transition:all .35s}
.ptab .row span:last-child{font-weight:650;color:#596779}
.ptab .row.w span:last-child{color:#b45309}
.ptab .row.dim{opacity:.25}
.ptab .ft{padding:10px 16px;font-size:12px;color:#596779;background:#f8fafc;border-top:1px solid #eef1f5}
.cant{border:1px solid var(--line);border-radius:22px;padding:22px;background:linear-gradient(180deg,#131419,#0f1013)}
.cant h3{font:500 21px/1.3 "Plus Jakarta Sans"}
.cant .g4{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.cant .g4 div{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.015)}
.cant .g4 i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(240,138,138,.1);color:#f4a3a3;position:relative}
.cant .g4 i svg{width:20px;height:20px}
.cant .g4 i::after{content:"";position:absolute;right:-4px;bottom:-4px;width:16px;height:16px;border-radius:50%;background:#2a1416 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f08a8a' stroke-width='3'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") center/9px no-repeat;box-shadow:0 0 0 2px #121318}
.cant .g4 b{display:block;font-size:14.5px;font-weight:600;color:var(--ink)}
.cant .g4 small{display:block;margin-top:2px;font-size:12.8px;color:var(--ink3);line-height:1.4}
.cant .no-org{margin-top:14px;padding:14px;border-radius:14px;background:rgba(127,216,168,.08);color:#bdf0d3;font-size:14px;display:flex;gap:10px;align-items:center}
.cant .no-org svg{width:20px;height:20px}
/* ---- installation ---- */
.ins{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.is{border:1px solid var(--line);border-radius:22px;padding:20px;background:linear-gradient(180deg,#131419,#0f1013);display:flex;flex-direction:column}
.is .n{display:flex;gap:10px;align-items:center;font-size:15px;font-weight:600}
.is .n i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13px;background:#8194dd;color:#0a0b0d}
.is .box{margin-top:14px;background:#fff;border-radius:14px;padding:12px;color:#0f172a;flex:1}
.rp label{display:flex;gap:10px;align-items:center;padding:9px 6px;font-size:13px;border-top:1px solid #f4f5f7;cursor:pointer;user-select:none}
.rp label:first-child{border-top:0}
.rp input{accent-color:#16a34a;width:16px;height:16px}
.rp label span{font:500 12.5px ui-monospace,monospace}
.ok2{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;height:100%;padding:10px}
.ok2 b{font-size:14px}
.ok2 small{font-size:12px;color:#596779;line-height:1.45}
.ok2 .sb{font-size:12.5px;font-weight:650;padding:9px 14px;border-radius:9px;background:#16a34a;color:#fff;cursor:pointer}
.vis2 div{display:flex;gap:10px;align-items:center;padding:9px 6px;font-size:13px;border-top:1px solid #f4f5f7;transition:all .4s}
.vis2 div:first-child{border-top:0}
.vis2 div span{font:500 12.5px ui-monospace,monospace}
.vis2 div em{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:650;color:#0b7648}
.vis2 div.gone{opacity:.35}
.vis2 div.gone em{color:#b91c1c}
.rv2{margin-top:10px;font-size:12.5px;font-weight:650;padding:9px 14px;border-radius:9px;border:1px solid #fca5a5;color:#b91c1c;cursor:pointer;display:inline-block;background:#fff}
/* ---- CI ---- */
.ci{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.ci::before{content:"";position:absolute;left:12.5%;right:12.5%;top:30px;height:2px;background:var(--line2)}
.ci .s{text-align:center;padding:0 10px;position:relative}
.ci .s .o{width:60px;height:60px;margin:0 auto;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line2);background:#0f1013;transition:all .4s}
.ci .s .o svg{width:24px;height:24px;color:var(--ink4);transition:color .4s}
.ci .s .t{display:block;margin-top:12px;font:600 12px ui-monospace,monospace;color:var(--ink4)}
.ci .s b{display:block;margin-top:4px;font-size:15.5px;font-weight:600;color:var(--ink3);transition:color .4s}
.ci .s small{display:block;margin:6px auto 0;max-width:230px;font-size:13px;line-height:1.5;color:var(--ink4);transition:color .4s}
.ci .s.on .o{border-color:currentColor}
.ci .s.on b{color:#fff}.ci .s.on small{color:var(--ink2)}.ci .s.on .t{color:var(--ink2)}
.ci .s.red{color:#f08a8a}.ci .s.red.on .o{background:rgba(240,138,138,.1)}.ci .s.red.on .o svg{color:#f08a8a}
.ci .s.blu{color:#9fb0ff}.ci .s.blu.on .o{background:rgba(159,176,255,.1)}.ci .s.blu.on .o svg{color:#9fb0ff}
.ci .s.grn{color:#7fd8a8}.ci .s.grn.on .o{background:rgba(127,216,168,.1)}.ci .s.grn.on .o svg{color:#7fd8a8}
@media(max-width:1060px){.gh,.pt,.ins{grid-template-columns:1fr}.ci{grid-template-columns:1fr 1fr;row-gap:30px}.ci::before{display:none}.cant .g4{grid-template-columns:1fr}}
