:root{--sp-blue:#009fe3;--sp-blue-hover:#0086c2;--sp-red:#e30613;--sp-red-hover:#c00410;--sp-dark-bg:#0f172a;--sp-panel-bg:#1e293b;--sp-border:#334155;--sp-text-main:#f8fafc;--sp-text-muted:#94a3b8;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--sp-dark-bg);color:var(--sp-text-main);flex-direction:column;min-height:100vh;display:flex}#root{flex-direction:column;height:100vh;display:flex}.app-container{background-color:var(--sp-dark-bg);flex-direction:column;height:100vh;display:flex}.app-header{background-color:var(--sp-panel-bg);border-bottom:2px solid var(--sp-blue);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.brand-section{align-items:center;gap:14px;display:flex}.logo-badge{letter-spacing:.5px;border-radius:6px;font-size:1.1rem;font-weight:800;display:flex;overflow:hidden}.logo-s{background-color:var(--sp-red);color:#fff;padding:4px 8px}.logo-p{background-color:var(--sp-blue);color:#fff;padding:4px 8px}.brand-title{color:#fff;font-size:1.25rem;font-weight:700}.brand-title span{color:var(--sp-blue)}.brand-subtitle{color:var(--sp-text-muted);font-size:.8rem}.system-status{border:1px solid var(--sp-border);background-color:#0f172a;border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:.85rem;display:flex}.status-dot{background-color:#22c55e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #22c55e}.main-content{flex:1;display:flex;overflow:hidden}.sidebar{background-color:var(--sp-panel-bg);border-right:1px solid var(--sp-border);flex-direction:column;gap:16px;width:320px;padding:20px;display:flex}.sidebar-title{text-transform:uppercase;color:var(--sp-blue);letter-spacing:.5px;font-size:.85rem;font-weight:700}.quick-prompts-list{flex-direction:column;gap:10px;display:flex}.quick-prompt-btn{border:1px solid var(--sp-border);color:var(--sp-text-main);text-align:left;cursor:pointer;background-color:#0f172a;border-radius:8px;padding:10px 12px;font-size:.85rem;line-height:1.35;transition:all .2s}.quick-prompt-btn:hover{border-color:var(--sp-blue);background-color:#009fe31a}.doc-info-box{border-left:3px solid var(--sp-red);color:var(--sp-text-muted);background-color:#0f172a;border-radius:0 6px 6px 0;margin-top:auto;padding:12px;font-size:.78rem}.chat-section{background-color:#0b1120;flex-direction:column;flex:1;display:flex}.messages-container{flex-direction:column;flex:1;gap:18px;padding:24px;display:flex;overflow-y:auto}.message-card{border-radius:10px;gap:14px;max-width:820px;padding:16px 20px;font-size:.92rem;line-height:1.55;display:flex}.message-card.user{background-color:var(--sp-panel-bg);border:1px solid var(--sp-blue);color:#fff;align-self:flex-end}.message-card.assistant{border:1px solid var(--sp-border);color:#e2e8f0;background-color:#172033;align-self:flex-start}.message-avatar{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.message-avatar.user-av{background-color:var(--sp-blue);color:#fff}.message-avatar.bot-av{background-color:var(--sp-red);color:#fff}.message-body{white-space:pre-wrap;word-break:break-word}.input-container{background-color:var(--sp-panel-bg);border-top:1px solid var(--sp-border);padding:18px 24px}.input-form{gap:12px;max-width:1000px;margin:0 auto;display:flex}.chat-input{border:1px solid var(--sp-border);color:#fff;background-color:#0f172a;border-radius:8px;outline:none;flex:1;padding:14px 16px;font-size:.95rem;transition:border-color .2s}.chat-input:focus{border-color:var(--sp-blue)}.chat-input::placeholder{color:#64748b}.send-btn{background-color:var(--sp-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:0 24px;font-size:.95rem;font-weight:600;transition:background-color .2s;display:flex}.send-btn:hover:not(:disabled){background-color:var(--sp-blue-hover)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.loading-dots span{font-size:1.5rem;line-height:1;animation:1.4s infinite both blink}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%{opacity:.2}20%{opacity:1}to{opacity:.2}}
