:root{
    --bg:#0a0e17;--bg2:#111827;--bg3:#1a2332;--bg4:#0d1117;
    --border:#1e293b;--border2:#334155;
    --text:#f1f5f9;--muted:#94a3b8;--muted2:#64748b;
    --accent:#6366f1;--accent2:#818cf8;--green:#34d399;--yellow:#fbbf24;--red:#f87171;
    --top:56px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}
a{color:#60a5fa;text-decoration:none}
a:hover{text-decoration:underline}

.topbar{
    position:fixed;top:0;left:0;right:0;height:var(--top);z-index:200;
    background:rgba(10,14,23,.88);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;justify-content:space-between;padding:0 24px;
}
.topbar-left{display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--text);text-decoration:none}
.brand-icon{width:30px;height:30px;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:8px;display:grid;place-items:center}
.brand-icon svg{width:15px;height:15px;color:#fff}
.nav-link{font-size:13px;color:var(--muted);text-decoration:none;font-weight:500}
.nav-link:hover{color:var(--text);text-decoration:none}
.topbar-right{display:flex;align-items:center;gap:4px}
.icon-btn{
    width:36px;height:36px;display:grid;place-items:center;border-radius:8px;
    color:var(--muted);transition:.15s;border:none;background:none;cursor:pointer;
}
.icon-btn:hover{background:var(--bg3);color:var(--text)}
.icon-btn svg{width:18px;height:18px}

.page{padding:calc(var(--top) + 32px) 24px 64px;max-width:1100px;margin:0 auto}

.hero{text-align:center;padding:20px 0 40px}
.hero-badge{
    display:inline-flex;align-items:center;gap:6px;padding:5px 12px;
    background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.25);
    border-radius:999px;font-size:12px;font-weight:600;color:var(--accent2);margin-bottom:16px;
}
.hero h1{font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-.03em;margin-bottom:10px}
.hero p{color:var(--muted);font-size:16px;max-width:520px;margin:0 auto 24px}
.hero-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.btn{
    display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;
    font-size:14px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:.15s;
}
.btn-primary{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.35)}
.btn-primary:hover{transform:translateY(-1px);text-decoration:none;filter:brightness(1.08)}
.btn-ghost{background:var(--bg3);color:var(--text);border:1px solid var(--border)}
.btn-ghost:hover{background:var(--bg2);text-decoration:none}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:7px}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
@media(max-width:768px){.grid-2{grid-template-columns:1fr}}

.panel{
    background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px;
}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel-head h2{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}
.panel-head h2 .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}

.endpoint{
    font-family:'JetBrains Mono',ui-monospace,Consolas,monospace;font-size:13px;
    background:var(--bg4);border:1px solid var(--border);border-radius:8px;
    padding:12px 14px;color:#a5b4fc;word-break:break-all;
}
.hint{font-size:12px;color:var(--muted2);margin-top:8px}

.pubkey-wrap{position:relative}
.pubkey{
    font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;line-height:1.7;
    background:var(--bg4);border:1px solid var(--border);border-radius:8px;
    padding:14px;color:#c4b5fd;word-break:break-all;max-height:80px;overflow-y:auto;
}
.status-ok{color:var(--green);font-size:13px;margin-top:10px}
.status-warn{color:var(--yellow);font-size:13px;margin-top:10px}
.status-bad{color:var(--red);font-size:13px;margin-top:10px}

.search-bar{
    display:flex;align-items:center;gap:10px;background:var(--bg2);
    border:1px solid var(--border);border-radius:12px;padding:12px 16px;margin-bottom:20px;
}
.search-bar svg{color:var(--muted2);flex-shrink:0}
.search-bar input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px}
.search-bar input::placeholder{color:var(--muted2)}

.lang-section{margin-bottom:28px}
.lang-label{
    font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
    color:var(--muted2);margin-bottom:12px;padding-left:4px;
}
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}

.file-card{
    background:var(--bg2);border:1px solid var(--border);border-radius:12px;
    padding:16px;transition:border-color .15s,transform .15s;text-decoration:none;color:inherit;
    display:flex;flex-direction:column;gap:10px;
}
.file-card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}
.file-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.file-icon{
    width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
    font-size:11px;font-weight:800;letter-spacing:-.02em;flex-shrink:0;
}
.file-icon.php{background:rgba(119,123,180,.2);color:#a5b4fc}
.file-icon.js{background:rgba(247,223,30,.15);color:#fde047}
.file-icon.py{background:rgba(55,118,171,.2);color:#7dd3fc}
.file-icon.cs{background:rgba(139,92,246,.2);color:#c4b5fd}
.file-icon.lua{background:#1e3a5f;color:#93c5fd}
.file-icon.rs{background:rgba(234,88,12,.15);color:#fb923c}
.file-icon.cpp{background:rgba(59,130,246,.15);color:#60a5fa}
.file-name{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px;font-weight:600;color:var(--text)}
.file-desc{font-size:12px;color:var(--muted);line-height:1.45}
.file-actions{display:flex;gap:8px;margin-top:auto}
.file-actions a,.file-actions span{
    font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;
    background:var(--bg3);color:var(--muted);text-decoration:none;
}
.file-actions a:hover{background:var(--accent);color:#fff;text-decoration:none}
.file-actions a.primary{background:rgba(99,102,241,.2);color:var(--accent2)}
.file-actions a.primary:hover{background:var(--accent);color:#fff}

.quick-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.quick-tab{
    padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;
    background:var(--bg3);color:var(--muted);border:1px solid transparent;cursor:pointer;
}
.quick-tab.active{background:rgba(99,102,241,.15);color:var(--accent2);border-color:rgba(99,102,241,.3)}
.quick-code{display:none}
.quick-code.active{display:block}
.quick-code pre{
    font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;line-height:1.65;
    background:var(--bg4);border:1px solid var(--border);border-radius:10px;
    padding:16px;overflow-x:auto;color:#e2e8f0;
}

/* ── Code viewer ── */
.view-layout{padding-top:var(--top);min-height:100vh;display:flex;flex-direction:column}
.view-bar{
    position:sticky;top:var(--top);z-index:100;
    background:rgba(10,14,23,.92);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
    padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--text)}
.breadcrumb .sep{color:var(--muted2)}
.breadcrumb .current{color:var(--text);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px}
.view-actions{display:flex;gap:8px;flex-wrap:wrap}
.view-body{display:flex;flex:1;min-height:0}
.view-sidebar{
    width:220px;border-right:1px solid var(--border);background:var(--bg2);
    padding:12px 8px;overflow-y:auto;flex-shrink:0;
}
.view-sidebar a{
    display:block;padding:7px 10px;border-radius:6px;font-size:12px;
    font-family:'JetBrains Mono',ui-monospace,monospace;color:var(--muted);text-decoration:none;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.view-sidebar a:hover{background:var(--bg3);color:var(--text)}
.view-sidebar a.active{background:rgba(99,102,241,.15);color:var(--accent2)}
.view-main{flex:1;overflow:auto;padding:0;background:var(--bg4)}
.code-wrap{position:relative;min-height:calc(100vh - var(--top) - 52px)}
.code-toolbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--border);
    font-size:12px;color:var(--muted);
}
.code-toolbar .lang-tag{
    padding:3px 8px;border-radius:4px;background:var(--bg3);
    font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--accent2);
}
.copy-btn{
    display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;
    background:var(--bg3);border:1px solid var(--border);color:var(--muted);
    font-size:12px;font-weight:600;cursor:pointer;
}
.copy-btn:hover{color:var(--text);border-color:var(--border2)}
.copy-btn.copied{color:var(--green);border-color:rgba(52,211,153,.3)}

pre.hljs{
    margin:0;padding:20px 24px;background:var(--bg4)!important;
    font-family:'JetBrains Mono',ui-monospace,monospace!important;
    font-size:13px!important;line-height:1.7!important;overflow-x:auto;
}
.hljs{background:var(--bg4)!important;color:#e2e8f0!important}

@media(max-width:900px){
    .view-sidebar{display:none}
    .page{padding-left:16px;padding-right:16px}
}

.lang-all-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:4px 0 8px}
.lang-all-item{
    display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
    border:1px solid var(--border);background:var(--bg3);color:var(--text);
    text-decoration:none;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;
}
.lang-all-item:hover{border-color:rgba(99,102,241,.4);background:var(--bg2);text-decoration:none}
.lang-all-item .file-icon{width:32px;height:32px;font-size:10px}
