:root{--bg:#f5f7fb;--surface:#fff;--text:#1b2130;--muted:#667085;--primary:#5b7cfa;--primary-2:#7c8ff9;--accent:#22c55e;--warn:#f59e0b;--radius:14px;--gap:16px;--shadow:0 10px 30px rgba(16,24,40,.10)}
[data-theme="dark"]{--bg:#0b1220;--surface:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--primary:#7c83ff;--primary-2:#a5b4fc;--accent:#34d399;--warn:#fbbf24;--shadow:0 10px 30px rgba(2,6,23,.28)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,Helvetica,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.7}
a{color:var(--primary);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1120px;margin:0 auto;padding:18px}
/* 顶部进度条与导航 */
.progress{position:fixed;top:0;left:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--primary-2));width:var(--progress,0%);z-index:60}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.72);border-bottom:1px solid rgba(0,0,0,.06);backdrop-filter:saturate(180%) blur(16px)}
[data-theme="dark"] .nav{background:rgba(15,23,42,.6);border-bottom:1px solid rgba(255,255,255,.07)}
.nav .container{display:flex;justify-content:space-between;align-items:center;gap:10px}
.brand{font-weight:700;letter-spacing:.2px}
.nav-actions{display:flex;align-items:center;gap:10px}
.search{position:relative}.search input{width:300px;max-width:42vw;padding:10px 12px 10px 36px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:var(--surface);color:var(--text)}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);opacity:.6}
/* 通用组件 */
.btn{padding:8px 12px;border:0;border-radius:10px;background:var(--primary);color:#fff;cursor:pointer;transition:filter .2s ease,transform .2s ease}
.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn.secondary{background:var(--accent);color:#062}.btn.muted{background:transparent;border:1px solid rgba(0,0,0,.12);color:var(--muted)}
.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 18px 46px rgba(16,24,40,.14)}
.cover{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#e2e8f0,#f8fafc)}
.cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.cover .overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 40%)}
.card-body{padding:16px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#223;font-size:12px}
[data-theme="dark"] .badge{background:#1f2937;color:#cbd5e1}
.pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#334;font-size:12px}
[data-theme="dark"] .pill{background:#111827;color:#9ca3af}
/* 英雄区 */
.hero{margin:18px 0;padding:24px;border-radius:16px;background:linear-gradient(120deg,rgba(91,124,250,.12),rgba(34,197,94,.12));box-shadow:var(--shadow)}
.hero h1{margin:0 0 8px;font-size:1.9em}
.hero p{margin:0;color:var(--muted)}
/* 首页每本书布局 */
.novel-block{margin:22px 0;opacity:0;transform:translateY(14px)}
.novel-block.reveal-in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}
.novel-block .card{padding:16px}
.nb-grid{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}
.cover.book{aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--surface)}
.cover.book img{height:100%;object-fit:cover;transform:scale(1.02)}
.cover.book:hover img{transform:scale(1.07)}
.nb-info h2{margin:0 0 6px}
.nb-info h2 a{color:var(--text)}
.nb-info h2 a:hover{text-decoration:underline;color:var(--primary)}
.nb-desc{color:var(--muted)}
.nb-chapters .nb-list{list-style:none;padding:0;margin:0}
.nb-chapters .nb-list a{color:var(--text)}
.nb-chapters .nb-list a:hover{color:var(--primary)}
/* 广告位 */
.ad-banner{margin:16px 0;border-radius:14px;overflow:hidden;background:linear-gradient(120deg,rgba(91,124,250,.15),rgba(124,143,249,.15));box-shadow:var(--shadow)}
.ad-banner .ad-placeholder{min-height:90px;display:flex;align-items:center;justify-content:center;color:#1b2130;font-weight:600;letter-spacing:.5px}
[data-theme="dark"] .ad-banner .ad-placeholder{color:#e5e7eb}
.ad-card{margin:16px 0}
.ad-card .card-body{display:flex;align-items:center;justify-content:center;min-height:160px;color:var(--muted)}
/* 表单样式 */
.form{display:flex;flex-direction:column;gap:12px}
.form label{font-weight:600;color:var(--muted)}
.form input,.form textarea{width:100%;padding:10px 12px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:var(--surface);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}
[data-theme="dark"] .form input,[data-theme="dark"] .form textarea{border-color:rgba(255,255,255,.15);background:#0f172a}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,124,250,.18)}
.form .input-title{font-size:1.1em;font-weight:700}
.form textarea.editor{min-height:320px;line-height:1.8;resize:vertical}
.form .form-actions{margin-top:8px;display:flex;gap:8px}
/* 页脚 */
.footer{padding:24px;text-align:center;color:var(--muted)}
.footer .footer-title{font-size:13px;margin-bottom:4px;color:var(--muted)}
.footer .footer-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:8px}
.footer .footer-links a{color:var(--muted)}
.footer .footer-links a:hover{color:var(--primary)}
/* 响应式 */
@media (max-width:820px){.search input{width:54vw}.nb-grid{grid-template-columns:1fr}.cover.book{aspect-ratio:16/9}}