/* Search highlight */ .search-highlight { background-color: var(--text-highlight-bg); color: var(--text-highlight); padding: 0 2px; border-radius: 2px; } /* Server Status Styles */ .opencode-server-status { display: flex; flex-direction: column; gap: 8px; padding: 8px 0; } .opencode-server-status-running { color: var(--color-green); } .opencode-server-status-stopped { color: var(--text-muted); } .opencode-server-status-starting { color: var(--color-blue); } .opencode-server-status-error { color: var(--color-red); } .opencode-server-status-error-message { color: var(--text-muted); font-size: 12px; } .opencode-server-control-buttons { display: flex; gap: 8px; margin-top: 4px; } .opencode-server-metrics { padding: 8px 0; } .opencode-server-metrics-text { font-size: 12px; color: var(--text-muted); } /* Server Start Modal Styles */ .opencode-server-start-buttons { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; } /* Core view layout */ .opencode-obsidian-view { display: flex; flex-direction: column; height: 100%; overflow: hidden; } .opencode-obsidian-header { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--background-modifier-border); background-color: var(--background-secondary); } .opencode-obsidian-status { font-size: 12px; color: var(--text-muted); white-space: nowrap; } .opencode-obsidian-status.connected { color: var(--text-success); } .opencode-obsidian-status.reconnecting, .opencode-obsidian-status.connecting { color: var(--text-warning); } .opencode-obsidian-status.disconnected { color: var(--text-error); } .opencode-obsidian-controls { margin-left: auto; display: flex; gap: 6px; } .opencode-obsidian-view-toggle { align-self: flex-start; margin: 8px 10px 0; } .opencode-obsidian-search-panel { padding: 6px 10px; border-bottom: 1px solid var(--background-modifier-border); } /* Conversation selector */ .opencode-obsidian-conversation-selector { padding: 6px 10px; border-bottom: 1px solid var(--background-modifier-border); } .opencode-obsidian-tabs-container { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; } .opencode-obsidian-tab { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; background-color: var(--background-secondary); border: 1px solid var(--background-modifier-border); cursor: pointer; white-space: nowrap; } .opencode-obsidian-tab.active { background-color: var(--interactive-accent); border-color: var(--interactive-accent); color: var(--text-on-accent); } .opencode-obsidian-tab-content { display: flex; flex-direction: column; gap: 2px; } .opencode-obsidian-tab-metadata { font-size: 11px; color: var(--text-muted); } .opencode-obsidian-tab-close { margin-left: 6px; opacity: 0.6; } .opencode-obsidian-tab:hover .opencode-obsidian-tab-close { opacity: 1; } .opencode-obsidian-tab-new, .opencode-obsidian-tab-sync { font-weight: 600; } .opencode-obsidian-tab-disabled { opacity: 0.6; pointer-events: none; } .opencode-obsidian-no-conversations { color: var(--text-muted); padding: 8px 0; } /* Message list */ .opencode-obsidian-messages { flex: 1; overflow: auto; padding: 10px; display: flex; flex-direction: column; gap: 10px; } .opencode-obsidian-message { padding: 8px 10px; border-radius: 8px; border: 1px solid var(--background-modifier-border); background-color: var(--background-secondary); } .opencode-obsidian-message-user { align-self: flex-end; background-color: var(--background-modifier-hover); } .opencode-obsidian-message-header { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-muted); margin-bottom: 4px; } .opencode-obsidian-message-content { font-size: 13px; line-height: 1.4; } .opencode-obsidian-message-images img { border-radius: 6px; margin-top: 6px; } .opencode-obsidian-message-actions { display: flex; gap: 6px; margin-top: 6px; } .opencode-obsidian-message-action { font-size: 11px; color: var(--text-muted); cursor: pointer; } .opencode-obsidian-message-action:hover { color: var(--text-normal); } .opencode-obsidian-empty-messages { color: var(--text-muted); text-align: center; padding: 20px 0; } .opencode-obsidian-reverted-indicator { padding: 8px 10px; border-radius: 6px; background-color: var(--background-secondary); border: 1px dashed var(--background-modifier-border); font-size: 12px; color: var(--text-muted); } .opencode-obsidian-unrevert-button { margin-left: 8px; } /* Input area */ .opencode-obsidian-input { border-top: 1px solid var(--background-modifier-border); padding: 8px 10px; background-color: var(--background-secondary); } .opencode-obsidian-input-container { display: flex; flex-direction: column; gap: 6px; } .opencode-obsidian-input-toolbar { display: flex; align-items: center; gap: 8px; } .opencode-obsidian-agent-select { max-width: 200px; } .opencode-obsidian-input-textarea { width: 100%; min-height: 60px; resize: none; } .opencode-obsidian-input-status { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-muted); } .opencode-obsidian-streaming { color: var(--text-accent); } .opencode-obsidian-input-buttons { display: flex; justify-content: flex-end; gap: 6px; } /* Command suggestions */ .opencode-obsidian-command-suggestions { position: relative; } .opencode-obsidian-command-suggestions-list { position: absolute; left: 0; right: 0; bottom: calc(100% + 6px); max-height: 200px; overflow: auto; background-color: var(--background-primary); border: 1px solid var(--background-modifier-border); border-radius: 6px; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12); display: none; z-index: 20; } .opencode-obsidian-command-suggestions.is-visible .opencode-obsidian-command-suggestions-list { display: block; } .opencode-obsidian-command-suggestion { padding: 6px 8px; cursor: pointer; } .opencode-obsidian-command-suggestion.is-selected { background-color: var(--background-modifier-hover); } .opencode-obsidian-command-suggestion-description { display: block; font-size: 11px; color: var(--text-muted); } .opencode-obsidian-command-suggestion-empty { color: var(--text-muted); } /* Loading and spinners */ .opencode-obsidian-loading-overlay { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--text-muted); } .opencode-obsidian-loading-message { display: flex; align-items: center; gap: 8px; } .opencode-obsidian-spinner { width: 14px; height: 14px; border: 2px solid var(--background-modifier-border); border-top-color: var(--interactive-accent); border-radius: 50%; animation: opencode-obsidian-spin 0.8s linear infinite; } .opencode-obsidian-spinner-large { width: 18px; height: 18px; border-width: 3px; } @keyframes opencode-obsidian-spin { to { transform: rotate(360deg); } } /* Context menu */ .opencode-obsidian-context-menu { background-color: var(--background-primary); border: 1px solid var(--background-modifier-border); border-radius: 6px; padding: 4px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); } .opencode-obsidian-context-menu-item { padding: 6px 8px; cursor: pointer; border-radius: 4px; } .opencode-obsidian-context-menu-item:hover { background-color: var(--background-modifier-hover); } .opencode-obsidian-context-menu-item-danger { color: var(--text-error); } /* Todo list */ .opencode-obsidian-todo-container { padding: 10px; display: flex; flex-direction: column; gap: 10px; } .opencode-obsidian-todo-header { font-size: 14px; font-weight: 600; } .opencode-obsidian-todo-list { display: flex; flex-direction: column; gap: 8px; } .opencode-obsidian-todo-item { padding: 8px 10px; border: 1px solid var(--background-modifier-border); border-radius: 8px; background-color: var(--background-secondary); } .opencode-obsidian-todo-title { font-weight: 600; } .opencode-obsidian-todo-meta { font-size: 11px; color: var(--text-muted); } .opencode-obsidian-todo-actions { display: flex; gap: 6px; margin-top: 6px; } .opencode-obsidian-todo-empty { color: var(--text-muted); padding: 8px 0; } /* Modals */ .opencode-obsidian-drop-zone { border: 1px dashed var(--background-modifier-border); padding: 12px; text-align: center; border-radius: 8px; } .opencode-obsidian-drop-zone-hover { background-color: var(--background-modifier-hover); } .opencode-obsidian-permission-buttons { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; } .opencode-obsidian-code-preview { font-family: var(--font-monospace); font-size: 12px; background-color: var(--background-secondary); border: 1px solid var(--background-modifier-border); padding: 8px; border-radius: 6px; white-space: pre-wrap; }