:root{--bg:#faf7f2;--card:#fff;--tx:#2b2118;--mu:#7a6b5d;--ac:#b5451b;--bd:#e6dccf}
@media(prefers-color-scheme:dark){:root{--bg:#1c1712;--card:#272019;--tx:#f0e8dd;--mu:#a89985;--ac:#e0764a;--bd:#3a3026}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font-family:Georgia,'Times New Roman',serif;line-height:1.5}
header{text-align:center;padding:34px 16px 10px}.logo{font-size:2.2rem;font-weight:bold;color:var(--tx);text-decoration:none;letter-spacing:1px}.logo span{color:var(--ac)}
header p,.mu{color:var(--mu);font-family:system-ui,sans-serif;margin:6px 0}
main{max-width:1100px;margin:auto;padding:16px}
input,button,.btn2{font:inherit;font-family:system-ui,sans-serif;padding:11px 14px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx)}
button,.btn2{background:var(--ac);color:#fff;border:0;cursor:pointer;text-decoration:none;display:inline-block}.gray{background:#777}
.bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:680px;margin:0 auto 24px}.bar input{flex:1;min-width:220px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px}
.book{background:var(--card);border:1px solid var(--bd);border-radius:10px;overflow:hidden;color:inherit;text-decoration:none;display:block;transition:transform .15s}
.book:hover{transform:translateY(-3px)}.book img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block;background:var(--bd)}
.book a{color:inherit;text-decoration:none}.info{padding:10px}.t{font-weight:bold;font-size:.95rem;line-height:1.25}
.m{color:var(--mu);font-size:.82rem;font-family:system-ui,sans-serif;margin-top:4px}.tag{display:inline-block;font-size:.7rem;background:var(--bd);border-radius:4px;padding:1px 6px;margin-top:6px;font-family:system-ui,sans-serif}
.act{display:flex;gap:6px;padding:0 10px 10px}.act button{flex:1;padding:7px}
.up{max-width:520px;margin:44px auto 20px;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:20px}
.up label{display:block;font-size:.85rem;color:var(--mu);margin:12px 0 0;font-family:system-ui,sans-serif}.up input{width:100%;margin-top:4px}.up button{margin-top:16px}
.hp{position:absolute;left:-9999px}.ok,.bad,.empty{text-align:center;font-family:system-ui,sans-serif;padding:10px}.ok{color:#2e7d32}.bad{color:#c62828}.empty{color:var(--mu);padding:40px}
.pager{text-align:center;font-family:system-ui,sans-serif}.pager a{margin:0 10px;color:var(--ac)}
footer{text-align:center;color:var(--mu);padding:30px;font-size:.8rem;font-family:system-ui,sans-serif}
