.booker-chat{display:flex;flex-direction:column;height:100vh;max-width:1200px;margin:0 auto;background:#fff;box-shadow:0 0 20px #0000001a;position:relative}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;box-shadow:0 2px 10px #0000001a}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto}.header-text{text-align:center;flex:1}.header h1{margin:0;font-size:1.8rem;font-weight:600}.header p{margin:.5rem 0 0;opacity:.9;font-size:.9rem}.reset-button{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.reset-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.messages-container{flex:1;overflow-y:auto;padding:1rem;background:#f8f9fa}.message{margin-bottom:1.5rem;max-width:80%}.message.user{margin-left:auto}.message.assistant{margin-right:auto}.message-content{padding:1rem 1.5rem;border-radius:18px;line-height:1.5;word-wrap:break-word}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;margin-left:auto}.message.assistant .message-content{background:#fff;color:#333;border:1px solid #e1e5e9;box-shadow:0 1px 3px #0000001a}.citation{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:.75rem;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease}.citation:hover{background:#e9ecef;border-color:#667eea;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.citation-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8rem}.citation-number{background:#667eea;color:#fff;padding:.2rem .4rem;border-radius:4px;font-weight:600}.citation-file{font-weight:600;color:#333}.citation-pages{color:#666;margin-left:auto}.citation-text{font-size:.85rem;color:#555;line-height:1.4;margin-bottom:.5rem}.citation-summary{font-size:.8rem;color:#666;font-style:italic}.sources-container{margin-top:1rem;padding:0 1.5rem}.sources-toggle{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:.75rem 1rem;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease;font-size:.9rem;font-weight:600;color:#666}.sources-toggle:hover{background:#e9ecef;border-color:#667eea}.sources-label{display:flex;align-items:center;gap:.5rem}.sources-arrow{transition:transform .2s ease;font-size:.8rem}.sources-arrow.expanded{transform:rotate(180deg)}.sources-content{margin-top:.5rem}.input-container{padding:1rem 2rem 2rem;background:#fff;border-top:1px solid #e1e5e9}.input-form{display:flex;gap:.75rem;align-items:flex-end}.input-wrapper{flex:1;position:relative}.input-field{width:100%;padding:1rem 1.25rem;border:2px solid #e1e5e9;border-radius:12px;font-size:1rem;font-family:inherit;line-height:1.5;resize:none;transition:all .2s ease;background:#fff}.input-field:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.send-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:1rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.send-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.send-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-indicator{display:flex;align-items:center;gap:.5rem;color:#666;font-style:italic;margin-bottom:1rem}.loading-dots{display:flex;gap:.2rem}.loading-dot{width:6px;height:6px;background:#667eea;border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.book-header{background:#fff;padding:1.5rem 2rem;margin-bottom:1.5rem;border-radius:8px;box-shadow:0 2px 8px #00000014;border:1px solid #e1e5e9}.book-header.vertical{display:flex;gap:2rem;align-items:flex-start}.book-header.horizontal{display:flex;flex-direction:column;align-items:center;text-align:center}.cover-image-container{flex-shrink:0}.book-header.vertical .cover-image-container{width:300px}.book-header.vertical .cover-image{width:100%;height:auto;max-height:500px;border-radius:8px;box-shadow:0 4px 12px #00000026;object-fit:contain}.book-header.horizontal .cover-image{max-width:500px;max-height:300px;border-radius:8px;box-shadow:0 4px 12px #00000026;object-fit:contain;margin-bottom:1.5rem}.book-info{flex:1}.book-info-content{max-width:100%}.book-title{margin:0 0 .5rem;font-size:1.8rem;font-weight:700;color:#2c3e50;line-height:1.2}.book-author{margin:0 0 1rem;font-size:1.1rem;color:#667eea;font-weight:500}.book-description{margin:0 0 1.5rem;font-size:.95rem;color:#555;line-height:1.6}.book-details{display:grid;gap:.5rem}.detail-item{font-size:.9rem;color:#666;line-height:1.4}.detail-item strong{color:#333;font-weight:600}.permission-text{font-size:.8rem;color:#777;font-style:italic;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.spin-up-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffffff2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in}.spin-up-message{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 8px 32px #00000026;max-width:500px;text-align:center;border:1px solid #e1e5e9}.spin-up-icon{font-size:3rem;margin-bottom:1rem;animation:spin 2s linear infinite}.spin-up-title{margin:0 0 1rem;font-size:1.5rem;font-weight:600;color:#333}.spin-up-text{margin:0 0 1.5rem;color:#666;line-height:1.5;font-size:.95rem}.progress-container{margin-top:1.5rem}.progress-bar{width:100%;height:8px;background:#e1e5e9;border-radius:4px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width 1s ease}.countdown-text{font-size:.9rem;color:#667eea;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
