:root{--bg:#f6f3ec;--card:#fffdf6;--ink:#1d1b24;--muted:#6b6674;--line:#e3ddd0;--accent:#e8573a;--ok:#2f8f5b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.5 system-ui,-apple-system,sans-serif}main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}h1{margin:0;font-size:22px}h2{margin:0 0 12px;font-size:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--muted);font-size:13px}.error{color:#b3261e}button{font:inherit;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:8px;padding:7px 14px}button.secondary{color:var(--ink);background:0 0}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px}textarea{width:100%;min-height:60px}label.choice{border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:6px 10px}label.choice:has(input:checked){border-color:var(--ink);background:#fff}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.tile{cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}.tile img,.tile .blank{aspect-ratio:2/3;object-fit:cover;background:#ece6d8;width:100%;display:block}.tile div.meta{padding:8px 10px;font-size:13px}.pages{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.page svg{border-radius:6px;width:100%;height:auto;display:block;box-shadow:0 1px 4px #00000026}.page .blank{aspect-ratio:2/3;color:var(--muted);background:#ece6d8;border-radius:6px;place-items:center;display:grid}.badge{background:#ece6d8;border-radius:99px;padding:1px 8px;font-size:12px;display:inline-block}.badge.done{color:var(--ok);background:#d8efe2}.badge.failed{color:#b3261e;background:#f7d9d4}pre{white-space:pre-wrap;background:#f1ede3;border-radius:8px;padding:10px;font-size:12px;overflow:auto}