:root{--bg:#0b1020;--card:#151c33;--acc:#4cc9f0;--acc2:#f72585;--txt:#e8ecf8;--mut:#9aa6c7}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 20% 0,#1b2550,var(--bg) 60%);color:var(--txt);min-height:100vh}
a{color:var(--acc)}
header.site{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid #263056}
header.site img{height:56px;width:auto}
header.site .t{font-weight:700;font-size:1.2rem}
header.site nav{margin-left:auto;display:flex;gap:14px}
main{max-width:980px;margin:0 auto;padding:28px 20px}
h1{margin:.2em 0 .6em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.card{background:var(--card);border:1px solid #263056;border-radius:14px;overflow:hidden;text-decoration:none;color:var(--txt);transition:transform .15s,border-color .15s;display:block}
.card:hover{transform:translateY(-4px);border-color:var(--acc)}
.card .thumb{height:120px;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:800;background:linear-gradient(135deg,var(--acc2),var(--acc));color:#fff}
.card .name{padding:12px 14px;font-weight:600}
.box{background:var(--card);border:1px solid #263056;border-radius:14px;padding:20px;margin-bottom:22px}
label{display:block;margin:10px 0 4px;color:var(--mut)}
input[type=text],input[type=password],input[type=file],textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #33407a;background:#0e1428;color:var(--txt)}
textarea{font-family:ui-monospace,Consolas,monospace;min-height:60vh}
button,.btn{background:var(--acc);color:#04202c;border:0;border-radius:8px;padding:10px 18px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
button.danger{background:var(--acc2);color:#fff}
.err{background:#4a1224;border:1px solid var(--acc2);padding:10px 14px;border-radius:8px;margin-bottom:12px}
.ok{background:#0f3a2c;border:1px solid #2ecc9a;padding:10px 14px;border-radius:8px;margin-bottom:12px}
table{width:100%;border-collapse:collapse}td,th{padding:8px;border-bottom:1px solid #263056;text-align:left}
.muted{color:var(--mut)}
iframe.game{width:100%;height:calc(100vh - 90px);border:0;background:#fff}
.inline{display:inline}
