@import url("https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap");:root{--bg-root:#1f1f26;--bg-surface:#25252d;--bg-card:#2c2c34;--bg-hover:#333340;--bg-sidebar:#1a1a21;--bg-editor:#1e1e26;--border:#363644;--border-light:#2e2e3a;--text:#e6dfd6;--text-secondary:#9d978e;--text-muted:#6e6962;--accent:#00a99d;--accent-hover:#009086;--accent-soft:rgba(0,169,157,0.10);--accent-glow:rgba(0,169,157,0.20);--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--danger-soft:rgba(248,113,113,0.10);--danger-subtle:rgba(248,113,113,0.08);--sidebar-w:220px;--topbar-h:48px;--radius:10px;--radius-lg:16px;--radius-pill:40px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg-root);color:var(--text);font-family:Inter,-apple-system,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{text-decoration:none}a,button{color:inherit}button{border:none;cursor:pointer;background:none}button,input,select,textarea{font:inherit}.app-layout,.sidebar{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-direction:column;background:var(--bg-sidebar);padding:0 14px;flex-shrink:0;border-right:1px solid var(--border)}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:22px 6px 12px}.sidebar-logo-icon{width:34px;height:34px;background:var(--accent-soft);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.sidebar-logo-text{font-size:17px;font-weight:700;letter-spacing:-.3px;color:var(--text)}.sidebar-logo-text span{color:var(--accent)}.sidebar-new-btn{margin:4px 0 20px}.sidebar-new-btn a{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 0;background:var(--accent);color:#0f0f14;border-radius:8px;font-size:13px;font-weight:600}.sidebar-new-btn a:hover{background:var(--accent-hover)}.sidebar-section{margin-top:16px}.sidebar-label{padding:0 8px 6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.sidebar-nav{display:flex;flex-direction:column;gap:1px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);transition:background .12s,color .12s}.sidebar-link:hover{background:var(--bg-hover);color:var(--text)}.sidebar-link.active{background:var(--accent-soft);color:var(--accent)}.sidebar-link svg{width:17px;height:17px;flex-shrink:0;opacity:.7}.sidebar-link.active svg,.sidebar-link:hover svg{opacity:1}.sidebar-link.danger{color:var(--danger)}.sidebar-link.danger:hover{background:var(--danger-soft)}.sidebar-spacer{flex:1 1}.app-main{flex:1 1;display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);display:flex;align-items:center;padding:0 24px;gap:14px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.topbar-tabs{display:flex;gap:2px}.topbar-tab{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);transition:background .12s,color .12s}.topbar-tab:hover{background:var(--bg-hover);color:var(--text)}.topbar-tab.active{background:var(--accent-soft);color:var(--accent)}.topbar-search{flex:1 1;max-width:360px;position:relative}.topbar-search input{width:100%;padding:6px 14px 6px 34px;background:var(--bg-root);border:1px solid transparent;border-radius:8px;font-size:13px;color:var(--text);outline:none}.topbar-search input::placeholder{color:var(--text-muted)}.topbar-search input:focus{border-color:var(--accent);background:var(--bg-card)}.topbar-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-muted)}.topbar-bell{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:var(--text-muted);transition:background .12s;flex-shrink:0}.topbar-bell:hover{background:var(--bg-hover);color:var(--text)}.topbar-avatar{width:30px;height:30px;border-radius:30px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:var(--accent);flex-shrink:0}.main-content{flex:1 1;overflow-y:auto;padding:36px 40px 48px}.books-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px}.books-header h2{font-size:28px;font-weight:700;letter-spacing:-.5px}.books-header .sub{font-size:13px;color:var(--text-secondary)}.grid-2{display:grid;grid-template-columns:1fr 300px;grid-gap:32px;gap:32px}.book-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:26px 30px;border:1px solid var(--border-light);transition:border-color .15s}.book-card:hover{border-color:var(--border)}.book-cover-section{display:flex;gap:20px;margin-bottom:20px}.book-cover{width:100px;height:140px;border-radius:var(--radius);overflow:hidden;flex-shrink:0;background:var(--bg-root);border:1px solid var(--border)}.book-cover img{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;color:var(--text-muted)}.book-cover-placeholder,.cover-upload-hint{display:flex;align-items:center;justify-content:center}.cover-upload-hint{position:absolute;bottom:6px;right:6px;width:24px;height:24px;border-radius:6px;background:var(--accent);color:#0f0f14;opacity:0;transition:opacity .15s}.book-cover-section label:hover .cover-upload-hint{opacity:1}.book-title{font-size:20px;font-weight:600;margin-bottom:2px}.book-sub{font-size:13px;color:var(--text-secondary);margin-bottom:14px}.badge{display:inline-block;padding:3px 12px;border-radius:20px;font-size:11px;font-weight:600}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-success{background:rgba(74,222,128,.1);color:var(--success)}.badge-warning{background:rgba(251,191,36,.1);color:var(--warning)}.meta-line{display:flex;gap:20px;font-size:13px;color:var(--text-secondary);margin:14px 0 16px}.meta-line svg{opacity:.6}.chapters{border-top:1px solid var(--border-light);padding-top:14px}.chapter-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-light);font-size:14px;transition:background .12s;border-radius:4px;padding:10px 4px}.chapter-row:hover{background:var(--bg-hover);border-bottom-color:transparent}.chapter-row:last-child{border-bottom:none}.chapter-name{font-weight:500}.chapter-right{display:flex;align-items:center;gap:14px}.chapter-wc{font-size:12px;color:var(--text-muted)}.chapter-status{font-size:12px;font-weight:500;display:flex;align-items:center;gap:5px}.chapter-status.done{color:var(--success)}.chapter-status.draft{color:var(--warning)}.add-chapter,.chapter-status.work{color:var(--accent)}.add-chapter{margin-top:14px;font-weight:500;font-size:13px;display:flex;align-items:center;gap:6px}.add-chapter:hover{color:var(--accent-hover)}.book-actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px;padding-top:18px;border-top:1px solid var(--border-light)}.tip-of-day{margin-top:18px;padding:14px 16px;background:rgba(0,169,157,.05);border:1px solid rgba(0,169,157,.12);border-radius:var(--radius)}.tip-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:6px}.tip-of-day p{font-size:12px;color:var(--text-secondary);line-height:1.6}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:20px;font-size:13px;font-weight:500;transition:background .12s}.btn-primary{background:var(--accent);color:#0f0f14}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.btn-sm{padding:4px 12px;font-size:12px;border-radius:14px}.right-panel{gap:20px}.right-actions,.right-panel{display:flex;flex-direction:column}.right-actions{gap:8px}.info-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:22px 24px;border:1px solid var(--border-light)}.info-card h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:16px}.info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--border-light);font-size:13px}.info-row:last-child{border-bottom:none}.info-label{color:var(--text-muted);flex-shrink:0}.info-value{font-weight:500;text-align:right;max-width:60%}.progress-header{display:flex;justify-content:space-between;font-size:13px;font-weight:500;margin-bottom:10px}.progress-bar{height:5px;background:var(--bg-root);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .4s}.progress-link{margin-top:14px;font-size:13px;font-weight:500;color:var(--accent);display:flex;align-items:center;gap:4px}.progress-link:hover{color:var(--accent-hover)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state h3{font-size:18px;margin-bottom:8px;color:var(--text)}.input{width:100%;padding:9px 14px;background:var(--bg-root);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;outline:none}.input:focus{border-color:var(--accent);background:var(--bg-card)}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-6{margin-bottom:24px}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.container-sm{max-width:520px;margin:0 auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-fade-in{animation:fadeIn .3s ease-out}.type-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;border-radius:16px;background:#25252d;border:1px solid #363644;text-decoration:none;color:#e6dfd6;transition:border-color .15s,background .15s}.type-card:hover{border-color:#00a99d;background:#2c2c34}@media (max-width:820px){.sidebar{display:none}.grid-2{grid-template-columns:1fr}.main-content{padding:24px 16px}}.page-content{padding:24px 32px}.w-64{width:256px;flex-shrink:0}