/* ==== RESET & BASE ==== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 100%; } body { font-family: 'Inter', sans-serif; background: #000; color: #fff; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; background-image: radial-gradient(circle at 10% 20%, rgba(255,255,255,.03) 0%, transparent 20%), radial-gradient(circle at 90% 80%, rgba(255,255,255,.03) 0%, transparent 20%); } /* ==== CONTAINER ==== */ /* ==== CONTAINER ==== */ .container { width: 100%; max-width: 780px; margin: 0 auto; background: rgba(255, 255, 255, 0.06); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 1.5rem; box-shadow: 0 8px 32px rgba(0,0,0,.4); overflow: hidden; display: flex; flex-direction: column; } /* ==== HEADER ==== */ .header { text-align: center; padding: 1.8rem 1.2rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); } .header h1 { font-size: 1.75rem; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: .5rem; } .header .subtitle { margin-top: .4rem; font-size: .95rem; opacity: .75; } /* ==== UPLOAD SECTION ==== */ .upload-section { padding: 1.5rem 1.2rem; display: flex; flex-direction: column; gap: .75rem; align-items: center; } .file-label { cursor: pointer; background: rgba(255,255,255,.08); border: 1px dashed rgba(255,255,255,.2); border-radius: .75rem; padding: .75rem 1.2rem; font-size: .95rem; transition: all .2s ease; display: flex; align-items: center; gap: .5rem; } .file-label:hover { background: rgba(255,255,255,.12); } #uploadBtn { margin-top: .5rem; } .status { min-height: 1.4rem; font-size: .85rem; text-align: center; } /* ==== BUTTONS ==== */ .btn { cursor: pointer; font-weight: 600; border: none; border-radius: .6rem; padding: .55rem 1rem; font-size: .95rem; transition: all .2s ease; display: inline-flex; align-items: center; gap: .4rem; } .btn-primary { background: #fff; color: #000; } .btn-primary:hover { background: #f0f0f0; transform: translateY(-1px); } .btn-send { background: transparent; color: #fff; font-size: 1.1rem; } .btn-send:hover { color: #ccc; } /* ==== CHAT SECTION ==== */ .chat-section { flex: 1; display: flex; flex-direction: column; padding: 0 1.2rem 1.2rem; } .chat-box { flex: 1; overflow-y: auto; padding: .5rem 0; display: flex; flex-direction: column; gap: .75rem; max-height: 55vh; } .chat-box::-webkit-scrollbar { width: 6px; } .chat-box::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 3px; } /* ==== MESSAGES ==== */ .message { max-width: 86%; padding: .85rem 1.1rem; border-radius: 1.1rem; line-height: 1.5; font-size: .95rem; word-wrap: break-word; animation: fadeIn .25s ease-out; } .message.user { align-self: flex-end; background: #fff; color: #000; border-bottom-right-radius: .35rem; } .message.bot { align-self: flex-start; background: rgba(255,255,255,.09); color: #eee; border-bottom-left-radius: .35rem; } /* ==== MARKDOWN STYLES (inside bot) ==== */ .message.bot h1, .message.bot h2, .message.bot h3 { color: #fff; margin: .6rem 0 .4rem; font-weight: 600; } .message.bot h1 { font-size: 1.35rem; } .message.bot h2 { font-size: 1.2rem; } .message.bot h3 { font-size: 1.05rem; } .message.bot pre { background: #111; color: #f1f1f1; padding: .85rem; border-radius: .6rem; margin: .6rem 0; overflow-x: auto; font-size: .85rem; } .message.bot code { background: rgba(255,255,255,.12); color: #fff; padding: .15rem .4rem; border-radius: .35rem; font-family: 'Fira Mono', Consolas, monospace; } .message.bot table { width: 100%; border-collapse: collapse; margin: .8rem 0; font-size: .88rem; } .message.bot th, .message.bot td { border: 1px solid rgba(255,255,255,.15); padding: .55rem .75rem; text-align: left; } .message.bot th { background: rgba(255,255,255,.1); font-weight: 600; } .message.bot tr:nth-child(even) td { background: rgba(255,255,255,.03); } /* ==== INPUT AREA ==== */ .input-area { display: flex; gap: .5rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid rgba(255,255,255,.08); } #userInput { flex: 1; background: rgba(255,255,255,.08); border: none; border-radius: .75rem; padding: .75rem 1rem; color: #fff; font-size: .95rem; outline: none; transition: background .2s; } #userInput::placeholder { color: rgba(255,255,255,.5); } #userInput:focus { background: rgba(255,255,255,.14); } /* ==== ANIMATIONS ==== */ @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } } /* ==== RESPONSIVE ==== */ @media (max-width: 480px) { .container { border-radius: 1rem; } .header h1 { font-size: 1.5rem; } .message { font-size: .9rem; } }