.navigation{background-color:#fff;border-bottom:2px solid #e0e0e0;padding:1rem 0;margin-bottom:2rem;position:sticky;top:0;z-index:100;overflow:visible}.nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:visible}.nav-logo{display:flex;align-items:center;text-decoration:none;z-index:101}.nav-logo-img{height:50px;width:auto}.nav-toggle{display:none;flex-direction:column;background:none;border:none;cursor:pointer;padding:.5rem;gap:4px;z-index:101}.nav-toggle span{width:25px;height:3px;background-color:#4a148c;border-radius:2px;transition:all .3s ease}.nav-menu{display:flex;list-style:none;margin:0;padding:0;gap:2rem;overflow:visible}.nav-link{text-decoration:none;color:#4a148c;font-weight:500;font-size:1.1rem;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s,color .2s;display:block;min-height:44px;display:flex;align-items:center}.nav-link:hover{background-color:#f5f5f5;color:#6a1b9a}.nav-link.active{background-color:#e91e63;color:#fff}.nav-link.active:hover{background-color:#c2185b;color:#fff}.profile-dropdown-container,.profile-dropdown{position:relative;width:100%}.profile-dropdown-button{display:flex;align-items:center;gap:.5rem;cursor:pointer;background:none;border:none;width:100%;text-align:left;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s,color .2s;font-weight:500;font-size:1.1rem;color:#4a148c;font-family:inherit}.profile-dropdown-button:hover{background-color:#f5f5f5;color:#6a1b9a}.profile-dropdown-button.active{background-color:#e91e63;color:#fff}.profile-dropdown-button.active:hover{background-color:#c2185b;color:#fff}.dropdown-arrow{font-size:.7rem;transition:transform .2s}.profile-dropdown.open .dropdown-arrow{transform:rotate(180deg)}.profile-dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;background-color:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;z-index:10000;overflow:visible;display:block;visibility:visible;opacity:1}.profile-dropdown-item{display:block;padding:.75rem 1rem;text-decoration:none;color:#4a148c;font-weight:500;font-size:1rem;transition:background-color .2s,color .2s;border-bottom:1px solid #f0f0f0}.profile-dropdown-item:last-child{border-bottom:none}.profile-dropdown-item:hover{background-color:#f5f5f5;color:#6a1b9a}.profile-dropdown-item.active{background-color:#e91e63;color:#fff}.profile-dropdown-item.active:hover{background-color:#c2185b;color:#fff}@media (max-width: 768px){.nav-container{padding:0 1rem}.nav-toggle{display:flex}.nav-logo-img{height:40px}.nav-menu{position:fixed;top:0;right:-100%;height:100vh;width:280px;background-color:#fff;flex-direction:column;padding:5rem 2rem 2rem;box-shadow:-2px 0 10px #0000001a;transition:right .3s ease;gap:0;z-index:100}.nav-menu-open{right:0}.nav-menu li{width:100%;border-bottom:1px solid #e0e0e0}.nav-link{width:100%;padding:1rem;font-size:1.1rem}.profile-dropdown-menu{position:static;margin-top:0;box-shadow:none;border:none;border-top:1px solid #e0e0e0;border-radius:0}.nav-menu-open:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;z-index:-1}}@media (max-width: 480px){.nav-logo-img{height:35px}.nav-menu{width:100%;right:-100%}}.login-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:.67rem .33rem;background-color:#f6f6f8}.login-container{background:#fff;border-radius:12px;box-shadow:0 10px 35px #0f172a14;padding:3rem;width:100%;max-width:450px}.login-header{text-align:center;margin-bottom:2rem}.login-logo{max-width:200px;height:auto;margin-bottom:1rem}.login-header h1{margin:0 0 .5rem;color:#4a148c;font-size:2rem}.login-subtitle{color:#6b7280;margin:0;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;font-size:.9rem;color:#374151}.form-group input{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.login-error{background-color:#fee2e2;color:#991b1b;padding:.75rem;border-radius:8px;font-size:.9rem;border:1px solid #fecaca}.login-button{background-color:#e91e63;color:#fff;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;min-height:44px}.login-button:hover:not(:disabled){background-color:#c2185b}.login-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.login-container{padding:2rem 1.5rem}.login-logo{max-width:150px}.login-header h1{font-size:1.5rem}}.books-page{max-width:1200px;margin:0 auto;padding:.67rem .33rem}.books-page h1{text-align:center;color:#4a148c;margin-bottom:2rem}.browse-header{color:#4a148c;margin:2rem 0 1.5rem;font-size:1.75rem}.search-form{margin-bottom:2rem}.search-input-group{display:flex;gap:1rem;max-width:600px;margin:0 auto}.search-type-select{padding:.75rem 1rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;background-color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;min-width:120px}.search-input{flex:1;padding:.75rem 1rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.search-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.search-button{padding:.75rem 2rem;background-color:#e91e63;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;min-width:120px;min-height:44px}.search-button:hover:not(:disabled){background-color:#c2185b}.search-button:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#fee2e2;color:#991b1b;padding:1rem;border-radius:8px;margin-bottom:2rem;text-align:center;border:1px solid #fecaca}.books-results h2{color:#4a148c;margin-bottom:1.5rem;font-size:1.5rem}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;margin-top:2rem}.book-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;cursor:pointer}.book-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #00000026}.book-cover{width:100%;height:400px;background-color:#f3f4f6;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.book-cover-image{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1.2rem;font-weight:600}.book-info{padding:1.5rem;flex:1;display:flex;flex-direction:column}.book-title{margin:0 0 .5rem;color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1.4}.book-author{margin:0 0 .75rem;color:#6b7280;font-size:1rem}.book-isbn{margin:auto 0 0;color:#9ca3af;font-size:.875rem;font-family:monospace}.book-new-badge{position:absolute;bottom:.75rem;right:.75rem;background-color:#e91e63;color:#fff;padding:.375rem .75rem;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0003;z-index:10}.no-results{text-align:center;padding:3rem;color:#6b7280}.add-book-button{margin-top:1.5rem;padding:.75rem 2rem;background-color:#4a148c;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.add-book-button:hover{background-color:#6a1b9a}.load-more-container{display:flex;justify-content:center;margin-top:2rem;padding:2rem 0}.load-more-button{padding:.75rem 2rem;background-color:#4a148c;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;min-width:180px}.load-more-button:hover:not(:disabled){background-color:#6a1b9a}.load-more-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.books-page{padding:.33rem}.search-input-group{flex-direction:column}.search-button{width:100%}.books-grid{grid-template-columns:1fr;gap:1.5rem}.book-cover{height:300px}}@media (max-width: 480px){.books-page h1{font-size:1.5rem}.books-results h2{font-size:1.25rem}.book-cover{height:250px}}.add-book-page{max-width:800px;margin:0 auto;padding:.67rem .33rem}.isbn-search-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}.isbn-search-form{max-width:600px;margin:0 auto}.search-input-group{display:flex;gap:.5rem}.search-type-select{padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;background-color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;min-width:120px}.search-type-select:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.search-type-select:disabled{background-color:#f3f4f6;cursor:not-allowed}.search-input{flex:1;padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.search-input:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.help-text{margin-top:.5rem;font-size:.875rem;color:#6b7280;font-style:italic}.search-results{margin-top:2rem;margin-bottom:1.5rem}.search-results h3{color:#4a148c;margin-bottom:1rem;font-size:1.25rem}.book-results-list{display:flex;flex-direction:column;gap:1rem;max-height:500px;overflow-y:auto}.book-result-card{display:flex;gap:1rem;padding:1rem;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.book-result-card:hover{background:#f3f4f6;border-color:#4a148c;transform:translate(4px)}.book-result-cover{flex-shrink:0;width:100px;height:150px;background:#e5e7eb;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a;margin-right:16px}.book-result-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e5e7eb,#d1d5db);color:#6b7280;font-size:12px;font-weight:500;text-align:center;padding:8px}.book-result-info{flex:1;display:flex;flex-direction:column;gap:.5rem}.book-result-info h4{margin:0;color:#1f2937;font-size:1.1rem;font-weight:600}.book-result-author{margin:0;color:#6b7280;font-size:.95rem}.book-result-isbn{margin:0;color:#9ca3af;font-size:.875rem;font-family:monospace}.book-result-publisher{margin:0;color:#6b7280;font-size:.875rem}.add-book-page h1{text-align:center;color:#4a148c;margin-bottom:2rem}.add-book-form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}.form-group input[type=text],.form-group input[type=url],.form-input{width:100%;padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;background-color:#fff;color:#1f2937;font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=url]:focus,.form-input:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.form-group input[type=text]:disabled,.form-group input[type=url]:disabled,.form-input.disabled,.form-input:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.form-group select,.form-select{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;background-color:#fff;color:#1f2937;font-family:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px;cursor:pointer}.form-group select:focus,.form-select:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.form-group select:disabled,.form-select:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239ca3af' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}.book-info-display{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;background-color:#f9fafb;color:#1f2937;box-sizing:border-box;min-height:2.75rem;display:flex;align-items:center}.file-preview{margin-top:.5rem;padding:.5rem;background-color:#f3f4f6;border-radius:4px;font-size:.875rem;color:#6b7280}.success-message{background-color:#d1fae5;color:#065f46;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #a7f3d0}@media (max-width: 768px){.add-book-page{padding:.33rem}.add-book-form{padding:1.5rem}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}.add-review-page{max-width:800px;margin:0 auto;padding:.67rem .33rem}.add-review-page h1{text-align:center;color:#4a148c;margin-bottom:2rem}.book-info-section{background:#f9fafb;padding:1.5rem;border-radius:8px;margin-bottom:2rem;border:2px solid #e5e7eb}.book-info-section h2{margin:0 0 .5rem;color:#1f2937;font-size:1.5rem}.book-info-section p{margin:.25rem 0;color:#6b7280}.add-review-form{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#1f2937;font-weight:600;font-size:.95rem}.question-description{font-size:.85rem;color:#6b7280;margin-bottom:.75rem;font-style:italic;line-height:1.4}.scale-labels{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.8rem;color:#9ca3af}.scale-label-min,.scale-label-max{font-weight:500}.required{color:#e91e63}.form-group input[type=text],.form-group input[type=date],.form-group textarea{width:100%;padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;font-family:inherit}.form-group textarea{resize:vertical;min-height:100px}.form-group input[type=text]:focus,.form-group input[type=date]:focus,.form-group textarea:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.impression-buttons{display:flex;gap:1rem}.impression-button{flex:1;padding:1rem;border:2px solid #d1d5db;border-radius:8px;background:#fff;font-size:1.1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.impression-button:hover{border-color:#4a148c;background:#f9fafb}.impression-button.active{border-color:#4a148c;background:#4a148c;color:#fff}.slider-container{display:flex;align-items:center;gap:1rem}.slider{flex:1;height:8px;border-radius:4px;background:#d1d5db;outline:none;-webkit-appearance:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#4a148c;cursor:pointer}.slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#4a148c;cursor:pointer;border:none}.slider-value{min-width:30px;text-align:center;font-weight:600;color:#4a148c;font-size:1.1rem}.icon-selector{display:flex;gap:.5rem;align-items:center}.icon-button{background:none;border:2px solid #d1d5db;border-radius:8px;padding:.5rem;font-size:1.5rem;cursor:pointer;transition:all .2s;width:50px;height:50px;display:flex;align-items:center;justify-content:center}.icon-button:hover{border-color:#4a148c;transform:scale(1.1)}.icon-button.muted{opacity:.3;filter:grayscale(100%)}.icon-button.active{opacity:1;filter:none;border-color:#4a148c;background:#f9fafb}.icon-label{margin-top:.75rem;padding:.5rem 1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#4b5563;font-size:.9rem;font-style:italic}.error-message{background-color:#fee2e2;color:#991b1b;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #fecaca}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.cancel-button,.submit-button{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;min-width:120px}.cancel-button{background-color:#6b7280;color:#fff}.cancel-button:hover:not(:disabled){background-color:#4b5563}.submit-button{background-color:#4a148c;color:#fff}.submit-button:hover:not(:disabled){background-color:#6a1b9a}.cancel-button:disabled,.submit-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.add-review-page{padding:.33rem}.add-review-form{padding:1.5rem}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}.profile-page{max-width:1400px;margin:0 auto;padding:.67rem .33rem}.profile-page h1{text-align:center;color:#4a148c;margin-bottom:2rem}.profile-top-section{display:flex;gap:1rem;align-items:flex-start;margin-bottom:2rem}.readerprint-wrapper{flex:1;min-width:0}.user-info-section{background:#f9fafb;padding:1.5rem;border-radius:12px;border:2px solid #e5e7eb;min-width:200px;max-width:220px;flex-shrink:0}.profile-content{flex:1;min-width:0}.user-info-section h2{margin:0 0 .75rem;color:#1f2937;font-size:1.25rem;text-align:left}.user-birthday{margin:0 0 .5rem;color:#6b7280;font-size:1rem;text-align:left}.user-review-count{margin:.5rem 0 0;color:#4a148c;font-size:1.1rem;font-weight:600;text-align:left}.user-preferred-metrics{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.preferred-metric{margin-bottom:1rem}.preferred-metric:last-child{margin-bottom:0}.preferred-metric-label{font-size:.85rem;color:#6b7280;margin-bottom:.5rem;font-weight:500}.preferred-metric-icons{display:flex;gap:.2rem;align-items:center}.preferred-metric-icons .chili-icon,.preferred-metric-icons .knife-icon{font-size:1rem;line-height:1}.readerprint-container{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:nowrap}.readerprint-section{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;flex:1;min-width:0}.readerprint-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.readerprint-title{margin:0 0 .25rem;color:#4a148c;font-size:1.5rem;font-weight:600}.readerprint-subtitle{margin:0;color:#6b7280;font-size:1.1rem;font-style:italic}.readerprint-toggle{display:flex;gap:.5rem;align-items:center}.toggle-layer{padding:.5rem 1rem;border:2px solid #4A148C;border-radius:6px;background-color:#fff;color:#4a148c;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.toggle-layer:hover{background-color:#f3f4f6}.toggle-layer.active{background-color:#4a148c;color:#fff}.toggle-layer.active:hover{background-color:#6a1b9a}.readerprint-chart-container{width:100%;height:280px;padding:10px;box-sizing:border-box;min-height:280px}.readerprint-chart-container .recharts-wrapper{width:100%!important;height:100%!important}.view-toggle{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.toggle-button{padding:.75rem 2rem;border:2px solid #4A148C;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;background-color:#fff;color:#4a148c;min-width:180px}.toggle-button:hover{background-color:#f3f4f6}.toggle-button.active{background-color:#4a148c;color:#fff}.toggle-button.active:hover{background-color:#6a1b9a}.no-books{text-align:center;padding:3rem;color:#6b7280;font-size:1.1rem}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;margin-top:1rem}.thumbprints-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-top:1rem}.thumbprint-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .2s;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start;padding:1rem;gap:1.5rem}.thumbprint-card:hover{border-color:#4a148c;transform:translateY(-4px);box-shadow:0 4px 12px #4a148c26}.thumbprint-cover-section{display:flex;flex-direction:column;align-items:center;flex-shrink:0;min-width:0}.thumbprint-cover{width:120px;background:#e5e7eb;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px;margin-bottom:.75rem}.thumbprint-cover img{width:100%;height:auto;display:block;object-fit:contain}.thumbprint-title{margin:0 0 .25rem;color:#1f2937;font-size:.9rem;font-weight:600;line-height:1.3;text-align:center;max-width:120px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.thumbprint-author{margin:0;color:#6b7280;font-size:.8rem;text-align:center;max-width:120px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.thumbprint-info{flex-grow:1;display:flex;flex-direction:column;min-width:0}.thumbprint-chart-container{width:100%;height:200px;padding:10px;box-sizing:border-box}.thumbprint-metrics{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.5rem 0;margin-top:.5rem}.thumbprint-impression{font-size:1.2rem;line-height:1}.thumbprint-smut,.thumbprint-gore{display:flex;gap:.15rem;align-items:center}.thumbprint-smut .chili-icon,.thumbprint-gore .knife-icon{font-size:.9rem;line-height:1}.none-text{color:#6b7280;font-style:italic;font-size:.9rem}.book-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .2s;cursor:pointer;display:flex;flex-direction:column;position:relative}.book-card:hover{border-color:#4a148c;transform:translateY(-4px);box-shadow:0 4px 12px #4a148c26}.book-cover{width:100%;height:300px;background:#e5e7eb;display:flex;align-items:center;justify-content:center;overflow:hidden}.book-cover img{width:100%;height:100%;object-fit:cover}.book-info{padding:1rem;flex-grow:1;display:flex;flex-direction:column}.book-info h3{margin:0 0 .5rem;color:#1f2937;font-size:1rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{margin:0 0 .5rem;color:#6b7280;font-size:.875rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.book-isbn{margin:auto 0 0;color:#9ca3af;font-size:.75rem;font-family:monospace}.remove-from-tbr-button{position:absolute;bottom:.75rem;right:.75rem;background-color:#ffffffe6;border:2px solid #dc2626;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10;color:#dc2626;padding:0}.remove-from-tbr-button:hover{background-color:#dc2626;color:#fff;transform:scale(1.1)}.remove-from-tbr-button:active{transform:scale(.95)}.remove-from-tbr-button svg{width:18px;height:18px}.reviews-table-container{overflow-x:auto;margin-top:1rem;border-radius:12px;border:2px solid #e5e7eb;background:#fff;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.reviews-table-container::-webkit-scrollbar{height:8px}.reviews-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.reviews-table-container::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.reviews-table-container::-webkit-scrollbar-thumb:hover{background:#555}.reviews-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem;table-layout:fixed;min-width:1800px}.reviews-table thead{background-color:#4a148c;color:#fff;position:sticky;top:0;z-index:10}.reviews-table th{padding:.75rem .5rem;text-align:left;font-weight:600;white-space:nowrap;border-bottom:2px solid #6A1B9A;position:relative}.reviews-table th:first-child{border-top-left-radius:10px;width:60px}.reviews-table th:last-child{border-top-right-radius:10px;width:250px}.reviews-table th:nth-child(2){width:200px}.reviews-table th:nth-child(3){width:150px}.reviews-table th:nth-child(4),.reviews-table th:nth-child(5),.reviews-table th:nth-child(6){width:110px}.reviews-table th:nth-child(7){width:70px}.reviews-table th:nth-child(n+8):nth-child(-n+13){width:50px}.reviews-table th:nth-child(n+14):nth-child(-n+19){width:50px}.reviews-table th:nth-child(20),.reviews-table th:nth-child(21){width:60px}.reviews-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.reviews-table tbody tr:hover{background-color:#f9fafb;cursor:pointer}.reviews-table tbody tr:last-child{border-bottom:none}.reviews-table td{padding:.75rem .5rem;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reviews-table td:first-child{text-align:center;padding:.5rem}.reviews-table td:nth-child(2){white-space:normal;overflow:visible;text-overflow:clip;max-width:200px}.reviews-table td:nth-child(n+8):nth-child(-n+13),.reviews-table td:nth-child(n+14):nth-child(-n+19){text-align:center}.reviews-table td:nth-child(20),.reviews-table td:nth-child(21){text-align:center}.review-cover-thumbnail{width:50px;height:75px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb;display:block;margin:0 auto}.notes-cell{white-space:normal;word-wrap:break-word;overflow-wrap:break-word;max-width:250px;line-height:1.4;padding:.75rem}.review-row{cursor:pointer}.review-row td{border-right:1px solid #f3f4f6}.review-row td:last-child{border-right:none}@media (max-width: 768px){.profile-page{padding:.33rem}.user-info-section{padding:1.5rem}.readerprint-container{flex-direction:column}.readerprint-section{min-width:100%}.view-toggle{flex-direction:column}.toggle-button{width:100%}.books-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.book-cover{height:225px}}.book-calendar-page{max-width:1400px;margin:0 auto;padding:.67rem .33rem}.book-calendar-page h1{text-align:center;color:#4a148c;margin-bottom:2rem}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.calendar-month-year{flex:1;text-align:center}.calendar-month-year h2{margin:0;color:#4a148c;font-size:1.75rem}.calendar-nav-button,.calendar-today-button{padding:.75rem 1.5rem;border:2px solid #4A148C;border-radius:8px;background-color:#fff;color:#4a148c;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.calendar-nav-button:hover,.calendar-today-button:hover{background-color:#4a148c;color:#fff}.calendar-container{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1rem;overflow-x:auto}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.calendar-day-header{text-align:center;font-weight:600;color:#4a148c;padding:.5rem;font-size:.9rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day{min-height:120px;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem;background-color:#fff;display:flex;flex-direction:column;transition:all .2s}.calendar-day.other-month{background-color:#f9fafb;opacity:.6}.calendar-day.has-books{border-color:#4a148c;background-color:#f3f4f6}.calendar-day.has-books:hover{border-color:#6a1b9a;box-shadow:0 2px 8px #4a148c33}.calendar-day-number{font-weight:600;color:#1f2937;margin-bottom:.5rem;font-size:.9rem}.calendar-day.other-month .calendar-day-number{color:#9ca3af}.calendar-day-books{display:flex;flex-wrap:wrap;gap:.25rem;flex-grow:1;align-content:flex-start}.calendar-book-cover{width:30px;height:45px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb;cursor:pointer;transition:transform .2s,box-shadow .2s}.calendar-book-cover:hover{transform:scale(1.2);box-shadow:0 2px 8px #0000004d;z-index:10;position:relative}.calendar-more-books{width:30px;height:45px;display:flex;align-items:center;justify-content:center;background-color:#4a148c;color:#fff;border-radius:4px;font-size:.7rem;font-weight:600;border:1px solid #4A148C}@media (max-width: 768px){.book-calendar-page{padding:.33rem}.calendar-controls{flex-direction:column;align-items:stretch}.calendar-nav-button,.calendar-today-button{width:100%}.calendar-day{min-height:100px}.calendar-book-cover{width:25px;height:37px}.calendar-more-books{width:25px;height:37px;font-size:.6rem}}.book-details-page{max-width:1400px;margin:0 auto;padding:.67rem .33rem}.book-details-actions{display:flex;gap:1rem;margin-top:2rem;margin-bottom:2rem}.back-button{background-color:#4a148c;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.back-button:hover{background-color:#6a1b9a}.review-book-button{background-color:#4a148c;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.review-book-button:hover{background-color:#6a1b9a}.book-details-container{display:flex;gap:4rem;align-items:flex-start}.book-cover-large{flex-shrink:0;width:150px;height:225px;background:#e5e7eb;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.book-cover-large img{width:100%;height:100%;object-fit:cover}.book-details-info{flex:1;display:flex;flex-direction:column;gap:1.5rem}.book-details-info h1{margin:0;color:#1f2937;font-size:1.25rem;line-height:1.2}.book-details-info .book-author{margin:0;color:#6b7280;font-size:1.5rem}.book-details-info .book-fiction-type,.book-details-info .book-genre,.book-details-info .book-subgenre{margin:0;color:#6b7280;font-size:1.25rem}.book-details-info .book-isbn{margin:0;color:#9ca3af;font-size:1rem;font-family:monospace}.book-details-info .book-review-count{margin:0;color:#6b7280;font-size:.9rem}.tbr-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.add-to-tbr-button{background-color:#4a148c;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;align-self:flex-start}.add-to-tbr-button:hover:not(:disabled){background-color:#6a1b9a}.add-to-tbr-button:disabled{opacity:.6;cursor:not-allowed}.error-message-small{background-color:#fee2e2;color:#991b1b;padding:.75rem;border-radius:8px;border:1px solid #fecaca;font-size:.875rem}.success-message-small{background-color:#d4edda;color:#155724;padding:.75rem;border-radius:8px;border:1px solid #c3e6cb;font-size:.875rem}.loading{text-align:center;padding:2rem;color:#6b7280;font-size:1.1rem}.error-message{background-color:#fee2e2;color:#991b1b;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #fecaca;text-align:center}.review-metrics{margin-top:3rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:2rem;width:100%}.review-metrics h2{margin:0 0 1.5rem;color:#4a148c;font-size:1.75rem;border-bottom:2px solid #4A148C;padding-bottom:.75rem}.review-section{display:flex;flex-direction:row;gap:2rem;flex-wrap:wrap}.review-dates{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.review-date-item{font-size:.9rem;color:#4b5563}.review-date-item strong{color:#1f2937;margin-right:.5rem}.impression-icon{font-size:1.2rem;margin-left:.25rem}.gauge-item{margin-top:1rem;display:flex;justify-content:center;align-items:center}.gauge-container{display:flex;justify-content:center;align-items:center;margin:1rem 0}.content-warnings{margin-top:.5rem}.warning-meters{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.warning-meter{display:flex;align-items:center;gap:.5rem}.warning-label{font-size:.85rem;color:#1f2937;font-weight:600;min-width:50px}.meter-icons{display:flex;gap:.15rem}.meter-text{color:#6b7280;font-style:italic}.chili-icon,.knife-icon{font-size:.9rem;line-height:1}.review-scores{display:flex;flex-direction:column;gap:1rem;flex:1}.chart-legend{display:flex;gap:1.5rem;align-items:center;padding:.75rem 1rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb;width:100%}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#1f2937;font-weight:500}.legend-color{width:16px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.1)}.review-score-group{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;flex:1;min-width:250px}.charts-container{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap;width:100%}.review-score-group h3{margin:0 0 1rem;color:#4a148c;font-size:1.2rem;font-weight:600}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.score-item{font-size:.9rem;color:#4b5563;padding:.25rem 0}.score-item span{color:#1f2937;font-weight:600;margin-right:.5rem}.radar-chart-container{width:100%;height:300px;margin-top:1rem;padding:20px;box-sizing:border-box}.review-notes{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;flex:1 1 100%;min-width:100%}.review-notes strong{color:#1f2937;display:block;margin-bottom:.5rem}.review-notes p{margin:0;color:#4b5563;font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.review-note-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.review-note-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.review-note-author{margin-bottom:.5rem;color:#4a148c;font-size:.95rem}.review-note-author strong{color:#4a148c;font-weight:600}@media (max-width: 1200px){.book-details-container{flex-wrap:wrap}.review-section{flex-direction:column}}@media (max-width: 768px){.book-details-container{flex-direction:column;align-items:center}.book-cover-large{width:200px;height:300px}.book-details-info h1{font-size:1.75rem;text-align:center}.book-details-info .book-author,.book-details-info .book-isbn{text-align:center}.review-metrics{flex:1 1 100%;max-height:none}}:root{color-scheme:light dark;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;background-color:#f6f6f8;color:#1f2933}body{margin:0}main{max-width:100%;margin:0;padding:0}h1{margin-bottom:1.5rem;font-size:2rem}@media (max-width: 768px){h1{font-size:1.75rem;margin-bottom:1.25rem}}@media (max-width: 480px){h1{font-size:1.5rem;margin-bottom:1rem}}.card{background:#fff;border-radius:12px;box-shadow:0 10px 35px #0f172a14;padding:1.5rem;margin-bottom:1.25rem}@media (max-width: 768px){.card{padding:1.25rem;margin-bottom:1rem;border-radius:8px}}@media (max-width: 480px){.card{padding:1rem;margin-bottom:.75rem}}.tasks{display:flex;flex-direction:column;gap:.75rem}.task{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border:1px solid #e5e7eb;border-radius:10px;background:#fafbfc;flex-wrap:wrap;gap:.75rem}@media (max-width: 480px){.task{padding:.75rem;flex-direction:column}}.task.complete{background-color:#ecfdf5;border-color:#6ee7b7}.task-content{flex:1;margin-right:1rem;min-width:0}@media (max-width: 480px){.task-content{margin-right:0;width:100%}}.task-title{font-weight:600;margin-bottom:.35rem}.task-actions{display:flex;flex-direction:column;gap:.5rem}@media (max-width: 480px){.task-actions{flex-direction:row;width:100%;justify-content:flex-end}}button,input,textarea{font:inherit}button{cursor:pointer;border-radius:8px;border:none;padding:.5rem .85rem;transition:background .2s ease-in-out;min-height:44px;min-width:44px;font-size:1rem;touch-action:manipulation}@media (max-width: 480px){button{padding:.75rem 1rem;font-size:1rem}}button.primary{background-color:#2563eb;color:#fff}button.primary:hover{background-color:#1d4ed8}button.secondary{background-color:#f3f4f6;color:#111827}button.secondary:hover{background-color:#e5e7eb}.task-form{display:flex;flex-direction:column;gap:.75rem}.task-form__row{display:flex;flex-direction:column;gap:.35rem}label{font-weight:600;font-size:.9rem}input[type=text],textarea{border-radius:8px;border:1px solid #d1d5db;padding:.6rem;resize:vertical;font-size:16px;width:100%;box-sizing:border-box}@media (max-width: 480px){input[type=text],textarea{padding:.75rem;font-size:16px}}.empty-state{text-align:center;padding:1.5rem;color:#6b7280}.about-page{max-width:1200px;margin:0 auto;padding:.67rem .33rem}.home-header{display:flex;align-items:flex-start;gap:3rem;background:#fff;border-radius:12px;box-shadow:0 10px 35px #0f172a14;padding:2rem}.home-logo{flex-shrink:0}.home-logo-img{width:200px;height:auto;max-width:100%}.home-content{flex:1}.home-content h1{margin:0 0 1.5rem;color:#4a148c;font-size:2rem}.home-content p{margin-bottom:1.5rem;font-size:1.1rem;line-height:1.8;color:#374151}.home-content p:last-child{margin-bottom:0}@media (max-width: 768px){.home-header{flex-direction:column;align-items:center;text-align:center;padding:1.5rem}.home-logo-img{width:150px}.home-content{text-align:left}.home-content h1{font-size:1.75rem}.home-content p{font-size:1rem;line-height:1.7}}@media (max-width: 480px){.home-header{padding:1.25rem;border-radius:8px}.home-logo-img{width:120px}.home-content h1{font-size:1.5rem}.home-content p{font-size:.95rem;line-height:1.6;margin-bottom:1.25rem}}.contact-section{margin-top:3rem;background:#fff;border-radius:12px;box-shadow:0 10px 35px #0f172a14;padding:2rem}.contact-section h2{margin:0 0 1.5rem;color:#4a148c;font-size:1.75rem}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.contact-form .form-group{display:flex;flex-direction:column;gap:.5rem}.contact-form label{font-weight:600;color:#1f2937;font-size:.95rem}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{width:100%;padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;font-family:inherit}.contact-form textarea{resize:vertical;min-height:120px}.contact-form input[type=text]:focus,.contact-form input[type=email]:focus,.contact-form textarea:focus{outline:none;border-color:#4a148c;box-shadow:0 0 0 3px #4a148c1a}.contact-form input[type=text]:disabled,.contact-form input[type=email]:disabled,.contact-form textarea:disabled{background-color:#f3f4f6;cursor:not-allowed}.contact-form .submit-button{align-self:flex-start;background-color:#4a148c;color:#fff;padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.contact-form .submit-button:hover:not(:disabled){background-color:#6a1b9a}.contact-form .submit-button:disabled{opacity:.6;cursor:not-allowed}.contact-form .error-message{background-color:#fee2e2;color:#991b1b;padding:1rem;border-radius:8px;border:1px solid #fecaca}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.modal-content h2{margin:0 0 1.5rem;color:#4a148c;font-size:1.75rem}.modal-close-button{background-color:#4a148c;color:#fff;padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.modal-close-button:hover{background-color:#6a1b9a}@media (max-width: 768px){.contact-section{padding:1.5rem}.contact-section h2{font-size:1.5rem}}@media (max-width: 480px){.contact-section{padding:1.25rem;border-radius:8px}.contact-section h2{font-size:1.25rem}.modal-content{padding:1.5rem}.modal-content h2{font-size:1.5rem}}
