:root{--bg: #faf7f2;--surface: #fff;--text: #2a2420;--muted: #7a6f66;--line: #e8e1d8;--accent: #c2410c;--ok: #15803d;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1a1714;--surface: #24201c;--text: #f0ebe4;--muted: #a39789;--line: #38322c;--accent: #fb923c;--ok: #4ade80}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.page{max-width:1100px;margin:0 auto;padding:24px 16px 64px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px}h1{margin:0;font-size:1.75rem}.sub,.note{color:var(--muted);margin:4px 0 0}.live{font-size:.8rem;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.live:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted)}.live.on{color:var(--ok)}.live.on:before{background:var(--ok)}.day{margin-top:32px}.day h2{position:sticky;top:0;z-index:1;margin:0 0 12px;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--line);font-size:1.1rem;display:flex;align-items:center;gap:8px}.count{font-size:.75rem;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}.grid{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.grid button{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);cursor:zoom-in;color:inherit}.grid button:disabled{cursor:default}.grid img{width:100%;height:100%;object-fit:cover;display:block}.missing{display:grid;place-items:center;height:100%;color:var(--muted);font-size:.85rem}.time{position:absolute;left:6px;bottom:6px;font-size:.75rem;padding:2px 6px;border-radius:6px;background:#0009;color:#fff}.grid li.new button{outline:2px solid var(--accent);outline-offset:2px;animation:pop .5s ease-out}@keyframes pop{0%{transform:scale(.94);opacity:0}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#000000d9;display:grid;place-items:center;padding:16px}.lightbox .pair{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;max-height:100%;overflow:auto}.lightbox figure{margin:0;text-align:center;color:#fff;flex:1 1 280px;max-width:520px}.lightbox img{max-width:100%;max-height:78vh;border-radius:8px}.close{position:absolute;top:12px;right:16px;font-size:2rem;background:none;border:0;color:#fff;cursor:pointer}body.display-page{background:#000;overflow:hidden}.led-stage{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:grid;place-items:center}.led-stage.led{display:block;cursor:none}.led-stage canvas{display:block}.admin button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}.admin button:disabled{opacity:.5;cursor:default}.admin button.primary{background:var(--ok);border-color:var(--ok);color:#fff}.admin button.danger{color:#b91c1c;border-color:#b91c1c}.login{max-width:320px;margin:15vh auto 0;display:grid;gap:14px}.login label{display:grid;gap:6px;color:var(--muted)}.login input{font:inherit;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text)}.error{color:#b91c1c}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button.on{border-color:var(--accent);color:var(--accent)}.review-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.review-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.review-card img{width:100%;aspect-ratio:7 / 9;object-fit:cover;display:block}.review-card .missing{display:grid;place-items:center;aspect-ratio:7 / 9;color:var(--muted)}.review-card .meta{padding:10px 12px 0;font-size:.9rem}.review-card .meta p{margin:6px 0 0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.75rem;padding:2px 8px;border-radius:999px;background:#fde68a;color:#78350f}.chip.soft{background:var(--line);color:var(--text)}.review-card .actions{display:flex;gap:8px;padding:12px;margin-top:auto}.review-card .actions button{flex:1}
