*{margin:0;padding:0;box-sizing:border-box}button,input,select,textarea{font-family:inherit}:root{font-family:Nunito,sans-serif;line-height:1.5;font-weight:400;color:#1a1a1a;background-color:#fff;--color-primary: #1a1a1a;--color-secondary: #666666;--color-accent: #60a5fa;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--color-background: #ffffff;--color-surface: #fafafa;--color-border: #e5e5e5;--series-novel: #7c3aed;--series-short-stories: #2563eb;--series-kuihtin: #d97706;--series-career: #059669}body{margin:0;min-width:320px;min-height:100vh;background:#fff}#root{width:100%}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-background)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.book-modal-backdrop{position:fixed;inset:0;z-index:1000;background:#14120e80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;overflow-y:auto;animation:modal-fade-in .18s ease}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.book-modal{position:relative;width:100%;max-width:820px;background:#fff;border-radius:24px;padding:32px;box-shadow:0 24px 60px #00000040;animation:modal-pop .22s cubic-bezier(.2,.7,.3,1)}@keyframes modal-pop{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.book-modal-close{position:absolute;top:18px;right:18px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#f3ead8;color:#2a2620;cursor:pointer;transition:background .15s ease;z-index:2}.book-modal-close:hover{background:#e7dcc4}.book-modal-loading{display:flex;justify-content:center;align-items:center;min-height:320px}.book-modal-top{display:flex;gap:28px;align-items:flex-start}.book-modal-cover-wrap{position:relative;flex:0 0 auto}.book-modal-cover{width:220px;aspect-ratio:3 / 4;border-radius:10px;background-size:cover;background-position:center;background-color:#d8d2c0;box-shadow:0 6px 14px #0000001a}.book-modal-cover--placeholder{display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;background:linear-gradient(160deg,#c9d8e8,#aac3dc)}.book-modal-cover-title{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;color:#000000b3;line-height:1.2}.book-series-badge{position:absolute;top:-10px;left:-10px;display:inline-block;padding:5px 12px;border-radius:999px;background:#60a5fa;color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em;z-index:2}.book-series-badge--inline{position:static;align-self:flex-start;margin-bottom:8px}.book-series-badge.series-novel{background:#60a5fa}.book-series-badge.series-short-stories{background:#818cf8}.book-series-badge.series-kuihtin{background:#f59e0b}.book-series-badge.series-career{background:#2f7a3f}.book-modal-meta{flex:1;min-width:0;padding-top:4px}.book-modal-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.book-modal-title{font-size:32px;font-weight:900;line-height:1.1;letter-spacing:-.01em;color:#2a2620;margin:0}.book-modal-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}.book-stat{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#6b6357}.book-stat-dot{color:#b8b0a0}.book-pill{display:inline-block;padding:4px 12px;border-radius:999px;background:#f3ead8;font-size:12px;font-weight:700;color:#6b5a3f}.book-pill--bestseller{background:#fee2e2;color:#b91c1c;letter-spacing:.02em}.book-modal-divider{height:1px;background:#ece4d2;margin:28px 0 24px}.book-modal-about{width:100%}.book-modal-subhead{font-size:15px;font-weight:800;color:#2a2620;margin:0 0 14px}.book-modal-summary p{font-size:15px;line-height:1.55;color:#45403a;margin:0 0 12px}.book-modal-summary p:last-child{margin-bottom:0}.book-modal-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px;margin:0}.book-modal-details--top{grid-template-columns:1fr;gap:0;margin-top:16px}.book-modal-details--top .detail-row{padding:8px 0}.book-modal-details--top .detail-row:last-child{border-bottom:none}.book-modal-price-card{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;margin:16px 0 4px;padding:14px 43px 14px 26px;border-radius:14px;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.book-modal-price-card-icon{position:absolute;top:12px;right:14px;opacity:.75;width:14px;height:14px}.book-modal-price-card--ebook .book-modal-price-card-icon{color:#1d4ed8}.book-modal-price-card--physical .book-modal-price-card-icon{color:#92400e}.book-modal-price-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.book-modal-price-card--ebook{background:#dbe9ff}.book-modal-price-card--physical{background:#ffe9c2}.book-modal-price-card-format{font-size:16px;font-weight:700;letter-spacing:.01em;line-height:1.2}.book-modal-price-card--ebook .book-modal-price-card-format{color:#1d4ed8}.book-modal-price-card--physical .book-modal-price-card-format{color:#92400e}.book-modal-price-card-price{font-size:22px;font-weight:900;letter-spacing:-.01em;line-height:1.1}.book-modal-price-card--ebook .book-modal-price-card-price{color:#1e3a8a}.book-modal-price-card--physical .book-modal-price-card-price{color:#78350f}.book-modal-details .detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid #ece4d2}.book-modal-bestfor{font-size:15px;line-height:1.55;color:#45403a;margin:0}.book-modal-details dt{font-size:13px;font-weight:700;color:#6b6357;letter-spacing:.01em}.book-modal-details dd{font-size:14px;font-weight:700;color:#2a2620;margin:0;text-align:right}.book-modal-getat{display:flex;flex-direction:column;gap:10px}.book-modal-getat .book-modal-subhead{margin-bottom:10px}.getat-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border:1.5px solid #ece4d2;border-radius:14px;color:#2a2620;font-size:15px;font-weight:700;text-decoration:none;transition:border-color .15s ease,transform .15s ease}.getat-row:hover{border-color:#c5bba6;transform:translateY(-1px)}.getat-name{font-weight:700}.getat-right{display:inline-flex;align-items:center;gap:8px;color:#6b6357}.getat-price{font-size:13px;font-weight:800;color:#2a2620}.getat-tag{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;letter-spacing:.02em}.getat-tag--ebook{background:#dbe9ff;color:#1d4ed8}.getat-tag--physical{background:#ffe9c2;color:#92400e}.getat-tag--reviews{background:#e5e7eb;color:#374151}@media(max-width:700px){.book-modal{padding:22px;border-radius:18px}.book-modal-top{flex-direction:column;align-items:stretch;gap:18px}.book-modal-cover{width:160px}.book-modal-title{font-size:24px}}:root{--cream: #ece2cf;--cream-soft: #f3ead8;--ink: #2a2620;--muted: #6b6357;--shelf-active: #111111;--wood: #d4d4d4;--wood-dark: #a3a3a3;--peg: #a3a3a3}.landing{min-height:100vh;background:#fff;color:var(--ink)}.landing-hero{display:flex;flex-direction:column;align-items:center;padding:80px 24px 40px;text-align:center}.hero-logo{width:96px;height:96px;border-radius:50%;background:#fff;margin-bottom:12px;object-fit:contain;padding:4px}.hero-title{font-size:72px;font-weight:900;color:var(--ink);letter-spacing:-.02em;line-height:1;margin:0 0 20px}.hero-bio{font-size:16px;line-height:1.6;color:var(--ink);max-width:560px;margin:0 auto 24px}.hero-bio strong{font-weight:800}.hero-bio-link{color:#2563eb;font-weight:700;text-decoration:none}.hero-bio-link:hover{text-decoration:underline}.social-links{display:flex;gap:14px;justify-content:center}.social-link{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 1px 2px #0000000d;transition:transform .15s ease}.social-link:hover{transform:translateY(-2px)}.collection-section{padding:60px 24px 0;max-width:960px;margin:0 auto}.collection-title{font-size:38px;font-weight:900;text-align:center;letter-spacing:-.01em;color:var(--ink);margin:0 0 36px}.collection-loading{text-align:center;color:var(--muted);padding:40px 0}.shelf-tabs{display:flex;gap:20px;justify-content:center;align-items:stretch;flex-wrap:wrap;margin-bottom:72px}.shelf-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:200px;margin-bottom:32px;padding:22px 28px;background:#fff;border:1.5px solid #000;border-radius:14px;cursor:pointer;font-family:inherit;color:var(--ink);box-shadow:0 6px 14px #0000000f;transition:transform .18s ease,box-shadow .18s ease}.shelf-tab:hover{transform:translateY(-2px)}.shelf-tab--active,.shelf-tab.series-novel.shelf-tab--active,.shelf-tab.series-short-stories.shelf-tab--active,.shelf-tab.series-kuihtin.shelf-tab--active,.shelf-tab.series-career.shelf-tab--active{background:#000;color:#fff;box-shadow:0 8px 18px #00000040}.shelf-tab-label{font-size:20px;font-weight:800;letter-spacing:-.01em}.shelf-tab-count{font-size:13px;font-weight:500;color:var(--muted)}.shelf-tab--active .shelf-tab-count{color:#ffffffd9}.shelf-peg{position:absolute;top:-22px;left:50%;transform:translate(-50%);width:10px;height:22px;background:linear-gradient(to bottom,var(--peg) 0 18px,transparent 18px 100%);border-radius:4px 4px 0 0}.shelf-peg:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:14px;height:14px;border:2px solid var(--peg);border-radius:50%;background:#fff}.now-browsing{text-align:center;font-size:15px;color:var(--muted);margin:0 0 28px}.now-browsing strong{color:var(--ink);font-weight:800}.shelf-wrap{position:relative;padding-bottom:32px}.shelf-books{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;padding:0 8px}.shelf-book{position:relative;display:block;width:260px;padding:0;border:none;background:transparent;text-decoration:none;cursor:pointer;font-family:inherit;color:inherit;text-align:left}.shelf-book-bestseller{position:absolute;top:-8px;right:-8px;z-index:2;padding:5px 11px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:800;letter-spacing:.02em;box-shadow:0 2px 6px #00000014}.shelf-book-cover{width:100%;aspect-ratio:3 / 4;border-radius:8px;background-size:cover;background-position:center;background-color:#d8d2c0;box-shadow:0 6px 14px #0000001f;transition:transform .2s ease,box-shadow .2s ease}.shelf-book:hover .shelf-book-cover{transform:translateY(-6px);box-shadow:0 10px 20px #00000029}.shelf-book-cover--placeholder{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:24px 16px;text-align:center;color:var(--ink);background:repeating-linear-gradient(135deg,#ddd2bc 0 12px,#d6cab2 12px 24px)}.shelf-book-cover--placeholder.series-novel{background:linear-gradient(160deg,#c8d8b9,#b9d2a2)}.shelf-book-cover--placeholder.series-short-stories{background:linear-gradient(160deg,#c9d8e8,#aac3dc)}.shelf-book-cover--placeholder.series-kuihtin{background:linear-gradient(160deg,#f2d9a8,#e9c485)}.shelf-book-cover--placeholder.series-career{background:linear-gradient(160deg,#d6e3c4,#b9d49b)}.shelf-book-kicker{font-size:12px;font-style:italic;color:#0000008c}.shelf-book-title{font-size:16px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;line-height:1.2}.shelf-book-footer{font-size:11px;font-weight:700;letter-spacing:.2em;color:#0000008c}.shelf-board{position:relative;height:12px;margin:0 12px;background:linear-gradient(to bottom,var(--wood) 0%,var(--wood-dark) 100%);border-radius:999px;box-shadow:0 6px 16px #0000002e,inset 0 1.5px #ffffff2e,inset 0 -1.5px #0006}.shelf-board:before{content:"";position:absolute;top:50%;left:10px;right:10px;height:4px;transform:translateY(-50%);background:radial-gradient(circle at 0 50%,#fff 0 2px,transparent 2.5px),radial-gradient(circle at 100% 50%,#fff 0 2px,transparent 2.5px)}.shelf-board:after{content:"";position:absolute;left:50%;bottom:-10px;transform:translate(-50%);width:60%;height:10px;background:radial-gradient(ellipse at center,rgba(0,0,0,.18) 0%,transparent 70%);filter:blur(2px)}.shelf-reading-guide{text-align:center;margin-top:32px;font-size:15px;color:var(--muted)}.shelf-reading-guide-link{color:var(--ink);text-decoration:underline;font-weight:600}.shelf-reading-guide-link:hover{opacity:.7}.landing-footer{padding:60px 24px 40px;text-align:center}.landing-footer p{font-size:13px;color:var(--muted);margin:2px 0}.landing-footer a{color:var(--muted);text-decoration:underline}@media(max-width:640px){.hero-title{font-size:56px}.hero-bio{font-size:15px}.shelf-tabs{gap:14px}.shelf-tab{min-width:140px;padding:18px}.shelf-tab-label{font-size:17px}.shelf-book{width:200px}.shelf-book-bestseller{top:4px;right:4px}.shelf-wrap{overflow:hidden}.shelf-books{column-gap:16px;row-gap:56px;overflow:visible}.shelf-book{overflow:visible}.shelf-book:after{content:"";display:block;height:10px;margin:0 -400px;border-radius:2px;box-shadow:inset 0 1.5px #ffffff2e,inset 0 -1.5px #0006,0 4px 10px #0000002e;background-image:repeating-linear-gradient(90deg,#fff0 0 32px,#ffffff26 32px 34px),linear-gradient(to bottom,var(--wood) 0%,var(--wood-dark) 100%)}.shelf-board{display:none}}.onboarding{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#fff}.onboarding-container{max-width:440px;width:100%}.onboarding-header{text-align:center;margin-bottom:48px}.onboarding-logo{width:72px;height:72px;border-radius:16px;margin-bottom:20px}.onboarding-header h1{font-size:24px;font-weight:800;color:#000;margin-bottom:8px;letter-spacing:-.5px}.onboarding-header p{font-size:15px;color:#666}.onboarding-section{margin-bottom:32px}.onboarding-label{display:block;font-size:14px;font-weight:600;color:#000;margin-bottom:10px}.onboarding-input{width:100%;padding:14px 16px;font-family:inherit;font-size:15px;font-weight:500;color:#000;background:#fff;border:1px solid #e0e0e0;border-radius:8px;outline:none;transition:border-color .15s ease;box-sizing:border-box}.onboarding-input:hover{border-color:#999}.onboarding-input:focus{border-color:#000}.onboarding-input::placeholder{color:#999;font-weight:400}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option-card{display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .15s ease;text-align:left}.option-card:hover{border-color:#999}.option-card.selected{border-color:#000;background:#fafafa}.option-label{font-size:14px;font-weight:600;color:#000;margin-bottom:2px}.option-description{font-size:12px;color:#888}.onboarding-optin{margin-bottom:32px;padding-top:8px;border-top:1px solid #f0f0f0}.optin-checkbox{display:flex;align-items:flex-start;gap:12px;padding:12px 0;cursor:pointer}.optin-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:1px;accent-color:#000000;flex-shrink:0}.optin-content{display:flex;flex-direction:column;gap:2px}.optin-label{font-size:14px;font-weight:500;color:#000}.optin-description{font-size:12px;color:#888}.onboarding-button{width:100%;padding:14px 24px;background:#000;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s ease}.onboarding-button:hover:not(:disabled){background:#222}.onboarding-button:disabled{background:#ccc;cursor:not-allowed}@media(max-width:480px){.onboarding{padding:20px}.options-grid{grid-template-columns:1fr}.onboarding-header{margin-bottom:36px}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:100}.navbar-left{display:flex;align-items:center;gap:12px}.navbar-logo-link{display:flex;align-items:center}.navbar-logo{width:36px;height:36px;border-radius:8px}.navbar-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:#000;transition:background .15s ease}.navbar-back:hover{background:#f0f0f0}.navbar-title{font-size:18px;font-weight:700;color:#000}.navbar-right{display:flex;align-items:center;gap:16px}.nav-link-wrapper{position:relative}.nav-link{font-size:14px;font-weight:600;color:#666;text-decoration:none;transition:color .15s ease}.nav-link:hover{color:#000}.nav-tooltip{position:absolute;top:calc(100% + 8px);right:0;background:#1a1a1a;color:#fff;font-size:12px;font-weight:500;padding:8px 12px;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s ease;z-index:10}.navbar-admin-link{font-size:12px;font-weight:700;color:#fff;background:#000;padding:6px 12px;border-radius:100px;text-decoration:none;transition:all .15s ease}.navbar-admin-link:hover{background:#333}.navbar-avatar{width:36px;height:36px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;overflow:hidden;text-decoration:none;transition:transform .15s ease}.navbar-avatar:hover{transform:scale(1.05)}.navbar-avatar img{width:100%;height:100%;object-fit:cover}.navbar-avatar span{font-size:14px;font-weight:700;color:#000}@media(max-width:600px){.navbar{padding:12px 16px}.navbar-logo,.navbar-back{width:32px;height:32px}.navbar-title{font-size:16px}.navbar-avatar{width:32px;height:32px}.navbar-right{gap:12px}.nav-link{font-size:12px}}.hub{min-height:100vh;background:#fff;padding-bottom:80px}.hub-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #f0f0f0;position:sticky;top:0;background:#fff;z-index:100}.hub-header-left{display:flex;align-items:center;gap:12px}.hub-logo{width:36px;height:36px;border-radius:8px}.hub-title{font-size:18px;font-weight:700;color:#000}.hub-header-right{display:flex;align-items:center;gap:16px}.hub-profile-link{font-size:14px;font-weight:500;color:#000;text-decoration:none}.hub-profile-link:hover{text-decoration:underline}.hub-signout{padding:8px 14px;background:none;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;color:#666;cursor:pointer;transition:all .15s ease}.hub-signout:hover{border-color:#000;color:#000}.hub-welcome{padding:48px 24px 32px;text-align:center}.hub-welcome h2{font-size:24px;font-weight:700;color:#000;margin-bottom:8px}.hub-welcome p{font-size:15px;color:#888}.hub-categories{max-width:700px;margin:0 auto;padding:0 24px}.series-section{margin-bottom:48px}.series-title{font-size:24px!important;font-weight:700;color:#888;text-transform:lowercase;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid currentColor}.series-title.series-novel{color:var(--series-novel)}.series-title.series-short-stories{color:var(--series-short-stories)}.series-title.series-kuihtin{color:var(--series-kuihtin)}.series-title.series-career{color:var(--series-career)}.category-books{display:flex;flex-direction:column;gap:16px}.book-card{display:flex;align-items:center;gap:20px;padding:20px;background:#fafafa;border-radius:12px}.book-card-cover{flex-shrink:0}.book-card-cover img{width:160px;height:213px;object-fit:cover;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:transform .15s ease}.book-card-cover:hover img{transform:scale(1.02)}.book-card-cover{position:relative}.book-completed-badge{position:absolute;bottom:16px;left:8px;right:8px;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;background:#000000d9;color:#fff;font-size:11px;font-weight:600;text-transform:lowercase;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.book-card-completed{background:#f5f5f5}.book-card-completed .book-card-cover img{border:3px solid #000000}.book-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}.book-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;height:52px}.book-card-title{font-size:18px;font-weight:600;color:#000;text-decoration:none;line-height:1.3;margin-bottom:0;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-card-title:hover{text-decoration:underline}.book-card-share-btn{flex-shrink:0;width:36px;height:36px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#888;transition:all .15s ease}.book-card-share-btn:hover{background:#000;border-color:#000;color:#fff}.book-card-started{font-size:12px;color:#888;margin:8px 0 0}.book-card-subtitle{font-size:13px;color:#888;margin-bottom:16px}.progress-timeline{display:flex;flex-direction:column;gap:8px;margin-top:4px}.timeline-cta{margin-top:4px}.timeline-cta .cta-link{font-size:12px;color:#2563eb;text-decoration:none;font-weight:500}.timeline-cta .cta-link:hover{text-decoration:underline}.timeline-cta .cta-text{font-size:12px;color:#888;font-style:italic}.timeline-dot{width:20px;height:20px;border-radius:50%;background:#e0e0e0;border:2px solid #e0e0e0;display:flex;align-items:center;justify-content:center;z-index:1;cursor:pointer;transition:all .15s ease;padding:0}.timeline-dot:hover{transform:scale(1.15);background:#ccc;border-color:#ccc}.timeline-dot:active{transform:scale(.95)}.timeline-dot.completed:hover{background:#333;border-color:#333}.timeline-dot.current:hover{background:#f0f0f0}.timeline-timestamp{font-size:9px;color:#999;margin-top:2px}.book-card-review{display:block;margin-top:16px;padding:12px;background:#fff;border-radius:12px;border:1px solid #e0e0e0;text-decoration:none;transition:all .15s ease;cursor:pointer}.book-card-review:hover{border-color:#000;background:#fafafa}.book-card-review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.book-card-review-rating{font-size:14px;color:#f59e0b}.book-card-review-date{font-size:11px;color:#888}.book-card-review-content{font-size:13px;color:#444;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.book-card-review-prompt{margin-top:16px;font-size:13px;color:#999;text-decoration:none;display:block}.book-card-review-prompt.finished{color:#2563eb;font-weight:600;cursor:pointer}.book-card-review-prompt.finished:hover{text-decoration:underline}.quick-actions{display:flex;gap:12px;padding:0 24px;max-width:700px;margin:0 auto}.action-card{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;text-decoration:none;color:#000;font-weight:500;font-size:13px;transition:all .15s ease}.action-card:hover{background:#000;border-color:#000;color:#fff}.action-card svg{flex-shrink:0}@media(max-width:600px){.hub-header{padding:12px 16px}.hub-welcome{padding:32px 16px 24px}.hub-welcome h2{font-size:20px}.hub-categories{padding:0 16px}.book-card{padding:16px;gap:16px}.book-card-cover img{width:120px;height:160px}.book-card-header{height:44px}.book-card-title{font-size:16px}.book-card-share-btn{width:32px;height:32px}.book-card-share-btn svg{width:16px;height:16px}.timeline-dot{width:18px;height:18px}.timeline-label{font-size:9px}.timeline-line{top:8px}.timeline-timestamp{font-size:8px}.quick-actions{padding:0 16px;flex-direction:column}}.hub-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.hub-modal-popup{background:#fff;border-radius:16px;padding:24px;max-width:360px;width:100%;box-shadow:0 20px 40px #0003;animation:hubModalSlideIn .2s ease-out}@keyframes hubModalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.hub-modal-popup h4{margin:0 0 8px;font-size:18px;font-weight:700;color:#000}.hub-modal-popup h4.danger-title{color:#dc2626}.hub-modal-popup .modal-subtitle{margin:0 0 16px;font-size:13px;color:#666}.hub-modal-popup .steps-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.hub-modal-popup .step-chip{padding:6px 12px;background:#f5f5f5;border-radius:16px;font-size:12px;font-weight:600;color:#000}.hub-modal-popup .steps-list{list-style:none;padding:0;margin:0 0 16px}.hub-modal-popup .steps-list li{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f5f5f5;border-radius:8px;margin-bottom:6px}.hub-modal-popup .steps-list li:last-child{margin-bottom:0}.hub-modal-popup .step-name{font-size:13px;font-weight:600;color:#000}.hub-modal-popup .step-date{font-size:12px;color:#666}.hub-modal-popup .date-row{display:flex;gap:8px;margin-bottom:20px}.hub-modal-popup .date-row input[type=date]{flex:1;padding:10px 12px;border:1px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;background:#fff}.hub-modal-popup .date-row input[type=date]:focus{outline:none;border-color:#000}.hub-modal-popup .today-btn{padding:10px 16px;background:#f5f5f5;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:#000;cursor:pointer}.hub-modal-popup .today-btn:hover{background:#e5e5e5}.hub-modal-popup .modal-btns{display:flex;gap:12px}.hub-modal-popup .confirm-btn{flex:1;padding:12px 20px;background:#000;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:#fff;cursor:pointer}.hub-modal-popup .confirm-btn:hover:not(:disabled){background:#333}.hub-modal-popup .confirm-btn:disabled{opacity:.5;cursor:not-allowed}.hub-modal-popup .confirm-btn.danger{background:#dc2626}.hub-modal-popup .confirm-btn.danger:hover{background:#b91c1c}.hub-modal-popup .cancel-btn{padding:12px 20px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:#666;cursor:pointer}.hub-modal-popup .cancel-btn:hover{border-color:#000;color:#000}@media(max-width:600px){.hub-modal-popup .date-row,.hub-modal-popup .modal-btns{flex-direction:column}}.series-page{min-height:100vh;background:#fff;display:flex;flex-direction:column}.series-page--not-found{align-items:center;justify-content:center;padding:40px 24px}.not-found-content{text-align:center}.not-found-content h1{font-size:2rem;font-weight:900;color:#1a1a1a;margin-bottom:12px}.not-found-content p{font-size:1.125rem;color:#666;margin-bottom:24px}.top-navbar{width:100%;display:flex;justify-content:flex-end;padding:16px 24px}.nav-link-wrapper{position:relative;display:inline-block}.nav-link{font-size:.875rem;font-weight:700;color:#666;text-decoration:none;transition:color .2s ease}.nav-tooltip{position:absolute;top:calc(100% + 8px);right:0;background:#1a1a1a;color:#fff;font-size:.75rem;font-weight:600;padding:10px 14px;border-radius:8px;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .2s ease;z-index:100}.nav-tooltip:before{content:"";position:absolute;top:-6px;right:16px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #1a1a1a}.nav-link-wrapper:hover .nav-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.series-nav{position:sticky;top:0;z-index:100;padding:20px 24px;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:700;color:#666;text-decoration:none;transition:color .2s ease}.back-link:hover{color:#1a1a1a}.series-hero{padding:80px 24px;text-align:center;background:linear-gradient(180deg,#fafafa,#fff)}.series-badge{display:inline-block;font-size:.75rem;font-weight:800;color:#60a5fa;text-transform:uppercase;letter-spacing:.15em;padding:8px 16px;background:#60a5fa1a;border-radius:100px;margin-bottom:20px}.series-title{font-size:3.5rem;font-weight:900;color:#1a1a1a;margin-bottom:16px;letter-spacing:-.02em}.series-tagline{font-size:1.25rem;font-weight:600;color:#888;max-width:500px;margin:0 auto}.series-stats{margin-top:32px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.series-stat{display:inline-flex;align-items:center;gap:6px;background:#fef2f2;color:#dc2626;padding:10px 18px;border-radius:100px;font-size:.9375rem;font-weight:700}.stat-value{color:#dc2626}.stat-label{color:#f87171}.stats-note{display:inline-flex;align-items:center;font-size:.875rem;font-weight:700;color:#60a5fa;background:#60a5fa1a;padding:10px 18px;border-radius:100px}@media(max-width:640px){.series-stats{gap:8px}.series-stat{padding:8px 14px;font-size:.875rem}.stats-note{padding:8px 14px;font-size:.8125rem}}.series-section{width:100%;max-width:900px;margin:0 auto;padding:60px 24px}.section-title{font-size:1.75rem;font-weight:900;color:#1a1a1a;margin-bottom:24px}.series-description{display:flex;flex-direction:column;gap:16px}.series-description p{font-size:1.125rem;font-weight:500;color:#555;line-height:1.8}.disclaimer-section{background:#fafafa;max-width:100%;padding:60px 24px}.disclaimer-section .section-title{max-width:900px;margin:0 auto 24px}.series-disclaimer{display:flex;flex-direction:column;gap:16px;max-width:900px;margin:0 auto}.series-disclaimer p{font-size:1rem;font-weight:500;color:#666;line-height:1.8}.disclaimer-link{color:#60a5fa;text-decoration:none;font-weight:600;transition:color .2s ease}.disclaimer-link:hover{color:#3b82f6;text-decoration:underline}.series-section.books-section{max-width:100%;padding:60px 24px 80px}.series-section.books-section .section-title{text-align:center;max-width:900px;margin:0 auto 24px}.series-books-grid{display:flex;justify-content:center;gap:32px;max-width:900px;margin:0 auto}.series-book-card{position:relative;display:block;width:320px;min-width:280px;aspect-ratio:3 / 4;border-radius:20px;overflow:hidden;text-decoration:none;box-shadow:0 8px 32px #0000001f;transition:all .4s cubic-bezier(.4,0,.2,1)}.series-book-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 24px 56px #0003}.series-book-cover{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#2a2a2a;display:flex;align-items:center;justify-content:center;transition:transform .4s cubic-bezier(.4,0,.2,1)}.series-book-card:hover .series-book-cover{transform:scale(1.05)}.cover-letter{font-size:5rem;font-weight:900;color:#ffffff4d}.series-book-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(to top,#000000e6,#0009 40%,#0000);opacity:0;transition:opacity .3s ease}.series-book-card:hover .series-book-overlay{opacity:1}.series-book-badge{position:absolute;top:16px;left:16px;font-size:.6875rem;font-weight:800;color:#fff;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 14px;border-radius:100px;text-transform:lowercase;letter-spacing:.05em;opacity:1;transition:opacity .3s ease,background .3s ease}.series-book-card:hover .series-book-badge{background:#fff;color:#1a1a1a}.series-book-info{display:flex;flex-direction:column;gap:8px;transform:translateY(10px);transition:transform .3s ease}.series-book-card:hover .series-book-info{transform:translateY(0)}.series-book-title{font-size:1.25rem;font-weight:800;color:#fff;line-height:1.3}.series-book-description{font-size:.875rem;font-weight:500;color:#fffc;line-height:1.5}.series-book-cta{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;color:#60a5fa;margin-top:8px;transition:gap .2s ease}.series-book-cta:after{content:"→"}.series-book-card:hover .series-book-cta{gap:10px}@media(max-width:640px){.series-title{font-size:2.5rem}.series-tagline{font-size:1.125rem}.section-title{font-size:1.5rem}.series-description p{font-size:1rem}.series-books-grid{flex-direction:column;align-items:center}}.profile{min-height:100vh;background:#fff;padding-bottom:60px}.profile-header{padding:20px 24px;border-bottom:1px solid #e0e0e0}.profile-card{display:flex;flex-direction:column;align-items:center;padding:40px 24px;text-align:center;background:#fff}.profile-avatar-wrapper{display:flex;flex-direction:column;align-items:center;cursor:pointer;margin-bottom:16px}.avatar-edit-overlay{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 12px;background:#f5f5f5;border-radius:16px;color:#666;font-size:13px;font-weight:600;transition:all .2s ease}.avatar-edit-overlay:hover{background:#e0e0e0;color:#000}.avatar-input{display:none}.profile-avatar{width:100px;height:100px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .2s ease}.profile-avatar.uploading{opacity:.5}.profile-name-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.profile-name{font-size:24px;font-weight:800;color:#000;margin:0}.profile-name-input{font-family:inherit;font-size:24px;font-weight:800;color:#000;background:#f5f5f5;border:none;border-radius:8px;padding:4px 12px;text-align:center;width:200px}.profile-name-input:focus{outline:none;background:#e8e8e8}.name-edit-btn{padding:4px 12px;background:#f5f5f5;border:none;border-radius:12px;font-family:inherit;font-size:13px;font-weight:600;color:#666;cursor:pointer;transition:all .2s ease}.name-edit-btn:hover{background:#e0e0e0;color:#000}.profile-name-actions{display:flex;gap:6px}.name-action-btn{padding:4px 12px;border:none;border-radius:12px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.name-action-btn.save{background:#000;color:#fff}.name-action-btn.save:hover{opacity:.8}.name-action-btn.save:disabled{opacity:.5;cursor:not-allowed}.name-action-btn.cancel{background:#f5f5f5;color:#666}.name-action-btn.cancel:hover{background:#e0e0e0;color:#000}.profile-email{font-size:14px;color:#666;margin-bottom:4px}.profile-member{font-size:13px;color:#888}.public-profile-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;background:#f5f5f5;border-radius:20px;font-size:13px;font-weight:600;color:#666;text-decoration:none;transition:all .2s ease}.public-profile-link:hover{background:#e0e0e0;color:#000}.card-filter{display:flex;align-items:center;gap:12px;margin-top:20px;padding:12px 16px;background:#f5f5f5;border-radius:8px}.filter-label{font-size:14px;font-weight:600;color:#000}.filter-toggle{width:44px;height:24px;background:#ccc;border:none;border-radius:12px;cursor:pointer;position:relative;transition:background .2s ease}.filter-toggle.active{background:#000}.filter-toggle .toggle-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.filter-toggle.active .toggle-slider{transform:translate(20px)}.book-badges{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap;justify-content:center}.book-badge{width:48px;height:64px;border-radius:4px;overflow:hidden;filter:grayscale(100%);transition:filter .2s ease}.book-badge:hover{filter:grayscale(0%)}.book-badge img{width:100%;height:100%;object-fit:cover}.profile-stats{display:flex;justify-content:center;gap:32px;padding:24px;background:#f5f5f5}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:28px;font-weight:800;color:#000}.profile-section{padding:24px;max-width:500px;margin:0 auto;overflow:visible}.profile-badges{display:flex;gap:32px;flex-wrap:wrap;justify-content:center;overflow:visible}.profile-badge{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.profile-badge-icon{width:48px;height:48px;color:var(--badge-color);transition:transform .2s ease}.profile-badge:hover .profile-badge-icon{transform:scale(1.1)}.profile-badge-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);padding:8px 12px;background:#1a1a1a;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;border-radius:8px;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;z-index:100}.profile-badge-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:#1a1a1a}.no-badges-message{font-size:14px;color:#999;text-align:center;margin:0}.reading-card-container{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #0000001a;border:1px solid #e0e0e0}.reading-card-canvas{width:100%;height:auto;display:block}.reading-card-loading{position:absolute;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;color:#666;font-size:14px;font-weight:600}.view-card-link{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;background:#f5f5f5;border:none;border-radius:12px;font-family:inherit;font-size:15px;font-weight:600;color:#000;text-decoration:none;transition:all .2s ease}.view-card-link:hover{background:#e8e8e8}.reading-card-actions{display:flex;gap:12px;margin-top:16px}.reading-card-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#f5f5f5;border:none;border-radius:10px;font-family:inherit;font-size:14px;font-weight:700;color:#000;cursor:pointer;transition:all .2s ease}.reading-card-btn:hover{background:#e8e8e8}.reading-card-btn.primary{background:#000;color:#fff}.reading-card-btn.primary:hover{background:#333}.settings-list{display:flex;flex-direction:column;gap:12px}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f5f5f5;border-radius:12px}.setting-info{display:flex;flex-direction:column}.setting-label{font-size:15px;font-weight:600;color:#000}.setting-description{font-size:13px;color:#666}.setting-input{font-family:inherit;font-size:14px;padding:8px 12px;border:1px solid #cccccc;border-radius:8px;background:#fff;color:#000;margin-top:4px;width:100%;max-width:200px}.setting-input:focus{outline:none;border-color:#000}.setting-actions{display:flex;gap:8px}.setting-action-button{padding:8px 16px;background:#000;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:#fff;cursor:pointer;transition:opacity .2s ease}.setting-action-button:hover{opacity:.8}.setting-action-button:disabled{opacity:.5;cursor:not-allowed}.setting-cancel-button{padding:8px 16px;background:none;border:1px solid #cccccc;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:#666;cursor:pointer;transition:all .2s ease}.setting-cancel-button:hover{border-color:#000;color:#000}.toggle-button{width:52px;height:28px;background:#ccc;border:none;border-radius:14px;cursor:pointer;position:relative;transition:background .2s ease}.toggle-button.active{background:#000}.toggle-slider{position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 2px 4px #0000001a}.toggle-button.active .toggle-slider{transform:translate(24px)}.signout-button{width:100%;padding:14px;background:none;border:2px solid #000000;border-radius:12px;font-family:inherit;font-size:15px;font-weight:600;color:#000;cursor:pointer;transition:all .2s ease}.signout-button:hover{background:#000;color:#fff}.survey-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.survey-modal{background:#fff;border-radius:20px;padding:32px;max-width:400px;width:100%;max-height:80vh;overflow-y:auto}.survey-modal h2{font-size:20px;font-weight:800;color:#000;margin-bottom:4px}.survey-modal>p{font-size:14px;color:#666;margin-bottom:24px}.survey-question{margin-bottom:20px}.survey-question p{font-size:15px;font-weight:600;color:#000;margin-bottom:12px}.survey-options{display:flex;flex-wrap:wrap;gap:8px}.survey-option{padding:8px 16px;background:#f5f5f5;border:2px solid #e0e0e0;border-radius:20px;font-family:inherit;font-size:13px;font-weight:600;color:#000;cursor:pointer;transition:all .2s ease}.survey-option:hover,.survey-option.selected{background:#000;border-color:#000;color:#fff}.survey-actions{display:flex;gap:12px;margin-top:24px}.survey-submit{flex:1;padding:12px;background:#000;border:none;border-radius:8px;font-family:inherit;font-size:15px;font-weight:700;color:#fff;cursor:pointer;transition:opacity .2s ease}.survey-submit:hover{opacity:.8}.survey-submit:disabled{opacity:.5;cursor:not-allowed}.survey-skip{padding:12px 20px;background:none;border:none;font-family:inherit;font-size:14px;color:#666;cursor:pointer;transition:all .2s ease}.survey-skip:hover{color:#000}.card-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.card-modal{position:relative;background:#fff;border-radius:20px;padding:32px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;text-align:center}.card-modal-close{position:absolute;top:16px;right:16px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:none;border-radius:50%;cursor:pointer;color:#666;transition:all .2s ease}.card-modal-close:hover{background:#e0e0e0;color:#000}.card-modal h2{font-size:20px;font-weight:800;color:#000;margin-bottom:4px}.card-modal>p{font-size:14px;color:#666;margin-bottom:24px}.card-canvas-container{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #00000026;margin-bottom:20px}.card-canvas{width:100%;height:auto;display:block}.card-generating{position:absolute;inset:0;background:#1a1a1ae6;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600}.card-modal-actions{display:flex;gap:12px}.card-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:#f5f5f5;border:none;border-radius:12px;font-family:inherit;font-size:15px;font-weight:700;color:#000;cursor:pointer;transition:all .2s ease}.card-action-btn:hover{background:#e0e0e0}.card-action-btn.primary{background:#000;color:#fff}.card-action-btn.primary:hover{background:#333}.public-profile{min-height:100vh;background:#fff;padding-bottom:60px}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:24px}.error-state h2{font-size:24px;font-weight:800;color:#000;margin-bottom:8px}.error-state p{font-size:15px;color:#666;margin-bottom:24px}.back-home-link{padding:12px 24px;background:#000;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:14px;transition:opacity .2s ease}.back-home-link:hover{opacity:.8}.profile-header{display:flex;flex-direction:column;align-items:center;padding:40px 24px 32px;text-align:center;background:#fff}.profile-avatar{width:100px;height:100px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:16px}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar span{font-size:36px;font-weight:800;color:#000}.profile-name{font-size:24px;font-weight:800;color:#000;margin:0 0 4px}.profile-member{font-size:13px;color:#888;margin-bottom:20px}.profile-stats{display:flex;justify-content:center;gap:16px}.stat{display:flex;flex-direction:column;align-items:center;padding:20px 28px;background:#f5f5f5;border-radius:48px;min-width:120px}.stat-value{font-size:32px;font-weight:800;color:#000}.stat-label{font-size:12px;color:#666}.profile-section{padding:24px;max-width:600px;margin:0 auto}.section-title{font-size:18px;font-weight:700;color:#000;margin-bottom:16px}.profile-badges{display:flex;gap:32px;flex-wrap:wrap;justify-content:center}.profile-badge{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;cursor:default}.profile-badge.unearned{opacity:.6}.profile-badge-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.profile-badge-icon svg{width:100%;height:100%}.profile-badge-label{font-size:12px;font-weight:700;color:#000}.profile-badge.unearned .profile-badge-label{color:#9ca3af}.profile-badge-tooltip{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);padding:4px 10px;background:#000;color:#fff;font-size:11px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none}.profile-badge:hover .profile-badge-tooltip{opacity:1;visibility:visible}.no-badges-message,.no-progress-message{font-size:14px;color:#999;text-align:center;margin:0}.books-progress-list{display:flex;flex-direction:column;gap:16px}.book-progress-card{display:flex;gap:20px;padding:20px;background:#fafafa;border-radius:12px}.book-progress-cover{flex-shrink:0;position:relative}.book-progress-cover img{width:100px;height:133px;object-fit:cover;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:transform .15s ease}.book-progress-cover:hover img{transform:scale(1.02)}.book-completed-badge{position:absolute;bottom:8px;left:4px;right:4px;display:flex;align-items:center;justify-content:center;padding:4px 8px;background:#000000d9;color:#fff;font-size:10px;font-weight:600;text-transform:lowercase;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.book-progress-completed{background:#f5f5f5}.book-progress-completed .book-progress-cover img{border:2px solid #000000}.book-progress-content{flex:1;display:flex;flex-direction:column;min-width:0}.book-progress-title{font-size:16px;font-weight:600;color:#000;text-decoration:none;line-height:1.3;margin-bottom:4px}.book-progress-title:hover{text-decoration:underline}.book-progress-subtitle{font-size:12px;color:#888;margin-bottom:12px}.progress-timeline{display:flex;flex-direction:column;gap:8px;margin-top:auto}.timeline-steps{display:flex;align-items:flex-start;gap:0;width:100%}.timeline-step{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}.timeline-dot{width:20px;height:20px;border-radius:50%;background:#e0e0e0;border:2px solid #e0e0e0;display:flex;align-items:center;justify-content:center;z-index:1}.timeline-dot.completed{background:#000;border-color:#000;color:#fff}.timeline-dot.current{background:#fff;border-color:#000;border-width:3px}.timeline-label{font-size:10px;color:#ccc;margin-top:6px;text-transform:lowercase}.timeline-label.completed{color:#666}.timeline-line{position:absolute;top:9px;left:50%;width:100%;height:2px;background:#e0e0e0}.timeline-line.completed{background:#000}.book-review{margin-top:12px;padding:12px;background:#fff;border-radius:12px;border:1px solid #e0e0e0}.book-review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.book-review-rating{font-size:14px;color:#f59e0b}.book-review-date{font-size:11px;color:#888}.book-review-content{font-size:13px;color:#444;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:600px){.profile-header{padding:32px 16px 24px}.profile-avatar{width:80px;height:80px}.profile-avatar span{font-size:28px}.profile-name{font-size:20px}.stat-value{font-size:28px}.profile-section{padding:20px 16px}.book-progress-card{padding:16px;gap:16px}.book-progress-cover img{width:80px;height:107px}.book-progress-title{font-size:15px}.timeline-dot{width:18px;height:18px}.timeline-label{font-size:9px}.timeline-line{top:8px}}.social-card-page{min-height:100vh;background:var(--color-surface);padding-top:64px;padding-bottom:60px}.card-logo-link{display:block;width:144px;height:144px;margin:0 auto}.card-logo{width:144px;height:144px;border-radius:50%;object-fit:cover}.card-preview{padding:40px 24px;text-align:center}.card-preview h1{font-size:24px;font-weight:800;color:var(--color-primary);margin-bottom:8px}.card-preview>p{font-size:14px;color:var(--color-secondary);margin-bottom:32px}.canvas-container{position:relative;max-width:600px;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:0 8px 32px #00000026}.card-image{width:100%;height:auto;display:block;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.card-placeholder{aspect-ratio:1200 / 594;background:#f5f5f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-secondary)}.card-placeholder span{font-size:14px;font-weight:600}.save-hint{font-size:12px;color:var(--color-secondary);text-align:center;margin-top:12px}.card-actions{display:flex;gap:12px;padding:0 24px;max-width:400px;margin:0 auto}.action-button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:transparent;border:2px solid var(--color-border);border-radius:12px;font-family:inherit;font-size:15px;font-weight:700;color:var(--color-primary);cursor:pointer;transition:all .2s ease}.action-button:hover{border-color:var(--color-primary)}.action-button.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.action-button.primary:hover{background:#333;border-color:#333}.share-tips{padding:40px 24px;max-width:400px;margin:0 auto}.share-tips h2{font-size:16px;font-weight:700;color:var(--color-primary);text-align:center;margin-bottom:20px}.share-platforms{display:flex;justify-content:center;gap:24px}.platform{display:flex;flex-direction:column;align-items:center;gap:8px}.platform-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:16px;color:var(--color-primary);box-shadow:0 2px 8px #0000000f}.platform span:last-child{font-size:12px;color:var(--color-secondary);font-weight:600}button.platform{background:none;border:none;cursor:pointer;padding:0;font-family:inherit;transition:transform .2s ease}button.platform:hover{transform:translateY(-2px)}button.platform:hover .platform-icon{box-shadow:0 4px 12px #0000001f}.template-selector{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:24px}.template-label{font-size:14px;font-weight:600;color:var(--color-secondary)}.template-options{display:flex;gap:8px}.template-option{width:36px;height:36px;border-radius:10px;border:3px solid transparent;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:#fff}.template-option:hover{transform:scale(1.1)}.template-option.active{border-color:var(--color-primary);box-shadow:0 2px 8px #0003}.share-popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.share-popup{position:relative;background:#fff;border-radius:20px;padding:32px;max-width:340px;width:100%;text-align:center}.share-popup h3{font-size:18px;font-weight:700;color:#000;margin-bottom:24px}.share-popup-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:none;border-radius:50%;cursor:pointer;color:#666;transition:all .2s ease}.share-popup-close:hover{background:#e0e0e0;color:#000}.share-options{display:flex;justify-content:center;gap:20px;margin-bottom:20px}.share-option{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:8px;transition:transform .2s ease}.share-option:hover{transform:scale(1.05)}.share-option-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:16px;color:#000;transition:all .2s ease}.share-option:hover .share-option-icon{background:#e8e8e8}.share-option span:last-child{font-size:12px;font-weight:600;color:#666}.share-popup-hint{font-size:12px;color:#888;margin:0}.brands-page{min-height:100vh;background:#fff;display:flex;flex-direction:column;align-items:center;padding-top:60px}.site-nav{display:flex;gap:32px;margin-bottom:20px}.nav-link{font-size:1rem;font-weight:600;color:#999;text-decoration:none;padding:8px 0;transition:color .2s ease}.nav-link:hover{color:#1a1a1a}.nav-link.active{color:#1a1a1a;border-bottom:2px solid #1a1a1a}.brands-hero{width:100%;padding:80px 24px 60px;display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(180deg,#fafafa,#fff)}.brands-logo{width:120px;height:auto;border-radius:50%;filter:drop-shadow(0 4px 20px rgba(0,0,0,.08));margin-bottom:24px}.brands-title{font-size:3.5rem;font-weight:900;color:#1a1a1a;letter-spacing:.1em;margin-bottom:16px}.brands-headline{font-size:1.5rem;font-weight:800;color:#1a1a1a;margin-bottom:12px}.brands-subheadline{font-size:1.125rem;font-weight:600;color:#666;max-width:500px}.stats-bar{width:100%;max-width:1000px;padding:32px 24px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;background:#1a1a1a;border-radius:24px;margin:0 24px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 16px}.stat-number{font-size:1.75rem;font-weight:900;color:#fff}.stat-label{font-size:.875rem;font-weight:600;color:#999}.stat-divider{width:1px;height:40px;background:#333;display:none}@media(min-width:768px){.stat-divider{display:block}.stats-bar{flex-wrap:nowrap;gap:0}.stat-item{flex:1}}.brands-section{width:100%;max-width:1000px;padding:80px 24px;display:flex;flex-direction:column;align-items:center}.section-heading{font-size:2.25rem;font-weight:900;color:#1a1a1a;text-align:center;margin-bottom:32px;letter-spacing:-.02em}.about-section{background:#fff}.about-text{font-size:1.125rem;font-weight:500;color:#444;line-height:1.8;max-width:700px;text-align:justify;margin-bottom:16px}.characters-section{background:#fafafa}.characters-tagline{font-size:1.25rem;font-weight:700;color:#666;text-align:center;margin-bottom:40px}.characters-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;width:100%;max-width:800px}@media(min-width:768px){.characters-grid{grid-template-columns:repeat(4,1fr)}}.character-card{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:3 / 4;transition:transform .2s ease}.character-card:hover{transform:translateY(-4px)}.character-image{width:100%;height:100%;object-fit:cover}.character-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 100%);pointer-events:none}.character-name{position:absolute;bottom:48px;left:16px;right:16px;font-size:1.25rem;font-weight:800;color:#fff;z-index:1}.character-description{position:absolute;bottom:16px;left:16px;right:16px;font-size:.8rem;font-weight:600;color:#ffffffd9;line-height:1.4;z-index:1}.metrics-section{background:#fff}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;width:100%;max-width:600px;margin-bottom:32px}@media(min-width:640px){.metrics-grid{grid-template-columns:repeat(4,1fr);max-width:800px}}.metric-card{display:flex;flex-direction:column;align-items:center;padding:24px 16px;background:#fafafa;border-radius:16px}.metric-value{font-size:1.5rem;font-weight:900;color:#1a1a1a;margin-bottom:4px}.metric-label{font-size:.75rem;font-weight:700;color:#666;text-align:center}.growth-note{display:flex;align-items:center;gap:8px;padding:16px 24px;background:#ecfdf5;border-radius:100px}.growth-arrow{font-size:1.25rem;color:#22c55e}.growth-text{font-size:1rem;font-weight:700;color:#166534}.viral-section{background:#fafafa}.viral-grid{display:grid;grid-template-columns:1fr;gap:20px;width:100%;max-width:800px}@media(min-width:768px){.viral-grid{grid-template-columns:repeat(3,1fr)}}.viral-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:60px 24px;background:#fff;border:2px dashed #ddd;border-radius:16px;font-size:1rem;font-weight:700;color:#999}.viral-note{font-size:.875rem;font-weight:600;color:#22c55e}.partnership-section{background:#fff}.partnership-grid{display:grid;grid-template-columns:1fr;gap:20px;width:100%;max-width:800px}@media(min-width:640px){.partnership-grid{grid-template-columns:repeat(2,1fr)}}.partnership-card{padding:32px;background:#fafafa;border-radius:20px;border-left:4px solid #60a5fa;transition:transform .2s ease}.partnership-card:hover{transform:translateY(-2px)}.partnership-title{font-size:1.25rem;font-weight:800;color:#1a1a1a;margin-bottom:12px}.partnership-description{font-size:1rem;font-weight:500;color:#666;line-height:1.6;text-align:justify}.why-section{background:#1a1a1a}.why-section .section-heading{color:#fff}.why-grid{display:grid;grid-template-columns:1fr;gap:24px;width:100%;max-width:800px}@media(min-width:640px){.why-grid{grid-template-columns:repeat(2,1fr)}}.why-card{padding:28px;background:#2a2a2a;border-radius:16px}.why-title{font-size:1.125rem;font-weight:800;color:#60a5fa;margin-bottom:12px}.why-description{font-size:.9375rem;font-weight:500;color:#bbb;line-height:1.6;text-align:justify}.ideal-section{background:#fafafa}.ideal-grid{display:grid;grid-template-columns:1fr;gap:16px;width:100%;max-width:600px}@media(min-width:640px){.ideal-grid{grid-template-columns:repeat(2,1fr)}}.ideal-card{display:flex;flex-direction:column;gap:8px;padding:20px 24px;background:#fff;border-radius:12px}.ideal-category{font-size:.875rem;font-weight:900;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em}.ideal-brands{font-size:1rem;font-weight:600;color:#444}.cta-section{background:linear-gradient(180deg,#fff,#fafafa);padding:100px 24px}.cta-heading{font-size:2rem;font-weight:900;color:#1a1a1a;text-align:center;margin-bottom:12px;max-width:500px}.cta-subtext{font-size:1.125rem;font-weight:600;color:#666;margin-bottom:32px}.cta-button{font-family:Nunito,sans-serif;font-size:1.375rem;font-weight:900;color:#fff;background:#1a1a1a;border:none;border-radius:100px;padding:20px 56px;cursor:pointer;transition:all .2s ease}.cta-button:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0003}.cta-note{margin-top:16px;font-size:.9375rem;font-weight:600;color:#999}.brands-footer{width:100%;padding:40px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;border-top:1px solid #eee}.back-link{font-size:1rem;font-weight:700;color:#1a1a1a;text-decoration:none;transition:color .2s ease}.back-link:hover{color:#60a5fa}.footer-text{font-size:.875rem;font-weight:600;color:#ccc}@media(max-width:640px){.brands-title{font-size:2.5rem}.brands-headline{font-size:1.25rem}.section-heading{font-size:1.75rem}.cta-heading,.stat-number{font-size:1.5rem}.metric-value{font-size:1.25rem}}.admin-header{background:#fff;padding:16px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:16px}.admin-header .back-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--color-secondary);text-decoration:none}.admin-header .back-link:hover{background:var(--color-surface);color:var(--color-primary)}.admin-header h1{font-size:20px;font-weight:800;color:var(--color-primary)}.admin-nav{display:flex;gap:4px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--color-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-nav a{padding:10px 16px;font-size:14px;font-weight:600;color:var(--color-secondary);text-decoration:none;border-radius:8px;white-space:nowrap;transition:all .15s ease}.admin-nav a:hover{color:var(--color-primary);background:var(--color-surface)}.admin-nav a.active{color:#fff;background:var(--color-primary)}.admin-users{min-height:100vh;background:var(--color-surface)}.search-section{padding:20px 24px;background:#fff;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:16px}.search-form{display:flex;flex:1;max-width:400px;gap:8px}.search-form input{flex:1;padding:10px 14px;border:2px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px}.search-form input:focus{outline:none;border-color:var(--color-primary)}.search-form button{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}.user-count{font-size:14px;color:var(--color-secondary)}.export-btn{margin-left:auto;padding:10px 20px;background:#f0fdf4;color:#166534;border:2px solid #166534;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.export-btn:hover:not(:disabled){background:#166534;color:#fff}.export-btn:disabled{opacity:.6;cursor:not-allowed}.users-list{padding:24px}.users-table{background:#fff;border-radius:12px;overflow:hidden}.table-header{display:grid;grid-template-columns:2fr 1fr 100px 120px;gap:16px;padding:14px 20px;background:var(--color-surface);font-size:12px;font-weight:700;color:var(--color-secondary);text-transform:uppercase;letter-spacing:.5px}.user-row{display:grid;grid-template-columns:2fr 1fr 100px 120px;gap:16px;padding:16px 20px;align-items:center;border-bottom:1px solid var(--color-border)}.user-row:last-child{border-bottom:none}.user-row:hover{background:var(--color-surface)}.col-user{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--color-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-avatar span{font-size:16px;font-weight:700;color:var(--color-secondary)}.user-info{display:flex;flex-direction:column;gap:2px;min-width:0}.user-name{font-size:14px;font-weight:600;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}.user-name:hover{text-decoration:underline}.user-email{font-size:12px;color:var(--color-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-optin{display:flex;align-items:center}.optin-badge{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:4px}.optin-badge.yes{background:#dcfce7;color:#166534}.optin-badge.no{background:#f3f4f6;color:#6b7280}.col-date{font-size:13px;color:var(--color-secondary)}.col-actions{display:flex;gap:8px}.col-actions button{padding:6px 12px;border:none;border-radius:6px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.col-actions button.grant{background:#ede9fe;color:#5b21b6}.col-actions button.grant:hover{background:#ddd6fe}.col-actions button.revoke{background:#fee2e2;color:#991b1b}.col-actions button.revoke:hover{background:#fecaca}.col-actions button:disabled{opacity:.4;cursor:not-allowed}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:24px}.pagination button{padding:10px 20px;background:#fff;border:2px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-primary);cursor:pointer}.pagination button:hover:not(:disabled){background:var(--color-surface)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:14px;color:var(--color-secondary)}@media(max-width:768px){.table-header{display:none}.user-row{display:flex;flex-direction:column;gap:12px;padding:16px}.col-user{width:100%}.col-optin,.col-date,.col-actions{width:100%;justify-content:flex-start}.col-optin{padding-left:52px}.col-date{padding-left:52px;font-size:12px}.col-actions{padding-left:52px;padding-top:8px;border-top:1px solid var(--color-border)}.search-section{flex-direction:column;align-items:stretch}.search-form{max-width:none}.user-count{text-align:center}.export-btn{margin-left:0;width:100%}}.admin-books{min-height:100vh;background:var(--color-surface)}.admin-page-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:#fff;border-bottom:1px solid var(--color-border)}.admin-page-header h2{font-size:18px;font-weight:700;color:var(--color-primary)}.add-button{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}.series-tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--color-border);padding:0 16px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.series-tabs::-webkit-scrollbar{display:none}.series-tabs .tab{display:flex;align-items:center;gap:6px;padding:14px;background:none;border:none;border-bottom:2px solid transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--color-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.series-tabs .tab:hover{color:var(--color-primary)}.series-tabs .tab.active{color:var(--color-primary);border-bottom-color:currentColor}.series-tabs .tab.series-novel.active{color:var(--series-novel)}.series-tabs .tab.series-short-stories.active{color:var(--series-short-stories)}.series-tabs .tab.series-kuihtin.active{color:var(--series-kuihtin)}.series-tabs .tab.series-career.active{color:var(--series-career)}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--color-surface);border-radius:10px;font-size:11px;font-weight:700;color:var(--color-secondary)}.series-tabs .tab.active .tab-count{background:currentColor;color:#fff}.series-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px;color:#fff;background:var(--color-secondary)}.series-badge.series-novel{background:var(--series-novel)}.series-badge.series-short-stories{background:var(--series-short-stories)}.series-badge.series-kuihtin{background:var(--series-kuihtin)}.series-badge.series-career{background:var(--series-career)}.editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;overflow-y:auto}.editor-modal{background:#fff;border-radius:16px;padding:32px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto}.editor-modal h2{font-size:20px;font-weight:800;color:var(--color-primary);margin-bottom:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{grid-template-columns:1fr 1fr 1fr}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--color-secondary);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:2px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary)}.form-group.checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.form-group.checkbox input{width:auto;accent-color:#000000}.form-hint{display:block;font-size:12px;color:var(--color-secondary);margin-top:4px}.cover-upload{display:flex;align-items:flex-start;gap:16px}.cover-upload-area{width:100px;height:140px;border-radius:8px;overflow:hidden;background:var(--color-surface);border:2px solid var(--color-border);flex-shrink:0}.cover-preview{width:100%;height:100%;object-fit:cover}.cover-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:silver}.cover-placeholder span{font-size:11px;font-weight:600}.upload-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--color-primary);cursor:pointer;transition:all .15s ease}.upload-button:hover{background:var(--color-border)}.upload-button input[type=file]{display:none}.current-cover{font-size:12px;color:var(--color-secondary);margin-top:4px}.message{font-size:14px;padding:10px;border-radius:8px;margin-bottom:16px}.message.success{background:#dcfce7;color:#166534}.message.error{background:#fee2e2;color:#991b1b}.form-actions{display:flex;gap:12px;margin-top:24px}.save-button{flex:1;padding:12px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer}.save-button:disabled{opacity:.5}.cancel-button{padding:12px 24px;background:none;border:2px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:15px;font-weight:600;color:var(--color-secondary);cursor:pointer}.books-list{padding:24px;max-width:800px;margin:0 auto}.reorder-hint{font-size:13px;color:var(--color-secondary);margin-bottom:16px;display:flex;align-items:center;gap:6px}.reorder-hint:before{content:"";display:inline-block;width:12px;height:12px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='currentColor' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='6' r='2'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='15' cy='12' r='2'/%3E%3Ccircle cx='9' cy='18' r='2'/%3E%3Ccircle cx='15' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='currentColor' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='6' r='2'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='15' cy='12' r='2'/%3E%3Ccircle cx='9' cy='18' r='2'/%3E%3Ccircle cx='15' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat}.book-item{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:12px;margin-bottom:12px;cursor:grab;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;border:2px solid transparent}.book-item:hover{box-shadow:0 4px 12px #00000014}.book-item.dragging{opacity:.5;cursor:grabbing}.book-item.drag-over{border-color:var(--color-primary);background:#f8f8f8}.drag-handle{display:flex;align-items:center;justify-content:center;width:24px;height:40px;color:silver;cursor:grab;flex-shrink:0;transition:color .15s ease}.book-item:hover .drag-handle{color:var(--color-secondary)}.drag-handle:active{cursor:grabbing}.book-order{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-radius:6px;font-size:13px;font-weight:700;color:var(--color-secondary);flex-shrink:0}.book-cover{width:60px;height:80px;border-radius:6px;overflow:hidden;background:var(--color-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.book-cover img{width:100%;height:100%;object-fit:cover}.book-cover span{font-size:24px;font-weight:800;color:var(--color-secondary)}.book-info{flex:1}.book-info h3{font-size:16px;font-weight:700;color:var(--color-primary);margin-bottom:4px}.book-info p{font-size:13px;color:var(--color-secondary);margin-bottom:4px}.toggle{width:44px;height:24px;flex-shrink:0;cursor:pointer;background:#d1d5db;border-radius:24px;position:relative;transition:background .2s}.toggle-knob{position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.toggle.active{background:#000}.toggle.active .toggle-knob{transform:translate(20px)}.book-actions{display:flex;gap:8px}.book-actions button,.book-actions .view-link{padding:8px 16px;background:var(--color-surface);border:none;border-radius:6px;font-family:inherit;font-size:13px;font-weight:600;color:var(--color-primary);cursor:pointer;text-decoration:none}.book-actions button.delete{color:var(--color-error)}.book-actions button:hover,.book-actions .view-link:hover{background:var(--color-border)}.admin-reviews{min-height:100vh;background:var(--color-surface)}.filters{display:flex;gap:8px;padding:16px 24px;background:#fff;border-bottom:1px solid var(--color-border);overflow-x:auto}.filter-btn{padding:8px 16px;background:var(--color-surface);border:none;border-radius:20px;font-family:inherit;font-size:13px;font-weight:600;color:var(--color-secondary);cursor:pointer;white-space:nowrap}.filter-btn.active{background:var(--color-primary);color:#fff}.dropdown-filters{display:flex;gap:12px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--color-border)}.filter-select{padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:13px;color:var(--color-primary);cursor:pointer;min-width:150px}.filter-select:focus{outline:none;border-color:var(--color-primary)}.filter-input{padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:13px;color:var(--color-primary);min-width:180px}.filter-input:focus{outline:none;border-color:var(--color-primary)}.filter-input::placeholder{color:var(--color-secondary)}.reviews-table-container{padding:24px;overflow-x:auto}.loading,.empty{text-align:center;color:var(--color-secondary);padding:40px}.reviews-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}.reviews-table thead{background:var(--color-surface)}.reviews-table th{padding:12px 16px;font-size:12px;font-weight:700;color:var(--color-secondary);text-align:left;text-transform:lowercase;white-space:nowrap}.reviews-table tbody tr{border-top:1px solid var(--color-border)}.reviews-table tbody tr.featured{background:#faf5ff}.reviews-table td{padding:12px 16px;vertical-align:middle}.cell-user{display:flex;align-items:center;gap:10px;min-width:180px}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-surface);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-avatar span{font-size:13px;font-weight:700;color:var(--color-secondary)}.user-info{display:flex;flex-direction:column;min-width:0}.user-name{font-size:13px;font-weight:600;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:11px;color:var(--color-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-book{font-size:13px;color:var(--color-primary);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.cell-rating{white-space:nowrap;font-size:14px}.rating-stars{color:#f59e0b}.rating-empty{color:#e5e7eb}.cell-review{max-width:300px;min-width:200px}.cell-review p{font-size:13px;color:var(--color-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.cell-actions{white-space:nowrap}.cell-actions button{padding:6px 12px;border:none;border-radius:6px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;margin-right:6px}.cell-actions button:last-child{margin-right:0}.btn-feature{background:#ede9fe;color:#5b21b6}.btn-feature:hover{background:#ddd6fe}.btn-unfeature{background:var(--color-surface);color:var(--color-secondary)}.btn-unfeature:hover{background:var(--color-border)}.btn-hide{background:#f3f4f6;color:#6b7280}.btn-hide:hover{background:#e5e7eb}.btn-unhide{background:#dcfce7;color:#166534}.btn-unhide:hover{background:#bbf7d0}
