*{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)}}.login-button{display:flex;align-items:center;justify-content:center;gap:12px;border:none;border-radius:8px;font-family:Nunito,sans-serif;font-weight:600;cursor:pointer;transition:all .2s ease}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button--primary{background:#1a1a1a;color:#fff}.login-button--primary:hover:not(:disabled){background:#333}.login-button--secondary{background:#fff;color:#1a1a1a;border:2px solid #e0e0e0}.login-button--secondary:hover:not(:disabled){border-color:#1a1a1a}.login-button--small{padding:8px 16px;font-size:14px}.login-button--medium{padding:12px 24px;font-size:16px}.login-button--large{padding:16px 32px;font-size:18px}.google-icon{flex-shrink:0}.landing{min-height:100vh;background:#fff}.landing-navbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:16px 24px;z-index:100;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.landing-navbar-left{display:flex;align-items:center}.navbar-logo{width:32px;height:32px}.landing-navbar-right{display:flex;align-items:center}.landing-navbar .nav-link{color:var(--color-secondary);text-decoration:none;font-size:14px;font-weight:600;transition:color .2s ease}.landing-navbar .nav-link:hover{color:var(--color-primary)}.landing-hero{display:flex;flex-direction:column;align-items:center;padding:120px 24px 60px;text-align:center;position:relative;overflow:hidden}.hero-logo{width:100px;height:100px;border-radius:24px;margin-bottom:16px;position:relative;z-index:1}.hero-title{font-size:48px;font-weight:900;color:var(--color-primary);margin-bottom:8px;position:relative;z-index:1}.hero-tagline{font-size:18px;color:var(--color-secondary);max-width:400px;margin-bottom:24px;position:relative;z-index:1}.social-links{display:flex;gap:16px;margin-bottom:24px;position:relative;z-index:1}.social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--color-surface);color:var(--color-primary);transition:all .2s ease}.social-link:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.books-preview-section{padding:60px 24px;max-width:1000px;margin:0 auto}.preview-title{font-size:28px;font-weight:800;color:var(--color-primary);text-align:center;margin-bottom:36px}.preview-series{margin-bottom:40px}.preview-series:last-child{margin-bottom:0}.preview-series-title{font-size:12px;font-weight:700;color:var(--color-secondary);text-transform:lowercase;letter-spacing:1px;margin-bottom:20px}.preview-series-title.series-novel{color:var(--series-novel)}.preview-series-title.series-short-stories{color:var(--series-short-stories)}.preview-series-title.series-kuihtin{color:var(--series-kuihtin)}.preview-series-title.series-career{color:var(--series-career)}.preview-free-note{text-align:center;font-size:15px;color:var(--color-secondary);margin-bottom:40px}.preview-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:8px}.preview-grid::-webkit-scrollbar{display:none}.preview-grid .preview-card{flex:0 0 calc((100% - 72px)/4);min-width:160px;scroll-snap-align:start}.preview-card{text-align:center;text-decoration:none;display:block}.preview-cover{position:relative;width:100%;aspect-ratio:3 / 4;background-size:cover;background-position:center;border-radius:12px;margin-bottom:12px;box-shadow:0 4px 12px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.preview-cover:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.preview-badge{position:absolute;top:12px;left:12px;background:#000000b3;color:#fff;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;text-transform:lowercase}.preview-badge.series-novel{background:var(--series-novel)}.preview-badge.series-short-stories{background:var(--series-short-stories)}.preview-badge.series-kuihtin{background:var(--series-kuihtin)}.preview-badge.series-career{background:var(--series-career)}.preview-book-title{font-size:14px;font-weight:600;color:var(--color-primary);line-height:1.4}.signup-section{padding:0 24px 80px;display:flex;justify-content:center}.signup-card{background:var(--color-surface);border-radius:24px;padding:40px;max-width:440px;width:100%;display:flex;flex-direction:column;align-items:center}.signup-title{font-size:24px;font-weight:800;color:var(--color-primary);margin-bottom:8px;text-align:center}.signup-subtitle{font-size:15px;color:var(--color-secondary);text-align:center;margin-bottom:24px}.signup-form{display:flex;flex-direction:column;gap:12px}.signup-input{width:100%;padding:14px 16px;border:2px solid var(--color-border);border-radius:12px;font-family:inherit;font-size:16px;transition:border-color .2s ease}.signup-input:focus{outline:none;border-color:var(--color-primary)}.signup-checkbox{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-secondary);cursor:pointer}.signup-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.signup-error{color:var(--color-error);font-size:14px;margin:0}.signup-button{width:100%;padding:14px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease}.signup-button:hover:not(:disabled){background:#333;transform:translateY(-1px)}.signup-button:disabled{opacity:.6;cursor:not-allowed}.signup-divider{display:flex;align-items:center;gap:16px;margin:24px 0}.signup-divider:before,.signup-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.signup-divider span{font-size:14px;color:var(--color-secondary)}.signup-google{text-align:center}.signup-google-text{font-size:14px;color:var(--color-secondary);margin-bottom:12px}.signup-google .login-button{width:100%}.signup-success{text-align:center;padding:20px 0}.success-icon{color:var(--color-success);margin-bottom:16px}.signup-success h3{font-size:24px;font-weight:800;color:var(--color-primary);margin-bottom:8px}.signup-success>p{font-size:15px;color:var(--color-secondary);margin-bottom:24px}.success-cta{padding-top:24px;border-top:1px solid var(--color-border)}.success-cta p{font-size:14px;color:var(--color-secondary);margin-bottom:12px}.features-section{padding:80px 24px;background:var(--color-surface)}.features-title{font-size:28px;font-weight:800;color:var(--color-primary);text-align:center;margin-bottom:48px}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;max-width:900px;margin:0 auto}.feature-card{background:#fff;border-radius:16px;padding:32px;text-align:center}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--color-surface);border-radius:16px;color:var(--color-primary);margin-bottom:16px}.feature-card h3{font-size:18px;font-weight:700;color:var(--color-primary);margin-bottom:8px}.feature-card p{font-size:14px;color:var(--color-secondary);line-height:1.6}.landing-footer{padding:40px 24px;text-align:center}.landing-footer p{font-size:14px;color:var(--color-secondary)}@media(max-width:767px){.preview-grid .preview-card{flex:0 0 calc((100% - 24px)/2);min-width:140px}}@media(min-width:768px){.hero-title{font-size:64px}.hero-tagline{font-size:20px}.signup-card{padding:48px}}.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}}.status-tracker{background:var(--color-surface);border-radius:16px;padding:24px;margin-bottom:24px}.tracker-title{font-size:16px;font-weight:700;color:var(--color-primary);margin-bottom:20px}.tracker-steps{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:8px}.tracker-step-wrapper{display:flex;align-items:center;flex-shrink:0}.tracker-step{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:#fff;border:2px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;min-width:80px}.tracker-step:disabled{cursor:default}.tracker-step:not(:disabled):hover{border-color:var(--color-primary);transform:translateY(-2px)}.tracker-step.completed{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.tracker-step.current{border-color:var(--color-accent);box-shadow:0 0 0 3px #60a5fa33}.step-icon{font-size:20px}.step-label{font-size:11px;font-weight:600;text-transform:uppercase}.tracker-connector{width:24px;height:2px;background:var(--color-border);flex-shrink:0}.tracker-connector.completed{background:var(--color-primary)}.review-prompt{margin-top:20px;padding:20px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;text-align:center}.review-prompt p{margin:0 0 8px;color:var(--color-primary)}.review-prompt p:first-child{font-size:18px;font-weight:700}.review-prompt p:nth-child(2){font-size:14px;color:var(--color-secondary)}.prompt-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.prompt-actions button{padding:10px 20px;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.prompt-actions button:first-child{background:var(--color-primary);color:#fff}.prompt-actions button:first-child:hover{background:#333}.prompt-actions button.secondary{background:#fff;color:var(--color-secondary);border:1px solid var(--color-border)}.prompt-actions button.secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.step-timestamp{font-size:10px;font-weight:500;color:var(--color-secondary);margin-top:4px;opacity:.8}.tracker-step.completed .step-timestamp{color:#fffc}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-popup{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;box-shadow:0 20px 40px #0003;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-popup h4{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--color-primary)}.modal-popup h4.danger-title{color:#dc2626}.modal-subtitle{margin:0 0 16px;font-size:13px;color:var(--color-secondary)}.steps-to-update{list-style:none;padding:0;margin:0 0 20px}.steps-to-update li{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f5f5f5;border-radius:8px;margin-bottom:6px}.steps-to-update li:last-child{margin-bottom:0}.step-name{font-size:12px;font-weight:600;color:var(--color-primary)}.step-date{font-size:11px;color:var(--color-secondary);margin-left:auto}.date-selection{margin-bottom:20px}.date-selection label{display:block;font-size:12px;font-weight:600;color:var(--color-secondary);margin-bottom:8px;text-transform:lowercase}.date-input-row{display:flex;align-items:center;gap:8px}.date-input-row input[type=date]{flex:1;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px;background:#fff;color:var(--color-primary)}.date-input-row input[type=date]:focus{outline:none;border-color:var(--color-primary)}.today-btn{padding:10px 16px;background:#fff;border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;color:var(--color-secondary);cursor:pointer;transition:all .2s ease}.today-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.modal-actions{display:flex;gap:12px}.confirm-btn{flex:1;padding:12px 20px;background:var(--color-primary);border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.confirm-btn:hover:not(:disabled){background:#333}.confirm-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{padding:12px 20px;background:#fff;border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-secondary);cursor:pointer;transition:all .2s ease}.cancel-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.confirm-btn.danger{background:#dc2626}.confirm-btn.danger:hover:not(:disabled){background:#b91c1c}@media(max-width:500px){.tracker-step{min-width:70px;padding:10px}.step-icon{font-size:16px}.step-label{font-size:10px}.step-timestamp{font-size:9px}.confirmation-modal{padding:16px}.date-input-row{flex-direction:column}.date-input-row input[type=date],.today-btn{width:100%}.modal-actions{flex-direction:column}.confirm-btn,.cancel-btn{width:100%}}.review-section{padding:24px 0}.review-section-title{font-size:20px;font-weight:700;color:var(--color-primary);margin-bottom:20px}.review-login-prompt{background:var(--color-surface);border-radius:16px;padding:24px;margin-bottom:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.review-login-prompt p{font-size:14px;color:var(--color-secondary);margin:0}.review-form{background:var(--color-surface);border-radius:16px;padding:24px;margin-bottom:24px}.rating-input{display:flex;align-items:center;gap:12px;margin-bottom:16px}.rating-label{font-size:14px;font-weight:600;color:var(--color-primary)}.stars{display:flex;gap:4px}.star{background:none;border:none;font-size:24px;color:var(--color-border);cursor:pointer;padding:0;transition:transform .1s ease}.star:hover{transform:scale(1.2)}.star.filled{color:#f59e0b}.review-textarea{width:100%;padding:14px 16px;border:2px solid var(--color-border);border-radius:12px;font-family:inherit;font-size:15px;resize:vertical;min-height:100px;transition:border-color .2s ease}.review-textarea:focus{outline:none;border-color:var(--color-primary)}.word-count{font-size:11px;margin-top:6px;text-align:right}.word-count.under{color:var(--color-secondary)}.word-count.valid{color:#22c55e}.word-count.over{color:#ef4444}.review-message{font-size:14px;margin:12px 0}.review-message.success{color:var(--color-success)}.review-message.error{color:var(--color-error)}.review-form-buttons{display:flex;gap:12px;margin-top:12px}.review-submit{flex:1;padding:14px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease}.review-submit:hover:not(:disabled){background:#333}.review-submit:disabled{opacity:.5;cursor:not-allowed}.review-cancel{padding:14px 24px;background:transparent;color:var(--color-secondary);border:1px solid var(--color-border);border-radius:12px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.review-cancel:hover{background:var(--color-surface);color:var(--color-primary)}.review-card.user-review{border:2px solid var(--color-primary)}.review-footer{display:flex;justify-content:space-between;align-items:center}.edit-review-btn{padding:2px 8px;background:transparent;color:var(--color-secondary);border:1px solid var(--color-border);border-radius:4px;font-family:inherit;font-size:10px;font-weight:500;cursor:pointer;transition:all .15s ease}.edit-review-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.approved{background:#dcfce7;color:#166534}.status-badge.featured{background:#ede9fe;color:#5b21b6}.reviews-list{display:flex;flex-direction:column;gap:6px}.no-reviews{text-align:center;color:var(--color-secondary);padding:40px 20px}.review-card{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;position:relative}.review-card.featured{border-color:#a855f7;background:linear-gradient(to bottom,#faf5ff,#fff)}.featured-badge{position:absolute;top:-8px;right:16px;background:#a855f7;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.review-author-info{display:flex;align-items:center;gap:6px}.review-author-link{text-decoration:none;border-radius:8px;padding:4px;margin:-4px;transition:background-color .15s ease}.review-author-link:hover{background-color:var(--color-surface)}.review-author-link:hover .review-author{text-decoration:underline}.review-avatar{width:44px;height:44px;border-radius:50%;background:var(--color-border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.review-avatar img{width:100%;height:100%;object-fit:cover}.review-avatar span{font-size:16px;font-weight:700;color:var(--color-secondary)}.review-author{font-size:15px;font-weight:700;color:var(--color-primary)}.review-rating{color:#f59e0b;font-size:11px;letter-spacing:.5px}.review-content{font-size:16px;color:var(--color-primary);line-height:1.4;margin-bottom:4px;white-space:pre-line}.review-content.collapsed{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.review-see-more{background:none;border:none;padding:0;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-secondary);cursor:pointer;margin-bottom:4px}.review-see-more:hover{color:var(--color-primary);text-decoration:underline}.review-actions{display:flex;gap:8px;align-items:center}.admin-review-btn{padding:2px 8px;background:transparent;color:var(--color-secondary);border:1px solid var(--color-border);border-radius:4px;font-family:inherit;font-size:10px;font-weight:500;cursor:pointer;transition:all .15s ease}.admin-review-btn:hover,.admin-review-btn.active{background:#a855f7;color:#fff;border-color:#a855f7}.admin-review-btn.danger:hover,.admin-review-btn.danger.active{background:#ef4444;color:#fff;border-color:#ef4444}.review-date{font-size:10px;color:var(--color-secondary)}.reviews-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.reviews-count{font-size:14px;font-weight:600;color:var(--color-secondary);margin:0}.reviews-sort{display:flex;gap:8px}.sort-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-border);border-radius:6px;font-family:inherit;font-size:13px;font-weight:500;color:var(--color-secondary);cursor:pointer;transition:all .15s ease}.sort-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.sort-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.reviews-loading{text-align:center;color:var(--color-secondary);padding:40px 20px}.reviews-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.pagination-btn{padding:10px 20px;background:#fff;border:1px solid var(--color-border);border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-primary);cursor:pointer;transition:all .15s ease}.pagination-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-size:14px;font-weight:600;color:var(--color-secondary)}.book-detail{min-height:100vh;background:#fff;display:flex;flex-direction:column}.book-detail--not-found{align-items:center;justify-content:center;padding:40px 24px}.not-found-content h1{font-size:2rem;font-weight:900;color:var(--color-primary);margin-bottom:12px}.not-found-content p{font-size:1.125rem;color:var(--color-secondary);margin-bottom:24px}.book-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:var(--color-secondary);text-decoration:none;transition:color .2s ease}.back-link:hover{color:var(--color-primary)}.book-hero{display:flex;flex-direction:column;align-items:center;gap:40px;padding:60px 24px 80px;background:linear-gradient(180deg,#fafafa,#fff)}@media(min-width:768px){.book-hero{flex-direction:row;align-items:flex-start;justify-content:center;gap:60px;padding:80px 40px 100px}}.book-hero-cover{position:relative;flex-shrink:0}.cover-image{width:280px;height:420px;background-size:cover;background-position:center;background-color:#f0f0f0;border-radius:16px;box-shadow:0 20px 60px #00000026;display:flex;align-items:center;justify-content:center}@media(min-width:768px){.cover-image{width:320px;height:480px}}.cover-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,#e0e0e0,silver);border-radius:16px}.cover-placeholder span{font-size:6rem;font-weight:900;color:#fff6}.book-hero-info{max-width:400px;text-align:center}@media(min-width:768px){.book-hero-info{text-align:left;padding-top:20px}}.book-series-badge{display:inline-block;font-size:.75rem;font-weight:800;color:#fff;background:var(--color-accent);padding:6px 16px;border-radius:100px;text-transform:lowercase;letter-spacing:.05em;margin-bottom:16px}.book-series-badge.series-novel{background:var(--series-novel)}.book-series-badge.series-short-stories{background:var(--series-short-stories)}.book-series-badge.series-kuihtin{background:var(--series-kuihtin)}.book-series-badge.series-career{background:var(--series-career)}.book-hero-title{font-size:2.5rem;font-weight:900;color:var(--color-primary);line-height:1.2;margin-bottom:24px}@media(min-width:768px){.book-hero-title{font-size:3rem}}.book-stats-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:24px}.book-stats-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}@media(min-width:768px){.book-stats-row{justify-content:flex-start}}.book-stat{font-size:.9375rem;font-weight:600;color:var(--color-secondary)}.book-stat-time{font-size:.875rem;font-weight:500;color:var(--color-secondary)}.book-stat-divider{font-size:.875rem;color:#ccc}.buy-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:Nunito,sans-serif;font-size:1.125rem;font-weight:800;color:var(--color-primary);background:#fff;border:2px solid var(--color-primary);text-decoration:none;padding:18px 40px;border-radius:100px;transition:all .3s cubic-bezier(.4,0,.2,1)}.buy-button:hover{background:var(--color-primary);color:#fff;transform:translateY(-4px);box-shadow:0 16px 40px #0003}.book-section{width:100%;max-width:800px;margin:0 auto;padding:40px 24px}.section-title{font-size:1.5rem;font-weight:900;color:var(--color-primary);margin-bottom:24px}.book-description{display:flex;flex-direction:column;gap:16px}.book-description p,.book-target-audience{font-size:1.125rem;font-weight:500;color:#555;line-height:1.8}.book-toc{display:flex;flex-direction:column;gap:8px}.toc-item{font-size:1rem;font-weight:600;color:var(--color-primary);padding:12px 16px;background:var(--color-surface);border-radius:8px}.toc-sub-item{font-size:.9rem;font-weight:500;color:var(--color-secondary);padding:8px 16px 8px 32px;background:transparent;border-radius:0;border-left:2px solid var(--color-border);margin-left:16px}.preview-section{background:var(--color-surface);max-width:100%;padding:40px 24px}.preview-section .section-title{text-align:center}.preview-carousel{display:flex;align-items:center;justify-content:center;gap:16px;max-width:700px;margin:0 auto}.carousel-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fff;border:2px solid var(--color-border);border-radius:50%;color:var(--color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.carousel-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.preview-container{width:100%;max-width:350px;height:450px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.preview-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #0000001a}.preview-dots{display:flex;justify-content:center;gap:8px;margin-top:24px}.preview-dot{width:10px;height:10px;background:#ddd;border:none;border-radius:50%;cursor:pointer;transition:all .2s ease}.preview-dot:hover{background:#bbb}.preview-dot.active{background:var(--color-primary);transform:scale(1.2)}.book-cta-section{padding:80px 24px;text-align:center;background:var(--color-primary)}.cta-title{font-size:2rem;font-weight:900;color:#fff;margin-bottom:28px}.cta-button{display:inline-flex;align-items:center;gap:10px;font-family:Nunito,sans-serif;font-size:1.125rem;font-weight:800;color:var(--color-primary)!important;background:#fff!important;border:none;text-decoration:none;padding:18px 48px;border-radius:100px;transition:all .3s cubic-bezier(.4,0,.2,1)}.cta-button:hover{transform:translateY(-4px);box-shadow:0 16px 40px #0003}.sign-in-panel{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;margin-top:24px;background:#f5f5f5;border-radius:12px;text-align:center}.sign-in-panel p{font-size:.9375rem;font-weight:600;color:var(--color-secondary);margin:0}.sign-in-link{display:inline-block;padding:10px 24px;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:700;text-decoration:none;border-radius:100px;transition:all .2s ease}.sign-in-link:hover{opacity:.9;transform:translateY(-2px)}.lightbox{position:fixed;inset:0;z-index:1000;background:#000000f2;display:flex;align-items:center;justify-content:center}.lightbox-close{position:absolute;top:20px;right:20px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s ease}.lightbox-close:hover{opacity:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:background .2s ease}.lightbox-nav:hover{background:#fff3}.lightbox-nav--prev{left:20px}.lightbox-nav--next{right:20px}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:.875rem;font-weight:600;color:#ffffffb3}@media(max-width:640px){.book-hero-title{font-size:2rem}.section-title{font-size:1.25rem}.book-description p{font-size:1rem}.carousel-btn{width:40px;height:40px}.cta-title{font-size:1.5rem}.lightbox-nav{width:44px;height:44px}.lightbox-nav--prev{left:10px}.lightbox-nav--next{right:10px}}.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}
