:root{--bg:#f6f4ef;--surface:#ffffff;--surface-alt:#ebe7df;--text:#211f1b;--muted:#69645b;--line:#d8d2c6;--accent:#9b2f2f;--accent-dark:#742424;--ink:#1f2933}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 32px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94)}.brand{font-weight:800;font-size:20px}.main-nav{display:flex;gap:18px;color:var(--muted);font-size:14px}.main-nav a:hover{color:var(--accent)}.main-nav a:focus-visible{color:var(--accent);outline:2px solid var(--accent);outline-offset:4px}.page{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 56px}.section-title{margin:0 0 14px;font-size:22px}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.button.secondary{background:transparent;color:var(--accent)}.button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.button[aria-disabled=true]{cursor:not-allowed;opacity:.62}.home-layout,.portal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:24px;gap:24px}.panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:18px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:14px;gap:14px;margin-bottom:28px}.book-card{display:grid;grid-template-columns:76px minmax(0,1fr);grid-gap:14px;gap:14px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.book-card h3{margin:0 0 4px;font-size:17px}.book-card p{margin:6px 0 0}.book-card h3,.book-card p,.chapter-list a,.library-row{overflow-wrap:anywhere}.cover{display:flex;align-items:center;justify-content:center;aspect-ratio:2/3;border-radius:6px;background:linear-gradient(135deg,#8b2f32,#253f5d 62%,#2d6f63);color:#fff;font-weight:800}.cover.large{width:180px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-row span{border:1px solid var(--line);border-radius:999px;padding:3px 8px;background:var(--surface-alt);color:var(--muted);font-size:12px}.ranking-list{display:grid;grid-gap:10px;gap:10px;padding-left:22px}.rankings-header{margin-bottom:22px}.rankings-header p{margin:0}.ranking-page-list{display:grid;grid-gap:28px;gap:28px}.ranking-featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.ranking-featured-item{display:grid;grid-gap:12px;gap:12px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px}.ranking-featured-item .cover{width:92px}.ranking-rank{color:var(--accent);font-size:13px;font-weight:800;text-transform:uppercase}.ranking-book-body{display:grid;grid-gap:8px;gap:8px}.ranking-book-body h3,.ranking-full-list h3{margin:0;font-size:18px}.ranking-book-body p,.ranking-full-list p{margin:0}.ranking-book-body .button,.ranking-full-list .button{justify-self:start;margin-top:4px}.ranking-full-list{display:grid;grid-gap:10px;gap:10px;padding:0;list-style:none}.ranking-full-list li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;grid-gap:14px;gap:14px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px 14px}.category-grid,.category-links,.category-list,.library-grid{display:grid;grid-gap:12px;gap:12px}.category-links a,.category-list a{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.category-links span,.category-list span{color:var(--muted);font-size:14px}.category-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ad-slot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;border:1px dashed #b6ab9a;border-radius:8px;background:#fff8e8;padding:14px 16px}.ad-slot span{color:var(--muted);font-size:12px;text-transform:uppercase}.book-hero{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:24px;gap:24px;margin-bottom:24px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:20px}.book-hero .cover{width:180px}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.chapter-list{display:grid;grid-gap:8px;gap:8px;padding:0;list-style:none}.chapter-list li{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:10px 0}.chapter-list a{display:grid;grid-gap:2px;gap:2px}.chapter-list small{flex:0 0 auto;color:var(--muted)}.reader-page{width:min(860px,calc(100% - 32px));margin:0 auto;padding:24px 0 56px}.reader-progress{position:fixed;top:0;left:0;z-index:20;width:100%;height:4px;background:transparent}.reader-progress span{display:block;height:100%;background:var(--accent)}.chapter-article,.reader-article{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:clamp(24px,5vw,56px)}.chapter-article h1,.reader-article h1{margin-top:8px}.chapter-article p,.reader-article p{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:20px;line-height:1.85}.chapter-article .muted,.reader-article .muted{color:var(--muted);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5}.chapter-nav,.reader-nav{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:12px;gap:12px;margin:18px 0}.chapter-nav a:last-child,.reader-nav a:last-child,.reader-nav span:last-child{justify-self:end}.chapter-comments{display:grid;grid-gap:18px;gap:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:clamp(18px,4vw,32px)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.section-heading h2{margin:4px 0 0}.section-heading>span{color:var(--muted);font-size:14px;font-weight:800}.comment-form{display:grid;grid-gap:12px;gap:12px}.comment-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:13px;font-weight:800}.comment-form input,.comment-form textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:10px 12px;font:inherit}.comment-form textarea{resize:vertical}.comment-form .button{justify-self:start}.form-error{margin:0;color:var(--accent-dark);font-size:14px;font-weight:700}.comment-list{display:grid;grid-gap:12px;gap:12px}.comment-item{display:grid;grid-gap:8px;gap:8px;border-top:1px solid var(--line);padding-top:14px}.comment-item header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.comment-item time{color:var(--muted);font-size:13px}.comment-item p{margin:0;color:var(--ink);line-height:1.65;white-space:pre-wrap}.search-input{width:100%;min-height:44px;margin-bottom:18px;border:1px solid var(--line);border-radius:6px;padding:0 12px;font-size:16px}.library-row{display:grid;grid-gap:4px;gap:4px;border-bottom:1px solid var(--line);padding:10px 0}.library-row span{color:var(--muted);font-size:14px}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:18px 0}.filter-bar div{display:grid;grid-gap:6px;gap:6px}.filter-bar label{color:var(--muted);font-size:13px;font-weight:700}.filter-bar select{min-height:40px;min-width:160px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:0 10px}.admin-auth{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr)) auto;grid-gap:12px;gap:12px;align-items:end;margin-bottom:18px}.admin-session{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-auth div{display:grid;grid-gap:6px;gap:6px}.admin-auth label{color:var(--muted);font-size:13px;font-weight:800}.admin-auth input{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:0 12px;font-size:15px}.admin-auth p{grid-column:1/-1;margin:0}.admin-session p{margin:4px 0 0}.admin-locked{text-align:center}.admin-locked p{margin-bottom:0}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.admin-header h1{margin:4px 0 0}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.admin-stats div{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:16px}.admin-stats span{font-size:28px;font-weight:800}.admin-stats strong{color:var(--muted);font-size:13px}.admin-table{display:grid;grid-gap:1px;gap:1px;overflow-x:auto}.admin-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(100px,1fr) minmax(120px,1fr) minmax(110px,1fr) minmax(220px,1.4fr);grid-gap:12px;gap:12px;min-width:760px;border-bottom:1px solid var(--line);padding:12px 0}.admin-row-head{color:var(--muted);font-size:13px;font-weight:800}.admin-row a,.admin-row span{display:grid;grid-gap:4px;gap:4px;align-content:center}.admin-row small{color:var(--muted)}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-actions .button{min-height:34px;padding:0 10px}.button:disabled{cursor:not-allowed;opacity:.55}.status-pill{width:max-content;border:1px solid var(--line);border-radius:999px;background:var(--surface-alt);color:var(--text);padding:4px 8px;font-size:12px;font-weight:800}.status-published{border-color:#8bb39a;background:#e7f3eb;color:#24523a}.status-draft{border-color:#c7b278;background:#fff6d8;color:#735b13}.status-archived{border-color:#b7b7b7;background:#eeeeee;color:#4b4b4b}@media (max-width:720px){.site-header{align-items:flex-start;flex-direction:column;padding:12px 16px}.main-nav{flex-wrap:wrap}}@media (max-width:900px){.book-hero,.home-layout,.portal-layout,.ranking-featured-grid{grid-template-columns:1fr}.book-hero .cover,.cover.large{width:140px}}@media (max-width:560px){.book-card{grid-template-columns:64px minmax(0,1fr)}.ad-slot,.admin-header,.chapter-list li,.chapter-nav,.ranking-full-list li,.reader-nav{align-items:stretch;grid-template-columns:1fr}.ad-slot,.admin-header,.chapter-list li{flex-direction:column}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-auth,.admin-session{grid-template-columns:1fr}.admin-session{align-items:stretch;flex-direction:column}.chapter-list small,.chapter-nav a:last-child,.ranking-full-list .button,.reader-nav a:last-child,.reader-nav span:last-child{justify-self:start}.chapter-article p,.reader-article p{font-size:18px}}