/* Browser Pilot – Side Panel Styles */ :root { --bg: #0d1117; --bg2: #161b22; --bg3: #21262d; --border: #30363d; --text: #e6edf3; --text2: #8b949e; --accent: #ff6b35; --accent2: #ff8c5a; --green: #3fb950; --red: #f85149; --blue: #58a6ff; --radius: 8px; --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font); background: var(--bg); color: var(--text); height: 100vh; display: flex; flex-direction: column; overflow: hidden; font-size: 13px; } /* Header */ .header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: var(--bg2); border-bottom: 1px solid var(--border); flex-shrink: 0; } .header-left { display: flex; align-items: center; gap: 8px; } .logo { font-size: 18px; } .title { font-weight: 600; font-size: 14px; } .header-right { display: flex; align-items: center; gap: 8px; } .provider-select { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 4px; padding: 3px 6px; font-size: 11px; } .status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); transition: background 0.3s; } .status-dot.connected { background: var(--green); } .icon-btn { background: none; border: none; cursor: pointer; font-size: 16px; padding: 2px; } /* Tabs */ .tabs { display: flex; background: var(--bg2); border-bottom: 1px solid var(--border); flex-shrink: 0; } .tab { flex: 1; padding: 8px; background: none; border: none; color: var(--text2); font-size: 12px; font-weight: 500; cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.2s; } .tab:hover { color: var(--text); background: var(--bg3); } .tab.active { color: var(--accent); border-bottom-color: var(--accent); } /* Tab Content */ .tab-content { display: none; flex: 1; overflow: hidden; flex-direction: column; } .tab-content.active { display: flex; } /* Messages */ .messages { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 10px; } .message { max-width: 95%; padding: 10px 12px; border-radius: var(--radius); font-size: 13px; line-height: 1.5; word-wrap: break-word; } .message.assistant { background: var(--bg2); border: 1px solid var(--border); align-self: flex-start; } .message.user { background: var(--accent); color: white; align-self: flex-end; border-radius: var(--radius) var(--radius) 4px var(--radius); } .message.tool { background: var(--bg3); border: 1px solid var(--border); font-family: var(--mono); font-size: 11px; color: var(--text2); align-self: flex-start; max-width: 100%; } .message.error { background: #2d1b1b; border: 1px solid var(--red); color: var(--red); } .message-content { white-space: pre-wrap; } .message-content strong { color: var(--accent); } .message-content code { background: var(--bg3); padding: 1px 4px; border-radius: 3px; font-family: var(--mono); font-size: 11px; } .tool-label { font-size: 10px; color: var(--accent); font-weight: 600; margin-bottom: 4px; text-transform: uppercase; } /* Input Area */ .input-area { padding: 10px 12px; border-top: 1px solid var(--border); background: var(--bg2); flex-shrink: 0; } .input-row { display: flex; gap: 8px; align-items: flex-end; } .input-row textarea { flex: 1; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); padding: 8px 12px; font-family: var(--font); font-size: 13px; resize: none; max-height: 120px; line-height: 1.4; } .input-row textarea:focus { outline: none; border-color: var(--accent); } .send-btn { width: 36px; height: 36px; border-radius: 50%; background: var(--accent); border: none; color: white; font-size: 14px; cursor: pointer; flex-shrink: 0; transition: background 0.2s; } .send-btn:hover { background: var(--accent2); } .send-btn:disabled { opacity: 0.5; cursor: not-allowed; } .input-options { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; } .checkbox-label { font-size: 11px; color: var(--text2); display: flex; align-items: center; gap: 4px; cursor: pointer; } .stop-btn { background: var(--red); color: white; border: none; border-radius: 4px; padding: 4px 10px; font-size: 11px; cursor: pointer; } .hidden { display: none !important; } /* Actions Tab */ .actions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px; } .action-btn { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); padding: 12px 10px; font-size: 12px; cursor: pointer; transition: all 0.2s; text-align: left; } .action-btn:hover { border-color: var(--accent); background: var(--bg3); } .action-result { flex: 1; overflow-y: auto; padding: 12px; font-family: var(--mono); font-size: 11px; white-space: pre-wrap; color: var(--text2); } /* Dev Tab */ .dev-section { padding: 12px; border-bottom: 1px solid var(--border); } .dev-section h3 { font-size: 12px; color: var(--accent); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; } .code-input, .code-input-line { width: 100%; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; color: var(--text); font-family: var(--mono); font-size: 12px; padding: 8px; resize: vertical; } .code-input-line { resize: none; height: 32px; } .code-input:focus, .code-input-line:focus { outline: none; border-color: var(--accent); } .exec-btn { margin-top: 6px; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 4px; padding: 5px 12px; font-size: 11px; cursor: pointer; } .exec-btn:hover { border-color: var(--accent); } .code-output { margin-top: 8px; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 8px; font-family: var(--mono); font-size: 11px; color: var(--green); max-height: 200px; overflow-y: auto; white-space: pre-wrap; word-break: break-all; } .code-output.small { font-size: 10px; color: var(--text2); } .mcp-status { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 8px; } .mcp-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); } .mcp-dot.offline { background: var(--red); } /* Modal */ .modal { position: fixed; inset: 0; background: rgba(0,0,0,0.7); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; width: 90%; max-width: 400px; max-height: 90vh; overflow-y: auto; padding: 20px; } .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; } .modal-header h2 { font-size: 16px; } .close-btn { background: none; border: none; color: var(--text2); font-size: 18px; cursor: pointer; } .form-group { margin-bottom: 12px; } .form-group label { display: block; font-size: 11px; color: var(--text2); margin-bottom: 4px; font-weight: 500; } .form-group input, .form-group textarea { width: 100%; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; color: var(--text); padding: 8px; font-size: 12px; font-family: var(--mono); } .form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--accent); } .save-btn { width: 100%; background: var(--accent); color: white; border: none; border-radius: var(--radius); padding: 10px; font-size: 13px; font-weight: 600; cursor: pointer; margin-top: 8px; } .save-btn:hover { background: var(--accent2); } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--bg); } ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--text2); } /* Loading animation */ .typing-indicator { display: flex; gap: 4px; padding: 4px 0; } .typing-indicator span { width: 6px; height: 6px; background: var(--text2); border-radius: 50%; animation: bounce 1.4s infinite; } .typing-indicator span:nth-child(2) { animation-delay: 0.2s; } .typing-indicator span:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-4px); } } /* Screenshot in chat */ .message img { max-width: 100%; border-radius: 4px; margin-top: 6px; border: 1px solid var(--border); }