*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f172a;--bg-card: #1e293b;--accent: #38bdf8;--accent2: #818cf8;--success: #34d399;--danger: #f87171;--text: #e2e8f0;--text-dim: #94a3b8;--border: #334155}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.app{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,#38bdf8,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header p{color:var(--text-dim);margin-top:.4rem}.layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem}.sidebar-card{background:var(--bg-card);border-radius:12px;padding:1.2rem;margin-bottom:1rem}.sidebar-card h3{font-size:.95rem;margin-bottom:.8rem}.dropzone{border:2px dashed var(--border);border-radius:8px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all .3s}.dropzone:hover{border-color:var(--accent)}.dropzone p{color:var(--text-dim);font-size:.85rem}.doc-list{list-style:none;padding:0}.doc-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.85rem}.doc-item:last-child{border-bottom:none}.doc-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-remove{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.9rem;margin-left:.5rem}.chat-area{display:flex;flex-direction:column;min-height:500px}.messages{flex:1;background:var(--bg-card);border-radius:12px;padding:1rem;overflow-y:auto;max-height:500px;margin-bottom:1rem}.message{margin-bottom:1rem}.message.user{text-align:right}.message.user .bubble{display:inline-block;background:var(--accent2);color:#fff;padding:.7rem 1rem;border-radius:12px 12px 0;max-width:80%;text-align:left}.message.assistant .bubble{background:var(--bg);padding:.7rem 1rem;border-radius:12px 12px 12px 0;line-height:1.6;max-width:90%}.message .sources{font-size:.8rem;color:var(--text-dim);margin-top:.4rem;font-style:italic}.input-row{display:flex;gap:.5rem}.input-row input{flex:1;padding:.8rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:1rem}.input-row input:focus{outline:none;border-color:var(--accent)}.input-row button{padding:.8rem 1.5rem;background:linear-gradient(135deg,#38bdf8,#818cf8);border:none;border-radius:10px;color:#fff;font-weight:700;cursor:pointer}.input-row button:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:3rem;color:var(--text-dim)}.empty-state .icon{font-size:3rem;margin-bottom:1rem}.uploading{text-align:center;padding:1rem;color:var(--text-dim);font-size:.9rem}.spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto .5rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:700px){.layout{grid-template-columns:1fr}.header h1{font-size:1.6rem}}
