openagentmarket_openagent-o.../styles.css
2026-05-14 11:35:14 +07:00

1844 lines
40 KiB
CSS

.openagent-view {
--oa-space-1: 4px;
--oa-space-2: 8px;
--oa-space-3: 12px;
--oa-space-4: 16px;
--oa-space-5: 20px;
--oa-radius-sm: 8px;
--oa-radius-md: 12px;
--oa-radius-lg: 16px;
--oa-border: color-mix(in srgb, var(--background-modifier-border) 78%, transparent);
--oa-border-soft: color-mix(in srgb, var(--background-modifier-border) 52%, transparent);
--oa-surface: color-mix(in srgb, var(--background-secondary) 84%, transparent);
--oa-surface-strong: color-mix(in srgb, var(--background-secondary) 94%, var(--background-primary));
--oa-surface-hover: color-mix(in srgb, var(--background-modifier-hover) 76%, transparent);
--oa-accent-soft: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
--oa-panel-gutter: 0px;
height: 100%;
padding: 0;
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--background-primary);
}
.openagent-view .oa-panel-scroll,
.openagent-view .oa-panel-scroll *,
.openagent-view button,
.openagent-view .clickable-icon {
-webkit-user-select: none;
user-select: none;
}
.openagent-view input,
.openagent-view textarea {
-webkit-user-select: text;
user-select: text;
}
.oa-voice-graph-view {
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--background-primary);
}
.oa-voice-graph-toolbar {
flex: 0 0 auto;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
padding: 8px 12px;
border-bottom: 1px solid color-mix(in srgb, var(--background-modifier-border) 62%, transparent);
background: color-mix(in srgb, var(--background-primary) 96%, transparent);
backdrop-filter: blur(12px);
}
.oa-voice-graph-title {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.oa-voice-graph-title span {
color: var(--text-normal);
font-size: 0.9rem;
font-weight: 600;
line-height: 1.2;
}
.oa-voice-graph-title small {
color: var(--text-muted);
font-size: 0.76rem;
line-height: 1.25;
}
.oa-voice-graph-controls {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
min-width: 0;
}
.oa-voice-graph-icon-button {
width: 28px;
height: 28px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 8px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 62%, transparent);
background: transparent;
color: var(--text-muted);
}
.oa-voice-graph-icon-button:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}
.oa-voice-graph-slider {
display: grid;
grid-template-columns: auto 112px;
align-items: center;
gap: 8px;
margin-left: 4px;
color: var(--text-muted);
font-size: 0.75rem;
white-space: nowrap;
}
.oa-voice-graph-slider input {
width: 112px;
}
.oa-voice-graph-stage {
position: relative;
flex: 1 1 auto;
min-height: 0;
overflow: hidden;
}
.oa-voice-graph-canvas {
width: 100%;
height: 100%;
display: block;
touch-action: none;
cursor: grab;
}
.oa-voice-graph-hud {
position: absolute;
left: 12px;
bottom: 12px;
display: flex;
flex-wrap: wrap;
gap: 6px;
max-width: calc(100% - 24px);
pointer-events: none;
}
.oa-voice-graph-dictation {
position: absolute;
right: 12px;
bottom: 12px;
width: min(360px, calc(100% - 24px));
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 6px;
align-items: end;
}
.oa-voice-graph-dictation textarea {
width: 100%;
min-height: 48px;
max-height: 120px;
resize: vertical;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 52%, transparent);
border-radius: 8px;
padding: 7px 8px;
background: color-mix(in srgb, var(--background-primary) 88%, transparent);
color: var(--text-normal);
font-size: 0.78rem;
line-height: 1.35;
backdrop-filter: blur(10px);
}
.oa-voice-graph-dictation textarea:focus {
outline: none;
border-color: color-mix(in srgb, var(--text-muted) 58%, var(--background-modifier-border));
}
.oa-voice-graph-dictation button {
height: 30px;
min-height: 30px;
padding: 0 10px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 55%, transparent);
border-radius: 8px;
background: color-mix(in srgb, var(--background-secondary) 84%, transparent);
color: var(--text-normal);
font-size: 0.76rem;
}
.oa-voice-graph-dictation button:disabled {
opacity: 0.45;
}
.oa-voice-graph-hud span {
padding: 4px 7px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 46%, transparent);
border-radius: 8px;
background: color-mix(in srgb, var(--background-primary) 82%, transparent);
color: var(--text-muted);
font-size: 0.7rem;
line-height: 1.2;
backdrop-filter: blur(10px);
}
@media (max-width: 680px) {
.oa-voice-graph-toolbar {
grid-template-columns: 1fr;
}
.oa-voice-graph-controls {
justify-content: flex-start;
flex-wrap: wrap;
}
.oa-voice-graph-slider {
width: 100%;
grid-template-columns: auto minmax(96px, 1fr);
}
.oa-voice-graph-slider input {
width: 100%;
}
.oa-voice-graph-dictation {
left: 12px;
right: 12px;
bottom: 42px;
width: auto;
}
}
.openagent-view .oa-message-text,
.openagent-view .oa-message-text * {
-webkit-user-select: text;
user-select: text;
}
.oa-panel-scroll {
flex: 1 1 auto;
min-height: 0;
padding: 0;
overflow-y: auto;
}
.oa-panel-scroll > * + * {
margin-top: var(--oa-space-3);
}
.oa-header-top {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 6px;
}
.oa-brand {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.oa-brand-text {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.oa-brand-title-row {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.oa-brand-text h2 {
margin: 0;
font-size: 1rem;
font-weight: 600;
line-height: 1.2;
}
.oa-daemon-online-dot {
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--color-green);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-green) 16%, transparent);
flex: 0 0 auto;
}
.oa-brand-subtitle {
color: var(--text-muted);
font-size: 0.8rem;
line-height: 1.35;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-logo {
width: 32px;
height: 32px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--oa-surface);
border: 1px solid var(--oa-border-soft);
flex: 0 0 auto;
}
.oa-logo-mark {
color: var(--text-muted);
font-size: 0.92rem;
font-weight: 700;
letter-spacing: 0;
}
.oa-logo-image {
width: 24px;
height: 24px;
object-fit: contain;
display: block;
}
.oa-header,
.oa-task-section {
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
}
.oa-header {
position: sticky;
top: 0;
z-index: 5;
margin: 0 calc(var(--oa-panel-gutter) * -1);
padding: 10px var(--oa-panel-gutter) 8px;
border-bottom: 1px solid var(--oa-border-soft);
background: color-mix(in srgb, var(--background-primary) 92%, transparent);
backdrop-filter: blur(18px);
}
.oa-detail-section,
.oa-settings-body {
display: flex;
flex-direction: column;
gap: var(--oa-space-3);
}
.oa-detail-section {
padding: 10px 0 8px;
}
.oa-messages-section {
margin-top: 16px;
padding-top: 14px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-detail-section.is-empty-state {
display: flex;
flex-direction: column;
gap: 10px;
padding-top: 0;
padding-bottom: 0;
}
.oa-detail-section.is-empty-state .oa-action-row {
margin-top: 0;
}
.oa-message-pagination {
display: flex;
flex-direction: column;
gap: 6px;
margin-bottom: 10px;
}
.oa-message-pagination-summary {
color: var(--text-muted);
font-size: 0.78rem;
line-height: 1.4;
}
.oa-message-pagination-actions {
margin-top: 0;
}
.oa-composer-section {
flex: 0 0 auto;
margin: 0;
padding: 12px 0 6px;
border-top: 1px solid var(--oa-border);
background: color-mix(in srgb, var(--background-primary) 90%, transparent);
backdrop-filter: blur(18px);
box-shadow: none;
}
.oa-action-row.oa-header-actions {
display: flex;
justify-content: flex-end;
gap: 4px;
margin-top: 0;
width: auto;
}
.oa-action-row.oa-header-actions button {
padding: 5px 10px;
border-radius: 999px;
background: color-mix(in srgb, var(--background-secondary) 74%, transparent);
font-size: 0.78rem;
line-height: 1.2;
white-space: nowrap;
}
.oa-action-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 8px;
}
.oa-action-row button {
border-radius: var(--oa-radius-sm);
padding: 7px 11px;
min-width: 0;
min-height: auto;
background: var(--oa-surface);
border: 1px solid var(--oa-border-soft);
box-shadow: none;
color: var(--text-normal);
overflow: hidden;
text-overflow: ellipsis;
}
.oa-action-row button:hover:not(:disabled) {
background: var(--oa-surface-hover);
color: var(--text-normal);
}
.oa-action-row button:disabled {
opacity: 0.45;
}
.oa-settings-body {
min-width: 0;
}
.oa-settings-page-content {
display: flex;
flex-direction: column;
gap: 12px;
}
.oa-panel-tabs {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
}
.oa-panel-tab {
appearance: none;
min-width: 0;
padding: 6px 8px;
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-sm);
background: transparent;
color: var(--text-muted);
cursor: pointer;
font: inherit;
font-size: 0.78rem;
line-height: 1.2;
text-align: center;
box-shadow: none;
}
.oa-panel-tab:hover {
color: var(--text-normal);
border-color: var(--oa-border);
}
.oa-panel-tab.is-active {
color: var(--text-normal);
border-color: color-mix(in srgb, var(--interactive-accent) 30%, var(--oa-border-soft));
background: color-mix(in srgb, var(--interactive-accent) 8%, transparent);
}
.openagent-view .oa-panel-tab,
.openagent-view .oa-panel-tab:hover,
.openagent-view .oa-panel-tab:focus,
.openagent-view .oa-panel-tab:focus-visible,
.openagent-view .oa-panel-tab:active,
.openagent-view .oa-settings-inline-tab,
.openagent-view .oa-settings-inline-tab:hover,
.openagent-view .oa-settings-inline-tab:focus,
.openagent-view .oa-settings-inline-tab:focus-visible,
.openagent-view .oa-settings-inline-tab:active {
box-shadow: none !important;
}
.oa-task-list,
.oa-message-list,
.oa-workspace-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.oa-task-list-date-heading {
margin: 14px 0 2px;
color: var(--text-muted);
font-size: 0.72rem;
font-weight: 600;
line-height: 1.45;
letter-spacing: 0.01em;
text-transform: none;
}
.oa-task-list-date-heading:first-child {
margin-top: 2px;
}
.oa-task-item,
.oa-message,
.oa-workspace-item {
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-md);
padding: 11px 12px;
background: var(--oa-surface-strong);
min-width: 0;
}
.oa-group-context-card {
gap: 8px;
}
.oa-group-context-list {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 8px;
}
.oa-group-context-item {
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-sm);
padding: 8px 10px;
background: color-mix(in srgb, var(--background-primary) 58%, transparent);
}
.oa-group-context-label {
color: var(--text-muted);
font-size: 0.74rem;
line-height: 1.35;
margin-bottom: 2px;
}
.oa-group-context-value {
color: var(--text-normal);
font-size: 0.82rem;
line-height: 1.45;
overflow-wrap: anywhere;
}
.oa-task-item {
cursor: pointer;
transition:
border-color 120ms ease,
background-color 120ms ease;
}
.oa-task-item:hover {
border-color: color-mix(in srgb, var(--background-modifier-border-hover) 70%, transparent);
background: var(--oa-surface-hover);
}
.oa-task-item.is-active {
border-color: color-mix(in srgb, var(--interactive-accent) 30%, var(--oa-border-soft));
background: var(--oa-accent-soft);
}
.oa-thread-list-item {
padding: 10px 12px;
background: color-mix(in srgb, var(--background-primary) 76%, var(--background-secondary));
}
.oa-thread-list-item:hover {
border-color: color-mix(in srgb, var(--background-modifier-border-hover) 72%, transparent);
background: color-mix(in srgb, var(--background-modifier-hover) 72%, var(--background-primary));
}
.oa-thread-list-item.is-active {
border-color: color-mix(in srgb, var(--interactive-accent) 30%, var(--oa-border-soft));
background: color-mix(in srgb, var(--interactive-accent) 10%, var(--background-primary));
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--interactive-accent) 12%, transparent);
}
.oa-thread-list-item.is-running,
.oa-thread-list-item.is-running:hover,
.oa-thread-list-item.is-running.is-active {
border-color: color-mix(in srgb, var(--color-yellow) 56%, var(--oa-border-soft));
background: color-mix(in srgb, var(--color-yellow) 13%, var(--background-primary));
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-yellow) 18%, transparent);
}
.oa-thread-list-main {
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.oa-thread-list-title {
font-size: 0.84rem;
font-weight: 600;
line-height: 1.35;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.oa-thread-list-meta {
color: var(--text-faint);
font-size: 0.72rem;
line-height: 1.35;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.oa-thread-list-arrow {
appearance: none;
flex: 0 0 auto;
color: var(--text-faint);
width: 20px;
height: 20px;
border: 1px solid var(--oa-border-soft);
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
background: color-mix(in srgb, var(--background-secondary) 72%, transparent);
cursor: pointer;
padding: 0;
box-shadow: none;
font: inherit;
font-size: 0.8rem;
line-height: 1;
}
.oa-thread-list-arrow:hover {
color: var(--text-normal);
border-color: var(--oa-border);
}
.openagent-view .oa-thread-list-arrow,
.openagent-view .oa-thread-list-arrow:hover,
.openagent-view .oa-thread-list-arrow:focus,
.openagent-view .oa-thread-list-arrow:focus-visible,
.openagent-view .oa-thread-list-arrow:active {
box-shadow: none !important;
}
.oa-thread-list-unread-dot {
flex: 0 0 auto;
width: 10px;
height: 10px;
margin-top: 4px;
border-radius: 999px;
background: #8b5cf6;
box-shadow: 0 0 0 4px color-mix(in srgb, #8b5cf6 16%, transparent);
}
.oa-task-title,
.oa-detail-title {
font-weight: 600;
}
.oa-conversation-heading {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--oa-border-soft);
min-width: 0;
}
.oa-task-item-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
min-width: 0;
}
.oa-detail-title {
font-size: 0.98rem;
line-height: 1.35;
overflow-wrap: anywhere;
min-width: 0;
}
.oa-status-tag {
flex: 0 0 auto;
max-width: 38%;
padding: 3px 8px;
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-sm);
background: var(--oa-surface);
color: var(--text-muted);
font-size: 0.72rem;
line-height: 1.35;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-status-tag.is-running {
border-color: color-mix(in srgb, var(--color-yellow) 42%, transparent);
background: color-mix(in srgb, var(--color-yellow) 14%, transparent);
color: var(--text-normal);
}
.oa-status-tag.is-online {
border-color: color-mix(in srgb, var(--color-green) 42%, transparent);
background: color-mix(in srgb, var(--color-green) 14%, transparent);
color: var(--text-normal);
}
.oa-status-tag.is-offline {
border-color: color-mix(in srgb, var(--color-red) 42%, transparent);
background: color-mix(in srgb, var(--color-red) 12%, transparent);
color: var(--text-normal);
}
.oa-status-tag.is-checking {
border-color: color-mix(in srgb, var(--interactive-accent) 36%, transparent);
background: color-mix(in srgb, var(--interactive-accent) 10%, transparent);
color: var(--text-normal);
}
.oa-task-meta,
.oa-message-label,
.oa-muted {
color: var(--text-muted);
font-size: 0.8rem;
line-height: 1.45;
overflow-wrap: anywhere;
}
.oa-task-section > h3,
.oa-detail-section > h3,
.oa-settings-section > h3,
.oa-messages-section > h4 {
margin: 0 0 8px;
color: var(--text-muted);
font-size: 0.78rem;
font-weight: 500;
letter-spacing: 0;
text-transform: none;
}
.oa-role-user {
border-color: color-mix(in srgb, var(--interactive-accent) 28%, var(--oa-border-soft));
background: color-mix(in srgb, var(--interactive-accent) 8%, var(--background-primary));
}
.oa-role-assistant {
background: var(--oa-surface-strong);
}
.oa-role-system {
background: color-mix(in srgb, var(--background-secondary) 68%, transparent);
}
.oa-message-text {
white-space: pre-wrap;
word-break: break-word;
line-height: 1.5;
}
.oa-message-text.is-hidden {
display: none;
}
.oa-message-label + .oa-message-text,
.oa-task-title + .oa-task-meta {
margin-top: 4px;
}
.oa-message-tool {
border: 0;
padding: 8px 10px;
background: transparent;
box-shadow: none;
}
.oa-chat-message {
border: 0;
border-radius: 0;
padding: 0;
background: transparent;
box-shadow: none;
}
.oa-chat-message.oa-role-user,
.oa-chat-message.oa-role-assistant,
.oa-chat-message.oa-role-system {
border: 0;
background: transparent;
box-shadow: none;
}
.oa-chat-message.oa-role-user {
align-self: flex-end;
width: fit-content;
max-width: min(78%, 42rem);
padding: 10px 12px 10px 14px;
border: 1px solid color-mix(in srgb, var(--interactive-accent) 18%, var(--oa-border-soft));
border-radius: var(--oa-radius-md);
background: color-mix(in srgb, var(--interactive-accent) 7%, var(--background-primary));
}
.oa-selection-message {
width: min(78%, 42rem);
}
.oa-selection-image-gallery {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 10px;
margin-top: 6px;
}
.oa-selection-image-card {
display: flex;
flex-direction: column;
gap: 6px;
}
.oa-selection-image {
display: block;
width: 100%;
max-height: 220px;
object-fit: contain;
border-radius: 12px;
border: 1px solid color-mix(in srgb, var(--interactive-accent) 12%, var(--oa-border-soft));
background: color-mix(in srgb, var(--background-secondary) 72%, transparent);
}
.oa-selection-image-fallback {
display: flex;
align-items: center;
justify-content: center;
min-height: 120px;
border-radius: 12px;
border: 1px dashed var(--oa-border-soft);
color: var(--text-muted);
font-size: 0.76rem;
text-align: center;
padding: 12px;
}
.oa-selection-image-caption {
color: var(--text-muted);
font-size: 0.72rem;
line-height: 1.4;
overflow-wrap: anywhere;
}
.oa-chat-message.oa-message-tool,
.oa-chat-message.oa-message-tool.oa-role-user,
.oa-chat-message.oa-message-tool.oa-role-assistant,
.oa-chat-message.oa-message-tool.oa-role-system {
border: 0;
background: transparent;
box-shadow: none;
}
.oa-message-toggle {
appearance: none;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 10px;
width: 100%;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
color: inherit;
text-align: left;
cursor: pointer;
min-height: 0;
}
.oa-chat-message.oa-message-tool .oa-message-toggle,
.oa-chat-message.oa-message-tool .oa-message-toggle:hover,
.oa-chat-message.oa-message-tool .oa-message-toggle:focus,
.oa-chat-message.oa-message-tool .oa-message-toggle:focus-visible,
.oa-chat-message.oa-message-tool .oa-message-toggle:active {
border: 0 !important;
outline: 0;
background: transparent !important;
box-shadow: none !important;
}
.oa-message-toggle:hover .oa-message-preview {
color: var(--text-normal);
}
.oa-message-toggle-text {
min-width: 0;
}
.oa-message-preview {
margin-top: 2px;
color: var(--text-muted);
font-size: 0.8rem;
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-message-toggle-icon {
width: 20px;
height: 20px;
border: 0;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
background: transparent;
box-shadow: none;
color: var(--text-muted);
font-size: 0.85rem;
line-height: 1;
flex: 0 0 auto;
}
.oa-message-tool.is-expanded .oa-message-text {
margin-top: 8px;
padding-top: 8px;
border-top: 0;
}
.oa-banner {
border-radius: 8px;
padding: 9px 11px;
margin: 0;
border: 1px solid var(--oa-border-soft);
line-height: 1.45;
overflow-wrap: anywhere;
}
.oa-banner-error {
background: color-mix(in srgb, var(--color-red) 9%, transparent);
border-color: color-mix(in srgb, var(--color-red) 24%, transparent);
}
.oa-banner-warning {
background: color-mix(in srgb, var(--color-orange) 9%, transparent);
border-color: color-mix(in srgb, var(--color-orange) 24%, transparent);
}
.oa-workspace-section {
margin-top: 16px;
}
.oa-workspace-modal h2 {
margin-bottom: 4px;
}
.oa-workspace-modal-subtitle {
color: var(--text-muted);
font-size: 0.88rem;
line-height: 1.45;
margin-bottom: 18px;
max-width: 560px;
}
.oa-workspace-modal .oa-workspace-section > h3,
.oa-workspace-create-panel > h3 {
margin: 0 0 10px;
color: var(--text-muted);
font-size: 0.82rem;
font-weight: 600;
letter-spacing: 0;
}
.oa-workspace-modal .oa-workspace-list {
gap: 8px;
}
.oa-workspace-modal .oa-workspace-item {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 12px;
align-items: center;
padding: 12px;
background: color-mix(in srgb, var(--background-primary) 62%, var(--background-secondary));
}
.oa-workspace-item-main {
min-width: 0;
}
.oa-workspace-open-button {
min-width: 70px;
}
.oa-workspace-create-panel {
padding-top: 16px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-settings-section,
.oa-settings-card {
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
.oa-workspace-settings-section {
background: transparent;
}
.oa-settings-section-block {
display: flex;
flex-direction: column;
gap: 10px;
}
.oa-settings-section-block + .oa-settings-section-block {
padding-top: 14px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-settings-section-header {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
min-width: 0;
}
.oa-settings-section-title {
margin: 0;
color: var(--text-normal);
font-size: 0.9rem;
font-weight: 650;
line-height: 1.25;
}
.oa-settings-inline-tabs {
display: flex;
align-items: center;
gap: 6px;
flex: 0 0 auto;
flex-wrap: wrap;
width: 100%;
}
.oa-settings-inline-tab {
appearance: none;
padding: 5px 9px;
border: 1px solid var(--oa-border-soft);
border-radius: 999px;
background: color-mix(in srgb, var(--background-primary) 82%, transparent);
color: var(--text-muted);
cursor: pointer;
font: inherit;
font-size: 0.78rem;
line-height: 1.2;
box-shadow: none;
flex: 1 1 78px;
text-align: center;
}
.oa-settings-inline-tab:hover {
color: var(--text-normal);
border-color: var(--oa-border);
}
.oa-settings-inline-tab.is-active {
color: var(--text-normal);
border-color: color-mix(in srgb, var(--interactive-accent) 28%, var(--oa-border-soft));
}
.oa-thread-filter-shell {
width: auto;
flex: 0 0 auto;
}
.oa-thread-filter-select {
appearance: none;
width: 18px;
min-height: 0;
padding: 0;
border: 0;
border-radius: 0;
background:
linear-gradient(45deg, transparent 50%, var(--text-muted) 50%) 4px 55% / 5px 5px no-repeat,
linear-gradient(135deg, var(--text-muted) 50%, transparent 50%) 9px 55% / 5px 5px no-repeat;
color: transparent;
cursor: pointer;
font: inherit;
font-size: 0.84rem;
font-weight: 500;
line-height: 1.25;
box-shadow: none;
}
.oa-thread-filter-select:hover,
.oa-thread-filter-select:focus,
.oa-thread-filter-select:focus-visible {
color: transparent;
box-shadow: none;
outline: none;
}
.oa-thread-filter-select option {
color: var(--text-normal);
}
.oa-thread-filter-header {
flex-direction: row;
align-items: center;
justify-content: flex-start;
gap: 10px;
}
.oa-thread-filter-header .oa-settings-section-title {
flex: 0 0 auto;
min-width: 0;
}
.oa-workspace-overview {
padding: 12px;
border: 1px solid var(--oa-border-soft);
border-radius: 14px;
background: transparent;
box-shadow: none;
}
.oa-workspace-overview.is-ready {
border-color: color-mix(in srgb, var(--interactive-accent) 24%, var(--oa-border-soft));
}
.oa-workspace-overview.is-empty {
border-color: color-mix(in srgb, var(--color-orange) 28%, var(--oa-border-soft));
}
.oa-workspace-overview-top {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.oa-workspace-status {
align-self: flex-start;
padding: 2px 7px;
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-sm);
color: var(--text-muted);
font-size: 0.72rem;
font-weight: 600;
line-height: 1.35;
}
.oa-workspace-overview.is-ready .oa-workspace-status {
border-color: color-mix(in srgb, var(--interactive-accent) 26%, transparent);
background: transparent;
color: var(--text-normal);
}
.oa-workspace-overview.is-empty .oa-workspace-status {
border-color: color-mix(in srgb, var(--color-orange) 28%, transparent);
background: transparent;
color: var(--text-normal);
}
.oa-workspace-name {
color: var(--text-normal);
font-size: 1.02rem;
font-weight: 650;
line-height: 1.3;
overflow-wrap: anywhere;
}
.oa-workspace-detail-grid {
display: grid;
gap: 8px;
margin-top: 12px;
}
.oa-workspace-detail {
min-width: 0;
padding-top: 8px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-workspace-detail-label {
color: var(--text-faint);
font-size: 0.72rem;
line-height: 1.35;
}
.oa-workspace-detail-value {
margin-top: 2px;
color: var(--text-normal);
font-size: 0.82rem;
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-settings-list {
display: flex;
flex-direction: column;
gap: 0;
}
.oa-settings-subsection {
margin-top: 14px;
padding-top: 14px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-settings-note {
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid var(--oa-border-soft);
}
.oa-settings-row {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 4px;
min-width: 0;
align-items: start;
padding: 10px 0;
border-top: 1px solid var(--oa-border-soft);
}
.oa-settings-row:first-child {
padding-top: 0;
border-top: 0;
}
.oa-settings-label {
color: var(--text-faint);
font-size: 0.74rem;
font-weight: 600;
line-height: 1.35;
}
.oa-settings-value {
min-width: 0;
color: var(--text-normal);
font-size: 0.82rem;
line-height: 1.35;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-settings-value-stack {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
overflow: visible;
text-overflow: clip;
white-space: normal;
}
.oa-settings-value-path {
overflow: visible;
text-overflow: clip;
white-space: normal;
overflow-wrap: anywhere;
word-break: break-word;
}
.oa-settings-actions {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}
.oa-settings-actions button {
width: 100%;
justify-content: center;
}
.oa-settings-task-section {
padding-top: 2px;
}
.oa-header-actions .oa-icon-button.is-icon-only {
width: 32px;
height: 32px;
min-width: 32px;
padding: 0;
align-items: center;
justify-content: center;
}
.oa-header-actions .oa-icon-button.is-icon-only svg {
width: 16px;
height: 16px;
}
.oa-composer-input-shell {
position: relative;
border: 1px solid var(--oa-border-soft);
border-radius: var(--oa-radius-md);
background: var(--oa-surface-strong);
}
.oa-composer-input-shell:focus-within {
border-color: color-mix(in srgb, var(--interactive-accent) 36%, var(--oa-border-soft));
background: var(--oa-surface-strong);
}
.oa-composer-input {
display: block;
width: 100%;
min-height: 64px;
resize: vertical;
border: 0;
border-radius: 8px;
padding: 10px 72px 10px 12px;
background: transparent;
color: var(--text-normal);
box-sizing: border-box;
line-height: 1.45;
}
.oa-composer-input::placeholder {
color: var(--text-faint);
}
.oa-composer-input:focus {
outline: none;
box-shadow: none;
}
.oa-composer-action-button {
position: absolute;
right: 8px;
top: 50%;
transform: translateY(-50%);
display: inline-flex;
align-items: center;
justify-content: center;
height: 30px;
min-height: 30px;
padding: 0;
border: 1px solid var(--oa-border-soft);
border-radius: 8px;
box-shadow: none;
line-height: 1;
}
.oa-composer-action-button.is-send {
width: 30px;
min-width: 30px;
background: var(--interactive-accent);
color: var(--text-on-accent);
}
.oa-composer-action-button.is-stop {
min-width: 52px;
padding: 0 10px;
border-color: color-mix(in srgb, var(--color-red) 42%, var(--oa-border-soft));
background: color-mix(in srgb, var(--color-red) 15%, var(--oa-surface-strong));
color: color-mix(in srgb, var(--color-red) 82%, var(--text-normal));
font-size: 0.78rem;
font-weight: 600;
}
.oa-composer-action-button:hover:not(:disabled) {
color: var(--text-on-accent);
}
.oa-composer-action-button.is-send:hover:not(:disabled) {
background: var(--interactive-accent-hover);
color: var(--text-on-accent);
}
.oa-composer-action-button.is-stop:hover:not(:disabled) {
border-color: color-mix(in srgb, var(--color-red) 54%, var(--oa-border-soft));
background: color-mix(in srgb, var(--color-red) 22%, var(--oa-surface-strong));
color: color-mix(in srgb, var(--color-red) 88%, var(--text-normal));
}
.oa-composer-action-button:disabled {
opacity: 0.45;
}
.oa-hotkey-capture-input {
cursor: pointer;
}
.openagent-view .oa-settings-section .setting-item {
margin-top: 0;
padding: 16px 0;
border-top: 1px solid var(--oa-border-soft);
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 10px;
}
.openagent-view .oa-settings-section .setting-item:first-of-type {
padding-top: 0;
border-top: 0;
}
.openagent-view .oa-settings-section .setting-item-info {
padding-right: 0;
width: 100%;
}
.openagent-view .oa-settings-section .setting-item-control {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 8px;
margin-top: 0;
width: 100%;
}
.openagent-view .oa-settings-section .setting-item-control input,
.openagent-view .oa-settings-section .setting-item-control select {
width: 100%;
min-width: 0;
border-radius: 11px;
background: transparent;
border: 1px solid var(--oa-border-soft);
box-shadow: none;
}
.openagent-view .oa-settings-section .setting-item-control button {
white-space: nowrap;
border-radius: 11px;
background: transparent;
box-shadow: none;
}
.openagent-view .oa-settings-section .setting-item-name {
font-size: 0.9rem;
font-weight: 600;
}
.openagent-view .oa-settings-section .setting-item-description {
color: var(--text-muted);
font-size: 0.82em;
line-height: 1.45;
}
.oa-settings-body .oa-action-row button {
background: transparent;
box-shadow: none;
}
.oa-settings-body .oa-action-row button:hover:not(:disabled) {
background: transparent;
}
.oa-panel-scroll.is-settings-screen button,
.oa-panel-scroll.is-settings-screen button:hover:not(:disabled),
.oa-panel-scroll.is-settings-screen button:focus,
.oa-panel-scroll.is-settings-screen button:focus-visible,
.oa-panel-scroll.is-settings-screen button:active {
box-shadow: none !important;
}
.oa-settings-task-section .oa-task-item,
.oa-settings-task-section .oa-workspace-item {
background: color-mix(in srgb, var(--background-primary) 82%, transparent);
box-shadow: none;
}
.oa-settings-task-section .oa-thread-list-item.is-running,
.oa-settings-task-section .oa-thread-list-item.is-running:hover,
.oa-settings-task-section .oa-thread-list-item.is-running.is-active {
border-color: color-mix(in srgb, var(--color-yellow) 56%, var(--oa-border-soft));
background: color-mix(in srgb, var(--color-yellow) 13%, var(--background-primary));
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-yellow) 18%, transparent);
}
.oa-fork-modal {
display: grid;
gap: 12px;
}
.oa-fork-modal h2 {
margin: 0;
}
.oa-fork-modal-subtitle,
.oa-fork-modal-details {
color: var(--text-muted);
font-size: 0.9rem;
line-height: 1.45;
}
.oa-fork-modal-details {
display: grid;
gap: 4px;
}
.oa-fork-modal-actions {
justify-content: flex-end;
margin-top: 4px;
}
.oa-vault-pet {
--oa-pet-shell: #ff7b72;
--oa-pet-shell-dark: #d94d66;
--oa-pet-glow: #7dd3fc;
--oa-pet-ink: #243142;
--oa-pet-cream: #fff7ed;
position: fixed;
z-index: 1000;
width: 118px;
height: 142px;
left: calc(100vw - 152px);
top: calc(100vh - 172px);
display: grid;
place-items: end center;
pointer-events: auto;
cursor: grab;
user-select: none;
filter: drop-shadow(0 16px 28px rgb(0 0 0 / 0.2));
transition: left 520ms cubic-bezier(0.2, 0.9, 0.2, 1), top 520ms cubic-bezier(0.2, 0.9, 0.2, 1);
}
.oa-vault-pet:focus-visible {
outline: 2px solid var(--interactive-accent);
outline-offset: 4px;
border-radius: 999px;
}
.oa-vault-pet.is-dragging {
cursor: grabbing;
transition: none;
}
.oa-vault-pet-creature {
position: relative;
width: 112px;
height: 112px;
animation: oa-pet-bob 3.8s ease-in-out infinite;
transform-origin: 50% 72%;
}
.oa-vault-pet.is-excited .oa-vault-pet-creature,
.oa-vault-pet.is-petted .oa-vault-pet-creature {
animation: oa-pet-party 720ms cubic-bezier(0.2, 1.4, 0.3, 1);
}
.oa-vault-pet.is-wandering .oa-vault-pet-creature {
animation: oa-pet-swim 840ms ease-in-out;
}
.oa-vault-pet.is-summoned .oa-vault-pet-creature {
animation: oa-pet-summon 900ms cubic-bezier(0.16, 1.2, 0.28, 1);
}
.oa-vault-pet-mascot {
position: absolute;
inset: 0;
width: 112px;
height: 112px;
object-fit: contain;
display: block;
pointer-events: none;
-webkit-user-drag: none;
user-select: none;
}
.oa-vault-pet-shadow {
position: absolute;
left: 26px;
bottom: 0;
width: 66px;
height: 14px;
border-radius: 999px;
background: rgb(0 0 0 / 0.18);
filter: blur(3px);
animation: oa-pet-shadow 3.8s ease-in-out infinite;
}
.oa-vault-pet-bubble {
position: absolute;
left: 50%;
bottom: 119px;
width: max-content;
min-width: 160px;
max-width: min(360px, calc(100vw - 36px));
padding: 9px 12px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
border-radius: 12px;
background: color-mix(in srgb, var(--background-primary) 94%, transparent);
color: var(--text-normal);
box-shadow: 0 12px 28px rgb(0 0 0 / 0.18);
font-size: 0.78rem;
line-height: 1.35;
text-align: center;
opacity: 0;
pointer-events: none;
transform: translate(-50%, 8px) scale(0.96);
transition: opacity 160ms ease, transform 160ms ease;
white-space: normal;
overflow-wrap: anywhere;
word-break: normal;
}
.oa-vault-pet-bubble::after {
content: "";
position: absolute;
left: 50%;
bottom: -7px;
width: 12px;
height: 12px;
border-right: 1px solid color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
border-bottom: 1px solid color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
background: color-mix(in srgb, var(--background-primary) 94%, transparent);
transform: translateX(-50%) rotate(45deg);
}
.oa-vault-pet.has-message .oa-vault-pet-bubble,
.oa-vault-pet:hover .oa-vault-pet-bubble,
.oa-vault-pet:focus-visible .oa-vault-pet-bubble {
opacity: 1;
transform: translate(-50%, 0) scale(1);
}
.oa-vault-pet-chat {
position: absolute;
right: 86px;
bottom: 30px;
width: min(360px, calc(100vw - 42px));
display: grid;
gap: 7px;
padding: 10px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 76%, transparent);
border-radius: 12px;
background: color-mix(in srgb, var(--background-primary) 96%, transparent);
box-shadow: 0 18px 38px rgb(0 0 0 / 0.24);
opacity: 0;
pointer-events: none;
transform: translateY(10px) scale(0.97);
transform-origin: 100% 100%;
transition: opacity 160ms ease, transform 160ms ease;
}
.oa-vault-pet.is-chat-right .oa-vault-pet-chat {
left: 86px;
right: auto;
transform-origin: 0 100%;
}
.oa-vault-pet.has-chat .oa-vault-pet-chat {
opacity: 1;
pointer-events: auto;
transform: translateY(0) scale(1);
}
.oa-vault-pet.has-chat .oa-vault-pet-bubble {
opacity: 0;
}
.oa-vault-pet-chat-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.oa-vault-pet-chat-title {
min-width: 0;
color: var(--text-normal);
font-size: 0.84rem;
font-weight: 700;
line-height: 1.2;
}
.oa-vault-pet-chat-close {
width: 24px;
height: 24px;
min-width: 24px;
min-height: 24px;
padding: 0;
border-radius: 7px;
display: inline-flex;
align-items: center;
justify-content: center;
background: transparent;
color: var(--text-muted);
box-shadow: none;
}
.oa-vault-pet-chat-path,
.oa-vault-pet-chat-cwd {
color: var(--text-muted);
font-size: 0.72rem;
line-height: 1.3;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.oa-vault-pet-chat-input {
width: 100%;
min-height: 118px;
max-height: 280px;
resize: vertical;
box-sizing: border-box;
padding: 9px 10px;
border: 1px solid color-mix(in srgb, var(--background-modifier-border) 78%, transparent);
border-radius: 10px;
background: color-mix(in srgb, var(--background-secondary) 60%, transparent);
color: var(--text-normal);
font-size: 0.8rem;
line-height: 1.42;
box-shadow: none;
}
.oa-vault-pet-chat-input:focus {
outline: none;
border-color: color-mix(in srgb, var(--interactive-accent) 48%, var(--background-modifier-border));
box-shadow: 0 0 0 2px color-mix(in srgb, var(--interactive-accent) 16%, transparent);
}
.oa-vault-pet-chat-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.oa-vault-pet-chat-hint {
min-width: 0;
color: var(--text-faint);
font-size: 0.7rem;
line-height: 1.2;
}
.oa-vault-pet-chat-send {
min-height: 28px;
padding: 0 11px;
border-radius: 8px;
background: var(--interactive-accent);
color: var(--text-on-accent);
box-shadow: none;
font-size: 0.78rem;
font-weight: 650;
}
.oa-vault-pet-chat-send:hover:not(:disabled) {
background: var(--interactive-accent-hover);
color: var(--text-on-accent);
}
.oa-vault-pet-chat-send:disabled,
.oa-vault-pet-chat-input:disabled {
opacity: 0.58;
}
@keyframes oa-pet-bob {
0%, 100% { transform: translateY(0) rotate(-1deg); }
50% { transform: translateY(-9px) rotate(1.5deg); }
}
@keyframes oa-pet-shadow {
0%, 100% { transform: scaleX(1); opacity: 0.72; }
50% { transform: scaleX(0.78); opacity: 0.42; }
}
@keyframes oa-pet-party {
0% { transform: translateY(0) rotate(0); }
30% { transform: translateY(-18px) rotate(-8deg) scale(1.04); }
60% { transform: translateY(-6px) rotate(7deg) scale(1.02); }
100% { transform: translateY(0) rotate(0); }
}
@keyframes oa-pet-swim {
0%, 100% { transform: translateX(0) rotate(0); }
35% { transform: translateX(-8px) rotate(-5deg); }
70% { transform: translateX(6px) rotate(4deg); }
}
@keyframes oa-pet-summon {
0% { transform: translateY(8px) rotate(-8deg) scale(0.92); }
45% { transform: translateY(-17px) rotate(7deg) scale(1.05); }
72% { transform: translateY(-4px) rotate(-3deg) scale(1.02); }
100% { transform: translateY(0) rotate(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
.oa-vault-pet,
.oa-vault-pet *,
.oa-vault-pet::before,
.oa-vault-pet::after {
animation: none !important;
transition: none !important;
}
}
@media (min-width: 680px) {
.openagent-view .oa-settings-section .setting-item {
grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
align-items: center;
}
.openagent-view .oa-settings-section .setting-item-control {
grid-template-columns: minmax(0, 1fr) auto;
justify-self: end;
width: min(100%, 220px);
}
.oa-settings-actions {
grid-template-columns: repeat(2, minmax(0, max-content));
}
.oa-settings-actions button {
width: auto;
}
}