@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap";html,body,#root{min-height:100%;margin:0}:root{--bg:#f7f2ea;--bg-soft:#f3eee6;--card:#fffcf7;--card-muted:#fbf7f0;--text:#1e1c19;--text-secondary:#7c746b;--text-muted:#a39b92;--border:#1e1c1914;--accent:#8a4b32;--shadow-soft:0 16px 44px #00000014;--shadow-hover:0 20px 40px #1e1c191f}:root[data-theme=dark]{--bg:#11100e;--bg-soft:#151311;--card:#1a1815;--card-muted:#201d19;--text:#f4efe7;--text-secondary:#a79e93;--text-muted:#7d756b;--border:#f4efe714;--accent:#c7a36a;--shadow-soft:0 16px 50px #00000057;--shadow-hover:0 24px 46px #00000073}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 14% 10%, #c7a36a0d, transparent 32%), radial-gradient(circle at 86% 16%, #8a4b320a, transparent 32%), linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);margin:0;font-family:Inter,system-ui,sans-serif}h1,h2,h3,h4{margin:0}input,button{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}.app-root{min-height:100vh}.login-hero h1,.book-info h4{font-family:Playfair Display,serif}.primary-btn,.secondary-btn,.ghost-btn,.add-btn,.pill,.nav-item,.icon-btn,.bottom-item,.dialog-item{border:1px solid var(--border);background:0 0;border-radius:999px;transition:transform .18s,box-shadow .18s,background-color .18s}.primary-btn{background:var(--text);color:var(--bg);border-color:var(--text);align-items:center;gap:8px;height:44px;padding:0 14px;display:inline-flex}.secondary-btn,.ghost-btn,.add-btn{align-items:center;gap:8px;height:44px;padding:0 14px;display:inline-flex}.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover,.add-btn:hover,.nav-item:hover{transform:translateY(-1px)}.icon-btn{border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.avatar{background:var(--text);width:40px;height:40px;color:var(--bg);border-radius:999px;place-items:center;font-weight:600;display:grid}.avatar.big{width:64px;height:64px;font-size:1.1rem}.login-shell{place-items:center;min-height:100vh;padding:48px 24px;display:grid}.login-layout{grid-template-columns:minmax(0,1.1fr) 420px;align-items:center;gap:72px;width:min(1120px,100%);display:grid}.hero{min-width:0;overflow:hidden}.login-hero{align-content:center;gap:24px;display:grid}.login-label{letter-spacing:.12em;color:var(--text-secondary);margin:0;font-size:12px}.login-hero h1{margin:0;font-size:clamp(42px,5vw,64px);font-weight:500;line-height:.98}.login-subtitle{max-width:540px;color:var(--text-secondary);margin:0;font-size:16px;line-height:1.6}.login-card{background:color-mix(in srgb, var(--card) 88%, transparent);border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:28px;gap:16px;padding:40px;display:grid}.login-card .form-grid{gap:10px;display:grid}.login-card input{border:1px solid var(--border);background:var(--card-muted);border-radius:12px;outline:none;padding:12px}.app-layout{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;width:260px;height:100vh;padding:32px 20px;display:flex;position:sticky;top:0}.sidebar h2{margin:0 0 20px;font-size:1.2rem;font-weight:550}.sidebar-nav{gap:8px;margin-bottom:14px;display:grid}.nav-item{text-align:left;border-radius:12px;align-items:center;gap:8px;padding:9px 12px;display:inline-flex}.nav-item.active{background:var(--card-muted)}.add-btn.full{justify-content:center;width:100%}.sidebar-bottom{gap:10px;display:grid}.profile-mini{color:var(--text-secondary);align-items:center;gap:10px;display:flex}.profile-mini strong{color:var(--text);display:block}.app-main{min-width:0;padding:40px 48px}.screen-container{width:100%;max-width:1100px;margin:0 auto}.app-content-wrap{position:relative}.screen-anim{animation:.18s both screenFade}@keyframes screenFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px;display:flex}.screen-header h1{font-size:36px;font-weight:500;line-height:1}.subtitle{color:var(--text-secondary);margin:8px 0 0}.screen-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.search-input{border:1px solid var(--border);background:var(--card);border-radius:999px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 14px;display:flex}.search-input input{background:0 0;border:0;outline:none;width:100%}.feed-list,.people-list{gap:16px;display:grid}.feed-item,.person-card,.profile-hero,.dialogs-list,.chat-panel,.empty-state,.error-card{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-soft);border-radius:18px;padding:16px}.feed-item{max-width:760px}.feed-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.feed-book{grid-template-columns:120px 1fr;gap:12px;display:grid}.inline-actions{flex-wrap:wrap;gap:8px;display:flex}.book-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:24px;display:grid}.book-card{background:color-mix(in srgb, var(--card) 92%, transparent);border:1px solid #0000;border-radius:16px;grid-template-rows:auto 1fr;gap:10px;min-height:360px;padding:10px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative}.book-card:hover{box-shadow:var(--shadow-hover);border-color:var(--border);transform:scale(1.02)}.book-info{gap:6px;min-width:0;display:grid}.book-info h4{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.04rem;line-height:1.2;display:-webkit-box;overflow:hidden}.book-info p{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.9rem;overflow:hidden}.book-meta-row{color:var(--text-secondary);justify-content:space-between;font-size:.78rem;display:flex}.progress-track{background:var(--border);height:2px;margin-top:2px}.progress-track span{background:var(--accent);height:100%;display:block}.progress-track.thin{height:1.5px}.book-card .icon-btn{position:absolute;top:12px;right:12px}.book-cover{aspect-ratio:3/4.24;border-radius:12px;align-items:flex-end;padding:16px 14px;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 18px #1e1c1912}.cover-image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.book-cover:after{content:"";background:linear-gradient(#00000005 45%,#00000061);position:absolute;inset:0}.cover-meta{z-index:1;gap:6px;display:grid;position:relative}.cover-meta p{color:#fff9f1;margin:0;font-size:1rem;font-weight:520;line-height:1.14}.cover-meta span{color:#fff9f1e0;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.cover-1{background:linear-gradient(158deg,#432720,#7b5642)}.cover-2{background:linear-gradient(158deg,#efe5d7,#c6b7a6);border:1px solid #241e1840}.cover-2:after{background:linear-gradient(#0000 48%,#241e1829)}.cover-2 .cover-meta p,.cover-2 .cover-meta span{color:#241e18}.cover-3{background:linear-gradient(158deg,#4b3526,#8a6a4e)}.cover-4{background:linear-gradient(158deg,#3d4740,#6f7b68)}.cover-5{background:linear-gradient(158deg,#2f2b2b,#655654)}.cover-6{background:linear-gradient(158deg,#674733,#a27f57)}.cover-7{background:linear-gradient(158deg,#4e2f2a,#8b5a49)}.cover-8{background:linear-gradient(158deg,#282425,#5a4e55)}.messages-layout{grid-template-columns:300px minmax(0,1fr);gap:14px;display:grid}.dialog-item{text-align:left;border-radius:12px;align-items:center;gap:10px;width:100%;margin-bottom:8px;padding:10px;display:flex}.dialog-item.active{border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.chat-panel{gap:12px;display:grid}.chat-stream{gap:10px;display:grid}.chat-row{justify-items:start;gap:4px;display:grid}.chat-row.mine{justify-items:end}.bubble{border:1px solid var(--border);background:var(--card-muted);border-radius:14px;width:fit-content;max-width:min(76%,460px);margin:0;padding:10px 12px}.bubble.mine{background:color-mix(in srgb, var(--text) 10%, var(--card))}.msg-time{color:var(--text-muted);font-size:11px}.book-message.compact{border:1px solid var(--border);background:var(--card-muted);border-radius:12px;grid-template-columns:56px 1fr;align-items:center;gap:8px;width:min(320px,92vw);padding:8px;display:grid}.book-message.compact .book-cover{aspect-ratio:3/4;box-shadow:none;padding:6px}.book-message.compact strong{font-size:.9rem;line-height:1.2}.book-message.compact p{color:var(--text-secondary);margin:2px 0 0;font-size:.78rem}.chat-input{grid-template-columns:1fr auto;gap:8px;display:grid}.chat-input input{border:1px solid var(--border);background:var(--card-muted);border-radius:999px;outline:none;padding:10px 12px}.profile-hero{align-items:center;gap:14px;display:flex}.profile-hero h2{font-family:Playfair Display,serif;font-size:2rem;font-weight:600}.profile-hero p{color:var(--text-secondary);margin:2px 0}.profile-hero span{color:var(--text-secondary)}.profile-sections{gap:16px;margin-top:24px;display:grid}.profile-section-card{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-soft);border-radius:18px;padding:16px}.profile-section-card h3{margin:0 0 14px;font-size:1.02rem;font-weight:600}.profile-shelves-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.profile-shelf-column h4{color:var(--text-secondary);margin:0 0 8px;font-size:.88rem}.mini-covers-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mini-cover-btn{text-align:left;background:0 0;border:0;border-radius:10px;padding:0;transition:transform .18s}.mini-cover-btn:hover{transform:scale(1.04)}.mini-cover-thumb{border:1px solid var(--border);background:var(--card-muted);border-radius:10px;width:60px;height:90px;overflow:hidden}.mini-cover-image{object-fit:cover;width:100%;height:100%;display:block}.mini-cover-fallback{background:linear-gradient(160deg,#4a2f25,#7f5d4a);align-items:flex-end;width:100%;height:100%;padding:6px;display:flex}.mini-cover-fallback span{color:#fff7ed;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:9px;line-height:1.2;display:-webkit-box;overflow:hidden}.show-all-btn{height:34px;padding:0 12px;font-size:12px}.profile-actions-list{gap:8px;display:grid}.profile-action-row{border:1px solid var(--border);background:color-mix(in srgb, var(--card-muted) 80%, transparent);color:var(--text);text-align:left;border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.profile-action-row .dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:7px;height:7px}.profile-action-row strong{font-weight:600}.empty-state h3,.error-card h3{margin:0 0 6px}.empty-state p,.error-card p{color:var(--text-secondary);margin:0}.error-card{gap:12px;display:grid}.sk{background:linear-gradient(90deg, color-mix(in srgb, var(--card-muted) 90%, transparent) 25%, color-mix(in srgb, var(--card) 95%, transparent) 50%, color-mix(in srgb, var(--card-muted) 90%, transparent) 75%);background-size:200% 100%;border-radius:14px;animation:1.1s linear infinite shimmer}.sk-book{height:330px}.skeleton-lines{gap:10px;display:grid}.sk-line{height:82px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.share-backdrop{z-index:100;background:#0a08079e;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.share-modal{border:1px solid var(--border);background:var(--card);width:min(600px,100vw - 24px);max-height:min(86vh,860px);box-shadow:var(--shadow-soft);border-radius:20px;gap:14px;padding:18px;display:grid;position:relative;overflow-y:auto}.book-edit-modal{border-radius:24px;gap:24px;width:min(760px,100vw - 24px);padding:28px}.add-book-modal{border-radius:22px;width:min(440px,90vw);max-height:min(88vh,860px);padding:20px;overflow-y:auto}.profile-edit-modal{border-radius:20px;gap:14px;width:min(420px,90vw);padding:20px}.profile-edit-form{gap:12px;display:grid}.profile-edit-form input,.profile-edit-form textarea{color:#fff;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:10px;outline:none;width:100%;padding:12px 14px}.profile-edit-form textarea{resize:vertical;min-height:80px}.profile-edit-actions{gap:10px;margin-top:4px;display:flex}.profile-edit-actions .primary-btn{color:#11100e;background:#f4efe7;border-color:#f4efe7}.profile-edit-actions .ghost-btn{color:#f4efe7;border-color:#3a3a3a}.add-book-form{gap:12px;display:grid}.add-book-field{gap:8px;display:grid}.add-book-field span{color:var(--text-secondary);font-size:13px}.add-book-field input,.add-book-field textarea{color:#fff;background:#1a1a1a;border:1px solid #444;border-radius:14px;outline:none;width:100%;padding:12px 14px}.add-book-field textarea{resize:vertical;min-height:80px}.add-book-submit{justify-content:center;width:100%;margin-top:8px}.book-edit-layout{grid-template-columns:280px minmax(0,1fr);gap:24px;display:grid}.book-edit-cover-col{align-content:start;gap:12px;display:grid}.book-edit-cover-preview .book-cover{width:100%;max-width:280px}.book-edit-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{gap:8px;display:grid}.field-full{grid-column:1/-1}.field label{color:var(--text-secondary);font-size:13px}.field input,.field textarea,.field select{border:1px solid var(--border);width:100%;color:var(--text);background:color-mix(in srgb, var(--card-muted) 88%, transparent);border-radius:14px;outline:none;padding:12px 14px}.field textarea{resize:vertical;min-height:120px}.file-upload-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 14px;display:inline-flex}.file-upload-btn input{display:none}.field-hint{color:var(--text-secondary);margin:0;font-size:12px}.book-edit-actions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;display:flex}.share-modal header{justify-content:space-between;align-items:center;display:flex}.modal-close-btn{border:1px solid var(--border);background:var(--card-muted);border-radius:999px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:10px;right:10px}.modal-list{gap:10px;max-height:46vh;padding-right:2px;display:grid;overflow:auto}.modal-row{border:1px solid var(--border);background:color-mix(in srgb, var(--card) 92%, transparent);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px;display:flex}.modal-book-preview{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.modal-book-preview .book-cover{aspect-ratio:3/4;padding:8px}.modal-book-preview strong{margin-bottom:4px;line-height:1.2;display:block}.modal-book-preview span{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.tabs{flex-wrap:wrap;gap:8px;display:flex}.pill{padding:8px 12px;font-size:.86rem}.pill.active{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.mobile-topbar{justify-content:space-between;align-items:center;height:44px;margin-bottom:18px;display:none}.mobile-bottom-nav{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--border);z-index:50;border-radius:999px;justify-content:space-around;align-items:center;height:64px;display:none;position:fixed;box-shadow:0 18px 50px #0000001f}.bottom-item{background:0 0;border:0;border-radius:999px;place-items:center;width:42px;height:42px;padding:0;display:grid}.bottom-item.active{background:var(--text);color:var(--bg)}.error-box{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--card));border-radius:12px;margin:0 0 12px;padding:10px 12px}.book-detail-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:28px;margin-top:16px;display:grid}.book-detail-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.book-detail-meta-grid small{color:var(--text-secondary);font-size:12px}.book-detail-meta-grid strong{margin-top:4px;font-size:14px;display:block}.book-detail-description{color:var(--text-secondary);margin-top:14px;line-height:1.6}.reading-progress-card{border:1px solid var(--border);background:color-mix(in srgb, var(--card-muted) 82%, transparent);border-radius:20px;gap:14px;margin-top:18px;padding:18px;display:grid}.reading-progress-card h4{margin:0;font-size:15px;font-weight:600}.status-pills{flex-wrap:wrap;gap:10px;display:flex}.status-pill{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:999px;padding:8px 14px;font-size:13px;line-height:1}.status-pill.active{background:var(--text);color:var(--bg);border-color:var(--text)}.progress-caption{margin:0}.progress-editor{gap:8px;display:grid}.progress-editor label{color:var(--text-secondary);font-size:13px}.progress-editor-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.progress-input{border:1px solid var(--border);background:var(--card);width:130px;color:var(--text);border-radius:12px;padding:9px 12px}.book-detail-actions-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.edition-details{border:1px solid var(--border);background:color-mix(in srgb, var(--card-muted) 85%, transparent);border-radius:12px;margin-top:14px}.edition-details summary{cursor:pointer;color:var(--text-secondary);padding:10px 12px;font-size:13px;list-style:none}.edition-details-list{gap:8px;padding:0 12px 12px;display:grid}.edition-details-list p{justify-content:space-between;gap:12px;margin:0;display:flex}.edition-details-list span{color:var(--text-secondary);font-size:12px}.edition-details-list strong{font-size:13px;font-weight:550}@media (width<=900px){.messages-layout,.feed-book,.book-detail-layout{grid-template-columns:1fr}.book-detail-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-input{width:100%;max-width:220px}.profile-shelves-grid{grid-template-columns:1fr}.mini-covers-row{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width<=768px){.app-layout{display:block}.sidebar{display:none}.mobile-topbar,.mobile-bottom-nav{display:flex}.app-main{min-width:0;padding:20px 16px calc(96px + env(safe-area-inset-bottom))}.screen-container{max-width:none}.screen-header{flex-direction:column;margin-bottom:24px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.feed-item{width:100%;max-width:none}.login-layout{grid-template-columns:1fr;gap:40px}.login-card{max-width:100%;padding:24px 20px}.login-shell{padding:20px}.login-hero h1{font-size:36px}.profile-edit-modal{width:min(420px,90vw);padding:16px}.book-edit-modal{width:min(760px,100vw - 16px);max-height:min(90vh,980px);padding:18px}.book-edit-layout{grid-template-columns:1fr;gap:18px}.book-edit-cover-preview .book-cover{max-width:260px}.book-edit-fields{grid-template-columns:1fr}.book-edit-actions{flex-direction:column;align-items:stretch}}
