:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-primary: #6366F1;--color-secondary: #8B5CF6;--color-primary-hover: #4F46E5;--color-secondary-hover: #7C3AED;--bg-primary: #1a1a1a;--bg-secondary: #242424;--bg-card: #2a2a2a;--bg-input: rgba(42, 42, 42, .8);--bg-dropdown: #2a2a2a;--text-primary: rgba(255, 255, 255, .87);--text-secondary: rgba(255, 255, 255, .6);--text-muted: rgba(255, 255, 255, .4);--border-default: rgba(255, 255, 255, .1);--border-focus: #6366F1;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}a{font-weight:500;color:#646cff;text-decoration:inherit}@media(hover:hover){a:hover{color:#535bf2}}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);background-attachment:fixed;overflow-x:hidden}#root{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center}h1{font-size:3.2em;line-height:1.1;font-weight:300;letter-spacing:-.02em}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}@media(hover:hover){button:hover{border-color:#646cff}}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}@media(hover:hover){a:hover{color:#747bff}}button{background-color:#f9f9f9}}.about-link{position:absolute;top:var(--spacing-lg);left:var(--spacing-lg);z-index:1000;text-decoration:none;font-size:1em;font-weight:400;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:opacity var(--transition-base)}.about-link:hover{opacity:.7}@media(max-width:767px){.about-link{top:var(--spacing-md);left:var(--spacing-md);font-size:.9em}}.about-back-link{color:inherit;text-decoration:none;font-size:1em;font-weight:400;transition:opacity var(--transition-base);display:inline-block;margin-bottom:var(--spacing-md)}.about-back-link:hover{opacity:.7}.about-section{padding:var(--spacing-lg);max-width:800px;margin:0 auto}.about-title{font-size:2em;margin-bottom:var(--spacing-md);font-weight:300}.about-content{line-height:1.6}.about-content p{margin-bottom:var(--spacing-md)}.app-container{padding:var(--spacing-lg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;flex:1}@media(max-width:767px){.app-container{padding:var(--spacing-md)}}.search-section{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--spacing-xl);transition:all var(--transition-slow)}.search-section.centered{flex:1;justify-content:flex-start;margin-top:15vh;margin-bottom:0}@media(max-width:767px){.search-section.centered{flex:0 1 auto;min-height:0}}.search-section.has-results{margin-bottom:var(--spacing-sm)}.site-name{font-size:1.1em;margin-bottom:12px;text-align:center;color:inherit;font-weight:300;letter-spacing:.05em;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(99,102,241,.3);transition:all var(--transition-base);line-height:1.4}.app-title{font-size:1.25em;margin-bottom:0;text-align:center;color:inherit;font-weight:300;letter-spacing:.05em;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(99,102,241,.3);transition:all var(--transition-base);line-height:1.4}.app-subtitle{font-size:12px;margin-bottom:20px;text-align:center;color:#6c757d;font-weight:400}.search-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:500px;gap:var(--spacing-md)}.book-search-controls{max-width:100%;position:relative}.search-input-wrapper{position:relative;width:100%;border-radius:8px;overflow:visible}.search-input-and-dropdown{position:relative;width:100%}.goodreads-import-button{position:absolute;right:0;top:0;bottom:0;padding:0 16px;font-size:13px;font-weight:500;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;cursor:pointer;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:0;transition:all var(--transition-base);display:none;align-items:center;white-space:nowrap;z-index:10}@media(max-width:767px){.goodreads-import-button{position:static;display:block;width:auto;margin:var(--spacing-sm) auto 0 auto;padding:10px 16px;font-size:13px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;border:none;border-radius:8px;min-height:auto;transform:none;height:auto;background:linear-gradient(135deg,#6366f1b3,#8b5cf6b3);color:#fff}}@media(hover:hover){.goodreads-import-button:hover{background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-secondary-hover) 100%);color:#fff}}@media(min-width:768px){@media(hover:hover){.goodreads-import-button:hover{background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-secondary-hover) 100%)}}}.goodreads-import-button:active{transform:scale(.98)}@media(min-width:768px){.goodreads-import-button:active{transform:none}}.goodreads-import-button:focus{outline:none}@media(min-width:768px){.goodreads-import-button:focus{background-color:#ffffff1a}}@media(max-width:767px){@media(hover:hover){.goodreads-import-button:hover{border-color:var(--color-primary);background-color:#6366f11a;transform:translateY(-1px);box-shadow:var(--shadow-sm)}}.goodreads-import-button:active{transform:translateY(0)}.goodreads-import-button:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a;background-color:transparent}}.search-input{width:100%;padding:12px 16px;font-size:16px;border:1px solid var(--border-default);border-radius:8px;box-sizing:border-box;background-color:var(--bg-input);color:var(--text-primary);transition:all var(--transition-base)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a,var(--shadow-sm);background-color:#2a2a2af2}.search-input:disabled{background-color:#2a2a2a80;cursor:not-allowed;opacity:.6}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background-color:var(--bg-dropdown);border:1px solid var(--border-default);border-top:none;border-radius:0 0 8px 8px;max-height:300px;overflow-y:auto;overflow-x:hidden;z-index:9999;box-shadow:var(--shadow-lg);margin-top:-1px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.suggestion-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border-default);transition:all var(--transition-base);font-size:16px;color:var(--text-primary);display:flex;align-items:center;min-width:0;overflow:hidden;width:100%;box-sizing:border-box}@media(hover:hover){.suggestion-item:hover{background-color:#6366f11a}}.suggestion-item.highlighted{background-color:#6366f133;border-left:3px solid var(--color-primary)}@media(hover:hover){.suggestion-item.highlighted:hover{background-color:#6366f140}}.suggestion-item:last-child{border-bottom:none}.suggestion-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;min-width:0;max-width:100%}.suggestion-author{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.selected-books-section{width:100%;max-width:500px;margin-top:20px;border:1px solid var(--border-default);border-radius:8px;background-color:transparent;position:relative;padding-bottom:0}.selected-books-chips{padding:var(--spacing-md);padding-bottom:var(--spacing-md);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);background-color:transparent;transition:max-height var(--transition-slow),mask-image var(--transition-slow);overflow:hidden;position:relative}.selected-books-chips.collapsed{mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 24px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 24px),transparent 100%)}.expand-collapse-button{position:absolute;bottom:0;left:50%;transform:translate(-50%) translateY(50%);padding:6px 16px;border-radius:4px;border:1px solid var(--border-default);background-color:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:var(--text-primary);box-shadow:var(--shadow-md);transition:all var(--transition-base);z-index:10;white-space:nowrap}@media(hover:hover){.expand-collapse-button:hover{background-color:var(--bg-secondary);border-color:var(--color-primary);transform:translate(-50%) translateY(50%) scale(1.05);color:var(--color-primary)}}.book-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border-radius:16px;font-size:14px;box-shadow:var(--shadow-sm);transition:all var(--transition-base);animation:chipAppear .3s ease}@keyframes chipAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media(hover:hover){.book-chip:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}}.chip-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-remove{background:none;border:none;color:#fff;font-size:20px;font-weight:700;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;line-height:1;transition:all var(--transition-base);border-radius:50%;outline:none;transform:translateY(-2px);position:relative}.chip-remove:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) translateY(2px);width:20px;height:20px;border-radius:50%;background-color:transparent;transition:all var(--transition-base);pointer-events:none}@media(hover:hover){.chip-remove:hover:before{background-color:#fff3}.chip-remove:hover{transform:translateY(-2px) scale(1.1);color:#fcc}}.chip-remove:focus,.chip-remove:active{outline:none;box-shadow:none}.search-button{width:100%;padding:12px 24px;font-size:16px;font-weight:500;cursor:pointer;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:8px;transition:all var(--transition-base);min-height:44px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.search-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--transition-slow)}@media(hover:hover){.search-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md),var(--shadow-glow)}.search-button:hover:not(:disabled):before{left:100%}}.search-button:active:not(:disabled){transform:translateY(0)}.search-button:disabled{background:#2a2a2ab3;cursor:not-allowed;opacity:.8;box-shadow:none;border:1px solid rgba(255,255,255,.15);color:#ffffff80}.search-button.disabled-style{background:#2a2a2ab3;cursor:not-allowed;opacity:.8;box-shadow:none;border:1px solid rgba(255,255,255,.15);color:#ffffff80}.search-button.disabled-style:hover{transform:none;box-shadow:none}.search-button.disabled-style:hover:before{left:-100%}.toast-notification{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:12px 20px;background-color:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-default);border-radius:8px;text-align:center;box-shadow:var(--shadow-lg);z-index:10001;font-size:14px;font-weight:500;animation:toastSlideIn .3s ease-out,toastSlideOut .3s ease-in 2.7s;animation-fill-mode:both;max-width:90%;white-space:nowrap}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-20px)}}@media(max-width:767px){.toast-notification{top:10px;font-size:13px;padding:10px 16px;white-space:normal;max-width:calc(100% - 32px)}}.error-message{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:#dc26261a;color:#ff6b6b;border:1px solid rgba(220,38,38,.3);border-radius:8px;text-align:center;box-shadow:var(--shadow-sm)}.results-container{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg);row-gap:var(--spacing-lg);margin-top:var(--spacing-md);width:100%;align-items:stretch}.book-card-link{text-decoration:none;color:inherit;display:block;width:100%;height:100%;position:relative;overflow:visible}.book-card{display:flex;flex-direction:row;padding:16px;background-color:var(--bg-card);border:1px solid var(--border-default);border-radius:8px;box-shadow:var(--shadow-sm);transition:all var(--transition-base);overflow:visible;width:100%;box-sizing:border-box;cursor:pointer;position:relative;gap:16px;align-items:stretch}.book-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#6366f100,#8b5cf600);opacity:0;transition:opacity var(--transition-base);pointer-events:none}@media(hover:hover){.book-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.book-card:hover:before{opacity:.1}}.book-cover{width:80px;height:auto;aspect-ratio:2 / 3;object-fit:cover;display:block;flex-shrink:0;border-radius:6px}.add-to-input-button{position:absolute;top:-12px;right:-12px;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border:2px solid var(--bg-card);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:var(--shadow-md);transition:all var(--transition-base);padding:0;outline:none}@media(hover:hover){.add-to-input-button:hover{transform:scale(1.1);box-shadow:var(--shadow-lg),var(--shadow-glow);background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-primary) 100%)}.add-to-input-button:focus:not(:hover){transform:scale(1);box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%)}}.add-to-input-button:active{transform:scale(.95)}.add-to-input-button svg{width:20px;height:20px;stroke:currentColor}.book-info{display:flex;flex-direction:column;padding:0;flex:1;justify-content:space-between;min-width:0}.book-title{font-size:16px;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--text-primary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.book-author{font-size:14px;color:var(--text-secondary);line-height:1.5;font-weight:400;margin-bottom:var(--spacing-sm);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}@media(min-width:768px){.book-author{-webkit-line-clamp:2;line-clamp:2}}.goodreads-button{display:inline-block;padding:8px 12px;margin-top:auto;font-size:13px;font-weight:500;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border:none;border-radius:6px;transition:all var(--transition-base);cursor:pointer;text-align:center;align-self:stretch;width:100%;box-sizing:border-box;box-shadow:var(--shadow-sm)}@media(hover:hover){.goodreads-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}}@media(min-width:768px){.site-name{font-size:1.2em}.app-title{font-size:1.5em}.app-subtitle{font-size:13px}.search-controls{flex-direction:row;gap:12px;justify-content:center}.book-search-controls{flex-direction:row;align-items:flex-start;gap:var(--spacing-sm)}.search-input-wrapper{flex:1;border-radius:8px;overflow:visible}.goodreads-import-button{display:flex;font-size:14px}.search-input{padding-right:220px;border-top-right-radius:0;border-bottom-right-radius:0}.search-input:focus{padding-right:220px;border-top-right-radius:0;border-bottom-right-radius:0}.selected-books-section{max-width:100%}.search-input-wrapper,.search-input{flex:1}.search-button{width:auto;min-width:120px}.results-container{grid-template-columns:repeat(auto-fit,minmax(250px,250px));gap:var(--spacing-lg);row-gap:var(--spacing-xl);justify-content:center;max-width:calc(4 * 250px + 3 * var(--spacing-lg));margin-left:auto;margin-right:auto}.book-card-link{width:250px;height:100%}.book-card{width:250px;height:100%;flex-direction:column;gap:0;align-items:stretch}.book-cover{width:100%}.book-info{padding:var(--spacing-md) 0 0 0;justify-content:flex-start}.goodreads-button{display:none}}@media(min-width:1024px){.app-container{padding:var(--spacing-xl) var(--spacing-lg)}.site-name{font-size:1.3em}.app-title{font-size:1.75em}.app-subtitle{font-size:14px}.results-container{grid-template-columns:repeat(auto-fit,minmax(250px,250px));gap:var(--spacing-lg);row-gap:var(--spacing-xl);justify-content:center;max-width:calc(4 * 250px + 3 * var(--spacing-lg));margin-left:auto;margin-right:auto}.book-card{transition:all var(--transition-slow)}@media(hover:hover){.book-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg),var(--shadow-glow)}}}@media(min-width:1280px){.results-container{grid-template-columns:repeat(auto-fit,minmax(250px,250px));gap:var(--spacing-lg);row-gap:var(--spacing-xl);justify-content:center;max-width:calc(4 * 250px + 3 * var(--spacing-lg));margin-left:auto;margin-right:auto}}.filters-section{width:100%;margin-top:0;margin-bottom:var(--spacing-sm);display:flex;justify-content:center}.filters-wrapper{width:100%;max-width:calc(4 * 250px + 3 * var(--spacing-lg));margin-left:auto;margin-right:auto;display:flex;flex-direction:column;gap:6px}.filters-row{display:flex;flex-direction:column;gap:6px;align-items:flex-start;position:relative}.filters-group{display:flex;flex-direction:column;gap:6px}.filters-title{font-size:12px;color:var(--text-secondary);font-weight:500;text-transform:lowercase}.filter-controls{display:flex;flex-direction:row;gap:6px;flex-wrap:wrap;justify-content:flex-start}.filter-selector-button{padding:6px 14px;font-size:13px;font-weight:500;border:1px solid var(--border-default);border-radius:6px;background-color:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;flex:1;min-width:80px;max-width:150px}@media(max-width:767px){.filter-selector-button{font-size:12px;padding:6px 10px;max-width:none;flex:0 1 auto}}@media(hover:hover){.filter-selector-button:hover:not(.active){border-color:var(--color-primary);background-color:#6366f11a;transform:translateY(-1px);box-shadow:var(--shadow-sm)}}.filter-selector-button:active{transform:translateY(0)}.filter-selector-button:focus:not(.active){outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.filter-selector-button:focus.active{outline:none}.filter-selector-button.active{background-color:var(--bg-input);border:2px solid var(--color-primary);color:#fff;box-shadow:inset 0 0 8px #6366f14d,0 0 0 1px #6366f126,0 0 6px #6366f140}.support-link-inline{display:none;align-items:center;gap:4px}.support-link-centered{display:flex;align-items:center;justify-content:center;gap:4px}.support-text{font-size:12px;color:var(--text-secondary)}.support-here-button{display:inline-block;padding:2px 8px;font-size:12px;font-weight:500;text-decoration:none;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:4px;transition:all var(--transition-base);cursor:pointer}.support-here-button:hover{background-color:#6366f11a;color:var(--color-primary)}.support-link-section{width:100%;display:flex;justify-content:center;margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm)}@media(min-width:768px){.filters-row{flex-direction:row;align-items:center;justify-content:flex-start;gap:0}.filters-group{display:flex;flex-direction:column;gap:6px}.filter-controls{display:flex;flex-direction:row;gap:6px}.support-link-inline{display:flex;position:absolute;left:50%;transform:translate(-50%)}.support-link-section{display:none}}@media(hover:hover){.filter-selector-button.active:hover{box-shadow:inset 0 0 10px #6366f166,0 0 0 1px #6366f133,0 0 8px #6366f14d}}@media(min-width:768px){.filters-section{margin-top:4px;margin-bottom:var(--spacing-sm)}.filter-controls{justify-content:flex-start;gap:6px}.filter-selector-button{flex:0 1 auto;min-width:100px;padding:6px 12px}}.affiliate-disclosure{text-align:center;font-size:.75em;color:var(--text-secondary);padding:var(--spacing-sm) var(--spacing-lg);opacity:.8;margin-top:var(--spacing-lg)}.app-footer{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-lg);margin-top:var(--spacing-xs)}.footer-link{text-decoration:none;font-size:.875em;color:var(--text-secondary);transition:opacity var(--transition-base);font-weight:400}.footer-link:hover{opacity:.7}@media(max-width:767px){.affiliate-disclosure{padding:var(--spacing-xs) var(--spacing-md);font-size:.7em;margin-top:var(--spacing-sm)}.app-footer{padding:var(--spacing-xs) var(--spacing-md);gap:var(--spacing-sm);margin-top:0}.footer-link{font-size:.8em}}.contact-form{margin-top:var(--spacing-lg);max-width:600px}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);color:var(--text-primary);font-size:.9em;font-weight:500}.form-input,.form-textarea{width:100%;padding:12px 16px;font-size:16px;border:1px solid var(--border-default);border-radius:8px;box-sizing:border-box;background-color:var(--bg-input);color:var(--text-primary);transition:all var(--transition-base);font-family:inherit}.form-textarea{resize:vertical;min-height:120px}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a,var(--shadow-sm);background-color:#2a2a2af2}.form-submit-button{width:100%;padding:12px 24px;font-size:16px;font-weight:500;cursor:pointer;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:8px;transition:all var(--transition-base);min-height:44px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.form-submit-button:disabled{background:#2a2a2ab3;cursor:not-allowed;opacity:.8;box-shadow:none;border:1px solid rgba(255,255,255,.15);color:#ffffff80}@media(hover:hover){.form-submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md),var(--shadow-glow)}}.form-submit-button:active:not(:disabled){transform:translateY(0)}.form-message{margin-top:var(--spacing-md);padding:var(--spacing-md);border-radius:8px;text-align:center;font-size:.9em}.form-message-success{background-color:#22c55e1a;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.form-message-error{background-color:#dc26261a;color:#ff6b6b;border:1px solid rgba(220,38,38,.3)}.popup-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.popup-content{background-color:var(--bg-primary, #1a1a1a);border-radius:12px;padding:24px;max-width:400px;width:calc(90% - 32px);margin:0 16px;box-shadow:0 10px 40px #00000080;position:relative;animation:slideDown .3s ease-out;border:2px solid var(--color-primary)}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popup-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-primary, #ffffff);font-size:28px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all var(--transition-base);opacity:.7}.popup-close:hover{opacity:1;background-color:#ffffff1a}.popup-message{color:var(--text-primary, #ffffff);font-size:14px;text-align:center;padding:20px 0 8px;line-height:1.6}.popup-message input{max-width:100%}.popup-message p{margin:0 0 20px}.popup-button{display:inline-block;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border:none;border-radius:8px;transition:all var(--transition-base);cursor:pointer;box-shadow:var(--shadow-sm)}.popup-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);color:#fff}.book-detail-popup{overflow:visible}.book-detail-popup .popup-close{top:-4px;right:-4px;font-size:36px;padding:8px 12px}.book-detail-content{padding:0;text-align:left}.book-detail-cover{flex-shrink:0}.book-detail-cover img{aspect-ratio:2 / 3;object-fit:cover;border-radius:8px;display:block}.book-detail-info{min-width:0;overflow-wrap:break-word}.book-detail-title{margin:0;font-weight:600;color:var(--text-primary, #ffffff);line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.book-detail-authors{color:#ffffffd9;line-height:1.5}.book-detail-rating{display:flex;align-items:center;gap:4px}.book-detail-stars{display:inline-flex;align-items:center;letter-spacing:3px}.book-detail-stars .star-filled{color:#818cf8}.book-detail-stars .star-empty{color:#8b5cf659}.book-detail-stars .star-partial{position:relative;display:inline-block}.book-detail-stars .star-partial-bg{color:#8b5cf659}.book-detail-stars .star-partial-fill{position:absolute;left:0;top:0;width:calc(var(--fill, 0) * 100%);overflow:hidden;color:#818cf8}.book-detail-rating-value{color:#ffffffd9;line-height:1;margin-top:3px}.book-detail-meta{color:#ffffffbf}.book-detail-meta-sep{margin:0 2px}.book-detail-amazon-button{display:inline-block;font-weight:500;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border-radius:8px;transition:all var(--transition-base);cursor:pointer;text-align:center;box-shadow:var(--shadow-sm)}.book-detail-amazon-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);color:#fff}.book-detail-amazon-disclosure{position:absolute;bottom:5px;left:0;right:0;margin:0;font-size:10px;color:#ffffff80;text-align:center}@media(max-width:767px){.book-detail-popup{width:calc(90% - 32px);min-width:unset;max-width:calc(90% - 32px);box-sizing:border-box;padding:20px 24px 20px 20px}.book-detail-popup .popup-close{top:0;right:0;width:45px;height:45px;padding:0 0 6px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#c8c8c8e6;color:#333;opacity:1;line-height:1}.book-detail-popup .popup-close:hover{background:#dcdcdcf2}.book-detail-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.book-detail-cover{width:100%}.book-detail-cover img{width:100%;max-width:none}.book-detail-info{display:flex;flex-direction:column;gap:var(--spacing-sm);flex:1}.book-detail-title{font-size:1em}.book-detail-authors{font-size:.85em}.book-detail-rating{margin-top:-12px;font-size:1.7em}.book-detail-rating-value{font-size:15px}.book-detail-meta{font-size:.9em;margin-top:-6px}.book-detail-amazon-button{margin-top:16px;padding:12px 20px;font-size:14px;align-self:flex-start}}@media(min-width:768px){.popup-content.book-detail-popup{width:624px;min-width:624px;max-width:624px;box-sizing:border-box;padding:24px}.book-detail-popup .popup-close{top:-12px}.book-detail-popup .popup-close:hover{background-color:#fff0}.book-detail-content{display:flex;flex-direction:row;gap:var(--spacing-lg)}.book-detail-cover img{width:100%;max-width:220px}.book-detail-info{display:flex;flex-direction:column;gap:var(--spacing-sm);flex:1;justify-content:flex-start}.book-detail-title{font-size:1.35em}.book-detail-authors{font-size:.95em}.book-detail-rating{margin-top:-15px;font-size:1.85em}.book-detail-rating-value{font-size:16px}.book-detail-meta{font-size:.9em;margin-top:4px}.book-detail-amazon-button{margin-top:auto;padding:12px 20px;font-size:14px;align-self:flex-start}}@media(min-width:768px){.popup-content:not(.book-detail-popup){max-width:600px;width:auto;margin:0;padding:20px 32px}.popup-message{font-size:16px;padding:20px 0 8px}.popup-message p{margin:0 0 16px}}
