:root { --bg:#14171c; --panel:#1d2229; --panel2:#232a33; --ink:#e6e9ee; --dim:#8b95a3; --accent:#f0a030; --good:#6cc070; --bad:#e0504a; --line:#2c333d; }
* { box-sizing:border-box; }
html, body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.55 system-ui,"Segoe UI",-apple-system,sans-serif; }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
.container { max-width:980px; margin:0 auto; padding:0 20px; }
.muted { color:var(--dim); } .small { font-size:12px; } .right { text-align:right; } .accent { color:var(--accent); }
.skip-link { position:absolute; left:-999px; } .skip-link:focus { left:8px; top:8px; background:var(--accent); color:#14171c; padding:6px 10px; z-index:9; }

.site-header { border-bottom:1px solid var(--line); background:#171b21; }
.site-header .container { display:flex; align-items:center; justify-content:space-between; height:56px; }
.brand { font-weight:800; font-size:18px; color:var(--ink); } .brand:hover { text-decoration:none; } .brand-mark { color:var(--accent); }
.nav { display:flex; align-items:center; gap:18px; } .nav a { color:var(--ink); } .nav .btn { color:#14171c; }
.inline-form { display:inline; margin:0; }
.link-button { background:none; border:0; padding:0; font:inherit; color:var(--accent); cursor:pointer; } .link-button:hover { text-decoration:underline; }
.link-button.danger { color:var(--bad); }

.btn { display:inline-block; background:var(--panel2); color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:9px 18px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none; }
.btn:hover { border-color:#4a5463; text-decoration:none; }
.btn-primary { background:var(--accent); border-color:var(--accent); color:#14171c; } .btn-primary:hover { filter:brightness(1.08); }
.btn-small { padding:5px 12px; font-size:13px; } .btn-block { display:block; width:100%; text-align:center; }
.btn[disabled] { opacity:.45; cursor:default; }

.flash { margin:16px 0 0; padding:10px 14px; border-radius:8px; border:1px solid var(--line); }
.flash-success { background:#6cc07018; border-color:#6cc07066; } .flash-error { background:#e0504a18; border-color:#e0504a77; }
.notice { background:#f0a03014; border:1px solid #f0a03066; border-radius:8px; padding:10px 14px; margin:14px 0; }

.hero { padding:72px 0 36px; text-align:center; } .hero h1 { font-size:clamp(30px,5vw,46px); line-height:1.15; margin:0 0 18px; }
.lead { max-width:640px; margin:0 auto 26px; font-size:17px; color:#c4cad3; } .hero p .btn { margin:0 4px; }
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; padding-bottom:64px; }
.step-card, .card { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:20px 22px; }
.step-card h3, .card h2 { margin:6px 0 6px; } .step-card p { margin:0; color:#aab2bd; }
.step-num { width:30px; height:30px; border-radius:50%; background:var(--accent); color:#14171c; font-weight:800; display:flex; align-items:center; justify-content:center; }

.auth-shell { display:flex; justify-content:center; padding:48px 16px; }
.auth-card { width:100%; max-width:400px; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:28px; }
.auth-card h1 { margin:0 0 4px; font-size:24px; } .auth-sub { color:var(--dim); margin:0 0 20px; } .auth-foot { margin-top:20px; text-align:center; color:var(--dim); font-size:14px; }
.form-group { margin-bottom:14px; } label { display:block; font-size:13px; color:var(--dim); margin-bottom:4px; }
.form-control { width:100%; background:#14171c; color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:9px 12px; font:inherit; }
.form-control:focus { outline:none; border-color:var(--accent); }

.dash { padding-top:28px; padding-bottom:60px; } .dash h1 { margin:0 0 6px; } .card { margin:18px 0; }
.row-form { display:flex; gap:10px; margin:14px 0; } .row-form .form-control { flex:1; }
.newkey { background:#6cc07012; border:1px solid #6cc07066; border-radius:8px; padding:14px 16px; margin:14px 0; }
.keybox { display:block; background:#0f1216; border:1px solid var(--line); border-radius:6px; padding:10px 12px; margin:8px 0; font:13px ui-monospace,Consolas,monospace; word-break:break-all; user-select:all; }
.table { width:100%; border-collapse:collapse; margin-top:10px; } .table th { text-align:left; color:var(--dim); font-size:12px; font-weight:600; padding:6px 8px; border-bottom:1px solid var(--line); }
.table td { padding:9px 8px; border-bottom:1px solid var(--line); vertical-align:top; } .table tr.revoked td { opacity:.5; }
.pill { display:inline-block; padding:0 8px; border-radius:9px; font-size:12px; font-weight:600; background:var(--panel2); color:var(--dim); line-height:20px; }
.pill.ok { background:#6cc07033; color:#8fe094; }

.site-footer { border-top:1px solid var(--line); padding:18px 0; color:var(--dim); font-size:13px; } .site-footer .container { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }

.mono { font-family:ui-monospace,Consolas,monospace; font-size:13px; } textarea.form-control { resize:vertical; }
.narrow { max-width:140px; } .rule-row { margin:12px 0; } .check { display:flex; gap:8px; align-items:flex-start; color:var(--ink); font-size:14px; cursor:pointer; } .check input { margin-top:4px; }
.repo-list { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
details.repo { border:1px solid var(--line); border-radius:10px; background:#171b21; } details.repo[open] { background:var(--panel); }
details.repo > summary { display:flex; align-items:center; gap:12px; padding:10px 14px; cursor:pointer; list-style:none; flex-wrap:wrap; } details.repo > summary::-webkit-details-marker { display:none; }
.repo-body { padding:4px 14px 14px; border-top:1px solid var(--line); } .two-col { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:10px 0; }
.folder-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:2px 10px; margin:6px 0 12px; max-height:210px; overflow:auto; }
.chip { padding:3px 6px; border-radius:6px; } .chip:hover { background:#ffffff0c; } .chip b { font-weight:500; } .chip .muted { margin-left:auto; font-size:12px; }
.savebar { position:sticky; bottom:0; background:linear-gradient(transparent,var(--bg) 40%); padding:20px 0 16px; display:flex; gap:10px; }
select.form-control { appearance:auto; } code { background:#0f1216; padding:1px 5px; border-radius:4px; }
@media (max-width:640px) { .two-col { grid-template-columns:1fr; } }
.steps-list { margin:8px 0 0; padding-left:22px; line-height:1.7; }
.nav-me { display:inline-flex; align-items:center; gap:6px; } .nav-me img, .avatar { border-radius:50%; object-fit:cover; background:var(--panel2); vertical-align:middle; }
.profile-head { display:flex; gap:20px; align-items:center; flex-wrap:wrap; } .profile-head .avatar { width:96px; height:96px; }
.person { display:flex; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); } .person:last-child { border-bottom:0; }
.person .avatar { width:40px; height:40px; flex:none; } .person .who { flex:1; min-width:0; } .person .who b { display:block; }
.person form { display:inline; }
.twocol { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; } @media (max-width:760px) { .twocol { grid-template-columns:1fr; } }
.form-group { margin:12px 0; } .form-group label { display:block; margin-bottom:4px; font-weight:600; font-size:14px; }
.check { display:flex; gap:8px; align-items:flex-start; margin:8px 0; } .check input { margin-top:4px; }
.danger-zone { border-color:#e0504a66; } .btn-danger { background:var(--bad); color:#fff; border-color:var(--bad); }
.copybox { display:flex; gap:8px; align-items:center; flex-wrap:wrap; } .copybox code { flex:1; min-width:200px; word-break:break-all; }
.repo-checks { max-height:260px; overflow:auto; border:1px solid var(--line); border-radius:8px; padding:4px 12px; }
