:root { --bg:#0f1420; --card:#1a2233; --acc:#4ade80; --txt:#e5e7eb; --muted:#94a3b8; }
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; background:var(--bg); color:var(--txt); }
header { padding:2rem 1.5rem 1rem; text-align:center; }
h1 { margin:0; }
.sub { color:var(--muted); }
.toolbar { padding:0 1.5rem 1rem; display:flex; gap:1rem; flex-wrap:wrap; align-items:flex-start; }
.filters { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
select, input[type=checkbox] { accent-color:var(--acc); background:var(--card); color:var(--txt); border:1px solid #334155; border-radius:6px; padding:.4rem; }
.order-box { background:var(--card); border-radius:8px; padding:.75rem 1rem; font-size:.9rem; }
.order-box ol { margin:.4rem 0 0; padding-left:1.2rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:1rem; padding:0 1.5rem 2rem; }
.card { background:var(--card); border-radius:12px; padding:1.1rem; display:flex; flex-direction:column; gap:.5rem; border:1px solid #26334d; }
.card .name { font-size:1.1rem; font-weight:700; }
.badges { display:flex; gap:.4rem; flex-wrap:wrap; }
.badge { font-size:.72rem; padding:.15rem .5rem; border-radius:999px; background:#26334d; color:var(--muted); }
.badge.diff { color:var(--acc); }
.meta { font-size:.85rem; color:var(--muted); }
.lvl { font-size:.85rem; background:#0f1420; border-radius:8px; padding:.5rem .7rem; }
.lvl b { color:var(--acc); }
a.link { color:#7dd3fc; text-decoration:none; font-size:.85rem; }
.votes { margin-top:auto; display:flex; gap:.5rem; align-items:center; }
.vote-btn { cursor:pointer; background:#26334d; color:var(--txt); border:1px solid #334155; border-radius:8px; padding:.35rem .8rem; font-size:.9rem; }
.vote-btn:hover { border-color:var(--acc); }
.vote-btn.my-vote { border-color:var(--acc); background:#14532d; }
.score { font-weight:700; min-width:2ch; text-align:center; }
footer { text-align:center; color:var(--muted); font-size:.8rem; padding-bottom:2rem; }
