:root{--bg:#f6f7fb;--card:#fff;--tx:#1d2433;--mut:#667085;--pri:#4f46e5;--pri2:#4338ca;--ok:#12b76a;--warn:#f79009;--err:#d92d20;--bd:#e4e7ec;--r:14px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx);line-height:1.55}
a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}
header{background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:5}
.nav{max-width:1080px;margin:auto;padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{font-weight:800;font-size:20px;color:var(--tx)}.logo span{color:var(--pri)}.logo:hover{text-decoration:none}
.sp{flex:1}.nav a.l{color:var(--tx);font-weight:500}
main{max-width:1080px;margin:auto;padding:24px 16px 60px;min-height:60vh}
h1{font-size:28px;margin:0 0 6px}h2{font-size:20px;margin:0 0 12px}h3{margin:18px 0 6px}
.sub{color:var(--mut);margin:0 0 22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:18px}
.book{display:flex;flex-direction:column}
.cover{position:relative;overflow:hidden;height:160px;border-radius:10px;display:flex;align-items:flex-end;padding:12px;color:#fff;font-weight:700;font-size:17px;margin-bottom:12px}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.book h3{margin:0 0 4px;font-size:16px}.book p{margin:0 0 10px;color:var(--mut);font-size:14px}
.book .grow{flex:1}
.price{font-weight:800;font-size:18px}.free{color:var(--ok)}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
button,.btn{background:var(--pri);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-size:15px;font-weight:600;cursor:pointer;display:inline-block;font-family:inherit}
button:hover,.btn:hover{background:var(--pri2);text-decoration:none}
button.sec,.btn.sec{background:#fff;color:var(--tx);border:1px solid var(--bd)}button.sec:hover,.btn.sec:hover{background:#f2f4f7}
button.ok,.btn.ok{background:var(--ok)}button.danger{background:var(--err)}
button.sm{padding:5px 10px;font-size:13px}
button:disabled{opacity:.6;cursor:wait}
.form{max-width:460px;margin:auto}
label{display:block;font-size:14px;font-weight:600;margin:12px 0 4px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--bd);border-radius:10px;font-size:15px;background:#fff;font-family:inherit}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #c7d2fe;border-color:var(--pri)}
input[type=checkbox]{width:auto;margin-right:6px}
.chk{font-weight:400;display:flex;align-items:flex-start;gap:4px}
.msg{padding:10px 12px;border-radius:10px;margin:12px 0;font-size:14px}
.msg.err{background:#fef3f2;color:var(--err);border:1px solid #fecdca}
.msg.ok{background:#ecfdf3;color:#067647;border:1px solid #abefc6}
.msg.info{background:#eef4ff;color:#3538cd;border:1px solid #c7d7fe}
.msg.warn{background:#fffaeb;color:#93370d;border:1px solid #fedf89}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.two{grid-template-columns:1fr}}
.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;background:#f2f4f7;color:var(--mut)}
.badge.ok{background:#ecfdf3;color:#067647}.badge.warn{background:#fffaeb;color:#b54708}.badge.err{background:#fef3f2;color:var(--err)}
.center{text-align:center}.small{font-size:13px;color:var(--mut)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.filters input{max-width:320px}.filters select{max-width:220px}
.legal{max-width:760px;margin:auto}.legal h2{margin-top:26px}.legal p,.legal li{color:#344054}
footer{text-align:center;color:var(--mut);font-size:13px;padding:24px 16px;border-top:1px solid var(--bd);background:#fff}
footer a{color:var(--mut);margin:0 8px}
.tabs{display:flex;gap:8px;margin:0 0 18px;flex-wrap:wrap}
.tab{padding:9px 14px;border:1px solid var(--bd);border-radius:999px;background:#fff;color:var(--tx);font-weight:600;font-size:14px}
.tab.on{background:var(--pri);color:#fff;border-color:var(--pri)}.tab:hover{text-decoration:none}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.stat b{display:block;font-size:30px}.stat span{color:var(--mut);font-size:14px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--bd);vertical-align:middle}th{color:var(--mut);font-weight:600;font-size:13px}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#1d2433;color:#fff;padding:10px 18px;border-radius:10px;z-index:20;font-size:14px}
