:root { --bg: #121317; --panel: #202739; --panel-2: #1f2636; --panel-3: #242c3f; --line: rgba(255, 255, 255, 0.12); --text: #ffffff; --muted: #98a0b3; --brand: #4ecdc4; --brand-dark: #2c3e50; } /* Scroll elegante */ * { scrollbar-width: thin; scrollbar-color: rgba(156, 169, 196, 0.45) transparent; } *::-webkit-scrollbar { width: 8px; height: 8px; } *::-webkit-scrollbar-track { background: transparent; } *::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(141, 156, 184, 0.75), rgba(118, 132, 160, 0.75)); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; } *::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(170, 186, 219, 0.85), rgba(134, 151, 184, 0.85)); } .sidebar { scrollbar-gutter: stable; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', 'Inter', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; } .app-container { display: flex; height: 100vh; background: var(--bg); } .app-error-banner { position: fixed; top: 14px; left: 50%; transform: translateX(-50%); z-index: 1000; min-width: 300px; max-width: 900px; width: calc(100% - 32px); background: rgba(102, 17, 17, 0.95); border: 1px solid rgba(255, 82, 82, 0.5); color: #ffe5e5; border-radius: 10px; padding: 12px 44px 12px 14px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35); } .app-error-title { font-weight: 700; margin-bottom: 4px; } .app-error-close { position: absolute; top: 6px; right: 10px; border: none; background: transparent; color: #ffd6d6; font-size: 22px; line-height: 1; cursor: pointer; } .app-error-close:hover { color: #ffffff; } .sidebar { width: 290px; background: linear-gradient(180deg, #242b3d 0%, #20283a 100%); border-right: 1px solid #343d52; overflow-y: auto; padding: 26px 12px; } .sidebar-toggle { width: 28px; height: 28px; border: none; border-radius: 8px; background: transparent; color: #8aa6d8; font-size: 24px; line-height: 1; cursor: pointer; margin-bottom: 8px; } .sidebar-toggle:hover { background: rgba(255, 255, 255, 0.06); color: #b7c9e9; } .sidebar.collapsed { width: 64px; padding: 12px 8px; align-items: flex-start; } .sidebar.collapsed .sidebar-toggle { margin-bottom: 0; } .main-content { flex: 1; display: flex; flex-direction: column; } .chat-history { height: 100%; } .sidebar-title { color: var(--text); font-size: 32px; margin: 36px 0 22px; } .sidebar-subtitle { color: var(--muted); margin-bottom: 10px; font-size: 16px; } .new-chat-btn { width: 100%; min-height: 40px; padding: 8px 10px; background: transparent; color: var(--text); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: 13px; margin-bottom: 10px; transition: all 0.3s ease; } .new-chat-btn:hover { background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.25); } .chat-list { display: flex; flex-direction: column; gap: 2px; } .chat-item { min-height: 40px; padding: 8px 10px; background: transparent; color: var(--text); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: 13px; display: flex; align-items: center; } .chat-item:hover, .chat-item.active { background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.25); } .chat-window { display: flex; flex-direction: column; height: 100%; } .messages { flex: 1; overflow-y: auto; padding: 1.6rem 2rem; display: flex; flex-direction: column; gap: 20px; max-width: 1000px; width: 100%; margin: 0 auto; background-color: transparent; } .initial-menu { display: flex; flex-direction: column; align-items: center; justify-content: center; margin: auto; text-align: center; gap: 8px; } .brand-remote-logo { width: 140px; height: auto; margin-bottom: 4px; } .robocopy-title { color: #4ecdc4 !important; font-weight: bold; font-size: 48px; margin-bottom: 4px; } .brand-author.subtitle { font-size: 16px; color: #ffffff; margin-bottom: 14px; } .initial-menu p { color: var(--text); font-size: 16px; margin-bottom: 24px; } .initial-menu h1 { color: var(--brand); font-size: 44px; font-weight: 700; } .brand-author { font-size: 30px; margin-bottom: 10px; } .initial-menu p { color: var(--text); font-size: 16px; margin-bottom: 24px; } .example-buttons { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 12px; max-width: 850px; } .example-btn { width: 100%; min-height: 52px; white-space: normal; padding: 10px; background-color: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 8px; font-size: 14px; color: white; text-align: center; margin: 5px 0; transition: all 0.3s ease; cursor: pointer !important; } .example-btn * { cursor: pointer !important; } .example-btn:hover { background-color: rgba(255, 255, 255, 0.08); color: #ffffff; border-color: rgba(255, 255, 255, 0.35); transform: translateY(-1px); box-shadow: none; } .message { display: flex; width: 100%; align-items: flex-end; gap: 8px; } .message .content { width: 100%; max-width: 900px; border-radius: 10px; line-height: 1.65; font-size: 18px; } .message.assistant, .message.error { justify-content: flex-start; } .message .content { max-width: 900px; border-radius: 14px; line-height: 1.65; font-size: 16px; } .message.user .avatar { order: 2; } .message.user .content { order: 1; max-width: 72%; } .message.assistant .content, .message.error .content { max-width: 86%; } .user-plain { background: rgba(78, 205, 196, 0.26); color: #dffaf7; padding: 12px 16px; border-radius: 16px; white-space: pre-wrap; } .assistant-markdown { color: #f4f6fb; white-space: pre-wrap; background: rgba(31, 38, 54, 0.96); padding: 12px 14px; border-radius: 12px; } .assistant-markdown p { margin: 0 0 14px; } .assistant-markdown h1, .assistant-markdown h2, .assistant-markdown h3 { margin: 22px 0 12px; line-height: 1.35; } .assistant-markdown ul, .assistant-markdown ol { margin: 0 0 14px 22px; } .assistant-markdown hr { border: none; border-top: 1px solid rgba(255, 255, 255, 0.18); margin: 22px 0; } .message.user .content { padding-right: 0; } .message.assistant .content { background: transparent; color: var(--text); padding-left: 0; } .message.error .content { background: rgba(255, 82, 82, 0.15); border: 1px solid rgba(255, 82, 82, 0.35); padding: 10px 12px; } .error-plain { color: #ffd3d3; white-space: pre-wrap; } .chat-error-banner { width: 100%; border-radius: 10px; border: 1px solid rgba(255, 82, 82, 0.45); background: rgba(123, 23, 23, 0.4); color: #ffd8d8; padding: 10px 40px 10px 12px; position: relative; } .chat-error-close { position: absolute; top: 4px; right: 8px; border: 0; background: transparent; color: #ffd8d8; cursor: pointer; font-size: 20px; } .assistant-actions { display: flex; gap: 8px; margin-top: 8px; } .action-btn { width: 28px; height: 28px; border-radius: 8px; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.04); color: #d6ddeb; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font-size: 14px; } .action-btn:hover { background: rgba(255, 255, 255, 0.12); } .action-btn.active { background: rgba(78, 205, 196, 0.24); border-color: #4ecdc4; color: #4ecdc4; } .message.loading { color: var(--muted); font-style: italic; margin-left: 40px; } .input-area { display: flex; align-items: center; gap: 10px; padding: 10px 24px 18px; max-width: 1000px; margin: 0 auto; width: 100%; } .input-area input { flex: 1; height: 48px; padding: 0 16px; background: var(--panel-3); color: var(--text); border: 1px solid transparent; border-radius: 10px; font-size: 16px; } .input-area input:focus { outline: none; border-color: var(--brand); } .input-area input::placeholder { color: #9aa3b8; } .input-ready { width: 22px; height: 22px; border-radius: 999px; background: #1f6ed4; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; } .send-btn { width: 40px; height: 40px; border-radius: 12px; background: #414b60; color: #bfc6d6; border: none; cursor: pointer; font-size: 20px; } .send-btn.active { background: #4ecdc4; color: #fff; } .send-btn:hover { background: #4e5a73; } .send-btn.active:hover { background: #40bbb2; } .send-btn:disabled { opacity: 0.6; cursor: not-allowed; } @media (max-width: 768px) { .app-container { flex-direction: column; } .sidebar { width: 100%; max-height: 210px; border-right: none; border-bottom: 1px solid #343d52; } .sidebar-title { margin-top: 0; font-size: 22px; } .example-buttons { grid-template-columns: 1fr; } }