:root { --bg:#0f1115; --panel:#171a21; --fg:#e6e6e6; --muted:#9aa0a6; --accent:#5aa9ff; --ok:#3ddc84; --bad:#ff6b6b; --warn:#ffd166; font-family: system-ui, sans-serif; }
body { margin:0; background:var(--bg); color:var(--fg); }
.site-header { display:flex; align-items:center; gap:2rem; padding:.75rem 1.25rem; background:var(--panel); border-bottom:1px solid #262a33; }
.site-header .logo { color:var(--fg); text-decoration:none; font-weight:700; }
.site-header nav a { color:var(--muted); margin-right:1rem; text-decoration:none; }
.site-header nav a:hover { color:var(--fg); }
.content { padding:1.25rem; max-width:1400px; margin:0 auto; }
.muted { color:var(--muted); }
table { border-collapse:collapse; width:100%; font-size:.9rem; }
th, td { padding:.35rem .5rem; border-bottom:1px solid #262a33; text-align:left; }
tr.selected { outline:2px solid var(--accent); }
.btn { background:var(--accent); color:#000; border:0; padding:.45rem .8rem; border-radius:6px; cursor:pointer; }
.btn.secondary { background:#2a2f3a; color:var(--fg); }
.badge { padding:.1rem .45rem; border-radius:999px; font-size:.75rem; }
.badge.accepted { background:var(--ok); color:#000; } .badge.rejected { background:var(--bad); color:#000; } .badge.pending { background:#3a3f4a; }
.grid { display:grid; gap:1rem; } .grid.two { grid-template-columns: 1fr 1fr; } .grid.review { grid-template-columns: 2fr 1fr; }
.panel { background:var(--panel); border:1px solid #262a33; border-radius:8px; padding:1rem; }
pre.log { background:#000; color:#9f9; padding:.75rem; max-height:50vh; overflow:auto; font-size:.8rem; }
form.params label { display:block; margin:.35rem 0; } form.params input { width:8rem; }
canvas.viewer { width:100%; image-rendering:pixelated; background:#000; }
.error { color:var(--bad); }
