.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f4f4;padding:20px}.auth-container{background:#fff;border-radius:10px;box-shadow:0 10px 40px #0000001f;overflow:hidden;max-width:400px;width:100%}.auth-form-container{padding:40px}.auth-form-container h2{margin-bottom:10px;color:#333;text-align:center}.auth-subtitle{text-align:center;color:#666;margin-bottom:30px;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;color:#555;font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px;border:2px solid #e1e8ed;border-radius:5px;font-size:14px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#2ec4b6}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper input{padding-right:44px}.toggle-password{position:absolute;right:10px;background:none;border:none;cursor:pointer;font-size:16px;padding:0;width:auto;line-height:1;color:#888}.toggle-password:hover{color:#333}.remember-me{margin-bottom:10px}.remember-me label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#555;font-weight:400}.remember-me input[type=checkbox]{width:auto;accent-color:#2ec4b6;cursor:pointer}.error-message{color:#e74c3c;font-size:14px;margin:15px 0;padding:10px;background:#fadbd8;border-radius:5px;border-left:4px solid #e74c3c}.success-message{color:#27ae60;font-size:14px;margin:15px 0;padding:10px;background:#d5f4e6;border-radius:5px;border-left:4px solid #27ae60}.submit-btn{width:100%;padding:12px;background:#2ec4b6;color:#fff;border:none;border-radius:5px;font-size:16px;font-weight:500;cursor:pointer;transition:background .3s;margin-top:10px}.submit-btn:hover:not(:disabled){background:#21a99e}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.header{background:#2ec4b6;color:#fff;padding:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.header h1{font-size:24px;margin:0}.header p{margin:5px 0 0;opacity:.9;font-size:14px}.user-info{display:flex;align-items:center;gap:15px}.user-display{font-weight:500}.logout-btn{padding:8px 16px;background:#fff3;border:1px solid white;color:#fff;border-radius:5px;cursor:pointer;font-size:14px;transition:background .3s}.logout-btn:hover{background:#ffffff4d}@media (max-width: 768px){.header{flex-direction:column;text-align:center}}.sidebar{background:#f8f9fa;border-right:1px solid #dee2e6;padding:20px;display:flex;flex-direction:column;height:100%}.status{padding:10px;margin-bottom:15px;border-radius:5px;font-size:12px;font-weight:500;text-align:center}.status.connected{background:#d4edda;color:#155724}.status.disconnected{background:#f8d7da;color:#721c24}.sidebar h3{margin:15px 0 10px;color:#333;font-size:16px}.room-list{list-style:none;padding:0;margin:0 0 20px;flex:1;overflow-y:auto}.room-item{padding:12px;margin-bottom:8px;background:#fff;border-radius:5px;cursor:pointer;border:2px solid transparent;transition:all .2s}.room-item:hover{border-color:#2ec4b6;transform:translate(2px)}.room-item.active{background:#2ec4b6;color:#fff;border-color:#2ec4b6}.room-name-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-bottom:4px}.delete-room-btn{padding:1px 6px;font-size:11px;background:transparent;color:#dc3545;border:1px solid #dc3545;border-radius:3px;cursor:pointer;line-height:1.4;flex-shrink:0;margin-left:6px}.delete-room-btn:hover{background:#dc3545;color:#fff}.room-item.active .delete-room-btn{color:#fff;border-color:#ffffffb3}.room-item.active .delete-room-btn:hover{background:#ffffff4d}.room-name{font-size:14px;margin-bottom:4px}.room-topic{font-size:11px;opacity:.8;margin-bottom:4px}.room-users{font-size:11px;opacity:.7}.create-room-btn{width:100%;padding:12px;background:#2ec4b6;color:#fff;border:none;border-radius:5px;font-size:14px;font-weight:500;cursor:pointer;transition:background .3s}.create-room-btn:hover{background:#21a99e}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;padding:25px;border-radius:10px;width:90%;max-width:400px;box-shadow:0 10px 40px #0000004d}.modal h3{margin:0 0 20px;color:#333}.modal .form-group{margin-bottom:15px}.modal .form-group label{display:block;margin-bottom:5px;color:#555;font-weight:500;font-size:14px}.modal .form-group input{width:100%;padding:10px;border:2px solid #e1e8ed;border-radius:5px;font-size:14px}.modal .form-group input:focus{outline:none;border-color:#2ec4b6}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions button{flex:1;padding:10px;border:none;border-radius:5px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s}.modal-actions button[type=button]{background:#e9ecef;color:#333}.modal-actions button[type=button]:hover{background:#dee2e6}.modal-actions button[type=submit]{background:#2ec4b6;color:#fff}.modal-actions button[type=submit]:hover:not(:disabled){background:#21a99e}.modal-actions button:disabled{opacity:.6;cursor:not-allowed}.chat-container{display:flex;flex-direction:column;height:100%;background:#fff}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6c757d;text-align:center;padding:40px}.empty-state h3{margin-bottom:10px;color:#495057}.upload-section{padding:15px 20px;background:#f8f9fa;border-bottom:1px solid #dee2e6}.upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.upload-header h4{margin:0;font-size:14px;color:#495057}.upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:120px;padding:8px 16px;background:#2ec4b6;color:#fff;border-radius:5px;font-size:13px;font-weight:500;cursor:pointer;transition:background .3s;white-space:nowrap}.spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.upload-btn:hover{background:#21a99e}.books-list{display:grid;gap:8px;max-height:150px;overflow-y:auto}.book-item{padding:8px 12px;background:#fff;border-radius:5px;border-left:3px solid #2ec4b6}.book-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.book-info{flex:1;min-width:0}.book-title{font-size:13px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-author{font-size:11px;color:#6c757d;margin-top:2px}.delete-book-btn{flex-shrink:0;padding:2px 6px;font-size:11px;background:transparent;color:#dc3545;border:1px solid #dc3545;border-radius:3px;cursor:pointer;line-height:1;transition:background .2s,color .2s}.delete-book-btn:hover{background:#dc3545;color:#fff}.messages{flex:1;padding:20px;overflow-y:auto;max-height:calc(100vh - 400px)}.message{margin-bottom:15px;padding:12px 16px;border-radius:8px;background:#e9ecef;animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message strong{display:block;margin-bottom:5px;font-size:13px;color:#495057}.message-text{font-size:14px;line-height:1.5;color:#212529;white-space:pre-wrap;word-wrap:break-word}.message.ai{background:#e8faf8;border-left:4px solid #2ec4b6;position:relative}.copy-btn{position:absolute;top:10px;right:10px;background:none;border:1px solid #b2e0db;border-radius:4px;color:#2ec4b6;font-size:14px;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background .2s}.message.ai:hover .copy-btn{opacity:1}.copy-btn.copied{opacity:1;color:#1a9e93;border-color:#1a9e93}.copy-btn:hover{background:#d0f4f0}.message.ai strong{color:#1a9e93}.message.user{background:#f4f6f7;border-left:4px solid #adb5bd}.message.user strong{color:#495057}.message.system{background:#f8f9fa;border-left:4px solid #ced4da;font-size:13px}.message.system strong{color:#6c757d}.input-area{padding:20px;border-top:1px solid #dee2e6;display:flex;gap:10px;background:#fff}.input-area input{flex:1;padding:12px;border:2px solid #e1e8ed;border-radius:5px;font-size:14px;transition:border-color .3s}.input-area input:focus{outline:none;border-color:#2ec4b6}.input-area input:disabled{background:#e9ecef;cursor:not-allowed}.input-area button{padding:12px 24px;background:#2ec4b6;color:#fff;border:none;border-radius:5px;font-size:14px;font-weight:500;cursor:pointer;transition:background .3s}.input-area button:hover:not(:disabled){background:#21a99e}.input-area button:disabled{background:#ccc;cursor:not-allowed}.messages::-webkit-scrollbar,.books-list::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-track,.books-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.messages::-webkit-scrollbar-thumb,.books-list::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.messages::-webkit-scrollbar-thumb:hover,.books-list::-webkit-scrollbar-thumb:hover{background:#555}.dashboard{display:flex;flex-direction:column;height:100vh;background:#f5f5f5}.dashboard-content{flex:1;display:grid;grid-template-columns:280px 1fr;overflow:hidden;background:#fff;box-shadow:0 2px 10px #0000001a}@media (max-width: 768px){.dashboard-content{grid-template-columns:1fr}.dashboard-content .sidebar{display:none}.dashboard-content.sidebar-open .sidebar{display:flex;position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}#root{min-height:100vh}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#2ec4b6;color:#fff}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{margin-top:20px;font-size:16px;font-weight:500}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600}button,input,textarea,select{font-family:inherit}
