/* Settings */
.smtcmp-settings-support-smart-composer {
border-top: none;
}
.smtcmp-settings-section:not(:first-child) {
margin-top: var(--size-4-10);
}
.smtcmp-settings-section--tight {
margin-top: var(--size-4-4) !important;
}
.smtcmp-settings-section select option {
padding-inline-start: 0 !important;
padding-left: 0 !important;
-webkit-padding-start: 0 !important;
text-indent: 0 !important;
margin-left: 0;
}
.smtcmp-settings-section select optgroup {
padding-inline-start: 0 !important;
padding-left: 0 !important;
-webkit-padding-start: 0 !important;
text-indent: 0 !important;
margin-left: 0;
}
.smtcmp-settings-header {
color: var(--text-normal);
font-size: var(--h1-size);
line-height: var(--line-height-tight);
font-weight: var(--h1-weight);
margin: var(--size-4-2) 0;
}
.smtcmp-settings-sub-header-container {
display: flex;
justify-content: space-between;
align-items: center;
}
.smtcmp-settings-trigger-callout-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-3);
}
.smtcmp-settings-sub-header {
color: var(--text-normal);
font-size: var(--h4-size);
line-height: var(--line-height-tight);
font-weight: var(--h4-weight);
margin: var(--size-4-3) 0;
}
.smtcmp-settings-desc {
color: var(--text-muted);
font-size: var(--font-ui-small);
line-height: var(--line-height-tight);
margin: var(--size-4-1) 0;
}
.smtcmp-settings-callout {
border: none;
padding-inline-start: var(--size-4-2);
border-inline-start: var(--blockquote-border-thickness) solid
var(--blockquote-border-color);
}
.smtcmp-settings-callout + .setting-item {
border-top: none !important;
padding-top: 0 !important;
}
.smtcmp-settings-advanced-toggle {
display: flex;
align-items: center;
gap: 4px;
margin-top: var(--size-4-2);
padding: 8px 0;
color: var(--text-muted);
font-size: 0.9em;
}
.smtcmp-settings-advanced-toggle-icon {
transition: transform 0.2s;
transform: rotate(0deg);
transform-origin: center;
will-change: transform;
}
.smtcmp-settings-advanced-toggle.is-expanded
.smtcmp-settings-advanced-toggle-icon {
transform: rotate(90deg);
}
.smtcmp-settings-required::after {
color: var(--color-red);
content: '*';
display: inline-block;
font-size: var(--font-ui-medium);
font-weight: var(--font-bold);
margin-left: var(--size-4-1);
}
.smtcmp-setting-name-row {
display: inline-flex;
align-items: center;
gap: var(--size-4-2);
flex-wrap: wrap;
}
.smtcmp-setting-name-extra {
display: inline-flex;
align-items: center;
}
.smtcmp-setting-size-badge {
color: var(--text-muted);
font-size: var(--font-ui-small);
font-weight: var(--font-normal);
line-height: 1;
}
/* Settings: Embedding DB Manage */
.smtcmp-settings-embedding-db-manage-root {
padding: var(--size-4-2);
}
.smtcmp-settings-embedding-db-manage-header {
display: flex;
align-items: center;
justify-content: end;
gap: var(--size-4-1);
font-size: var(--font-ui-small);
margin-bottom: var(--size-4-2);
}
.smtcmp-settings-embedding-db-manage-table {
width: 100%;
border-collapse: collapse;
}
.smtcmp-settings-embedding-db-manage-table tr {
border-bottom: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-settings-embedding-db-manage-table th,
.smtcmp-settings-embedding-db-manage-table td {
padding: var(--size-4-2);
text-align: left;
}
.smtcmp-settings-embedding-db-manage-table th {
font-weight: var(--font-medium);
color: var(--text-muted);
padding-bottom: var(--size-4-3);
}
.smtcmp-settings-embedding-db-manage-table td {
padding-top: var(--size-4-3);
padding-bottom: var(--size-4-3);
vertical-align: middle;
}
.smtcmp-settings-embedding-db-manage-actions {
display: flex;
gap: var(--size-4-2);
}
.smtcmp-settings-embedding-db-manage-actions-loading {
display: flex;
align-items: center;
gap: var(--size-2-2);
font-size: var(--font-ui-smaller);
}
/* Settings: tables */
.smtcmp-settings-table-container {
overflow-x: auto;
}
.smtcmp-settings-table {
margin: var(--size-4-3) 0;
width: 100%;
border-collapse: collapse;
}
.smtcmp-settings-table th {
padding: var(--size-4-1) var(--size-4-1) var(--size-4-2) var(--size-4-1);
text-align: left;
vertical-align: middle;
font-weight: var(--font-medium);
color: var(--text-muted);
}
.smtcmp-settings-table tbody td {
height: var(--size-4-10);
padding: var(--size-4-1);
text-align: left;
vertical-align: middle;
}
.smtcmp-settings-table tfoot td {
padding: var(--size-4-1);
text-align: right;
vertical-align: middle;
}
.smtcmp-settings-table thead tr {
border-bottom: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-settings-table tbody tr {
border-bottom: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-settings-actions {
display: flex;
align-items: center;
gap: var(--size-4-1);
svg {
height: var(--icon-l);
width: var(--icon-l);
stroke-width: var(--icon-stroke);
}
}
.smtcmp-settings-kv-entry.setting-item .setting-item-info {
display: none;
}
.smtcmp-settings-kv-entry.setting-item .setting-item-control {
display: flex;
flex-wrap: wrap;
gap: var(--size-4-1);
justify-content: flex-start;
align-items: flex-start;
margin-left: 0;
width: 100%;
}
.smtcmp-settings-kv-entry .setting-item-control input {
flex: 1 1 160px;
min-width: 140px;
}
.smtcmp-settings-kv-entry .setting-item-control .setting-item-button {
margin-top: 0;
}
.smtcmp-settings-kv-entry--inline.setting-item .setting-item-control {
flex-wrap: nowrap;
align-items: center;
}
.smtcmp-settings-kv-entry--inline .setting-item-control input {
min-width: 0;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > div {
min-width: 0;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > div select {
width: 100%;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(1) {
flex: 0 0 120px;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(2) {
flex: 0 0 120px;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(3) {
flex: 1 1 420px;
}
.smtcmp-provider-headers-entry .setting-item-control > :nth-child(1) {
flex: 0 0 180px;
}
.smtcmp-provider-headers-entry .setting-item-control > :nth-child(2) {
flex: 1 1 320px;
}
.smtcmp-provider-headers-entry .setting-item-control > :nth-child(3) {
flex: 0 0 auto;
}
.smtcmp-provider-headers-entry .setting-item-control .setting-item-button {
white-space: nowrap;
}
.smtcmp-provider-headers-entry.setting-item {
align-items: center;
padding-top: var(--size-4-2) !important;
padding-bottom: var(--size-4-2) !important;
}
@media (max-width: 900px) {
.smtcmp-settings-kv-entry--inline.setting-item .setting-item-control {
flex-wrap: wrap;
align-items: flex-start;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > div {
flex: 1 1 160px;
min-width: 140px;
}
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(1),
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(2),
.smtcmp-settings-kv-entry--inline .setting-item-control > :nth-child(3) {
flex: 1 1 160px;
}
.smtcmp-provider-headers-entry .setting-item-control > :nth-child(3) {
flex: 0 0 auto;
}
}
/* Drag handle for reorderable rows */
.smtcmp-drag-handle {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
cursor: grab;
padding: 0 var(--size-4-1);
user-select: none;
}
.smtcmp-drag-handle:hover {
color: var(--text-normal);
}
.smtcmp-drag-handle svg {
width: var(--icon-m);
height: var(--icon-m);
stroke-width: var(--icon-stroke);
}
.smtcmp-drag-handle {
padding: 0; /* 去掉手柄内部左右留白 */
transition:
transform 120ms ease,
color 120ms ease;
}
/* 紧凑化:手柄列(第一列)不占额外空间,仅按内容宽度布局 */
.smtcmp-settings-table th:first-child,
.smtcmp-settings-table td:first-child,
.smtcmp-models-table th:first-child,
.smtcmp-models-table td:first-child {
padding-left: 0;
padding-right: 0;
width: 0; /* 让列宽收缩为内容宽度(图标本身宽度)*/
}
/* 覆盖 ChatModelsSubSection 中 colgroup 的第一列固定宽度 */
.smtcmp-settings-table col:first-child {
width: 0 !important;
}
/* Plan A: 拖拽行与插入位置的视觉反馈(无布局抖动) */
.smtcmp-row-dragging {
background-color: var(--background-modifier-hover);
transform: translateX(2px) scale(0.995);
opacity: 0.98;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
transition:
transform 120ms ease,
background-color 120ms ease,
box-shadow 120ms ease,
opacity 120ms ease;
will-change: transform, opacity;
}
/* 使用 inset box-shadow 绘制顶部/底部插入线,避免改变 row 高度导致抖动 */
.smtcmp-row-drag-over-before {
box-shadow: inset 0 2px 0 0 var(--interactive-accent);
transition: box-shadow 120ms ease;
}
.smtcmp-row-drag-over-after {
box-shadow: inset 0 -2px 0 0 var(--interactive-accent);
transition: box-shadow 120ms ease;
}
/* 手柄抓取时的轻微强调 */
.smtcmp-drag-handle--active {
color: var(--text-normal);
transform: scale(1.05);
}
/* 放下成功后的瞬时反馈:高亮并轻微回弹(不改变布局尺寸) */
.smtcmp-row-drop-success {
animation: smtcmp-drop-flash 650ms ease-out;
}
@keyframes smtcmp-drop-flash {
0% {
background-color: var(--background-modifier-hover);
transform: translateX(2px) scale(0.995);
opacity: 0.98;
}
40% {
background-color: var(--background-modifier-hover);
transform: translateX(0) scale(1.002);
opacity: 1;
}
100% {
background-color: transparent;
transform: none;
opacity: 1;
}
}
.smtcmp-settings-table-api-key {
cursor: pointer;
color: var(--text-muted);
font-size: var(--font-ui-small);
}
.smtcmp-settings-table-api-key:hover {
text-decoration: underline;
}
.smtcmp-error-modal {
min-width: 60vw;
}
.smtcmp-error-modal-content {
max-height: 50vh;
display: flex;
flex-direction: column;
user-select: text;
}
.smtcmp-error-modal-message {
white-space: pre-line;
}
.smtcmp-error-modal-log {
white-space: pre-wrap;
word-break: break-word;
margin-top: 1rem;
flex-grow: 1;
overflow-y: auto;
user-select: text;
cursor: text;
font-size: var(--font-ui-small);
}
.smtcmp-error-modal-buttons {
margin-top: 1rem;
}
.smtcmp-assistant-message-metadata {
display: flex;
flex-direction: column;
--smtcmp-assistant-metadata-dot-size: 6px;
--smtcmp-assistant-metadata-dot-gap: 8px;
--smtcmp-assistant-metadata-line-offset: calc(
var(--smtcmp-assistant-metadata-dot-size) / 2
);
margin-top: 2px;
margin-bottom: var(--size-4-1);
transition:
transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 180ms ease;
}
.smtcmp-assistant-message-metadata.is-active {
box-shadow: none;
}
.smtcmp-assistant-message-metadata--requesting {
transform: translateY(0);
}
.smtcmp-assistant-message-metadata--thinking,
.smtcmp-assistant-message-metadata--generating {
transform: translateY(-1px);
}
.smtcmp-assistant-message-metadata--settled {
opacity: 0.96;
}
.smtcmp-assistant-message-metadata--generating
.smtcmp-assistant-message-metadata-label-text,
.smtcmp-assistant-message-metadata--settled
.smtcmp-assistant-message-metadata-label-text {
color: color-mix(in srgb, var(--text-faint) 78%, var(--text-muted));
}
.smtcmp-assistant-message-metadata-content {
color: var(--text-muted);
min-height: 0;
overflow: hidden;
margin-left: var(--smtcmp-assistant-metadata-line-offset);
padding: 0 0 0
calc(var(--size-4-2) + var(--smtcmp-assistant-metadata-dot-gap));
font-size: var(--font-ui-small);
opacity: 0;
transform: translateY(-4px);
border-left: 1px solid transparent;
transition:
opacity 180ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
padding 220ms cubic-bezier(0.22, 1, 0.36, 1),
border-color 180ms ease;
}
.smtcmp-assistant-message-metadata-content .markdown-rendered {
color: inherit;
}
.smtcmp-assistant-message-metadata.is-expanded
.smtcmp-assistant-message-metadata-content {
padding-bottom: var(--size-4-2);
opacity: 1;
transform: translateY(0);
border-left-color: color-mix(
in srgb,
var(--background-modifier-border) 80%,
transparent
);
}
.smtcmp-assistant-message-metadata-annotations {
display: flex;
flex-direction: column;
gap: var(--size-2-1);
}
.smtcmp-assistant-message-metadata-body {
display: grid;
grid-template-rows: 0fr;
overflow: hidden;
transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-metadata-preview {
max-height: 0;
overflow: hidden;
margin-left: var(--smtcmp-assistant-metadata-line-offset);
padding-left: calc(
var(--size-4-2) + var(--smtcmp-assistant-metadata-dot-gap)
);
color: color-mix(in srgb, var(--text-faint) 72%, var(--text-muted));
font-size: var(--font-ui-smaller);
line-height: 1.4;
opacity: 0;
transform: translateY(-4px);
transition:
max-height 240ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 180ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
margin-bottom 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-metadata-preview span {
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.smtcmp-assistant-message-metadata.has-preview
.smtcmp-assistant-message-metadata-preview {
max-height: 24px;
margin-bottom: 2px;
opacity: 1;
transform: translateY(0);
}
.smtcmp-assistant-message-metadata.is-expanded
.smtcmp-assistant-message-metadata-preview {
max-height: 0;
margin-bottom: 0;
opacity: 0;
}
.smtcmp-assistant-message-metadata.is-expanded
.smtcmp-assistant-message-metadata-body {
grid-template-rows: 1fr;
}
.smtcmp-assistant-message-metadata-toggle {
appearance: none;
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-1);
width: 100%;
min-height: 0;
font-size: var(--font-ui-small);
color: var(--text-muted);
background: transparent !important;
background-color: transparent !important;
cursor: pointer;
border: 0 !important;
border-radius: 0;
box-shadow: none !important;
padding: 0;
user-select: none;
text-align: left;
transition:
background-color 140ms ease,
color 180ms ease;
&:hover {
background-color: transparent;
}
}
.smtcmp-assistant-message-metadata-toggle.is-static {
cursor: default;
}
.smtcmp-assistant-message-metadata-toggle.is-static:hover {
background-color: transparent;
}
.smtcmp-assistant-message-metadata-toggle:disabled {
opacity: 1;
background: transparent !important;
box-shadow: none !important;
}
.smtcmp-assistant-message-metadata-toggle:focus,
.smtcmp-assistant-message-metadata-toggle:focus-visible {
outline: none;
box-shadow: none;
}
.smtcmp-assistant-message-metadata-label {
min-width: 0;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 2px 0;
}
.smtcmp-assistant-message-metadata-label-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: color-mix(in srgb, var(--text-muted) 92%, var(--text-normal));
transition:
opacity 160ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-metadata-status-dot {
width: var(--smtcmp-assistant-metadata-dot-size);
height: var(--smtcmp-assistant-metadata-dot-size);
flex: 0 0 auto;
border-radius: 999px;
background: var(--interactive-accent);
opacity: 0.92;
}
.smtcmp-assistant-message-metadata.is-active
.smtcmp-assistant-message-metadata-status-dot {
animation: smtcmp-assistant-message-status-pulse 1.4s ease-in-out infinite;
}
.smtcmp-assistant-message-metadata-loader {
margin-left: 2px;
}
.smtcmp-assistant-message-metadata-loader.smtcmp-dot-loader-minimal {
gap: 3px;
}
.smtcmp-assistant-message-metadata-loader.smtcmp-dot-loader-minimal span {
width: 3px;
height: 3px;
}
.smtcmp-assistant-message-metadata-toggle-icon {
width: var(--size-4-4);
height: var(--size-4-4);
flex: 0 0 auto;
color: color-mix(in srgb, var(--text-faint) 84%, var(--text-muted));
transition:
color 180ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 160ms ease;
}
.smtcmp-assistant-message-metadata--generating
.smtcmp-assistant-message-metadata-toggle-icon,
.smtcmp-assistant-message-metadata--settled
.smtcmp-assistant-message-metadata-toggle-icon {
opacity: 0.68;
}
@keyframes smtcmp-assistant-message-status-pulse {
0% {
opacity: 0.28;
}
50% {
opacity: 1;
}
100% {
opacity: 0.28;
}
}
/* Overrides default .markdown-rendered class styles from Obsidian */
.smtcmp-markdown-rendered {
&.markdown-rendered {
--render-scale: 1;
font-size: calc(var(--render-scale) * 1rem);
line-height: 1.5;
&.smtcmp-scale-xs {
--render-scale: 0.8;
}
&.smtcmp-scale-sm {
--render-scale: 0.85;
}
&.smtcmp-scale-base {
--render-scale: 1;
}
/* override default variables */
--p-spacing: calc(var(--render-scale) * 1rem);
--heading-spacing: calc(var(--p-spacing) * 1.75);
--checkbox-size: calc(var(--render-scale) * 1rem);
--checkbox-radius: calc(var(--render-scale) * var(--radius-s));
--icon-size: calc(var(--render-scale) * var(--icon-m));
/* adjust list indent */
--list-indent: 1.5em;
blockquote {
padding-inline-start: calc(var(--render-scale) * 1.5rem);
}
pre {
padding: calc(var(--render-scale) * 0.75rem)
calc(var(--render-scale) * 1rem);
}
hr {
margin: calc(var(--render-scale) * 2rem) 0;
}
th,
td {
font-size: calc(var(--render-scale) * 1rem);
padding: calc(var(--render-scale) * 0.25rem)
calc(var(--render-scale) * 0.5rem);
}
.callout {
padding: calc(var(--render-scale) * 0.75rem)
calc(var(--render-scale) * 0.75rem) calc(var(--render-scale) * 0.75rem)
calc(var(--render-scale) * 1.5rem);
}
.callout-icon {
height: calc(var(--render-scale) * 1rem);
width: calc(var(--render-scale) * 1rem);
}
.math {
user-select: text;
cursor: text;
&::selection,
*::selection {
background: var(--text-selection);
}
mjx-math.smtcmp-latex-selected,
&.smtcmp-latex-selected {
background: var(--text-selection);
border-radius: 0;
}
}
}
/* Show frontmatter which is hidden by default */
.frontmatter {
display: block !important;
background-color: transparent;
border-top: 1px solid var(--background-modifier-border);
border-bottom: 1px solid var(--background-modifier-border);
}
}
.smtcmp-stream-fresh-text {
display: inline;
animation: smtcmp-stream-fresh-text-fade 120ms ease-out;
will-change: opacity, filter;
}
@keyframes smtcmp-stream-fresh-text-fade {
0% {
opacity: 0.18;
filter: blur(0.18em);
}
100% {
opacity: 1;
filter: blur(0);
}
}
.smtcmp-mention-popover {
width: 360px;
max-width: 360px;
}
.smtcmp-mention-popover-folder-path {
margin-left: auto;
padding-left: var(--size-4-2);
flex-shrink: 1;
overflow: hidden;
text-overflow: ellipsis;
direction: rtl;
white-space: nowrap;
color: var(--text-muted);
}
.smtcmp-settings-description-preserve-whitespace {
.setting-item-description {
white-space: pre-wrap;
}
}
.smtcmp-settings-desc-copyable {
.setting-item-description {
user-select: text;
cursor: text;
}
}
.smtcmp-obsidian-code-block {
pre {
margin: 0;
}
}
.smtcmp-syntax-highlighter {
margin: 0;
padding: var(--size-4-2);
font-size: var(--font-ui-small);
font-family: inherit;
}
.smtcmp-syntax-highlighter--standalone {
border-radius: var(--radius-s);
}
.smtcmp-syntax-highlighter--with-filename {
border-bottom-left-radius: var(--radius-s);
border-bottom-right-radius: var(--radius-s);
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.smtcmp-syntax-highlighter--markdown {
font-family: var(--font-interface);
}
.smtcmp-syntax-highlighter-line-wrap {
white-space: pre-wrap !important;
}
/* ============== Shared utility & overrides (audit fixes) ============== */
/* Typeahead menu container positioned via CSS variables */
.smtcmp-typeahead-menu {
position: absolute;
top: var(--smtcmp-top, 0);
left: var(--smtcmp-left, 0);
width: var(--smtcmp-width, auto);
height: var(--smtcmp-height, auto);
z-index: 1000;
}
/* Code block header button container spacing variant */
.smtcmp-code-block-header-button-container--spaced {
gap: 8px;
}
/* Status icons */
.smtcmp-icon-error {
color: var(--text-error);
}
.smtcmp-icon-success {
color: var(--text-success);
}
/* Muted small text/note */
.smtcmp-muted-note {
margin: 4px 0 8px 0;
color: var(--text-muted);
font-size: 12px;
line-height: 1.4;
}
.smtcmp-text-faint-small {
color: var(--text-faint);
font-size: 12px;
}
/* Simple flex helpers */
.smtcmp-flex-row-gap-8 {
display: flex;
gap: 8px;
}
.smtcmp-actions-right-gap-8 {
display: flex;
justify-content: flex-end;
gap: 8px;
}
.smtcmp-clickable {
cursor: pointer;
}
/* List reset & scroll panel */
.smtcmp-list-reset {
list-style: none;
padding: 0;
margin: 0;
}
.smtcmp-scroll-panel {
max-height: 300px;
overflow: auto;
}
/* Folder picker */
.smtcmp-folder-picker {
display: flex;
flex-direction: column;
gap: 8px;
}
.smtcmp-folder-empty {
padding: 8px;
opacity: 0.7;
}
.smtcmp-folder-row {
cursor: pointer;
border-radius: 0;
box-shadow: none;
border: 0;
}
.smtcmp-folder-row.is-file {
cursor: default;
}
.smtcmp-folder-row.is-file:hover {
background-color: transparent;
}
.smtcmp-folder-row.is-disabled {
cursor: not-allowed;
}
.smtcmp-folder-row:not(.is-disabled):hover {
background-color: var(--background-modifier-hover);
}
.smtcmp-icon-placeholder {
display: inline-block;
width: 16px;
}
.smtcmp-provider-expand-btn.no-children {
visibility: hidden;
}
.smtcmp-folder-name {
outline: none;
box-shadow: none;
border: none;
background: transparent;
padding: 0;
text-align: left;
color: var(--text-normal);
border-radius: 0;
pointer-events: none;
}
.smtcmp-folder-row.is-disabled .smtcmp-folder-name {
color: var(--text-faint);
}
.smtcmp-tree-root,
.smtcmp-tree-children {
list-style: none;
margin: 0;
padding-left: 0;
}
.smtcmp-tree-children {
margin-left: 0;
}
.smtcmp-tree-item {
margin: 0;
}
.smtcmp-tree-guides {
display: flex;
align-self: stretch;
pointer-events: none;
flex: 0 0 auto;
margin-right: 4px;
}
.smtcmp-tree-guide {
position: relative;
width: 16px;
flex: 0 0 16px;
}
.smtcmp-tree-guide::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 50%;
transform: translateX(-0.5px);
border-left: 1px solid var(--background-modifier-border);
}
.smtcmp-tree-guide.is-empty::before {
display: none;
}
.smtcmp-tree-guide-branch::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 16px;
transform: translate(-0.5px, -0.5px);
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-tree-guide-branch::before {
bottom: -12px;
}
.smtcmp-tree-guide-branch.is-last::before {
bottom: 50%;
}
.smtcmp-tree-icon {
display: flex;
align-items: center;
color: var(--text-muted);
}
.smtcmp-folder-row:not(.is-disabled):hover .smtcmp-tree-icon {
color: var(--text-normal);
}
.smtcmp-folder-row.is-disabled .smtcmp-tree-icon {
color: var(--text-faint);
}
/* Indent helpers using CSS variables for depth */
.smtcmp-depth {
--smtcmp-depth: 0;
}
.smtcmp-depth-0 {
--smtcmp-depth: 0;
}
.smtcmp-depth-1 {
--smtcmp-depth: 1;
}
.smtcmp-depth-2 {
--smtcmp-depth: 2;
}
.smtcmp-depth-3 {
--smtcmp-depth: 3;
}
.smtcmp-depth-4 {
--smtcmp-depth: 4;
}
.smtcmp-depth-5 {
--smtcmp-depth: 5;
}
.smtcmp-depth-6 {
--smtcmp-depth: 6;
}
.smtcmp-depth-7 {
--smtcmp-depth: 7;
}
.smtcmp-depth-8 {
--smtcmp-depth: 8;
}
.smtcmp-depth-9 {
--smtcmp-depth: 9;
}
.smtcmp-depth-10 {
--smtcmp-depth: 10;
}
/* Folder picker row indent (base 8px + depth*12px) */
.smtcmp-indent-folder {
padding-left: calc(8px + var(--smtcmp-depth) * 12px);
}
/* RAG index list indent (base 16px + depth*12px) */
.smtcmp-indent-list {
margin-left: calc(16px + var(--smtcmp-depth) * 12px);
}
.smtcmp-toolcall-container {
display: flex;
flex-direction: column;
align-items: stretch;
background: transparent;
border: none;
border-radius: 0;
.smtcmp-toolcall-border-top {
border-top: none;
}
}
.smtcmp-toolcall {
display: flex;
flex-direction: column;
align-items: stretch;
gap: var(--size-2-2);
padding: 2px 0;
font-size: var(--font-ui-smaller);
}
.smtcmp-toolcall-header {
all: unset;
box-sizing: border-box;
width: 100%;
background: transparent !important;
background-color: transparent !important;
border: 0 !important;
box-shadow: none !important;
outline: none;
padding: 2px var(--size-2-3);
display: flex;
align-items: center;
gap: var(--size-2-3);
border-radius: var(--radius-xs);
cursor: pointer;
user-select: none;
min-height: 24px;
color: var(--text-muted);
transition: color 120ms ease;
&:focus-visible {
outline: 2px solid
color-mix(in srgb, var(--interactive-accent) 55%, transparent);
outline-offset: 1px;
box-shadow: none !important;
background: transparent !important;
}
&:hover {
background-color: transparent;
color: var(--text-normal);
}
.smtcmp-toolcall-header-content {
min-width: 0;
flex: 1 1 auto;
}
.smtcmp-toolcall-header-icon {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
color: var(--text-faint);
}
.smtcmp-toolcall-header-icon--status-inline {
color: var(--text-muted);
}
.smtcmp-toolcall-header-icon--expand {
margin-left: auto;
color: var(--text-faint);
opacity: 0.9;
}
.smtcmp-toolcall-header-tool-name {
display: flex;
align-items: baseline;
gap: 2px;
min-width: 0;
font-family: var(--font-ui);
font-weight: var(--font-normal);
font-size: var(--font-ui-smaller);
line-height: 1.35;
}
.smtcmp-toolcall-header-title,
.smtcmp-toolcall-header-separator {
flex: 0 0 auto;
white-space: nowrap;
}
.smtcmp-toolcall-header-summary {
min-width: 0;
flex: 0 1 auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-toolcall-header-edit-deltas {
flex: 0 0 auto;
display: inline-flex;
align-items: baseline;
gap: 4px;
margin-left: 6px;
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
.smtcmp-toolcall-header-edit-added {
color: var(--text-success);
}
.smtcmp-toolcall-header-edit-removed {
color: var(--text-error);
}
}
.smtcmp-toolcall-content {
display: flex;
flex-direction: column;
align-items: stretch;
font-size: var(--font-smallest);
gap: var(--size-4-1);
max-height: 600px;
overflow: auto;
padding: 0 var(--size-2-3) var(--size-2-2) 24px;
margin-top: 2px;
border-left: 1px solid
color-mix(in srgb, var(--background-modifier-border) 85%, transparent);
.smtcmp-toolcall-content-section {
display: flex;
flex-direction: column;
gap: var(--size-2-3);
}
}
.smtcmp-toolcall-compaction-pending {
display: inline-flex;
align-items: center;
gap: 6px;
margin: 0 var(--size-2-3) 0 24px;
color: var(--text-faint);
font-size: var(--font-ui-smaller);
line-height: 1.4;
opacity: 1;
transform: translateY(0);
transition:
opacity 180ms ease,
transform 180ms ease;
}
.smtcmp-toolcall-compaction-pending--exiting {
opacity: 0;
transform: translateY(-4px);
}
.smtcmp-toolcall-compaction-pending-icon {
animation: smtcmp-toolcall-spin 1s linear infinite;
}
@keyframes smtcmp-toolcall-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.smtcmp-toolcall-status-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--text-faint);
}
.smtcmp-toolcall-status-success-ring {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border-radius: 50%;
border: 1.25px solid var(--interactive-accent);
color: var(--interactive-accent);
box-sizing: border-box;
}
.smtcmp-toolcall-status-success-check {
stroke-width: 2.3;
}
.smtcmp-toolcall-footer {
display: flex;
justify-content: end;
align-items: center;
padding: var(--size-4-1);
.smtcmp-toolcall-footer-actions {
display: flex;
align-items: center;
gap: var(--size-4-1);
button {
background-color: var(--background-primary-alt);
border: 1px solid var(--background-modifier-border);
box-shadow: none;
&:hover {
background-color: var(--background-modifier-hover);
border: 1px solid var(--background-modifier-border-hover);
box-shadow: none;
}
}
}
}
@media (prefers-reduced-motion: reduce) {
.smtcmp-toolcall-compaction-pending {
transition: none;
}
}
.smtcmp-split-button {
display: flex;
align-items: center;
.smtcmp-split-button-primary {
border-radius: var(--button-radius) 0 0 var(--button-radius) !important;
}
.smtcmp-split-button-toggle {
padding: var(--size-4-1);
border-radius: 0 var(--button-radius) var(--button-radius) 0 !important;
border-left: none !important;
}
}
/* Providers and Models Section Styles */
.smtcmp-models-block,
.smtcmp-providers-models-block,
.smtcmp-settings-block {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--background-secondary) 86%, white 12%);
padding: var(--size-4-3);
}
.smtcmp-models-block-head,
.smtcmp-settings-block-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--size-4-3);
margin-bottom: var(--size-4-3);
}
.smtcmp-models-block-head-title-row,
.smtcmp-settings-block-head-title-row {
min-width: 0;
}
.smtcmp-models-block-title,
.smtcmp-settings-block-title {
margin: 0;
}
.smtcmp-models-block-desc,
.smtcmp-settings-block-desc {
margin: var(--size-4-1) 0 0;
}
.smtcmp-models-block-action,
.smtcmp-settings-block-action {
display: flex;
align-items: center;
flex-shrink: 0;
}
.smtcmp-models-block-content,
.smtcmp-settings-block-content {
min-width: 0;
}
.smtcmp-models-select-card.setting-item,
.smtcmp-settings-card.setting-item {
border-radius: var(--radius-m);
padding: var(--size-4-3) !important;
margin-bottom: var(--size-4-3);
}
.smtcmp-models-select-card.setting-item {
border: 1px solid var(--background-modifier-border) !important;
background: var(--background-primary) !important;
}
.smtcmp-settings-card.setting-item {
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 45%, transparent) !important;
background: color-mix(
in srgb,
var(--background-primary) 72%,
var(--background-secondary) 28%
) !important;
}
.smtcmp-models-select-card.setting-item:last-of-type,
.smtcmp-settings-card.setting-item:last-of-type {
margin-bottom: var(--size-4-3);
}
.smtcmp-models-select-card.setting-item .setting-item-control,
.smtcmp-models-select-card.setting-item .smtcmp-item-control,
.smtcmp-settings-card.setting-item .setting-item-control,
.smtcmp-settings-card.setting-item .smtcmp-item-control {
align-self: center;
}
.smtcmp-models-textarea-card {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
padding: var(--size-4-3);
margin-bottom: var(--size-4-3);
}
.smtcmp-models-textarea-card:last-child {
margin-bottom: 0;
}
.smtcmp-models-textarea-card .setting-item {
border-top: none !important;
background: transparent;
}
.smtcmp-models-textarea-card-header.setting-item {
padding: 0 0 var(--size-4-2) 0 !important;
}
.smtcmp-models-textarea-card-body.setting-item {
padding: 0 !important;
margin-bottom: 0;
}
.smtcmp-models-textarea-card-body .setting-item-control,
.smtcmp-models-textarea-card-body .smtcmp-item-control,
.smtcmp-models-textarea-card-body .smtcmp-textarea-container {
width: 100%;
}
.smtcmp-models-textarea-card-body textarea {
width: 100%;
min-height: 120px;
}
.smtcmp-providers-models-block-head {
margin-bottom: var(--size-4-3);
}
.smtcmp-providers-models-container {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.smtcmp-provider-section {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
overflow: hidden;
cursor: grab;
transition:
border-color 160ms ease,
box-shadow 180ms ease,
background-color 160ms ease;
}
.smtcmp-provider-section:active {
cursor: grabbing;
}
/* Provider drag visual feedback */
.smtcmp-provider-dragging {
background-color: var(--background-primary);
transform: translateX(2px) scale(0.995);
opacity: 0.98;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.smtcmp-provider-section:hover,
.smtcmp-provider-section:focus-within {
border-color: var(--background-modifier-border);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
.smtcmp-provider-drag-over-before {
border-top: 2px solid var(--interactive-accent);
transition: border-top 120ms ease;
}
.smtcmp-provider-drag-over-after {
border-bottom: 2px solid var(--interactive-accent);
transition: border-bottom 120ms ease;
}
.smtcmp-provider-drag-handle {
all: unset;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-faint);
cursor: grab;
user-select: none;
padding: 0;
margin: 0;
appearance: none;
-webkit-appearance: none;
transition:
transform 120ms ease,
color 120ms ease;
}
.smtcmp-provider-drag-handle:hover {
color: var(--text-normal);
}
.smtcmp-provider-drag-handle:active {
cursor: grabbing;
}
.smtcmp-provider-main-trigger {
all: unset;
flex: 0 0 auto;
min-width: auto;
display: flex;
align-items: center;
gap: var(--size-4-2);
padding: 0;
margin: 0;
color: inherit;
text-align: left;
cursor: pointer;
}
.smtcmp-provider-main-trigger:hover,
.smtcmp-provider-main-trigger:focus,
.smtcmp-provider-main-trigger:focus-visible,
.smtcmp-provider-main-trigger:active {
background: transparent;
border: none;
box-shadow: none;
}
.smtcmp-provider-header > .smtcmp-provider-drag-handle,
.smtcmp-provider-header > .smtcmp-provider-main-trigger {
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
}
.smtcmp-provider-drag-handle svg {
width: var(--icon-m);
height: var(--icon-m);
stroke-width: var(--icon-stroke);
}
/* Provider drop success animation - reuse existing drop-flash animation */
.smtcmp-provider-drop-success {
animation: smtcmp-drop-flash 650ms ease-out;
}
.smtcmp-provider-header {
display: flex;
align-items: center;
padding: var(--size-4-2) var(--size-4-3);
background: var(--background-primary);
gap: var(--size-4-2);
}
.smtcmp-provider-header > .smtcmp-provider-drag-handle,
.smtcmp-provider-header > .smtcmp-provider-main-trigger,
.smtcmp-provider-header > .smtcmp-provider-base-url-btn,
.smtcmp-provider-header > .smtcmp-provider-secondary-trigger {
margin-block: calc(var(--size-4-2) * -1);
padding-block: var(--size-4-2);
}
.smtcmp-provider-expand-btn {
background: none;
border: none;
padding: 0;
cursor: pointer;
display: flex;
align-items: center;
color: var(--text-muted);
transition: color 0.2s;
}
.smtcmp-provider-expand-btn:hover {
color: var(--text-normal);
}
.smtcmp-provider-info {
flex: 0 0 auto;
display: flex;
align-items: center;
gap: 6px;
}
.smtcmp-provider-id {
font-weight: 600;
min-width: 120px;
color: var(--text-normal);
}
.smtcmp-provider-type {
color: var(--text-muted);
min-width: 100px;
max-width: 260px;
font-size: var(--font-ui-smaller);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-provider-base-url-btn {
all: unset;
display: inline-flex;
flex: 0 0 auto;
min-width: auto;
max-width: none;
font-size: 12px;
line-height: 1.2;
margin: 0;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
cursor: pointer;
}
.smtcmp-provider-base-url-text {
display: block;
max-width: 260px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-provider-base-url-btn:hover,
.smtcmp-provider-base-url-btn:focus-visible {
color: var(--text-normal);
text-decoration-line: underline;
text-underline-offset: 2px;
}
.smtcmp-provider-base-url-btn.is-disabled {
cursor: default;
}
.smtcmp-provider-base-url-btn.is-disabled:hover,
.smtcmp-provider-base-url-btn.is-disabled:focus-visible {
color: var(--text-muted);
text-decoration: none;
}
.smtcmp-provider-header > .smtcmp-provider-base-url-btn {
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
}
.smtcmp-provider-model-counts {
display: inline-flex;
align-items: center;
padding: 4px 10px;
border-radius: 999px;
background: color-mix(in srgb, var(--background-secondary) 82%, white 18%);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
white-space: nowrap;
}
.smtcmp-provider-secondary-trigger {
all: unset;
flex: 1 1 auto;
min-width: 0;
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
}
.smtcmp-provider-header > .smtcmp-provider-secondary-trigger {
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
}
.smtcmp-provider-api-key {
color: var(--text-accent);
cursor: pointer;
}
.smtcmp-provider-api-key:hover {
text-decoration: underline;
}
.smtcmp-provider-actions {
display: flex;
gap: var(--size-4-1);
flex-shrink: 0;
}
.smtcmp-provider-delete-confirm {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-1);
padding: 10px var(--size-4-3);
border-top: 1px solid color-mix(in srgb, var(--text-error) 18%, transparent);
background: color-mix(
in srgb,
var(--text-error) 8%,
var(--background-primary)
);
}
.smtcmp-provider-delete-confirm-copy {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
margin-right: var(--size-4-2);
}
.smtcmp-provider-delete-confirm-title {
color: var(--text-error);
font-size: var(--font-ui-smaller);
font-weight: var(--font-semibold);
line-height: 1.2;
}
.smtcmp-provider-delete-confirm-meta {
color: var(--text-muted);
font-size: 11px;
line-height: 1.3;
white-space: normal;
}
.smtcmp-provider-delete-confirm-actions {
display: flex;
align-items: center;
gap: var(--size-4-1);
flex-shrink: 0;
}
.smtcmp-provider-delete-cancel,
.smtcmp-provider-delete-confirm-btn {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: 4px 10px;
font-size: var(--font-ui-smaller);
line-height: 1.2;
white-space: nowrap;
}
.smtcmp-provider-delete-cancel {
background: var(--background-primary);
color: var(--text-muted);
}
.smtcmp-provider-delete-cancel:hover,
.smtcmp-provider-delete-cancel:focus-visible {
color: var(--text-normal);
border-color: color-mix(
in srgb,
var(--background-modifier-border-hover) 72%,
transparent
);
}
.smtcmp-provider-delete-confirm-btn {
border-color: color-mix(in srgb, var(--text-error) 32%, transparent);
background: color-mix(
in srgb,
var(--text-error) 14%,
var(--background-primary)
);
color: var(--text-error);
}
.smtcmp-provider-delete-confirm-btn:hover,
.smtcmp-provider-delete-confirm-btn:focus-visible {
border-color: color-mix(in srgb, var(--text-error) 46%, transparent);
background: color-mix(
in srgb,
var(--text-error) 18%,
var(--background-primary)
);
}
.smtcmp-provider-actions .clickable-icon {
width: 28px;
height: 28px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-s);
}
.smtcmp-provider-actions .clickable-icon:hover,
.smtcmp-provider-actions .clickable-icon:focus-visible {
background: color-mix(in srgb, var(--background-secondary) 88%, transparent);
}
.smtcmp-provider-actions .clickable-icon svg {
width: 18px;
height: 18px;
}
.smtcmp-provider-models {
padding: var(--size-4-3);
background: var(--background-primary);
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-models-subsection {
margin-bottom: var(--size-4-3);
}
.smtcmp-models-subsection:last-child {
margin-bottom: 0;
}
.smtcmp-models-subsection-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--size-4-2);
font-weight: 500;
}
.smtcmp-add-model-btn {
font-size: var(--font-ui-smaller);
padding: var(--size-2-1) var(--size-4-2);
background-color: var(--interactive-accent);
color: var(--text-on-accent);
border: none;
border-radius: var(--button-radius);
cursor: pointer;
}
.smtcmp-add-model-btn:hover {
background-color: var(--interactive-accent-hover);
}
.smtcmp-chatgpt-oauth-disconnect-btn {
background-color: var(--background-secondary);
color: var(--text-normal);
border: 1px solid var(--background-modifier-border);
}
.smtcmp-chatgpt-oauth-disconnect-btn:hover {
background-color: var(--background-modifier-hover);
}
.smtcmp-chatgpt-oauth-note {
margin-top: calc(var(--size-4-1) * -1);
padding: 0 var(--size-4-3);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: 1.5;
text-align: center;
}
.smtcmp-models-table {
width: 100%;
border-collapse: collapse;
font-size: var(--font-ui-smaller);
}
.smtcmp-models-table .smtcmp-drag-handle {
all: unset;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
cursor: grab;
}
.smtcmp-models-table .smtcmp-drag-handle:hover,
.smtcmp-models-table .smtcmp-drag-handle:focus,
.smtcmp-models-table .smtcmp-drag-handle:focus-visible,
.smtcmp-models-table .smtcmp-drag-handle:active {
background: transparent;
border: 0;
box-shadow: none;
color: var(--text-normal);
}
.smtcmp-models-table .smtcmp-drag-handle:active {
cursor: grabbing;
}
.smtcmp-models-table th {
text-align: left;
padding: var(--size-2-2) var(--size-4-2);
border-bottom: 1px solid var(--background-modifier-border);
font-weight: 500;
color: var(--text-muted);
}
.smtcmp-models-table td {
padding: var(--size-2-2) var(--size-4-2);
border-bottom: 1px solid var(--background-modifier-border);
}
.smtcmp-models-table tr:last-child td {
border-bottom: none;
}
.smtcmp-no-models {
padding: var(--size-4-3);
text-align: center;
color: var(--text-muted);
font-style: italic;
}
/* Embedding models table column sizing */
/* Note: Embedding table uses
with last two 60px columns to align with chat models */
@media (max-width: 720px) {
.smtcmp-models-block,
.smtcmp-providers-models-block {
padding: var(--size-4-2);
}
.smtcmp-models-block-head {
flex-direction: column;
align-items: stretch;
gap: var(--size-4-2);
}
.smtcmp-providers-models-block-head {
margin-bottom: var(--size-4-2);
}
.smtcmp-models-block-action {
justify-content: flex-end;
}
.smtcmp-provider-header {
padding-inline: var(--size-4-2);
}
.smtcmp-provider-delete-confirm {
flex-wrap: wrap;
padding-inline: var(--size-4-2);
}
.smtcmp-provider-delete-confirm-copy {
width: 100%;
margin-right: 0;
}
.smtcmp-provider-delete-confirm-actions {
width: 100%;
justify-content: flex-end;
}
}
.smtcmp-chat-model-modal-form .setting-item:not(.smtcmp-settings-kv-entry) {
align-items: flex-start;
padding-top: var(--size-4-2) !important;
padding-bottom: var(--size-4-2) !important;
}
.smtcmp-chat-model-modal-form
.setting-item:not(.smtcmp-settings-kv-entry)
.setting-item-description {
margin-top: 6px;
}
.smtcmp-modality-field {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
padding: var(--size-4-2) 0;
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-modality-field-header {
display: flex;
flex-direction: column;
gap: 4px;
}
.smtcmp-modality-field-label {
font-size: var(--font-ui-small);
font-weight: var(--font-semibold);
color: var(--text-normal);
}
.smtcmp-modality-field-desc {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: 1.4;
}
.smtcmp-modality-chips {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.smtcmp-modality-chip,
.smtcmp-modality-chip:hover,
.smtcmp-modality-chip:focus,
.smtcmp-modality-chip:focus-visible,
.smtcmp-modality-chip:active {
box-shadow: none !important;
outline: none !important;
}
.smtcmp-modality-chip {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
border-radius: 8px;
border: 1px solid var(--background-modifier-border);
background: var(--background-primary);
color: var(--text-muted);
font-size: var(--font-ui-small);
cursor: pointer;
transition:
background 0.12s ease,
border-color 0.12s ease,
color 0.12s ease;
}
.smtcmp-modality-chip:hover {
border-color: var(--background-modifier-border-hover);
color: var(--text-normal);
}
.smtcmp-modality-chip.is-active {
border-color: var(--interactive-accent);
background: color-mix(in srgb, var(--interactive-accent) 14%, transparent);
color: var(--interactive-accent);
}
.smtcmp-modality-chip-label {
font-weight: var(--font-medium);
}
.smtcmp-modality-chip-sub {
font-family: var(--font-monospace);
font-size: var(--font-ui-smaller);
color: var(--text-faint);
}
.smtcmp-modality-chip.is-active .smtcmp-modality-chip-sub {
color: color-mix(in srgb, var(--interactive-accent) 70%, transparent);
}
.smtcmp-provider-form .setting-item:not(.smtcmp-settings-kv-entry) {
align-items: center;
padding-top: var(--size-4-2) !important;
padding-bottom: var(--size-4-2) !important;
}
.smtcmp-provider-form
.setting-item:not(.smtcmp-settings-kv-entry)
.setting-item-description {
margin-top: 6px;
}
/* MCP Section Styles */
.smtcmp-mcp-servers-container {
display: flex;
flex-direction: column;
}
.smtcmp-mcp-servers-header {
display: grid;
grid-template-columns: 1fr 128px 64px 112px; /* Match columns with .smtcmp-mcp-server-row to ensure proper alignment */
gap: var(--size-4-4);
align-items: center;
min-height: var(--size-4-10);
border-bottom: var(--border-width) solid var(--background-modifier-border);
font-weight: var(--font-medium);
color: var(--text-muted);
& > div {
padding: var(--size-4-1);
}
& > div:nth-child(1) {
text-align: left;
}
& > div:nth-child(2) {
text-align: left;
}
& > div:nth-child(3) {
text-align: center;
}
& > div:nth-child(4) {
text-align: center;
}
}
.smtcmp-mcp-servers-empty {
padding: var(--size-4-4) 0;
display: flex;
justify-content: center;
align-items: center;
color: var(--text-muted);
}
.smtcmp-mcp-server {
border-bottom: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-mcp-server-row {
display: grid;
grid-template-columns: 1fr 128px 64px 112px; /* Match columns with .smtcmp-mcp-servers-header to ensure proper alignment */
gap: var(--size-4-4);
align-items: center;
min-height: var(--size-4-10);
& > div {
padding: var(--size-4-1);
}
}
.smtcmp-mcp-server-name {
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-mcp-server-status {
display: flex;
justify-content: flex-start;
}
.smtcmp-mcp-server-toggle {
display: flex;
justify-content: center;
}
.smtcmp-mcp-server-actions {
display: flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
svg {
height: var(--icon-l);
width: var(--icon-l);
stroke-width: var(--icon-stroke);
}
}
.smtcmp-server-expanded-info {
margin-bottom: var(--size-4-4);
padding-left: var(--size-4-4);
border-left: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-server-expanded-info-header {
font-weight: var(--font-medium);
margin-bottom: var(--size-4-3);
}
.smtcmp-server-tools-container {
display: flex;
flex-direction: column;
gap: var(--size-4-4);
}
.smtcmp-server-error-message {
color: var(--text-error);
font-weight: var(--font-medium);
font-family: var(--font-monospace);
font-size: var(--font-ui-small);
user-select: text;
}
.smtcmp-mcp-server-status-badge {
border-radius: 9999px;
padding: var(--size-2-1) var(--size-4-2);
display: flex;
align-items: center;
gap: var(--size-4-1);
line-height: 1;
}
.smtcmp-mcp-server-status-badge-label {
font-size: var(--font-ui-smaller);
}
.smtcmp-mcp-server-status-badge--connected {
background-color: color-mix(in srgb, var(--text-success) 10%, transparent);
color: var(--text-success);
}
.smtcmp-mcp-server-status-badge--connecting {
background-color: color-mix(in srgb, var(--text-muted) 10%, transparent);
color: var(--text-muted);
}
.smtcmp-mcp-server-status-badge--error {
background-color: color-mix(in srgb, var(--text-error) 10%, transparent);
color: var(--text-error);
}
.smtcmp-mcp-server-status-badge--disconnected {
background-color: color-mix(in srgb, var(--text-muted) 10%, transparent);
color: var(--text-muted);
}
.smtcmp-mcp-tool {
display: grid;
grid-template-columns: 1fr auto auto;
gap: var(--size-4-4);
align-items: center;
}
.smtcmp-mcp-tool-info {
display: flex;
flex-direction: column;
}
.smtcmp-mcp-tool-name {
font-family: var(--font-monospace);
font-size: var(--font-ui-smaller);
}
.smtcmp-mcp-tool-description {
position: relative;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.smtcmp-mcp-tool-description-header {
display: flex;
align-items: center;
gap: var(--size-2-1);
}
.smtcmp-mcp-tool-description-text.is-clamped {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
line-clamp: 3;
overflow: hidden;
}
.smtcmp-mcp-tool-description-text.is-expanded {
white-space: pre-wrap;
}
.smtcmp-mcp-tool-description > button.smtcmp-mcp-tool-description-toggle {
position: absolute;
top: 0;
right: 0;
}
.smtcmp-mcp-tool-description
> button.smtcmp-mcp-tool-description-toggle
~ .smtcmp-mcp-tool-description-text {
padding-right: var(--size-4-6);
}
button.smtcmp-mcp-tool-description-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
padding: 0;
color: var(--text-muted);
background: transparent;
border: none;
box-shadow: none;
cursor: pointer;
transition: transform 0.15s ease;
flex-shrink: 0;
}
button.smtcmp-mcp-tool-description-toggle:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}
button.smtcmp-mcp-tool-description-toggle.is-expanded {
transform: rotate(180deg);
}
.smtcmp-mcp-tool-toggle {
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-mcp-tool-toggle-label {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
/* MCP Server Modal Styles */
.smtcmp-mcp-parameters-header {
display: block;
}
.smtcmp-mcp-parameters-title-row {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
}
.smtcmp-mcp-parameters-header .setting-item-description {
margin-top: var(--size-2-1);
}
.smtcmp-mcp-parameters-info-icon {
all: unset;
appearance: none;
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border: none !important;
box-shadow: none !important;
border-radius: 50%;
cursor: pointer;
flex-shrink: 0;
margin-top: 0;
color: var(--text-muted);
background: transparent !important;
&:hover {
color: var(--text-normal);
background: transparent !important;
}
&:focus-visible {
outline: 2px solid var(--interactive-accent);
outline-offset: 1px;
}
}
.smtcmp-mcp-sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.smtcmp-tooltip-content--wide {
width: min(360px, calc(100vw - 24px));
max-width: min(360px, calc(100vw - 24px));
padding: var(--size-4-2) var(--size-4-3);
border: 1px solid var(--background-modifier-border) !important;
border-radius: var(--radius-s);
background: var(--background-primary);
z-index: 10000 !important;
}
.smtcmp-mcp-parameters-tooltip {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
}
.smtcmp-mcp-parameters-tooltip-title {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
color: var(--text-normal);
margin-bottom: var(--size-2-1);
}
.smtcmp-mcp-parameters-tooltip-line {
font-size: var(--font-ui-smaller);
line-height: 1.5;
color: var(--text-normal);
word-wrap: break-word;
}
.smtcmp-mcp-parameters-tooltip-keyword {
color: var(--text-muted);
margin-right: var(--size-2-1);
font-weight: var(--font-medium);
}
.smtcmp-mcp-parameters-tooltip-tip {
font-size: var(--font-ui-smaller);
line-height: 1.5;
color: var(--text-muted);
margin-top: var(--size-2-2);
padding-top: var(--size-2-2);
border-top: 1px dashed var(--background-modifier-border);
}
.smtcmp-mcp-server-modal-textarea {
width: 100%;
font-family: var(--font-monospace);
resize: none;
word-break: break-all;
}
.smtcmp-mcp-server-modal-validation {
font-family: var(--font-monospace);
font-size: var(--font-ui-small);
padding: var(--size-4-1) 0;
white-space: pre-wrap;
&.smtcmp-mcp-server-modal-validation--error {
color: var(--text-error);
}
&.smtcmp-mcp-server-modal-validation--success {
color: var(--text-success);
}
}
.smtcmp-rag-layout {
display: flex;
flex-direction: column;
gap: var(--size-4-4);
}
.smtcmp-rag-card {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--background-secondary) 86%, white 12%);
padding: var(--size-4-3);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.smtcmp-rag-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--size-4-3);
margin-bottom: var(--size-4-3);
}
.smtcmp-rag-card-header-copy {
min-width: 0;
}
.smtcmp-rag-card-title {
color: var(--text-normal);
font-size: var(--h3-size);
line-height: var(--line-height-tight);
font-weight: var(--h3-weight);
}
.smtcmp-rag-card-description {
margin-top: var(--size-2-1);
color: var(--text-muted);
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
}
.smtcmp-rag-card-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: var(--size-4-2);
}
.smtcmp-rag-card-body > .setting-item:first-child {
border-top: none;
padding-top: 0;
}
.smtcmp-rag-card-body > .setting-item:last-child {
padding-bottom: 0;
}
.smtcmp-rag-scope-group {
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 45%, transparent);
border-radius: var(--radius-m);
background: color-mix(
in srgb,
var(--background-primary) 72%,
var(--background-secondary) 28%
);
margin-bottom: var(--size-4-3);
overflow: hidden;
}
.smtcmp-rag-scope-group:last-of-type {
margin-bottom: var(--size-4-3);
}
.smtcmp-rag-scope-group-setting.setting-item {
border: none !important;
background: transparent !important;
margin-bottom: 0;
padding: var(--size-4-3) !important;
}
.smtcmp-rag-scope-group-body {
padding: 0 var(--size-4-3) var(--size-4-3);
}
.smtcmp-rag-resource-summary {
display: flex;
flex-wrap: wrap;
gap: var(--size-4-2);
margin-bottom: var(--size-4-3);
}
.smtcmp-rag-status-pill {
display: inline-flex;
align-items: center;
min-height: 28px;
padding: 0 10px;
border-radius: 999px;
border: 1px solid var(--background-modifier-border);
background: color-mix(in srgb, var(--background-secondary) 90%, transparent);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
}
.smtcmp-rag-status-pill.is-ready {
color: var(--text-success);
border-color: color-mix(in srgb, var(--text-success) 25%, transparent);
background: color-mix(in srgb, var(--text-success) 8%, transparent);
}
.smtcmp-rag-status-pill.is-warning {
color: var(--text-warning);
border-color: color-mix(in srgb, var(--text-warning) 25%, transparent);
background: color-mix(in srgb, var(--text-warning) 10%, transparent);
}
.smtcmp-rag-status-pill.is-danger {
color: var(--text-error);
border-color: color-mix(in srgb, var(--text-error) 25%, transparent);
background: color-mix(in srgb, var(--text-error) 10%, transparent);
}
.smtcmp-rag-inline-status {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
margin-bottom: var(--size-4-3);
padding: var(--size-4-2) var(--size-4-3);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--background-secondary) 55%, transparent);
}
.smtcmp-rag-inline-status--error {
border-color: color-mix(in srgb, var(--text-error) 25%, transparent);
background: color-mix(in srgb, var(--text-error) 8%, transparent);
}
.smtcmp-rag-inline-status-title {
color: var(--text-error);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-rag-inline-status-text {
color: var(--text-normal);
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
word-break: break-word;
}
.smtcmp-rag-inline-progress {
overflow: hidden;
width: 100%;
height: 6px;
border-radius: 999px;
background: color-mix(
in srgb,
var(--background-modifier-border) 65%,
transparent
);
}
.smtcmp-rag-inline-progress-bar {
height: 100%;
border-radius: inherit;
background: var(--interactive-accent);
transition: width 160ms ease;
}
/* RAG maintenance row: title + inline status + actions */
.smtcmp-rag-maintenance-setting .setting-item-info {
flex: 1 1 auto;
min-width: 0;
}
.smtcmp-rag-maintenance-setting .setting-item-name.smtcmp-setting-name-row {
display: flex;
align-items: center;
gap: var(--size-4-3);
width: 100%;
min-width: 0;
}
.smtcmp-rag-maintenance-setting
.setting-item-name.smtcmp-setting-name-row
.smtcmp-setting-name-extra {
flex: 1 1 auto;
min-width: 0;
display: flex;
justify-content: flex-end;
}
.smtcmp-rag-maintenance-setting .setting-item-control {
align-items: center;
justify-content: flex-end;
flex: 0 0 auto;
}
.smtcmp-index-inline-status {
display: flex;
align-items: center;
gap: var(--size-2-3);
flex: 0 1 auto;
min-width: 0;
max-width: 100%;
}
.smtcmp-rag-maintenance-actions {
flex: 0 0 auto;
}
.smtcmp-index-ring {
flex-shrink: 0;
}
.smtcmp-index-ring svg {
display: block;
}
.smtcmp-index-ring-track {
stroke: var(--background-modifier-border);
}
.smtcmp-index-ring-fill {
stroke: var(--interactive-accent);
}
.smtcmp-index-current-file {
flex: 1 1 auto;
min-width: 0;
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
font-size: var(--font-ui-smaller);
color: var(--text-faint);
font-family: var(--font-monospace);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-index-current-file-prefix {
flex: 0 0 4ch;
width: 4ch;
text-align: right;
color: var(--text-muted);
}
.smtcmp-index-current-file-viewport {
position: relative;
flex: 0 0 clamp(18ch, 24vw, 30ch);
width: clamp(18ch, 24vw, 30ch);
min-width: clamp(18ch, 24vw, 30ch);
max-width: clamp(18ch, 24vw, 30ch);
height: 1.35em;
overflow: hidden;
}
.smtcmp-index-current-file-text {
display: block;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-index-current-file-text.is-entering,
.smtcmp-index-current-file-text.is-leaving {
position: absolute;
inset: 0;
}
.smtcmp-index-current-file-text.is-entering {
animation: smtcmp-index-file-enter 120ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-index-current-file-text.is-leaving {
animation: smtcmp-index-file-leave 120ms cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes smtcmp-index-file-enter {
from {
opacity: 0.35;
transform: translateY(5px);
filter: blur(1px);
}
to {
opacity: 1;
transform: translateY(0);
filter: blur(0);
}
}
@keyframes smtcmp-index-file-leave {
from {
opacity: 1;
transform: translateY(0);
filter: blur(0);
}
to {
opacity: 0;
transform: translateY(-5px);
filter: blur(1px);
}
}
@media (max-width: 900px) {
.smtcmp-rag-card-header {
flex-direction: column;
}
.smtcmp-rag-card-actions {
width: 100%;
justify-content: flex-start;
}
.smtcmp-rag-maintenance-setting .setting-item {
align-items: flex-start;
}
.smtcmp-rag-maintenance-setting .setting-item-name.smtcmp-setting-name-row {
flex-direction: column;
align-items: flex-start;
}
.smtcmp-rag-maintenance-setting
.setting-item-name.smtcmp-setting-name-row
.smtcmp-setting-name-extra {
width: 100%;
justify-content: flex-start;
}
.smtcmp-index-current-file-viewport {
flex: 1 1 auto;
width: min(100%, 30ch);
min-width: 0;
max-width: min(100%, 30ch);
}
.smtcmp-rag-maintenance-setting .setting-item-control {
width: 100%;
justify-content: flex-start;
}
}
/* Template Section Styles */
.smtcmp-templates-container {
display: flex;
flex-direction: column;
}
.smtcmp-templates-header {
display: grid;
grid-template-columns: 1fr 112px; /* Name and Actions columns */
gap: var(--size-4-4);
align-items: center;
min-height: var(--size-4-10);
border-bottom: var(--border-width) solid var(--background-modifier-border);
font-weight: var(--font-medium);
color: var(--text-muted);
& > div {
padding: var(--size-4-1);
}
& > div:nth-child(1) {
text-align: left;
}
& > div:nth-child(2) {
text-align: center;
}
}
.smtcmp-templates-empty {
padding: var(--size-4-4) 0;
display: flex;
justify-content: center;
align-items: center;
color: var(--text-muted);
}
.smtcmp-template {
border-bottom: var(--border-width) solid var(--background-modifier-border);
}
.smtcmp-template-row {
display: grid;
grid-template-columns: 1fr 112px; /* Match columns with .smtcmp-templates-header */
gap: var(--size-4-4);
align-items: center;
min-height: var(--size-4-10);
& > div {
padding: var(--size-4-1);
}
}
.smtcmp-template-name {
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-template-actions {
display: flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
svg {
height: var(--icon-l);
width: var(--icon-l);
stroke-width: var(--icon-stroke);
}
}
.smtcmp-continue-response-button-container {
display: flex;
justify-content: center;
padding: var(--size-4-1) 0;
}
.smtcmp-continue-response-button {
display: flex;
align-items: center;
gap: var(--size-4-1);
}
/* Assistant selector styles - matched with model selector */
.smtcmp-chat-header-right button.smtcmp-assistant-selector-button {
all: unset;
display: flex !important;
align-items: center !important;
gap: 4px !important;
background-color: transparent !important;
box-shadow: none !important;
border: 0 !important;
padding: 0 !important;
font-size: var(--font-smallest) !important;
font-weight: var(--font-medium) !important;
color: var(--text-muted) !important;
cursor: pointer !important;
height: auto !important;
}
.smtcmp-chat-header-right button.smtcmp-assistant-selector-button:hover {
color: var(--text-normal) !important;
background-color: transparent !important;
}
.smtcmp-chat-header-right
button.smtcmp-assistant-selector-button[data-state='open'] {
color: var(--text-normal) !important;
}
.smtcmp-chat-header-right .smtcmp-assistant-selector-current {
flex-shrink: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-chat-header-right .smtcmp-assistant-selector-icon {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}
.smtcmp-assistant-selector-current-icon {
width: 18px;
height: 18px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
background: linear-gradient(
135deg,
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 90%,
transparent
),
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 60%,
#ffffff 12%
)
);
color: var(--text-on-accent, #ffffff);
box-shadow: 0 0 8px rgba(var(--interactive-accent-rgb, 128 90 213), 0.25);
}
.smtcmp-assistant-selector-current-icon svg {
width: 12px;
height: 12px;
}
.smtcmp-assistant-selector-content {
padding: var(--size-2-1);
min-width: 240px;
max-width: 320px;
border-radius: var(--radius-m);
overflow: hidden;
}
.smtcmp-assistant-selector-content.smtcmp-assistant-selector-content--workspace-floating {
width: auto;
min-width: max(var(--radix-popover-trigger-width, 0px), 200px);
max-width: 240px;
}
.smtcmp-assistant-selector-empty {
padding: var(--size-4-2);
color: var(--text-muted);
text-align: center;
font-size: var(--font-smallest);
}
.smtcmp-assistant-selector-list {
max-height: 300px;
overflow-y: auto;
padding: var(--size-2-1);
border-radius: var(--radius-s);
scrollbar-width: thin;
}
.smtcmp-assistant-selector-row {
list-style: none;
}
.smtcmp-assistant-selector-content .smtcmp-assistant-selector-row {
margin: 0;
padding: 0;
min-width: 0;
min-height: 0;
max-height: none;
border: 0;
border-radius: 0;
background: transparent;
display: block;
overflow: visible;
cursor: default;
line-height: inherit;
font-size: inherit;
gap: 0;
}
.smtcmp-assistant-selector-content
.smtcmp-assistant-selector-list::-webkit-scrollbar {
width: 8px;
}
.smtcmp-assistant-selector-content
.smtcmp-assistant-selector-list::-webkit-scrollbar-track {
background: transparent;
margin: 8px 0;
}
.smtcmp-assistant-selector-content
.smtcmp-assistant-selector-list::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--text-muted) 30%, transparent);
border-radius: 4px;
border: 2px solid transparent;
background-clip: padding-box;
}
.smtcmp-assistant-selector-content
.smtcmp-assistant-selector-list::-webkit-scrollbar-thumb:hover {
background: color-mix(in srgb, var(--text-muted) 50%, transparent);
background-clip: padding-box;
}
.smtcmp-assistant-selector-content .smtcmp-assistant-selector-item {
display: flex;
width: 100%;
align-items: center;
gap: var(--size-4-2);
padding: var(--size-4-1) var(--size-4-2);
border-radius: var(--radius-m);
text-align: left;
font-family: inherit;
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
appearance: none;
cursor: pointer;
transition: background-color 0.15s ease;
background-color: transparent;
box-shadow: none;
border: 0;
}
.smtcmp-assistant-selector-content .smtcmp-assistant-selector-item:hover {
background-color: color-mix(
in srgb,
var(--background-modifier-hover) 90%,
transparent
);
}
.smtcmp-assistant-selector-content .smtcmp-assistant-selector-item.selected {
background-color: color-mix(
in srgb,
var(--interactive-accent) 10%,
transparent
);
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 60%, transparent);
}
.smtcmp-assistant-selector-content .smtcmp-assistant-selector-item:active {
transform: translateY(1px);
}
.smtcmp-assistant-selector-content
.smtcmp-assistant-selector-item[data-highlighted='true'] {
background-color: color-mix(
in srgb,
var(--interactive-accent) 14%,
transparent
);
box-shadow: 0 0 0 1px
color-mix(in srgb, var(--interactive-accent) 40%, transparent);
}
.smtcmp-assistant-selector-item-icon {
width: 22px;
height: 22px;
border-radius: var(--radius-s);
background: linear-gradient(
140deg,
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 85%,
transparent
),
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 55%,
#ffffff 10%
)
);
color: var(--text-on-accent, #ffffff);
display: flex;
align-items: center;
justify-content: center;
}
.smtcmp-assistant-selector-item-icon svg {
width: 12px;
height: 12px;
}
.smtcmp-assistant-selector-item-content {
flex: 1;
min-width: 0;
}
.smtcmp-assistant-selector-item-name {
font-weight: var(--font-medium);
color: var(--text-normal);
}
.smtcmp-assistant-selector-item-description {
font-size: var(--font-smallest);
color: var(--text-muted);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.smtcmp-assistant-selector-item-current {
font-size: var(--font-smallest);
color: var(--interactive-accent);
font-weight: var(--font-medium);
}
/* Folder Picker: flatten rows and remove container visuals */
.smtcmp-folder-picker .smtcmp-provider-header {
background-color: transparent !important;
border: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
padding: 4px 8px;
gap: 8px;
}
.smtcmp-folder-picker .smtcmp-provider-header:hover {
background-color: var(--background-modifier-hover) !important;
}
.smtcmp-folder-picker .smtcmp-provider-header * {
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
outline: none !important;
}
.smtcmp-folder-picker [role='button']:focus,
.smtcmp-folder-picker [role='button']:focus-visible,
.smtcmp-folder-picker [role='button']:active {
outline: none !important;
box-shadow: none !important;
}
.smtcmp-folder-picker .smtcmp-provider-expand-btn {
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
width: 18px;
}
/* ===== Added for review fixes: move inline styles to CSS ===== */
/* Wide modal (instead of setting width via JS) */
.smtcmp-modal--wide {
width: 720px;
}
/* Typeahead menu container (avoid inline display/position) */
.smtcmp-typeahead-menu {
position: absolute;
display: block;
}
/* ApplyView: diff content width */
.smtcmp-diff-block-content {
width: 100%;
}
/* Assistants Section */
.smtcmp-settings-header-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.smtcmp-settings-header-row .smtcmp-settings-header {
margin: 0;
}
.smtcmp-add-assistant-btn {
display: flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
border-radius: 4px;
background: var(--interactive-accent);
color: var(--text-on-accent);
border: none;
cursor: pointer;
font-size: 14px;
font-weight: 500;
transition: background-color 0.2s ease;
}
.smtcmp-no-assistants {
padding: 24px;
text-align: center;
background: var(--background-secondary);
border-radius: 8px;
border: 1px dashed var(--background-modifier-border);
color: var(--text-muted);
font-size: 15px;
}
.smtcmp-no-assistants-text {
margin: 0;
}
/* Assistant Editor */
.smtcmp-assistant-editor {
background: var(--background-secondary);
border-radius: var(--radius-m);
padding: 16px;
margin: 8px 0;
border: 1px solid var(--background-modifier-border);
}
.smtcmp-assistant-editor-inline {
margin-top: 0;
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
animation: smtcmp-assistant-editor-slide-in 0.25s
cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes smtcmp-assistant-editor-slide-in {
0% {
opacity: 0;
max-height: 0;
padding-top: 0;
padding-bottom: 0;
}
100% {
opacity: 1;
max-height: 800px;
padding-top: 16px;
padding-bottom: 16px;
}
}
.smtcmp-assistant-editor-new {
animation: smtcmp-assistant-editor-fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes smtcmp-assistant-editor-fade-in {
0% {
opacity: 0;
transform: translateY(-8px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.smtcmp-assistant-editor-buttons {
display: flex;
gap: 8px;
justify-content: flex-end;
margin-top: 12px;
}
/* Assistants List */
.smtcmp-assistants-list {
display: flex;
flex-direction: column;
gap: 4px;
margin-top: 12px;
}
/* Assistant Item */
.smtcmp-assistant-item {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 12px;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
transition: all 0.2s ease;
cursor: grab;
}
.smtcmp-assistant-item:hover {
background: var(--background-secondary);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.smtcmp-assistant-item.editing {
border-color: var(--interactive-accent);
box-shadow: 0 0 0 2px rgba(var(--interactive-accent-rgb), 0.1);
cursor: default;
}
.smtcmp-assistant-item.active {
border-color: var(--interactive-accent);
background: var(--background-primary-alt);
}
.smtcmp-assistant-item.disabled {
opacity: 0.5;
}
.smtcmp-assistant-item.disabled .smtcmp-assistant-content {
pointer-events: none;
}
.smtcmp-assistant-item.smtcmp-assistant-item-dragging {
opacity: 0.5;
cursor: grabbing;
}
.smtcmp-assistant-item.smtcmp-assistant-item-drop-success {
animation: smtcmp-assistant-drop-success 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes smtcmp-assistant-drop-success {
0%,
100% {
transform: scale(1);
background: var(--background-primary);
}
25% {
transform: scale(0.98);
}
50% {
background: rgba(var(--interactive-accent-rgb), 0.25);
transform: scale(1.01);
}
}
/* Drag Handle */
.smtcmp-assistant-drag-handle {
display: flex;
align-items: center;
justify-content: center;
cursor: grab;
color: var(--text-faint);
transition: color 0.2s ease;
flex-shrink: 0;
}
.smtcmp-assistant-drag-handle:hover {
color: var(--text-muted);
}
.smtcmp-assistant-drag-handle .smtcmp-drag-handle {
display: flex;
padding: 2px;
}
.smtcmp-assistant-drag-handle .smtcmp-drag-handle.smtcmp-drag-handle--active {
color: var(--interactive-accent);
}
/* Assistant Content */
.smtcmp-assistant-content {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.smtcmp-assistant-header {
display: flex;
align-items: center;
gap: 10px;
}
.smtcmp-assistant-icon {
width: 28px;
height: 28px;
border-radius: var(--radius-s);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
background: var(--interactive-accent);
color: var(--text-on-accent);
transition: all 0.2s ease;
}
.smtcmp-assistant-icon svg {
width: 16px;
height: 16px;
}
.smtcmp-assistant-info {
flex: 1;
min-width: 0;
}
.smtcmp-assistant-name {
font-weight: 500;
font-size: 14px;
color: var(--text-normal);
display: flex;
align-items: center;
gap: 8px;
line-height: 1.4;
}
.smtcmp-assistant-badge {
font-size: 11px;
font-weight: 600;
color: var(--interactive-accent);
background: rgba(var(--interactive-accent-rgb), 0.1);
padding: 2px 8px;
border-radius: var(--radius-s);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.smtcmp-assistant-description {
font-size: 12px;
color: var(--text-muted);
line-height: 1.4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Assistant Controls */
.smtcmp-assistant-controls {
display: flex;
align-items: center;
gap: 4px;
flex-shrink: 0;
margin-left: auto;
}
.smtcmp-assistant-controls button {
padding: 6px;
min-width: unset;
height: auto;
}
.smtcmp-assistant-controls button:hover:not(:disabled) {
background: var(--background-modifier-hover);
}
.smtcmp-assistant-controls button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.smtcmp-assistant-controls button svg {
width: 16px;
height: 16px;
}
/* Editor specific styles */
.smtcmp-assistant-editor .setting-item {
margin-bottom: 12px;
}
.smtcmp-assistant-editor .setting-item:first-child {
margin-top: 0;
}
.smtcmp-assistant-editor textarea {
min-height: 100px;
}
/* ==================== Assistant Icon Picker Modal ==================== */
.smtcmp-icon-picker-modal {
padding: var(--size-4-4);
}
.smtcmp-icon-picker-content h2 {
margin: 0 0 var(--size-4-4) 0;
font-size: var(--font-ui-medium);
font-weight: 600;
color: var(--text-normal);
}
.smtcmp-icon-picker-tabs {
display: flex;
gap: var(--size-2-1);
margin-bottom: var(--size-4-4);
border-bottom: 1px solid var(--background-modifier-border);
}
.smtcmp-icon-picker-tab {
padding: var(--size-4-1) var(--size-4-3);
background: transparent;
border: none;
border-bottom: 2px solid transparent;
color: var(--text-muted);
font-size: var(--font-ui-small);
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
}
.smtcmp-icon-picker-tab:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}
.smtcmp-icon-picker-tab.active {
color: var(--interactive-accent);
border-bottom-color: var(--interactive-accent);
}
.smtcmp-icon-picker-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
gap: var(--size-2-2);
max-height: 400px;
overflow-y: auto;
padding: var(--size-2-1);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
}
.smtcmp-icon-picker-item {
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
background: var(--background-secondary);
border: 2px solid transparent;
border-radius: var(--radius-s);
cursor: pointer;
transition: all 0.15s ease;
}
.smtcmp-icon-picker-item:hover {
background: var(--background-modifier-hover);
border-color: var(--background-modifier-border-hover);
transform: scale(1.05);
}
.smtcmp-icon-picker-item.selected {
background: var(--interactive-accent-hover);
border-color: var(--interactive-accent);
}
.smtcmp-icon-picker-item-preview {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
color: var(--text-normal);
}
.smtcmp-icon-picker-custom-emoji {
display: flex;
gap: var(--size-4-2);
margin-bottom: var(--size-4-4);
align-items: center;
}
.smtcmp-icon-picker-emoji-input {
flex: 1;
padding: var(--size-4-2);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
background: var(--background-primary);
color: var(--text-normal);
font-size: var(--font-ui-medium);
}
.smtcmp-icon-picker-emoji-input:focus {
outline: none;
border-color: var(--interactive-accent);
}
.smtcmp-icon-picker-confirm-btn {
padding: var(--size-4-2) var(--size-4-4);
background: var(--interactive-accent);
color: var(--text-on-accent);
border: none;
border-radius: var(--radius-s);
cursor: pointer;
font-weight: 500;
transition: all 0.2s ease;
}
.smtcmp-icon-picker-confirm-btn:hover {
background: var(--interactive-accent-hover);
}
/* ==================== Assistant Icon Selector in Settings ==================== */
/* ==================== Emoji Icon Styles (No Background) ==================== */
/* 助手选择器当前图标 - emoji 无背景 */
.smtcmp-assistant-selector-current-icon:has(.smtcmp-icon-emoji) {
background: none;
box-shadow: none;
}
/* 助手选择器列表项图标 - emoji 无背景 */
.smtcmp-assistant-selector-item-icon:has(.smtcmp-icon-emoji) {
background: none;
}
/* 设置面板助手列表图标 - emoji 无背景 */
.smtcmp-assistant-icon:has(.smtcmp-icon-emoji) {
background: none;
}
/* Emoji 图标字体大小调整 */
.smtcmp-icon-emoji {
display: flex;
align-items: center;
justify-content: center;
line-height: 1;
font-size: 16px;
}
.smtcmp-icon-emoji[data-size='14'] {
font-size: 14px;
}
.smtcmp-icon-emoji[data-size='20'] {
font-size: 20px;
}
.smtcmp-icon-emoji[data-size='16'] {
font-size: 16px;
}
.smtcmp-icon-emoji[data-size='24'] {
font-size: 24px;
}
/* ========================================
Settings Tabs Styles
======================================== */
.smtcmp-settings-tabs-container {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
align-items: center;
}
.smtcmp-settings-tabs-nav {
display: flex;
gap: var(--size-2-2);
padding: var(--size-2-2);
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 40%, transparent);
margin-bottom: var(--size-4-4);
overflow-x: auto;
scrollbar-width: thin;
align-items: stretch;
min-width: 0;
max-width: 100%;
width: max-content;
}
.smtcmp-settings-tabs-nav::-webkit-scrollbar {
height: 6px;
}
.smtcmp-settings-tabs-nav::-webkit-scrollbar-track {
background: transparent;
}
.smtcmp-settings-tabs-nav::-webkit-scrollbar-thumb {
background: var(--background-modifier-border);
border-radius: 3px;
}
/* Glider variant for smooth animated indicator */
.smtcmp-settings-tabs-nav--glider {
position: relative;
overflow: visible;
gap: 0;
--smtcmp-tab-count: 6;
--smtcmp-tab-index: 0;
--smtcmp-tab-padding: var(--size-2-2);
--smtcmp-tab-glider-left: 0px;
--smtcmp-tab-glider-width: 0px;
}
.smtcmp-settings-tabs-nav--glider .smtcmp-settings-tab-button {
position: relative;
z-index: 2;
}
.smtcmp-settings-tabs-nav--glider .smtcmp-settings-tab-button.is-active {
border-color: transparent;
box-shadow: none;
}
.smtcmp-settings-tabs-glider {
position: absolute;
top: var(--smtcmp-tab-padding);
left: 0;
width: var(--smtcmp-tab-glider-width);
height: calc(100% - (var(--smtcmp-tab-padding) * 2));
background: transparent;
border: 2px solid var(--h1-color, var(--interactive-accent));
border-radius: var(--radius-s);
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
transform: translateX(var(--smtcmp-tab-glider-left));
transition:
transform 0.36s cubic-bezier(0.4, 1.2, 0.4, 1),
width 0.36s cubic-bezier(0.4, 1.2, 0.4, 1);
pointer-events: none;
z-index: 1;
}
.smtcmp-settings-tab-button {
flex: 0 0 auto;
padding: 6px 12px;
background: transparent !important;
background-color: transparent !important;
border: 1px solid transparent;
border-radius: var(--radius-s);
color: var(--text-muted);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
cursor: pointer;
transition: all 0.2s ease;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
box-shadow: none !important;
}
.smtcmp-settings-tab-label {
display: block;
white-space: nowrap;
}
.smtcmp-settings-tab-button:hover {
color: var(--text-normal);
background: transparent !important;
}
.smtcmp-settings-tab-button.is-active {
color: var(--text-normal);
background: transparent !important;
border: 2px solid var(--h1-color, var(--interactive-accent));
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
}
.smtcmp-settings-tabs-content {
flex: 1;
overflow-y: auto;
scrollbar-gutter: stable;
padding-right: var(--size-4-6);
box-sizing: border-box;
padding-bottom: var(--size-4-4);
width: 100%;
max-width: 100%;
scrollbar-width: thin;
scrollbar-color: color-mix(in srgb, var(--text-muted) 35%, transparent)
transparent;
}
.smtcmp-settings-tabs-content::-webkit-scrollbar {
width: 8px;
}
.smtcmp-settings-tabs-content::-webkit-scrollbar-track {
background: transparent;
}
.smtcmp-settings-tabs-content::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--text-muted) 30%, transparent);
border-radius: 999px;
border: 2px solid transparent;
background-clip: content-box;
}
.smtcmp-settings-tabs-content::-webkit-scrollbar-thumb:hover {
background: color-mix(in srgb, var(--text-normal) 40%, transparent);
background-clip: content-box;
}
/* Mobile responsive adjustments */
@media (max-width: 768px) {
.smtcmp-settings-tabs-nav {
padding: var(--size-2-2);
}
.smtcmp-settings-tab-button {
padding: 6px 8px;
font-size: var(--font-ui-smaller);
}
}
.smtcmp-agent-section {
display: flex;
flex-direction: column;
gap: var(--size-4-3);
}
.smtcmp-agent-intro {
margin-top: calc(var(--size-4-1) * -1);
}
.smtcmp-agent-block {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-secondary);
padding: var(--size-4-4);
}
.smtcmp-agent-block-head {
margin-bottom: var(--size-4-3);
}
.yolo-agent-sub-card {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
padding: var(--size-4-3) var(--size-4-4);
margin-top: var(--size-4-3);
}
.yolo-agent-sub-card-head {
font-size: var(--font-ui-medium);
font-weight: var(--font-semibold);
color: var(--text-normal);
margin-bottom: var(--size-4-2);
}
/* Focus-sync card — pure white background like the Models block cards. */
.yolo-focus-sync-card.setting-item {
background: var(--background-primary) !important;
border: 1px solid var(--background-modifier-border) !important;
}
.smtcmp-agent-block-head-title-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-3);
margin-bottom: var(--size-4-1);
}
.smtcmp-agent-block-head-title-row > div:last-child {
margin-top: 4px;
}
.smtcmp-agent-cap-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: var(--size-4-3);
}
.smtcmp-agent-cap-card {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
padding: var(--size-4-3);
}
.smtcmp-agent-cap-title {
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-agent-tools-section-title {
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
}
.smtcmp-agent-cap-title-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
}
.smtcmp-agent-cap-count {
margin-top: var(--size-2-2);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-cap-tags {
margin-top: var(--size-4-2);
display: flex;
flex-wrap: wrap;
gap: var(--size-2-2);
}
.smtcmp-agent-tools-trigger {
white-space: nowrap;
}
.smtcmp-agent-tools-modal-content {
margin-top: var(--size-4-2);
max-height: 420px;
overflow: auto;
}
.smtcmp-agent-tool-list {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.smtcmp-agent-tool-row {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
background: var(--background-secondary-alt);
padding: var(--size-2-2) var(--size-4-2);
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
}
.smtcmp-agent-tool-main {
min-width: 0;
}
.smtcmp-agent-tool-name {
color: var(--text-normal);
font-size: var(--font-ui-small);
}
.smtcmp-agent-tool-name--mono {
font-family: var(--font-monospace);
}
.smtcmp-agent-tool-source {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-tool-toggle {
flex-shrink: 0;
}
.smtcmp-agent-tool-controls {
display: inline-flex;
align-items: center;
gap: var(--size-4-2);
flex-shrink: 0;
}
.smtcmp-agent-tool-approval {
display: inline-flex;
align-items: center;
}
.smtcmp-agent-tool-approval .smtcmp-simple-select__trigger {
width: auto;
min-width: 0;
max-width: 104px;
min-height: 28px;
padding: 4px 8px 4px 10px;
gap: 6px;
box-shadow: none;
}
.smtcmp-agent-tool-approval .smtcmp-simple-select__trigger:hover,
.smtcmp-agent-tool-approval .smtcmp-simple-select__trigger:focus,
.smtcmp-agent-tool-approval .smtcmp-simple-select__trigger:focus-visible,
.smtcmp-agent-tool-approval .smtcmp-simple-select__trigger[data-state='open'] {
box-shadow: none;
}
.smtcmp-simple-select__content.smtcmp-agent-tool-approval-menu {
width: auto;
min-width: max(var(--radix-dropdown-menu-trigger-width, 0px), 120px);
max-width: 140px;
box-shadow: none;
}
.smtcmp-agent-skill-controls {
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
flex-shrink: 0;
}
.smtcmp-agent-skill-controls select {
min-width: 108px;
}
.smtcmp-agent-skill-tokens {
color: var(--text-faint);
font-size: var(--font-ui-smaller);
font-weight: normal;
margin-left: var(--size-4-2);
}
.smtcmp-agent-skill-meta {
margin-top: 6px;
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.smtcmp-agent-skill-summary-row {
display: flex;
flex-wrap: wrap;
gap: var(--size-2-2);
}
.smtcmp-agent-skills-toolbar {
margin: var(--size-4-2) 0;
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-agent-skills-toolbar-actions {
margin-left: auto;
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
}
.smtcmp-agent-skills-modal-panel {
margin-top: 0;
}
.smtcmp-agent-tools-empty {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-tools-panel {
margin-top: var(--size-4-3);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--background-secondary) 86%, transparent);
padding: var(--size-4-2);
display: flex;
flex-direction: column;
gap: var(--size-4-3);
}
.smtcmp-agent-tools-panel.is-disabled {
opacity: 0.64;
}
.smtcmp-agent-tools-panel-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
}
.smtcmp-agent-tools-panel-title {
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-agent-tools-panel-title-row {
display: inline-flex;
align-items: baseline;
gap: var(--size-2-2);
min-width: 0;
}
.smtcmp-agent-tools-panel-estimate {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
white-space: nowrap;
}
.smtcmp-agent-tools-panel-count {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
border: 1px solid var(--background-modifier-border);
border-radius: 999px;
padding: 2px 10px;
white-space: nowrap;
}
.smtcmp-agent-tool-group {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
}
.smtcmp-agent-tool-group-title {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-2-2);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
letter-spacing: 0.01em;
}
.smtcmp-agent-tool-group-title-main {
display: inline-flex;
align-items: baseline;
gap: var(--size-4-2);
}
.smtcmp-agent-tool-group-tokens {
color: var(--text-faint);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-tool-group-meta {
display: inline-flex;
align-items: center;
gap: var(--size-4-4);
margin-right: var(--size-4-1);
}
.smtcmp-agent-tool-group-count {
color: var(--text-faint);
font-size: var(--font-ui-smaller);
}
button.smtcmp-agent-tool-group-bulk-toggle {
padding: 0;
height: auto;
line-height: 1.4;
border: none;
background: transparent;
box-shadow: none;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
text-decoration: underline;
text-decoration-color: var(--background-modifier-border);
text-underline-offset: 2px;
cursor: pointer;
}
button.smtcmp-agent-tool-group-bulk-toggle:hover {
color: var(--text-normal);
text-decoration-color: currentColor;
background: transparent;
}
.smtcmp-agent-tools-panel .smtcmp-agent-tool-list {
gap: 0;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
overflow: hidden;
}
.smtcmp-agent-tools-panel .smtcmp-agent-tool-row {
border: 0;
border-radius: 0;
background: transparent;
padding: var(--size-4-2);
}
.smtcmp-agent-tools-panel .smtcmp-agent-tool-row + .smtcmp-agent-tool-row {
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-agent-tool-source--preview {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
@media (max-width: 720px) {
.smtcmp-agent-tools-panel-head {
align-items: flex-start;
flex-direction: column;
}
.smtcmp-agent-tools-panel .smtcmp-agent-tool-row {
align-items: flex-start;
}
.smtcmp-agent-tools-panel .smtcmp-agent-tool-controls {
margin-top: 2px;
width: 100%;
justify-content: space-between;
}
.smtcmp-agent-tool-approval {
flex: 1 1 auto;
}
.smtcmp-agent-model-control-top {
grid-template-columns: 1fr;
}
.smtcmp-agent-model-number {
width: 100%;
text-align: left;
}
.smtcmp-agent-model-control-adjust {
grid-template-columns: 1fr;
}
.smtcmp-agent-model-setting-row {
grid-template-columns: 1fr;
align-items: stretch;
}
.smtcmp-agent-model-select-wrap {
width: 100%;
min-width: 0;
}
}
.smtcmp-agent-chip {
display: inline-block;
max-width: 12em;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: 2px 6px;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
background: var(--background-secondary-alt);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
vertical-align: middle;
}
.smtcmp-agent-chip--status {
color: var(--text-success);
border-color: color-mix(in srgb, var(--text-success) 30%, transparent);
}
button.smtcmp-agent-chip--more {
cursor: pointer;
font-family: inherit;
line-height: inherit;
box-shadow: none;
height: auto;
}
button.smtcmp-agent-chip--more:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}
.smtcmp-agent-model-setting-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: var(--size-4-2);
padding-top: 0.75em;
padding-bottom: var(--size-4-2);
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-agent-model-setting-info {
min-width: 0;
}
.smtcmp-agent-model-setting-title {
color: var(--text-normal);
font-size: var(--font-ui-medium);
font-weight: var(--font-medium);
line-height: var(--line-height-tight);
}
.smtcmp-agent-model-setting-desc {
margin-top: 4px;
color: var(--text-muted);
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
}
.smtcmp-agent-model-select-wrap {
width: min(520px, 100%);
min-width: 280px;
}
.smtcmp-agent-model-select-wrap > .smtcmp-simple-select__trigger {
width: 100%;
}
.smtcmp-agent-model-select-content {
max-height: min(360px, calc(100vh - 180px));
}
.smtcmp-agent-model-select-content .smtcmp-simple-select__list {
max-height: min(340px, calc(100vh - 200px));
overflow-y: auto;
padding-bottom: 8px;
box-sizing: border-box;
}
.smtcmp-agent-model-panel {
gap: var(--size-4-2);
margin-bottom: var(--size-4-2);
}
.smtcmp-agent-model-panel + .setting-item {
border-top: 0;
}
.smtcmp-agent-model-panel-head {
align-items: center;
}
.smtcmp-agent-model-reset {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
background: var(--background-primary);
color: var(--text-muted);
padding: 4px 10px;
font-size: var(--font-ui-smaller);
cursor: pointer;
transition:
border-color 140ms ease,
color 140ms ease,
background-color 140ms ease;
}
.smtcmp-agent-model-reset:hover,
.smtcmp-agent-model-reset:focus-visible {
color: var(--text-normal);
border-color: color-mix(in srgb, var(--interactive-accent) 45%, transparent);
background: color-mix(in srgb, var(--interactive-accent) 9%, transparent);
}
.smtcmp-agent-model-controls {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
}
.smtcmp-agent-model-control {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-primary);
padding: var(--size-4-2);
display: flex;
flex-direction: column;
gap: var(--size-2-2);
}
.smtcmp-agent-model-control.is-disabled {
opacity: 0.72;
}
.smtcmp-agent-model-control-top {
display: grid;
grid-template-columns: 1fr auto;
align-items: start;
gap: var(--size-4-2);
}
.smtcmp-agent-model-control-actions {
display: inline-flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-agent-model-control-adjust {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-agent-model-control-meta {
min-width: 0;
}
.smtcmp-agent-model-control-label {
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-agent-model-control-desc {
margin-top: 2px;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-model-number {
width: 108px;
min-height: 30px;
text-align: right;
}
.smtcmp-agent-model-control input[type='range'] {
width: 100%;
margin: 0;
}
.smtcmp-agent-model-control input[type='range']:disabled,
.smtcmp-agent-model-number:disabled {
cursor: not-allowed;
opacity: 0.6;
}
.smtcmp-builtin-tools-table-header,
.smtcmp-builtin-tools-table-row {
grid-template-columns: minmax(140px, max-content) minmax(200px, max-content) 1fr auto;
}
.smtcmp-builtin-tools-table-header > div:last-child {
text-align: right;
}
.smtcmp-builtin-tools-table-control {
display: flex;
align-items: center;
justify-content: flex-end;
gap: var(--size-2-2);
}
.smtcmp-web-search-row {
display: grid;
grid-template-columns: minmax(160px, 1fr) minmax(140px, 0.8fr) 80px 96px;
gap: var(--size-4-3);
align-items: center;
padding: var(--size-2-3) var(--size-4-3);
border-bottom: 1px solid var(--background-modifier-border);
}
.smtcmp-web-search-row:last-child {
border-bottom: none;
}
.smtcmp-web-search-header {
font-weight: var(--font-semibold);
background: var(--background-secondary);
}
.smtcmp-web-search-add {
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-builtin-tools-table-description {
min-width: 0;
}
.smtcmp-builtin-tools-table-description .smtcmp-mcp-tool-description {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.smtcmp-agent-empty {
border: 1px dashed var(--background-modifier-border);
border-radius: var(--radius-m);
padding: var(--size-4-4);
display: flex;
align-items: center;
gap: var(--size-4-2);
color: var(--text-muted);
}
.smtcmp-agent-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: var(--size-4-3);
}
.smtcmp-agent-card {
position: relative;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: linear-gradient(
180deg,
color-mix(in srgb, var(--background-primary) 94%, transparent) 0%,
color-mix(in srgb, var(--background-secondary) 88%, transparent) 100%
);
padding: var(--size-4-3);
min-height: 136px;
transition:
border-color 160ms ease,
background-color 160ms ease,
box-shadow 180ms ease;
}
.smtcmp-agent-create-card {
border: 1px dashed
color-mix(in srgb, var(--background-modifier-border) 88%, transparent);
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--background-secondary) 92%, transparent);
min-height: 136px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: var(--size-4-2);
color: var(--text-muted);
cursor: pointer;
transition:
border-color 160ms ease,
color 160ms ease,
background-color 160ms ease;
}
.smtcmp-agent-create-card:hover,
.smtcmp-agent-create-card:focus-visible {
border-color: color-mix(in srgb, var(--interactive-accent) 55%, transparent);
color: var(--interactive-accent);
background: color-mix(
in srgb,
var(--interactive-accent) 7%,
var(--background-secondary)
);
}
.smtcmp-agent-create-card:focus-visible {
outline: 2px solid
color-mix(in srgb, var(--interactive-accent) 60%, transparent);
outline-offset: 2px;
}
.smtcmp-agent-create-card-icon {
display: inline-flex;
align-items: center;
justify-content: center;
}
.smtcmp-agent-create-card-text {
font-size: var(--font-ui-medium);
font-weight: var(--font-medium);
}
.smtcmp-agent-card:hover,
.smtcmp-agent-card:focus-within {
border-color: color-mix(in srgb, var(--interactive-accent) 55%, transparent);
background: color-mix(
in srgb,
var(--interactive-accent) 8%,
var(--background-secondary)
);
box-shadow: 0 0 0 1px
color-mix(in srgb, var(--interactive-accent) 14%, transparent);
}
.smtcmp-agent-card--clickable {
cursor: pointer;
}
.smtcmp-agent-card-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--size-4-2);
}
.smtcmp-agent-card-top-main {
display: flex;
gap: var(--size-4-2);
min-width: 0;
}
.smtcmp-agent-avatar {
width: 40px;
height: 40px;
border-radius: var(--radius-m);
background: color-mix(in srgb, var(--interactive-accent) 16%, transparent);
display: flex;
align-items: center;
justify-content: center;
color: color-mix(in srgb, var(--interactive-accent) 88%, white 12%);
flex-shrink: 0;
}
.smtcmp-agent-main {
min-width: 0;
}
.smtcmp-agent-name-row {
display: flex;
align-items: center;
gap: var(--size-2-2);
}
.smtcmp-agent-name {
color: var(--text-normal);
font-size: var(--font-ui-medium);
line-height: 1.18;
font-weight: var(--font-semibold);
}
.smtcmp-agent-current-badge {
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 60%, transparent);
border-radius: var(--radius-s);
color: var(--interactive-accent);
font-size: var(--font-ui-smaller);
padding: 1px 6px;
}
.smtcmp-agent-desc {
margin-top: var(--size-2-2);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: var(--line-height-normal);
}
.smtcmp-agent-meta-row {
margin-top: var(--size-4-2);
padding-top: var(--size-4-1);
border-top: 1px solid var(--background-modifier-border);
display: flex;
flex-wrap: wrap;
gap: var(--size-4-2);
}
.smtcmp-agent-meta-item {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.smtcmp-agent-card-menu-trigger {
width: 32px;
height: 32px;
border: none !important;
border-radius: 8px;
background: transparent !important;
background-color: transparent !important;
color: var(--text-muted);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
opacity: 0;
pointer-events: none;
box-shadow: none !important;
transition:
opacity 120ms ease,
color 120ms ease,
background-color 120ms ease,
transform 120ms ease;
}
.smtcmp-agent-card:hover .smtcmp-agent-card-menu-trigger,
.smtcmp-agent-card:focus-within .smtcmp-agent-card-menu-trigger,
.smtcmp-agent-card-menu-trigger:focus-visible {
opacity: 1;
pointer-events: auto;
}
.smtcmp-agent-card-menu-trigger:focus-visible {
outline: 2px solid
color-mix(in srgb, var(--interactive-accent) 60%, transparent);
outline-offset: 2px;
}
.smtcmp-agent-card-menu-trigger-dots {
display: inline-block;
font-size: 16px !important;
font-weight: 700;
line-height: 0.9;
letter-spacing: 1.2px;
transform: translateY(-3px);
}
.smtcmp-agent-card-menu-trigger:hover {
transform: translateY(-1px);
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 50%, transparent) !important;
background: color-mix(
in srgb,
var(--interactive-accent) 96%,
white 4%
) !important;
background-color: color-mix(
in srgb,
var(--interactive-accent) 96%,
white 4%
) !important;
box-shadow:
0 6px 14px -8px color-mix(in srgb, var(--interactive-accent) 55%, transparent),
inset 0 1px 0 color-mix(in srgb, white 20%, transparent) !important;
color: var(--text-on-accent);
}
.smtcmp-agent-card-menu-popover {
z-index: 1100;
min-width: 140px;
width: max-content;
background: color-mix(in srgb, var(--background-secondary) 96%, transparent);
border: 1px solid var(--background-modifier-border);
border-radius: 10px;
box-shadow:
0 14px 32px rgba(0, 0, 0, 0.22),
0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 35%, transparent);
padding: 0;
}
.smtcmp-agent-card-menu-list {
list-style: none;
margin: 0;
padding: 6px;
display: flex;
flex-direction: column;
gap: 2px;
}
.smtcmp-agent-card-menu-item {
min-height: 38px;
margin: 0;
padding: 9px 12px;
border-radius: 8px;
display: flex;
align-items: center;
gap: 12px;
color: var(--text-normal);
font-size: var(--font-ui-small);
line-height: 1.1;
cursor: pointer;
transition: background-color 120ms ease;
}
.smtcmp-agent-card-menu-item:hover,
.smtcmp-agent-card-menu-item[data-highlighted] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 92%,
transparent
);
}
.smtcmp-agent-card-menu-icon {
width: 16px;
height: 16px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
}
.smtcmp-agent-card-menu-danger {
color: var(--text-error);
}
.smtcmp-agent-card-menu-danger .smtcmp-agent-card-menu-icon,
.smtcmp-agent-card-menu-danger:hover {
color: var(--text-error);
}
@media (hover: none) {
.smtcmp-agent-card-menu-trigger {
opacity: 1;
pointer-events: auto;
}
}
.smtcmp-agent-modal-header-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
}
.smtcmp-modal--agent-direct-edit .modal-header {
display: none;
}
/* Direct-edit modal owns its own flex layout: body grows, footer pinned at
* the bottom. Avoid relying on `position: sticky` against the modal scroll
* container — Obsidian's modal-content is not a stable sticky ancestor and
* the footer drifts into the middle of the page when content overflows.
*/
.smtcmp-modal--agent-direct-edit .modal-content {
padding-top: 0;
display: flex;
flex-direction: column;
overflow: hidden;
min-height: 0;
}
.smtcmp-modal--agent-direct-edit .modal-content > .smtcmp-agent-editor-panel {
flex: 1 1 auto;
min-height: 0;
display: flex;
flex-direction: column;
}
.smtcmp-agent-editor-panel--direct .smtcmp-agent-editor-sheet {
margin-top: 0;
border: none;
border-radius: 0;
background: transparent;
flex: 1 1 auto;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
.smtcmp-agent-editor-panel--direct .smtcmp-agent-editor-sheet-header {
padding-top: var(--size-4-2);
flex: 0 0 auto;
}
.smtcmp-agent-editor-panel--direct .smtcmp-agent-editor-sheet-top {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
gap: var(--size-4-2) var(--size-4-3);
flex: 0 0 auto;
}
.smtcmp-agent-editor-panel--direct
.smtcmp-agent-editor-sheet-top
> .smtcmp-agent-editor-sheet-header {
flex: 1 1 auto;
min-width: 0;
padding-bottom: 0;
}
.smtcmp-agent-editor-panel--direct
.smtcmp-agent-editor-sheet-top
> .smtcmp-agent-editor-tabs {
flex: 0 1 auto;
width: auto;
}
.smtcmp-agent-editor-panel--direct .smtcmp-agent-editor-tabs {
flex: 0 0 auto;
}
.smtcmp-agent-editor-panel--direct .smtcmp-agent-editor-body {
flex: 1 1 auto;
min-height: 0;
max-height: none;
overflow-y: auto;
}
.smtcmp-agent-editor-direct-footer {
flex: 0 0 auto;
padding: var(--size-4-2) var(--size-4-3);
border-top: 1px solid var(--background-modifier-border);
background: var(--background-primary);
}
.smtcmp-agent-editor-direct-footer-actions {
display: flex;
justify-content: flex-end;
gap: var(--size-4-1);
}
.smtcmp-agent-modal-header-actions {
display: flex;
gap: var(--size-4-1);
}
.smtcmp-agent-editor-sheet {
margin-top: var(--size-4-4);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-secondary);
overflow: hidden;
}
.smtcmp-agent-editor-sheet-header {
display: flex;
justify-content: space-between;
gap: var(--size-4-3);
padding: var(--size-4-3);
}
.smtcmp-agent-editor-sheet-actions {
display: flex;
align-items: center;
gap: var(--size-4-1);
}
.smtcmp-agent-editor-tabs {
display: flex;
align-items: stretch;
gap: var(--size-2-2);
margin: 0 var(--size-4-3) var(--size-2-2);
padding: var(--size-2-2);
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 40%, transparent);
overflow-x: auto;
scrollbar-width: thin;
width: max-content;
max-width: calc(100% - (var(--size-4-3) * 2));
}
.smtcmp-agent-editor-tabs--glider {
position: relative;
overflow: visible;
gap: 0;
--smtcmp-agent-tab-count: 4;
--smtcmp-agent-tab-index: 0;
--smtcmp-agent-tab-padding: var(--size-2-2);
--smtcmp-agent-tab-glider-left: 0px;
--smtcmp-agent-tab-glider-width: 0px;
}
.smtcmp-agent-editor-tabs--glider .smtcmp-agent-editor-tab {
position: relative;
z-index: 2;
}
.smtcmp-agent-editor-tabs--glider .smtcmp-agent-editor-tab.is-active {
border-color: transparent;
box-shadow: none;
}
.smtcmp-agent-editor-tabs-glider {
position: absolute;
top: var(--smtcmp-agent-tab-padding);
left: 0;
width: var(--smtcmp-agent-tab-glider-width);
height: calc(100% - (var(--smtcmp-agent-tab-padding) * 2));
background: transparent;
border: 2px solid var(--h1-color, var(--interactive-accent));
border-radius: var(--radius-s);
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
transform: translateX(var(--smtcmp-agent-tab-glider-left));
transition:
transform 0.36s cubic-bezier(0.4, 1.2, 0.4, 1),
width 0.36s cubic-bezier(0.4, 1.2, 0.4, 1);
pointer-events: none;
z-index: 1;
}
.smtcmp-agent-editor-tab {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
border: 1px solid transparent;
border-radius: var(--radius-s);
background: transparent !important;
background-color: transparent !important;
color: var(--text-muted);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
padding: 6px 12px;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: none !important;
}
.smtcmp-agent-editor-tab-label {
display: block;
white-space: nowrap;
}
.smtcmp-agent-editor-tab-icon {
display: inline-flex;
align-items: center;
justify-content: center;
color: currentColor;
line-height: 0;
}
.smtcmp-agent-editor-tab:hover {
color: var(--text-normal);
background: transparent !important;
}
.smtcmp-agent-editor-tab.is-active {
color: var(--text-normal);
background: transparent !important;
border: 2px solid var(--h1-color, var(--interactive-accent));
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
}
.smtcmp-agent-editor-body {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
padding: var(--size-4-3);
min-height: 420px;
max-height: calc(100vh - 320px);
overflow-y: auto;
}
.smtcmp-agent-system-prompt-textarea {
min-height: 200px !important;
max-height: 360px;
height: var(--smtcmp-textarea-auto-height, 200px);
overflow-y: var(--smtcmp-textarea-auto-overflow-y, auto);
}
/* ================= Workspace scope editor ================= */
.smtcmp-agent-workspace {
display: flex;
flex-direction: column;
gap: 14px;
}
.smtcmp-agent-workspace-toggle-row {
display: flex;
align-items: center;
gap: 14px;
padding: 14px 2px;
border-bottom: 1px solid var(--background-modifier-border);
}
.smtcmp-agent-workspace-toggle-main {
flex: 1;
min-width: 0;
}
.smtcmp-agent-workspace-toggle-title {
font-size: var(--font-ui-medium);
font-weight: var(--font-medium);
color: var(--text-normal);
}
.smtcmp-agent-workspace-toggle-desc {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
margin-top: 2px;
line-height: 1.5;
}
.smtcmp-agent-workspace-group {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
overflow: hidden;
background: var(--background-primary);
transition: opacity 0.15s ease;
}
.smtcmp-agent-workspace-group.is-disabled {
opacity: 0.55;
pointer-events: none;
}
.smtcmp-agent-workspace-group--include {
border-color: color-mix(
in srgb,
var(--color-green) 35%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group--exclude {
border-color: color-mix(
in srgb,
var(--color-red) 35%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group-head {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
background: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
flex-wrap: wrap;
}
.smtcmp-agent-workspace-group--include .smtcmp-agent-workspace-group-head {
background: color-mix(
in srgb,
var(--color-green) 8%,
var(--background-primary)
);
border-bottom-color: color-mix(
in srgb,
var(--color-green) 20%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group--exclude .smtcmp-agent-workspace-group-head {
background: color-mix(
in srgb,
var(--color-red) 8%,
var(--background-primary)
);
border-bottom-color: color-mix(
in srgb,
var(--color-red) 20%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-badge {
display: inline-flex;
align-items: center;
gap: 4px;
font-family: var(--font-monospace);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
padding: 3px 8px;
border-radius: 999px;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
letter-spacing: 0.04em;
}
.smtcmp-agent-workspace-group--include .smtcmp-agent-workspace-badge {
color: var(--color-green);
border-color: color-mix(
in srgb,
var(--color-green) 30%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group--exclude .smtcmp-agent-workspace-badge {
color: var(--color-red);
border-color: color-mix(
in srgb,
var(--color-red) 30%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group-title {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
color: var(--text-normal);
}
.smtcmp-agent-workspace-group-desc {
flex: 1;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
min-width: 120px;
}
.smtcmp-agent-workspace-add {
display: inline-flex !important;
align-items: center;
gap: 4px;
padding: 4px 10px !important;
border-radius: var(--radius-s) !important;
background: var(--background-primary) !important;
background-color: var(--background-primary) !important;
border: 1px solid var(--background-modifier-border) !important;
box-shadow: none !important;
color: var(--text-normal);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
cursor: pointer;
transition: all 0.15s ease;
}
.smtcmp-agent-workspace-add:hover:not(:disabled) {
background: var(--background-modifier-hover) !important;
box-shadow: none !important;
}
.smtcmp-agent-workspace-add:disabled {
cursor: not-allowed;
opacity: 0.6;
}
.smtcmp-agent-workspace-group--include .smtcmp-agent-workspace-add {
color: var(--color-green);
border-color: color-mix(
in srgb,
var(--color-green) 30%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-group--exclude .smtcmp-agent-workspace-add {
color: var(--color-red);
border-color: color-mix(
in srgb,
var(--color-red) 30%,
var(--background-modifier-border)
);
}
.smtcmp-agent-workspace-empty {
padding: 16px 14px;
text-align: center;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
font-family: var(--font-monospace);
}
.smtcmp-agent-workspace-rows {
display: flex;
flex-direction: column;
}
.smtcmp-agent-workspace-row {
display: flex;
align-items: center;
gap: 10px;
padding: 9px 14px;
border-bottom: 1px solid var(--background-modifier-border);
}
.smtcmp-agent-workspace-row:last-child {
border-bottom: none;
}
.smtcmp-agent-workspace-row-icon {
display: inline-flex;
width: 18px;
height: 18px;
align-items: center;
justify-content: center;
flex: 0 0 auto;
color: var(--text-muted);
}
.smtcmp-agent-workspace-group--include .smtcmp-agent-workspace-row-icon {
color: var(--color-green);
}
.smtcmp-agent-workspace-group--exclude .smtcmp-agent-workspace-row-icon {
color: var(--color-red);
}
.smtcmp-agent-workspace-row-path {
flex: 1;
min-width: 0;
font-family: var(--font-monospace);
font-size: var(--font-ui-small);
color: var(--text-normal);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-agent-workspace-row-kind {
font-family: var(--font-monospace);
font-size: 10px;
color: var(--text-muted);
padding: 2px 7px;
border: 1px solid var(--background-modifier-border);
border-radius: 999px;
background: var(--background-primary);
flex: 0 0 auto;
}
.smtcmp-agent-workspace-row-remove {
display: inline-flex !important;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
padding: 0 !important;
border-radius: var(--radius-s) !important;
background: transparent !important;
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
color: var(--text-muted);
cursor: pointer;
opacity: 0.4;
transition: all 0.15s ease;
flex: 0 0 auto;
}
.smtcmp-agent-workspace-row:hover .smtcmp-agent-workspace-row-remove {
opacity: 1;
}
.smtcmp-agent-workspace-row-remove:hover:not(:disabled) {
background: var(--background-modifier-hover) !important;
color: var(--color-red);
}
.smtcmp-agent-workspace-row-remove:disabled {
cursor: not-allowed;
opacity: 0.3;
}
.smtcmp-agent-workspace-row-remove svg {
display: block;
width: 14px;
height: 14px;
}
/* Web search settings — V1 refined single-column layout */
.smtcmp-ws {
display: flex;
flex-direction: column;
gap: 0;
}
.smtcmp-ws-intro {
color: var(--text-muted);
font-size: var(--font-ui-small);
line-height: 1.55;
padding: 2px 2px 2px 12px;
border-left: 2px solid
color-mix(in srgb, var(--interactive-accent) 40%, transparent);
margin-bottom: 16px;
}
.smtcmp-ws-section {
padding: 0 2px;
}
.smtcmp-ws-section + .smtcmp-ws-section {
margin-top: 20px;
}
.smtcmp-ws-section-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
padding-bottom: 10px;
}
.smtcmp-ws-section-label {
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: var(--font-semibold);
}
.smtcmp-ws-add-btn {
display: inline-flex !important;
align-items: center;
gap: 6px;
padding: 5px 10px !important;
font-size: var(--font-ui-smaller) !important;
font-weight: 500;
background: var(--background-primary) !important;
background-color: var(--background-primary) !important;
color: var(--text-normal) !important;
border: 1px solid var(--background-modifier-border) !important;
border-radius: var(--radius-s) !important;
cursor: pointer;
box-shadow: none !important;
line-height: 1;
transition:
border-color 140ms ease,
background-color 140ms ease;
}
.smtcmp-ws-add-btn:hover:not(:disabled) {
border-color: color-mix(
in srgb,
var(--interactive-accent) 45%,
var(--background-modifier-border)
);
background: color-mix(
in srgb,
var(--interactive-accent) 6%,
var(--background-primary)
) !important;
}
.smtcmp-ws-providers {
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
overflow: hidden;
background: var(--background-primary);
}
.smtcmp-ws-provider-row {
display: grid;
grid-template-columns: 20px 1fr auto;
align-items: center;
gap: 12px;
padding: 11px 12px;
cursor: pointer;
background: var(--background-primary);
transition: background-color 120ms ease;
}
.smtcmp-ws-provider-row + .smtcmp-ws-provider-row {
border-top: 1px solid
color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
}
.smtcmp-ws-provider-row:hover {
background: var(--background-secondary);
}
.smtcmp-ws-provider-row.is-default {
background: color-mix(
in srgb,
var(--interactive-accent) 6%,
var(--background-primary)
);
}
.smtcmp-ws-provider-row.is-default:hover {
background: color-mix(
in srgb,
var(--interactive-accent) 10%,
var(--background-primary)
);
}
.smtcmp-ws-radio {
width: 16px;
height: 16px;
border-radius: 50%;
border: 1.5px solid var(--background-modifier-border);
background: var(--background-primary);
display: inline-grid;
place-items: center;
transition: border-color 140ms ease;
flex-shrink: 0;
}
.smtcmp-ws-provider-row.is-default .smtcmp-ws-radio {
border-color: var(--interactive-accent);
}
.smtcmp-ws-radio-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--interactive-accent);
}
.smtcmp-ws-provider-main {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.smtcmp-ws-monogram {
width: 24px;
height: 24px;
border-radius: 6px;
color: #fff;
display: inline-grid;
place-items: center;
font-family: var(--font-monospace);
font-size: 12px;
font-weight: 600;
flex-shrink: 0;
}
.smtcmp-ws-monogram--tavily {
background: var(--color-blue, #4c7cf5);
}
.smtcmp-ws-monogram--jina {
background: var(--color-green, #3aa35c);
}
.smtcmp-ws-monogram--searxng {
background: var(--color-orange, #d08752);
}
.smtcmp-ws-monogram--bing {
background: var(--color-cyan, #3f9aa6);
}
.smtcmp-ws-monogram--gemini-grounding {
background: var(--color-purple, #7c6ad6);
}
.smtcmp-ws-monogram--grok {
background: color-mix(
in srgb,
var(--text-normal) 70%,
var(--background-primary)
);
}
.smtcmp-ws-monogram--zhipu {
background: var(--color-red, #c8553d);
}
.smtcmp-ws-provider-name-row {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
}
.smtcmp-ws-provider-name {
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-ws-tag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 7px;
border-radius: 4px;
font-size: var(--font-ui-smaller);
font-weight: 500;
white-space: nowrap;
border: 1px solid transparent;
}
.smtcmp-ws-tag--default {
background: color-mix(in srgb, var(--interactive-accent) 14%, transparent);
color: var(--interactive-accent);
border-color: color-mix(in srgb, var(--interactive-accent) 40%, transparent);
}
.smtcmp-ws-provider-actions {
display: inline-flex;
gap: 2px;
opacity: 0.35;
transition: opacity 140ms ease;
}
.smtcmp-ws-provider-row:hover .smtcmp-ws-provider-actions,
.smtcmp-ws-provider-row:focus-within .smtcmp-ws-provider-actions {
opacity: 1;
}
.smtcmp-ws-icon-btn {
width: 26px;
height: 26px;
border-radius: 6px;
border: none !important;
background: transparent !important;
background-color: transparent !important;
color: var(--text-muted);
cursor: pointer;
display: grid;
place-items: center;
box-shadow: none !important;
transition:
background-color 120ms ease,
color 120ms ease;
}
.smtcmp-ws-icon-btn:hover:not(:disabled) {
background: var(--background-modifier-hover) !important;
background-color: var(--background-modifier-hover) !important;
color: var(--text-normal);
}
.smtcmp-ws-empty {
border: 1px dashed var(--background-modifier-border);
border-radius: var(--radius-m);
padding: 20px 16px;
text-align: center;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
/* Common settings field rows */
.smtcmp-ws-field-row {
display: grid;
grid-template-columns: 1fr auto;
gap: 20px;
align-items: center;
padding: 12px 0;
}
.smtcmp-ws-field-row + .smtcmp-ws-field-row {
border-top: 1px solid
color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
}
.smtcmp-ws-field-label {
color: var(--text-normal);
font-size: var(--font-ui-small);
font-weight: 500;
}
.smtcmp-ws-field-hint {
margin-top: 3px;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: 1.5;
}
.smtcmp-ws-number {
position: relative;
width: 140px;
}
.smtcmp-ws-number input {
width: 100%;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: 7px 44px 7px 10px;
font-size: var(--font-ui-small);
font-family: var(--font-monospace);
color: var(--text-normal);
text-align: right;
background: var(--background-primary);
outline: none;
transition: border-color 140ms ease;
}
.smtcmp-ws-number input:focus,
.smtcmp-ws-number input:focus-visible {
border-color: var(--background-modifier-border);
box-shadow: none;
outline: none;
}
.smtcmp-ws-number input::-webkit-inner-spin-button,
.smtcmp-ws-number input::-webkit-outer-spin-button {
-webkit-appearance: none;
appearance: none;
margin: 0;
}
.smtcmp-ws-number-unit {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
font-size: var(--font-ui-smaller);
color: var(--text-faint);
font-family: var(--font-monospace);
pointer-events: none;
}
.smtcmp-ws-info {
margin-top: 14px;
padding: 10px 12px;
background: var(--background-secondary);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
border-radius: var(--radius-s);
display: flex;
gap: 10px;
align-items: flex-start;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: 1.55;
}
.smtcmp-ws-info-icon {
flex-shrink: 0;
color: var(--text-faint);
margin-top: 1px;
}
.smtcmp-ws-footnote {
margin-top: 16px;
padding-top: 12px;
border-top: 1px solid
color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
color: var(--text-faint);
font-size: 11.5px;
}
/* Provider edit/new modal — label centered (no description rows here) */
.smtcmp-ws-edit-form .setting-item {
align-items: center;
padding-top: var(--size-4-2) !important;
padding-bottom: var(--size-4-2) !important;
}
.smtcmp-ws-edit-form .setting-item .setting-item-description {
margin-top: 6px;
}
.smtcmp-ws-system-prompt-textarea {
min-height: 140px !important;
max-height: 360px;
height: var(--smtcmp-textarea-auto-height, 140px);
overflow-y: var(--smtcmp-textarea-auto-overflow-y, auto);
}
/*
* yolo-popover surface classes —— 项目所有弹窗 / 下拉的视觉地基。
* 改这块代码 / 写新弹窗前,请通读以下约定(历史曾两次踩坑)。
*
* ─────────────────────────────────────────────
* 1. consumer 必须用抽象组件,不要自己组 Portal + Content
* ─────────────────────────────────────────────
* 禁止在调用方写 `DropdownMenu.Portal + DropdownMenu.Content + className=...` 的
* 组合。统一用 src/components/common/popover/ 下的 /
* ,所有视觉 variant 与尺寸通过 props 显式声明。
* 参考迁移:ModelSelect.tsx、ReasoningSelect.tsx、ChatListDropdown.tsx。
*
* ─────────────────────────────────────────────
* 2. 视觉 vs 尺寸:共用 class 只管视觉表面
* ─────────────────────────────────────────────
* 本文件里的 .yolo-popover-surface* class 只允许定义:
* background / border / box-shadow / animation / overflow / z-index
* 严禁出现:
* min-width / max-width / max-height / width / margin
* 尺寸是 consumer 的责任 —— 通过 minWidth/maxWidth/maxHeight props 传入,
* 或一次性需求自带 `yolo-popover-` class(例如聊天历史的 -64px 对齐)。
* 违反这条会跨组件污染(历史踩坑详见 docs/plans/parsed-wiggling-shore.md)。
*
* ─────────────────────────────────────────────
* 3. 变体规则按文件归属,禁止跨文件覆盖
* ─────────────────────────────────────────────
* --default 变体的样式 → src/styles/chat/popover.css
* --smart-space 变体的样式 → src/styles/panels/smart-space.css
* 不要在 smart-space.css 里写 `.yolo-popover-surface--default ...`,反之亦然。
* 同一选择器跨文件出现时胜负只剩源码顺序,是最隐蔽的"屎山"来源。
* 真正跨变体共享的样式(如 [data-state='checked'])写无前缀版本,
* 但必须在注释里写明"有意跨变体共享"。
*
* ─────────────────────────────────────────────
* 4. 慎用裸标签选择器
* ─────────────────────────────────────────────
* 避免 `.yolo-popover-surface ul / li / button` 这种命中所有后代标签的写法 ——
* 等同于隐式全局副作用,未来任何弹窗内出现 ul/li 都会被牵连。要写就用 class 限定。
*
* ─────────────────────────────────────────────
* 5. 新增弹窗 checklist
* ─────────────────────────────────────────────
* [ ] consumer 用 /
* [ ] 显式传 minWidth / maxWidth / maxHeight,不依赖任何继承
* [ ] 非通用视觉需求自带 `yolo-popover-` class,不复用别人的
* [ ] 新 class 一律 `yolo-` 前缀,不新增 `smtcmp-`
* [ ] 写 variant-scoped 规则时确认放在了对应变体的归属文件里
*/
.yolo-popover-surface {
overflow: hidden;
}
/* Default variant — used by chat-input dropdowns, chat-history,
AssistantSelector, ViewToggle. */
.yolo-popover-surface--default {
z-index: 1000;
background: var(--background-primary);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 75%, transparent);
border-radius: var(--radius-m);
box-shadow:
0 6px 18px rgba(0, 0, 0, 0.12),
0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 35%, transparent);
animation: yolo-popover-fade-in 130ms cubic-bezier(0.2, 0.9, 0.3, 1);
}
/* Smart-space variant — heavier shadow, blur backdrop, larger radius.
Used by SmartSpace panel, QuickAsk panel, mention/slash menus. */
.yolo-popover-surface--smart-space {
z-index: 10000;
background: var(--background-primary);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 65%, transparent);
border-radius: 12px;
box-shadow:
0 0 0 3px
color-mix(in srgb, var(--background-modifier-border) 20%, transparent),
0 12px 32px -8px rgba(0, 0, 0, 0.2),
0 4px 12px rgba(0, 0, 0, 0.08);
backdrop-filter: blur(16px);
animation: yolo-popover-smart-space-fade-in 0.25s
cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes yolo-popover-fade-in {
0% {
opacity: 0;
transform: translateY(4px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
@keyframes yolo-popover-smart-space-fade-in {
0% {
opacity: 0;
transform: translateY(8px) scale(0.96);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.smtcmp-chat-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--size-4-4);
gap: var(--size-4-2);
padding: var(--size-2-1) 0;
}
.smtcmp-chat-header--workspace {
position: relative;
z-index: 2;
padding-bottom: var(--size-2-2);
border-bottom: 1px solid
color-mix(in srgb, var(--background-modifier-border) 78%, transparent);
}
.smtcmp-ghost-text {
color: var(--text-muted);
pointer-events: none;
opacity: 0.6;
white-space: pre-wrap;
overflow-wrap: anywhere;
}
/* Chat input: outer wrapper to anchor settings button at top-right */
.smtcmp-chat-input-wrapper {
position: relative;
width: 100%;
}
.smtcmp-chat-input-settings-outer {
position: absolute;
top: 0px;
right: -3px;
left: auto !important; /* cancel any left: 0 from other rules */
z-index: 3;
background-color: transparent;
border-radius: var(--radius-1);
padding: var(--size-2-1);
box-shadow: none;
}
.smtcmp-chat-input-settings-outer:focus-within {
background-color: transparent;
box-shadow: none;
}
.smtcmp-chat-header-right {
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-context-usage-ring {
--smtcmp-context-usage-ring-color: var(--interactive-accent);
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
flex-shrink: 0;
color: var(--smtcmp-context-usage-ring-color);
}
.smtcmp-chat-header-right > .smtcmp-context-usage-ring {
margin-right: var(--size-2-1);
}
.smtcmp-context-usage-ring[data-tone='warning'] {
--smtcmp-context-usage-ring-color: var(--text-warning);
}
.smtcmp-context-usage-ring[data-tone='danger'] {
--smtcmp-context-usage-ring-color: var(--text-error);
}
.smtcmp-context-usage-ring__svg {
width: 18px;
height: 18px;
transform: rotate(-90deg);
}
.smtcmp-context-usage-ring__track,
.smtcmp-context-usage-ring__progress {
fill: none;
stroke-width: 2;
}
.smtcmp-context-usage-ring__track {
stroke: color-mix(
in srgb,
var(--background-modifier-border) 82%,
transparent
);
}
.smtcmp-context-usage-ring__progress {
stroke: currentColor;
stroke-linecap: round;
transition:
stroke-dashoffset 0.18s ease,
stroke 0.18s ease;
}
.smtcmp-context-usage-ring__sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.smtcmp-chat-header-title {
font-size: var(--font-ui-medium);
font-weight: var(--font-medium);
margin: 0;
}
.smtcmp-chat-header-title-toggle {
display: flex;
align-items: center;
gap: var(--size-2-1);
padding: 0;
background: transparent !important;
border: none;
border-radius: 0;
color: inherit;
cursor: pointer;
font: inherit;
box-shadow: none;
appearance: none;
-webkit-appearance: none;
}
.smtcmp-chat-header-title-toggle:focus-visible {
outline: 1px solid var(--interactive-accent);
outline-offset: 2px;
}
.smtcmp-chat-header-title-toggle:hover,
.smtcmp-chat-header-title-toggle:focus,
.smtcmp-chat-header-title-toggle:active {
background: transparent;
box-shadow: none;
}
.smtcmp-chat-header-title-toggle .smtcmp-chat-header-title {
margin: 0;
}
.smtcmp-chat-header-title-icon {
height: 14px;
width: 14px;
color: var(--text-muted);
transition: color 0.15s ease;
}
.smtcmp-chat-header-title-toggle:hover .smtcmp-chat-header-title-icon {
color: var(--text-normal);
}
.smtcmp-chat-header-buttons {
display: flex;
gap: var(--size-2-1);
svg {
height: var(--icon-l);
width: var(--icon-l);
stroke-width: var(--icon-stroke);
}
}
.smtcmp-markdown {
line-height: var(--line-height-normal);
font-size: var(--font-ui-small);
h1 {
font-size: var(--font-ui-large);
}
h2 {
font-size: var(--font-ui-medium);
}
h3 {
font-size: var(--font-ui-small);
}
h4 {
font-size: var(--font-ui-smaller);
}
h5 {
font-size: var(--font-ui-smallest);
}
h6 {
font-size: var(--font-ui-smallest);
}
p {
font-size: var(--font-ui-small);
}
ul {
font-size: var(--font-ui-small);
padding-left: var(--size-4-4);
}
ol {
font-size: var(--font-ui-small);
padding-left: var(--size-4-4);
}
li {
font-size: var(--font-ui-small);
}
blockquote {
font-size: var(--font-ui-small);
font-style: var(--blockquote-style);
background-color: var(--blockquote-background-color);
margin: 0;
padding-left: var(--size-4-2);
border-left: var(--blockquote-border-thickness) solid
var(--blockquote-border-color);
}
code {
font-size: var(--font-ui-small);
border-radius: var(--code-radius);
padding: 0.1em 0.25em;
color: var(--code-normal);
font-size: var(--code-size);
background-color: var(--code-background);
vertical-align: baseline;
}
table {
font-size: var(--font-ui-small);
}
thead {
font-size: var(--font-ui-small);
}
tbody {
font-size: var(--font-ui-small);
}
tr {
font-size: var(--font-ui-small);
}
td {
font-size: var(--font-ui-small);
}
th {
font-size: var(--font-ui-small);
}
}
.smtcmp-chat-container {
display: flex;
position: relative;
flex-direction: column;
height: 100%;
min-height: 0;
}
.smtcmp-chat-container--sidebar {
--smtcmp-chat-sidebar-inline-padding: calc(var(--size-4-6) / 2);
}
.smtcmp-chat-container--centered {
--smtcmp-chat-content-max-width: min(720px, calc(100% - var(--size-4-6)));
--smtcmp-chat-typeahead-max-width: 400px;
--smtcmp-chat-host-inline-padding: var(--size-4-3);
}
.smtcmp-chat-container--sidebar > .smtcmp-chat-composer-wrapper,
.smtcmp-chat-container--sidebar > .smtcmp-chat-footer,
.smtcmp-chat-container--sidebar > .smtcmp-chat-user-input-files,
.smtcmp-chat-container--sidebar > .smtcmp-chat-input-wrapper {
box-sizing: border-box;
padding-inline: var(--smtcmp-chat-sidebar-inline-padding);
}
.smtcmp-chat-container--sidebar
.smtcmp-chat-messages
.smtcmp-chat-timeline-row {
margin-inline: var(--smtcmp-chat-sidebar-inline-padding);
}
.smtcmp-chat-container--sidebar > .smtcmp-chat-messages {
margin-inline-end: calc(var(--smtcmp-chat-sidebar-inline-padding) * -1);
}
.smtcmp-chat-container--sidebar > .smtcmp-chat-conversation-surface {
margin-inline-end: calc(var(--smtcmp-chat-sidebar-inline-padding) * -1);
}
.smtcmp-chat-container--centered > .smtcmp-chat-footer,
.smtcmp-chat-container--centered > .smtcmp-chat-user-input-files,
.smtcmp-chat-container--centered > .smtcmp-chat-input-wrapper {
width: min(100%, var(--smtcmp-chat-content-max-width));
margin-left: auto;
margin-right: auto;
}
.smtcmp-chat-container--centered
.smtcmp-chat-messages
.smtcmp-chat-timeline-row {
width: min(100%, var(--smtcmp-chat-content-max-width));
margin-left: auto;
margin-right: auto;
}
.smtcmp-chat-container--centered > .smtcmp-chat-messages {
margin-inline: calc(var(--smtcmp-chat-host-inline-padding) * -1);
}
.smtcmp-chat-container--centered > .smtcmp-chat-conversation-surface {
margin-inline: calc(var(--smtcmp-chat-host-inline-padding) * -1);
}
.smtcmp-chat-container--workspace-wide-header {
--smtcmp-chat-workspace-header-top: var(--size-2-2);
--smtcmp-chat-workspace-header-side: var(--size-4-3);
--smtcmp-chat-workspace-header-gap: var(--size-4-4);
--smtcmp-chat-workspace-header-height: 0px;
}
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-header--workspace {
position: absolute;
top: var(--smtcmp-chat-workspace-header-top);
left: var(--smtcmp-chat-workspace-header-side);
right: var(--smtcmp-chat-workspace-header-side);
margin-bottom: 0;
padding: 0;
border-bottom: none;
background: transparent;
pointer-events: none;
}
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-view-toggle,
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-chat-header-right {
pointer-events: auto;
}
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-chat-header-right {
background: color-mix(in srgb, var(--background-primary) 92%, transparent);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 82%, transparent);
box-shadow:
0 10px 28px
color-mix(in srgb, var(--background-modifier-box-shadow) 10%, transparent),
0 1px 0 color-mix(in srgb, white 10%, transparent) inset;
backdrop-filter: blur(12px);
}
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-view-toggle {
background: transparent;
border-color: transparent;
box-shadow: none;
}
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-chat-header-right {
padding: 6px 10px;
border-radius: 999px;
}
.smtcmp-chat-container--workspace-wide-header
> .smtcmp-chat-header--workspace
.smtcmp-chat-header-buttons {
padding-left: var(--size-2-1);
margin-left: var(--size-2-1);
border-left: 1px solid
color-mix(in srgb, var(--background-modifier-border) 72%, transparent);
}
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-messages {
padding-top: calc(
var(--smtcmp-chat-workspace-header-top) +
var(--smtcmp-chat-workspace-header-height) +
var(--smtcmp-chat-workspace-header-gap)
);
}
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-composer-wrapper {
padding-top: calc(
var(--smtcmp-chat-workspace-header-top) +
var(--smtcmp-chat-workspace-header-height) +
var(--smtcmp-chat-workspace-header-gap)
);
}
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-messages,
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-composer-wrapper,
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-footer,
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-user-input-files,
.smtcmp-chat-container--workspace-wide-header > .smtcmp-chat-input-wrapper {
position: relative;
z-index: 1;
}
.smtcmp-chat-footer {
position: relative;
}
.smtcmp-chat-floating-actions {
position: absolute;
left: 0;
right: 0;
top: 0;
height: 0;
pointer-events: none;
z-index: 3;
}
.smtcmp-stop-gen-btn,
.smtcmp-chat-scroll-to-bottom-button {
pointer-events: auto;
}
.smtcmp-stop-gen-btn {
position: absolute;
left: 50%;
top: 0;
transform: translate(-50%, calc(-100% - 12px));
z-index: 2;
width: max-content;
max-width: calc(100% - var(--size-4-6));
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--size-4-1);
}
.smtcmp-sidebar-root {
display: flex;
flex-direction: column;
height: 100%;
min-height: 0;
}
.smtcmp-sidebar-panels {
position: relative;
flex: 1;
display: flex;
flex-direction: column;
min-height: 0;
padding: 0;
}
.smtcmp-sidebar-pane {
display: none;
height: 100%;
min-height: 0;
width: 100%;
flex: 1 1 auto;
flex-direction: column;
}
.smtcmp-sidebar-pane.is-active {
display: flex;
width: 100%;
flex: 1 1 auto;
flex-direction: column;
}
.smtcmp-chat-composer-wrapper {
flex: 1 1 auto;
display: flex;
flex-direction: column;
min-height: 0;
}
.smtcmp-composer-container {
display: flex;
flex-direction: column;
gap: var(--size-4-4);
height: 100%;
flex: 1 1 auto;
min-height: 0;
padding: var(--size-4-3) var(--size-4-3) var(--size-4-2);
}
.smtcmp-composer-tabs {
display: flex;
gap: var(--size-2-2);
padding: var(--size-2-2);
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 40%, transparent);
width: 100%;
align-self: stretch;
margin: 0 calc(var(--size-4-3) * -1);
width: calc(100% + (var(--size-4-3) * 2));
min-width: 0;
}
.smtcmp-composer-tab {
flex: 1 1 0;
border: 1px solid transparent;
background: transparent !important;
background-color: transparent !important;
color: var(--text-muted);
font-size: var(--font-ui-small);
padding: 6px 8px;
border-radius: var(--radius-s);
cursor: pointer;
transition: all 0.2s ease;
position: relative;
box-shadow: none !important;
min-width: 0;
display: flex;
align-items: center;
justify-content: center;
}
.smtcmp-composer-tab-label {
display: block;
min-width: 0;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-composer-tabs--glider {
position: relative;
overflow: visible;
gap: 0;
--smtcmp-tab-count: 3;
--smtcmp-tab-index: 0;
--smtcmp-tab-padding: var(--size-2-2);
}
.smtcmp-composer-tabs--glider .smtcmp-composer-tab {
position: relative;
z-index: 2;
}
.smtcmp-composer-tabs--glider .smtcmp-composer-tab.is-active {
border-color: transparent;
box-shadow: none;
}
.smtcmp-composer-tabs-glider {
position: absolute;
top: var(--smtcmp-tab-padding);
left: var(--smtcmp-tab-padding);
width: calc(
(100% - (var(--smtcmp-tab-padding) * 2)) / var(--smtcmp-tab-count)
);
height: calc(100% - (var(--smtcmp-tab-padding) * 2));
background: transparent;
border: 2px solid var(--h1-color, var(--interactive-accent));
border-radius: var(--radius-s);
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
transform: translateX(calc(100% * var(--smtcmp-tab-index)));
transition: transform 0.36s cubic-bezier(0.4, 1.2, 0.4, 1);
pointer-events: none;
z-index: 1;
}
.smtcmp-composer-tab:hover {
color: var(--text-normal);
background: transparent !important;
}
.smtcmp-composer-tab.is-active {
color: var(--text-normal);
background: transparent !important;
border: 2px solid var(--h1-color, var(--interactive-accent));
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
}
.smtcmp-composer-scroll {
flex: 1;
min-height: 0;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: var(--size-4-5);
padding: 0;
margin: 0 calc(var(--size-4-3) * -1);
width: calc(100% + (var(--size-4-3) * 2));
align-self: stretch;
}
.smtcmp-composer-section {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
padding: var(--size-4-4);
background: transparent !important;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-l);
box-shadow: none;
position: relative;
overflow: hidden;
flex: 0 0 auto;
width: 100%;
}
.smtcmp-composer-heading {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
margin-bottom: var(--size-2-4);
position: relative;
padding-bottom: 0;
}
.smtcmp-composer-heading-title {
color: var(--text-normal);
font-size: var(--font-ui-medium);
line-height: var(--line-height-tight);
font-weight: var(--font-semibold);
display: flex;
align-items: center;
gap: var(--size-2-2);
}
.smtcmp-composer-heading-title::before {
content: '';
width: 4px;
height: 18px;
background: var(--h1-color, var(--text-accent));
border-radius: 2px;
flex-shrink: 0;
}
.smtcmp-composer-heading-desc {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
}
.smtcmp-composer-option {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between;
gap: var(--size-4-3);
padding: var(--size-4-3);
border-radius: var(--radius-m);
background: transparent;
border: 1px solid var(--background-modifier-border);
transition: all 0.2s ease;
position: relative;
}
.smtcmp-composer-option:hover {
border-color: var(--background-modifier-border-hover);
box-shadow: none;
transform: translateY(-1px);
}
.smtcmp-composer-option--model {
flex-wrap: wrap;
gap: var(--size-4-3);
}
.smtcmp-composer-option--table {
align-items: stretch;
}
.smtcmp-composer-option-info {
display: flex;
flex-direction: column;
gap: var(--size-2-1);
flex: 1 1 auto;
min-width: 0;
}
.smtcmp-composer-option-title {
color: var(--text-normal);
font-weight: var(--font-semibold);
font-size: var(--font-ui-small);
margin-bottom: var(--size-2-1);
}
.smtcmp-composer-option-desc {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
}
.smtcmp-composer-option-control {
display: flex;
align-items: center;
justify-content: flex-end;
flex: 0 0 auto;
gap: var(--size-2-1);
min-width: auto;
margin-left: auto;
}
.smtcmp-composer-option-control--fluid {
flex: 1 1 auto;
justify-content: flex-start;
min-width: 0;
max-width: 100%;
}
.smtcmp-composer-option-control--stack {
flex-wrap: wrap;
justify-content: flex-start;
margin-left: 0;
}
.smtcmp-composer-option-control--full {
width: 100%;
justify-content: flex-start;
margin-left: 0;
}
.smtcmp-composer-option-control--full textarea {
width: 100%;
min-height: 120px;
}
.smtcmp-composer-option-control--full .smtcmp-textarea-container,
.smtcmp-composer-option-control--full .smtcmp-textarea-container textarea {
width: 100% !important;
}
.smtcmp-composer-option-control select {
width: 100%;
max-width: 100%;
}
/* Simple select (custom dropdown for Sparkle sidebar) */
.smtcmp-simple-select__trigger {
width: 100%;
min-height: 30px;
min-width: 0;
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 6px 10px;
border-radius: var(--radius-m);
border: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
color: var(--text-normal);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
text-align: left;
cursor: pointer;
transition:
border-color 0.16s ease,
background 0.16s ease,
color 0.16s ease;
box-shadow: none;
overflow: hidden;
}
.smtcmp-simple-select__trigger:hover,
.smtcmp-simple-select__trigger:focus,
.smtcmp-simple-select__trigger:focus-visible {
border-color: var(--background-modifier-border);
background: var(--background-modifier-hover);
color: var(--text-normal);
outline: none;
}
.smtcmp-simple-select__trigger[data-state='open'] {
border-color: var(--background-modifier-border);
background: var(--background-modifier-hover);
color: var(--text-normal);
}
.smtcmp-simple-select__trigger:disabled {
opacity: 0.6;
cursor: not-allowed;
box-shadow: none;
}
.smtcmp-simple-select__label {
flex: 1;
min-width: 0;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-simple-select__icon {
display: flex;
align-items: center;
color: var(--text-muted);
}
.smtcmp-simple-select__content {
z-index: 10000;
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
box-shadow: var(--shadow-s);
padding: 4px;
width: var(--radix-dropdown-menu-trigger-width);
min-width: max(var(--radix-dropdown-menu-trigger-width, 0px), 180px);
max-width: min(320px, calc(100vw - 24px));
overflow: hidden;
animation: smtcmp-simple-select-pop 0.16s cubic-bezier(0.2, 0, 0, 1);
}
@keyframes smtcmp-simple-select-pop {
from {
opacity: 0;
transform: translateY(4px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.smtcmp-simple-select__list {
max-height: 240px;
overflow-y: auto;
scrollbar-width: thin;
}
.smtcmp-simple-select__item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
min-width: 0;
padding: 6px 8px;
border-radius: var(--radius-s);
color: var(--text-normal);
font-size: var(--font-ui-smaller);
cursor: pointer;
outline: none;
}
.smtcmp-simple-select__group-label {
display: block;
margin: 0;
padding: 8px 8px 6px 8px;
color: color-mix(in srgb, var(--text-muted) 85%, transparent);
font-size: 10px;
font-weight: var(--font-bold);
letter-spacing: 0.08em;
text-transform: uppercase;
user-select: none;
opacity: 0.8;
}
.smtcmp-simple-select__group-separator {
height: 1px;
background: linear-gradient(
to right,
transparent 4px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent) 16px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent)
calc(100% - 16px),
transparent calc(100% - 4px)
);
margin: 6px 0;
}
.smtcmp-simple-select__item[data-highlighted] {
background: var(--background-modifier-hover);
}
.smtcmp-simple-select__item[data-state='checked'] {
background: var(--background-modifier-hover);
color: var(--text-normal);
font-weight: var(--font-semibold);
box-shadow: inset 0 0 0 1px var(--background-modifier-border);
}
.smtcmp-simple-select__item-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.smtcmp-simple-select__item-label {
font-weight: var(--font-medium);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-simple-select__item-desc {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-simple-select__item-indicator {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--interactive-accent);
opacity: 0;
transition: opacity 0.15s ease;
}
.smtcmp-simple-select__item[data-state='checked']
.smtcmp-simple-select__item-indicator {
opacity: 1;
}
.smtcmp-composer-option--model .smtcmp-composer-option-control {
flex: 1 1 auto;
min-width: 0;
margin-left: 0;
justify-content: flex-start;
}
.smtcmp-composer-option--model .smtcmp-composer-option-control > div,
.smtcmp-composer-option--model .smtcmp-composer-option-control select {
width: 100%;
max-width: 100%;
}
.smtcmp-composer-option-control .smtcmp-display-contents,
.smtcmp-composer-option-control .smtcmp-checkbox-container {
margin-left: auto;
}
.smtcmp-composer-option-control .checkbox-component,
.smtcmp-composer-option-control .smtcmp-checkbox-container,
.smtcmp-composer-option-control .setting-item-control {
margin-left: auto;
}
.smtcmp-composer-context-picker {
margin-top: var(--size-4-2);
}
.smtcmp-composer-hint {
margin-top: var(--size-4-2);
padding: var(--size-2-3) var(--size-4-2);
border-radius: var(--radius-m);
background: var(--background-secondary);
border: 1px dashed var(--background-modifier-border);
color: var(--text-faint);
font-size: var(--font-ui-smaller);
}
.smtcmp-composer-container .setting-item {
border-top: none;
}
/* 特殊样式:模型选择区域 */
.smtcmp-composer-section--primary {
background: transparent !important;
border: 2px solid var(--interactive-accent);
box-shadow: none;
}
.smtcmp-composer-section--primary .smtcmp-composer-heading-title::before {
background: linear-gradient(
135deg,
var(--interactive-accent) 0%,
var(--interactive-accent-hover) 100%
);
width: 6px;
height: 20px;
}
/* 功能开关区域 */
.smtcmp-composer-section--toggles .smtcmp-composer-option {
background: var(--background-primary);
border: 1px solid var(--background-modifier-border-hover);
border-radius: var(--radius-s);
padding: var(--size-4-2) var(--size-4-3);
}
.smtcmp-composer-section--toggles .smtcmp-composer-option:hover {
background: var(--background-modifier-hover);
border-color: var(--background-modifier-border-hover);
}
/* 高级设置区域 */
.smtcmp-composer-section--advanced {
background: transparent !important;
border-style: dashed;
opacity: 0.9;
}
/* 让高级设置标题样式与默认卡片标题完全一致 */
.smtcmp-composer-section--advanced .smtcmp-composer-heading-title::before {
background: var(--h1-color, var(--text-accent));
width: 4px;
height: 18px;
}
/* 与 ObsidianToggle 组件配套的外层容器 hook:
唯一作用是给 `.smtcmp-composer-option-control` 里右对齐规则提供命中目标
(见本文件 949 行附近的 margin-left: auto)。
以前这里有一整段覆写,把原本 opacity:0 的 强行画成紫色轨道 + 自定义白点,
导致和 Obsidian 原生 .checkbox-container::after 叠在一起出现白点凸出/偏下,
已移除。switch 外观完全沿用 Obsidian 原生实现。 */
.smtcmp-checkbox-container {
position: relative;
display: inline-flex;
gap: var(--size-2-2);
}
/* 优先参考目录样式优化 */
.smtcmp-composer-hint {
margin-top: var(--size-4-3);
padding: var(--size-4-3);
border-radius: var(--radius-m);
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
position: relative;
overflow: hidden;
}
.smtcmp-composer-hint::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(
90deg,
var(--interactive-accent) 0%,
var(--interactive-accent-hover) 100%
);
}
.smtcmp-chat-conversation-surface {
position: relative;
display: flex;
flex: 1 1 auto;
flex-direction: column;
min-height: 0;
overflow-y: hidden;
}
.smtcmp-chat-messages {
flex: 1 1 auto;
min-height: 0;
overflow-y: auto;
user-select: text;
display: flex;
flex-direction: column;
gap: var(--size-4-1);
padding-block: var(--size-4-1);
padding-bottom: calc(var(--size-4-1) + 56px);
margin-block: calc(var(--size-4-1) * -1);
.smtcmp-chat-messages-user {
position: relative;
display: flex;
flex-direction: column;
gap: 0;
align-items: flex-end;
}
.smtcmp-chat-messages-assistant {
display: flex;
flex-direction: column;
}
.smtcmp-assistant-tool-message-group {
padding-bottom: var(--size-4-2);
display: flex;
flex-direction: column;
gap: var(--size-4-1);
}
}
.smtcmp-chat-timeline-row {
display: flex;
flex-direction: column;
flex-shrink: 0;
min-height: 0;
}
.smtcmp-chat-compaction-divider {
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
margin: var(--size-4-3) 0 var(--size-4-2);
color: var(--text-muted);
}
.smtcmp-chat-compaction-pending {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
margin: var(--size-4-3) 0 var(--size-4-2);
animation: smtcmp-chat-compaction-pending-enter 220ms
cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.smtcmp-chat-compaction-pending__loader {
display: flex;
align-items: center;
justify-content: center;
min-height: 20px;
}
.smtcmp-chat-compaction-pending__loader .smtcmp-thinking-loader {
gap: 8px;
}
.smtcmp-chat-compaction-pending__loader .smtcmp-thinking-icon {
width: 16px;
height: 16px;
}
.smtcmp-chat-compaction-pending__loader .smtcmp-thinking-icon-svg {
width: 14px;
height: 14px;
}
.smtcmp-chat-compaction-pending__loader .smtcmp-thinking-text {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
line-height: 1.35;
}
.smtcmp-chat-compaction-pending__description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: 1.45;
text-align: center;
}
.smtcmp-chat-compaction-divider.is-entering {
animation: smtcmp-chat-compaction-divider-enter 220ms
cubic-bezier(0.2, 0.8, 0.2, 1) both;
.smtcmp-chat-compaction-divider__line {
transform-origin: center;
animation: smtcmp-chat-compaction-divider-line-enter 220ms
cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
}
.smtcmp-chat-compaction-divider__title {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
color: var(--text-normal);
line-height: 1.35;
margin-bottom: 8px;
text-align: center;
}
.smtcmp-chat-compaction-divider__line {
width: 100%;
height: 1px;
background: color-mix(
in srgb,
var(--background-modifier-border) 92%,
transparent
);
}
.smtcmp-chat-compaction-divider__content {
text-align: center;
margin-top: 8px;
max-width: min(100%, 520px);
}
.smtcmp-chat-compaction-divider__description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
margin-top: 4px;
line-height: 1.45;
}
@keyframes smtcmp-chat-compaction-divider-enter {
from {
opacity: 0;
transform: translateY(6px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes smtcmp-chat-compaction-pending-enter {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes smtcmp-chat-compaction-divider-line-enter {
from {
opacity: 0.4;
transform: scaleX(0.92);
}
to {
opacity: 1;
transform: scaleX(1);
}
}
.smtcmp-chat-bottom-anchor {
height: 1px;
margin-top: 1px;
margin-bottom: 8px;
pointer-events: none;
}
.smtcmp-chat-scroll-to-bottom-button {
position: absolute;
right: 8px;
top: 0;
transform: translateY(calc(-100% - 12px));
display: inline-grid;
place-items: center;
width: 34px;
height: 34px;
padding: 0;
border-radius: 999px;
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 22%, transparent);
background: color-mix(in srgb, var(--background-primary) 90%, transparent);
color: var(--text-normal);
box-shadow: 0 10px 24px
color-mix(in srgb, var(--background-modifier-box-shadow) 18%, transparent);
backdrop-filter: blur(10px);
transition:
transform 0.15s ease,
border-color 0.15s ease,
background-color 0.15s ease;
}
.smtcmp-chat-scroll-to-bottom-button:hover {
transform: translateY(calc(-100% - 13px));
border-color: color-mix(in srgb, var(--interactive-accent) 40%, transparent);
background: color-mix(in srgb, var(--background-primary) 82%, transparent);
}
.smtcmp-chat-scroll-to-bottom-button svg {
color: var(--interactive-accent);
}
.smtcmp-assistant-message-selectable {
position: relative;
}
.smtcmp-assistant-selection-quote-button {
position: absolute;
display: inline-flex;
align-items: center;
gap: 6px;
font-size: var(--font-ui-small);
padding: 6px 10px;
border: 1px solid var(--background-modifier-border);
border-radius: 999px;
background: color-mix(in srgb, var(--background-primary) 92%, transparent);
color: var(--text-normal);
box-shadow: 0 10px 24px
color-mix(in srgb, var(--background-modifier-box-shadow) 16%, transparent);
backdrop-filter: blur(8px);
z-index: 8;
opacity: 0;
transform: translateY(-4px) scale(0.96);
transition:
opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1),
transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
border-color 0.15s ease,
background 0.15s ease;
}
.smtcmp-assistant-selection-quote-button.visible {
opacity: 1;
transform: translateY(0) scale(1);
}
.smtcmp-assistant-selection-quote-button:hover,
.smtcmp-assistant-selection-quote-button:focus,
.smtcmp-assistant-selection-quote-button:focus-visible {
border-color: var(--background-modifier-border-hover);
background: color-mix(
in srgb,
var(--background-primary-alt) 94%,
transparent
);
transform: translateY(0) scale(1.03);
}
.smtcmp-chat-empty-state {
margin: auto;
width: min(560px, calc(100% - var(--size-4-4)));
padding: var(--size-4-4);
border-radius: var(--radius-l);
background: linear-gradient(
150deg,
color-mix(in srgb, var(--background-secondary) 90%, transparent) 0%,
color-mix(in srgb, var(--background-primary-alt) 88%, transparent) 100%
);
box-shadow: 0 14px 34px
color-mix(in srgb, var(--background-modifier-box-shadow) 12%, transparent);
text-align: center;
}
.smtcmp-chat-empty-state-overlay {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 0 var(--size-4-2);
pointer-events: none;
}
.smtcmp-chat-empty-state-overlay-inner {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
max-height: 100%;
width: 100%;
overflow-y: auto;
pointer-events: none;
}
.smtcmp-update-banner {
pointer-events: auto;
width: min(560px, calc(100% - var(--size-4-4)));
margin: 0 auto var(--size-4-3);
padding: var(--size-4-3);
border-radius: var(--radius-l);
background: color-mix(
in srgb,
var(--interactive-accent) 8%,
var(--background-secondary)
);
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 22%, transparent);
box-shadow: 0 8px 24px
color-mix(in srgb, var(--background-modifier-box-shadow) 10%, transparent);
text-align: left;
}
.smtcmp-update-banner-row {
display: flex;
align-items: flex-start;
gap: var(--size-4-2);
}
.smtcmp-update-banner-icon {
flex-shrink: 0;
width: 34px;
height: 34px;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--interactive-accent);
background: color-mix(in srgb, var(--interactive-accent) 14%, transparent);
}
.smtcmp-update-banner-body {
flex: 1;
min-width: 0;
}
.smtcmp-update-banner-title {
font-size: var(--font-ui-medium);
font-weight: var(--font-semibold);
color: var(--text-normal);
margin-bottom: var(--size-2-1);
}
.smtcmp-update-banner-meta {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
margin-bottom: var(--size-2-2);
}
.smtcmp-update-banner-notes {
font-size: var(--font-ui-small);
color: var(--text-muted);
line-height: 1.45;
word-break: break-word;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
.smtcmp-update-banner-dismiss {
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border-radius: var(--radius-s);
border: none !important;
background: transparent !important;
box-shadow: none !important;
outline: none;
appearance: none;
color: var(--text-muted);
cursor: var(--cursor);
}
.smtcmp-update-banner-dismiss:hover {
border: none !important;
background: transparent !important;
box-shadow: none !important;
color: var(--text-normal);
}
.smtcmp-update-banner-dismiss:focus,
.smtcmp-update-banner-dismiss:focus-visible,
.smtcmp-update-banner-dismiss:active {
border: none !important;
background: transparent !important;
box-shadow: none !important;
}
.smtcmp-update-banner-actions {
margin-top: var(--size-4-2);
display: flex;
justify-content: flex-end;
gap: var(--size-4-2);
}
/* Installation incomplete — same layout as update banner, red / error emphasis */
.smtcmp-installation-incomplete-banner {
pointer-events: auto;
width: min(560px, calc(100% - var(--size-4-4)));
margin: 0 auto var(--size-4-3);
padding: var(--size-4-3);
border-radius: var(--radius-l);
background: color-mix(
in srgb,
var(--text-error) 10%,
var(--background-secondary)
);
border: 1px solid color-mix(in srgb, var(--text-error) 28%, transparent);
box-shadow: 0 8px 24px
color-mix(in srgb, var(--background-modifier-box-shadow) 10%, transparent);
text-align: left;
}
.smtcmp-installation-incomplete-banner-row {
display: flex;
align-items: flex-start;
gap: var(--size-4-2);
}
.smtcmp-installation-incomplete-banner-icon {
flex-shrink: 0;
width: 34px;
height: 34px;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-error);
background: color-mix(in srgb, var(--text-error) 16%, transparent);
}
.smtcmp-installation-incomplete-banner-body {
flex: 1;
min-width: 0;
}
.smtcmp-installation-incomplete-banner-title {
font-size: var(--font-ui-medium);
font-weight: var(--font-semibold);
color: var(--text-normal);
margin-bottom: var(--size-2-1);
}
.smtcmp-installation-incomplete-banner-meta {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
margin-bottom: var(--size-2-2);
}
.smtcmp-installation-incomplete-banner-notes {
font-size: var(--font-ui-small);
color: var(--text-muted);
line-height: 1.45;
word-break: break-word;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
}
.smtcmp-installation-incomplete-banner-dismiss {
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border-radius: var(--radius-s);
border: none !important;
background: transparent !important;
box-shadow: none !important;
outline: none;
appearance: none;
color: var(--text-muted);
cursor: var(--cursor);
}
.smtcmp-installation-incomplete-banner-dismiss:hover {
border: none !important;
background: transparent !important;
box-shadow: none !important;
color: var(--text-normal);
}
.smtcmp-installation-incomplete-banner-dismiss:focus,
.smtcmp-installation-incomplete-banner-dismiss:focus-visible,
.smtcmp-installation-incomplete-banner-dismiss:active {
border: none !important;
background: transparent !important;
box-shadow: none !important;
}
.smtcmp-installation-incomplete-banner-actions {
margin-top: var(--size-4-2);
display: flex;
justify-content: flex-end;
gap: var(--size-4-2);
}
.smtcmp-installation-incomplete-banner-cta.mod-cta {
background-color: color-mix(
in srgb,
var(--text-error) 92%,
var(--background-primary)
) !important;
background-image: none !important;
color: var(--background-primary) !important;
border: none !important;
box-shadow: none !important;
}
.smtcmp-installation-incomplete-banner-cta.mod-cta:hover {
background-color: color-mix(
in srgb,
var(--text-error) 100%,
var(--background-primary)
) !important;
background-image: none !important;
color: var(--background-primary) !important;
}
.smtcmp-chat-empty-state-icon {
width: 34px;
height: 34px;
margin: 0 auto var(--size-2-2);
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--interactive-accent);
background: color-mix(in srgb, var(--interactive-accent) 14%, transparent);
animation: smtcmp-chat-empty-icon-in 220ms ease-out;
}
.smtcmp-chat-empty-state-icon[data-mode='chat'] {
background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
}
.smtcmp-chat-empty-state-icon[data-mode='agent'] {
background: color-mix(
in srgb,
var(--interactive-accent-hover) 14%,
transparent
);
}
@keyframes smtcmp-chat-empty-icon-in {
from {
opacity: 0;
transform: translateY(3px) scale(0.88);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.smtcmp-chat-empty-state-title {
font-size: var(--font-ui-large);
font-weight: var(--font-semibold);
color: var(--text-normal);
margin-bottom: var(--size-2-2);
}
.smtcmp-chat-empty-state-description {
font-size: var(--font-ui-medium);
color: var(--text-muted);
margin-bottom: var(--size-4-2);
}
.smtcmp-obsidian-textarea {
-webkit-app-region: no-drag;
background: var(--background-modifier-form-field);
color: var(--text-normal);
font-family: inherit;
padding: 0;
font-size: var(--font-ui-small);
outline: none;
min-height: 80px;
max-height: 200px;
overflow-y: auto;
font-size: var(--font-ui-small);
padding: var(--size-2-1);
}
@media (hover: hover) {
.smtcmp-obsidian-textarea:hover {
border-color: var(--background-modifier-border-hover);
transition:
box-shadow 0.15s ease-in-out,
border 0.15s ease-in-out;
}
}
.smtcmp-obsidian-textarea:active {
border-color: var(--background-modifier-border-focus);
transition:
box-shadow 0.15s ease-in-out,
border 0.15s ease-in-out;
}
/* .smtcmp-obsidian-textarea::placeholder {
color: var(--text-faint);
} */
.smtcmp-obsidian-textarea {
line-height: var(--line-height-tight);
}
.smtcmp-chat-user-input-container {
position: relative;
display: flex;
flex-direction: column;
-webkit-app-region: no-drag;
background: var(--background-modifier-form-field);
border: var(--input-border-width) solid var(--background-modifier-border);
color: var(--text-normal);
font-family: inherit;
padding: calc(var(--size-2-3) + 1px);
font-size: var(--font-ui-small);
border-radius: var(--radius-s);
outline: none;
--smtcmp-mention-max-width: 240px;
--smtcmp-mention-badge-max-width: 180px;
&:focus-within,
&:focus,
&:focus-visible,
&:active {
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
transition: box-shadow 0.15s ease-in-out;
}
}
.smtcmp-chat-user-input-container[data-resizable='true']
.smtcmp-obsidian-textarea,
.smtcmp-chat-user-input-container[data-resizable='true']
.smtcmp-content-editable {
min-height: var(--smtcmp-chat-user-input-height, 80px);
max-height: var(--smtcmp-chat-user-input-height, 80px);
height: var(--smtcmp-chat-user-input-height, 80px);
}
.smtcmp-chat-user-input-container[data-resizable='true'] {
cursor: text;
}
.smtcmp-chat-user-input-container[data-resize-hotspot-active='true'] {
cursor: ns-resize;
}
.smtcmp-chat-user-input-wrapper {
position: relative;
display: flex;
flex-direction: column;
gap: var(--size-2-2);
width: 100%;
}
.smtcmp-chat-user-input-resize-hitbox {
position: absolute;
top: -6px;
left: 0;
right: 44px;
height: 12px;
cursor: ns-resize;
z-index: 2;
}
.smtcmp-chat-user-input-wrapper--compact {
max-width: 85%;
align-self: flex-end;
width: fit-content;
}
.smtcmp-chat-user-input-wrapper--compact .smtcmp-chat-user-input-container {
--smtcmp-chat-user-bubble-bg: color-mix(
in srgb,
var(--interactive-accent) 18%,
var(--background-primary)
);
--smtcmp-chat-user-bubble-border: color-mix(
in srgb,
var(--interactive-accent) 36%,
transparent
);
background: var(--smtcmp-chat-user-bubble-bg);
border-radius: var(--radius-l);
border: 1px solid var(--smtcmp-chat-user-bubble-border);
box-shadow: none;
padding: var(--size-2-3) var(--size-4-2);
transition:
background 0.2s ease-in-out,
border-color 0.2s ease-in-out;
cursor: pointer;
gap: var(--size-2-2);
}
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-container:hover {
background: color-mix(
in srgb,
var(--interactive-accent) 24%,
var(--background-primary)
);
border-color: color-mix(in srgb, var(--interactive-accent) 48%, transparent);
box-shadow: none;
}
/* Disable focus effects in compact mode */
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-container:focus-within,
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-container:focus,
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-container:focus-visible,
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-container:active {
box-shadow: none;
}
.smtcmp-chat-user-input-wrapper--compact .smtcmp-chat-user-input-files {
padding-bottom: 0;
gap: var(--size-2-2);
}
/* Only add bottom margin if there are mentionables */
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-files:not(:empty) {
margin-bottom: var(--size-2-2);
}
.smtcmp-chat-user-input-wrapper--compact .smtcmp-chat-user-input-editor {
line-height: var(--line-height-normal);
pointer-events: none;
min-height: unset;
}
.smtcmp-chat-user-input-wrapper--compact .smtcmp-obsidian-textarea,
.smtcmp-chat-user-input-wrapper--compact .smtcmp-content-editable {
min-height: unset;
max-height: none;
height: auto;
padding: 0;
overflow: visible;
background: transparent;
}
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-lexical-content-editable-paragraph {
margin: 0;
line-height: var(--line-height-normal);
}
.smtcmp-chat-user-input-wrapper--compact .smtcmp-chat-user-input-placeholder {
color: var(--text-muted);
opacity: 0.7;
font-size: var(--font-ui-smaller);
position: static;
padding: 0;
}
/* Hide delete button in badges within compact mode */
.smtcmp-chat-user-input-wrapper--compact
.smtcmp-chat-user-input-file-badge-delete {
display: none;
}
/* Make badges non-interactive in compact mode */
.smtcmp-chat-user-input-wrapper--compact .smtcmp-chat-user-input-file-badge {
cursor: default;
pointer-events: none;
}
.smtcmp-user-message-card {
display: flex;
flex-direction: column;
width: fit-content;
min-height: 0;
height: auto;
max-height: none;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
color: inherit;
text-align: left;
cursor: pointer;
overflow: visible;
white-space: normal;
align-items: stretch;
justify-content: flex-start;
appearance: none;
}
.smtcmp-user-message-card:focus,
.smtcmp-user-message-card:focus-visible {
outline: none;
}
.smtcmp-user-message-card .smtcmp-chat-user-input-container {
width: fit-content;
}
.smtcmp-user-message-card__badges {
display: flex;
flex-wrap: wrap;
gap: var(--size-2-1);
}
.smtcmp-user-message-card__badges .smtcmp-chat-user-input-file-badge {
pointer-events: none;
}
.smtcmp-user-message-card__content {
display: flex;
flex-direction: column;
gap: 2px;
font-size: inherit;
line-height: var(--line-height-normal);
white-space: pre-wrap;
word-break: break-word;
}
.smtcmp-user-message-card__line {
min-height: 1.4em;
}
.smtcmp-user-message-card__placeholder {
color: var(--text-muted);
}
.smtcmp-chat-user-input-tools-row {
display: flex;
align-items: center;
gap: var(--size-4-1);
}
.smtcmp-chat-user-input-files {
position: relative;
display: flex;
flex-direction: row;
gap: var(--size-4-1);
flex-wrap: wrap;
padding-bottom: var(--size-4-1);
}
.smtcmp-chat-user-input-editor {
position: relative;
}
.smtcmp-chat-user-input-placeholder {
position: absolute;
left: var(--size-2-1);
right: var(--size-2-1);
top: calc(var(--size-2-1) + 1.4px);
color: color-mix(in srgb, var(--text-muted) 78%, transparent);
pointer-events: none;
font-size: var(--font-ui-small);
.smtcmp-placeholder-trigger {
pointer-events: auto;
display: inline-block;
min-width: 1.4em;
text-align: center;
padding: 0 3px;
border-radius: 3px;
background-color: var(--tag-background);
color: var(--tag-color);
cursor: pointer;
transition: opacity 80ms ease;
&:hover {
opacity: 0.75;
}
}
}
.smtcmp-chat-user-input-controls {
display: flex;
flex-direction: row;
gap: var(--size-4-1);
align-items: center;
flex-wrap: nowrap;
height: var(--size-4-4);
.smtcmp-chat-user-input-controls__left {
display: flex;
align-items: center;
gap: var(--size-4-3);
flex: 1 1 auto;
min-width: 0;
overflow: hidden;
}
.smtcmp-chat-user-input-controls__right {
display: flex;
align-items: center;
justify-content: flex-end;
gap: var(--size-4-2);
flex: 0 1 auto;
min-width: 0;
}
.smtcmp-chat-user-input-controls__model-select-container {
flex: 1 1 180px;
min-width: 0;
overflow: hidden;
}
.smtcmp-chat-user-input-controls__buttons {
flex-shrink: 0;
display: flex;
gap: var(--size-4-2);
align-items: center;
}
}
.smtcmp-chat-user-input-controls__left .smtcmp-chat-input-model-select {
max-width: 160px;
min-width: 0;
flex-shrink: 1;
}
.smtcmp-chat-user-input-controls__left .smtcmp-reasoning-select {
min-width: 72px;
flex: 0 1 auto;
}
.smtcmp-chat-user-input-controls__left
.smtcmp-chat-input-model-select__model-name {
max-width: 120px;
}
.smtcmp-chat-user-input-controls__right .smtcmp-chat-user-input-submit-button {
flex: 0 1 96px;
}
.smtcmp-chat-user-input-controls .smtcmp-chat-user-input-submit-button {
display: flex;
align-items: center;
gap: var(--size-4-1);
min-width: 0;
font-size: var(--font-smallest);
color: var(--text-muted);
background: transparent;
border: none;
box-shadow: none;
padding: 0 var(--size-2-1);
cursor: pointer;
transition: all 0.1s ease-in-out;
&:hover {
color: var(--text-normal);
}
.smtcmp-chat-user-input-submit-button-icons {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
}
}
.smtcmp-chat-user-input-submit-button-label {
min-width: 0;
flex: 1 1 auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-chat-user-input-controls__left .smtcmp-chat-user-input-upload-button {
width: var(--size-4-5);
height: var(--size-4-5);
padding: 0;
gap: 0;
border-radius: var(--radius-s);
flex: 0 0 auto;
justify-content: center;
color: var(--text-muted);
&:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}
}
.smtcmp-chat-input-model-select__label {
min-width: 0;
flex: 1 1 auto;
}
/* Circle submit button (ChatGPT style) */
.smtcmp-chat-user-input-submit-button-circle {
width: 28px;
height: 28px;
border-radius: 50%;
border: 1px solid var(--background-modifier-border);
background: transparent;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: var(--text-muted);
transition: all 0.15s ease;
flex-shrink: 0;
&:hover {
background: var(--interactive-accent);
color: var(--text-on-accent);
border-color: var(--interactive-accent);
}
}
/* Chat Mode Select */
.smtcmp-chat-mode-select {
flex-shrink: 0;
gap: var(--size-4-1);
}
.smtcmp-chat-mode-select__icon {
display: flex;
align-items: center;
justify-content: center;
color: inherit;
margin-right: 2px;
}
.smtcmp-chat-mode-select__icon svg {
width: 14px;
height: 14px;
}
.smtcmp-chat-mode-select-item {
display: flex;
align-items: flex-start;
gap: 6px;
padding: 6px 10px !important;
}
.smtcmp-chat-mode-select-item__icon {
display: flex;
align-items: center;
justify-content: center;
margin-top: 1px;
color: var(--text-muted);
}
.smtcmp-chat-mode-select-item__icon svg {
width: 12px;
height: 12px;
}
.smtcmp-chat-mode-select-item__content {
display: flex;
flex-direction: column;
gap: 1px;
}
.smtcmp-chat-mode-select-item__label {
font-size: 12px;
font-weight: 500;
color: var(--text-normal);
}
.smtcmp-chat-mode-select-item__desc {
font-size: 11px;
color: var(--text-muted);
line-height: 1.3;
}
.smtcmp-chat-mode-select-item[data-state='checked']
.smtcmp-chat-mode-select-item__icon,
.smtcmp-chat-mode-select-item[data-highlighted]
.smtcmp-chat-mode-select-item__icon {
color: var(--text-normal);
}
/* Reasoning Select */
.smtcmp-reasoning-select {
display: flex;
align-items: center;
justify-content: center;
min-width: 72px;
flex-shrink: 1;
gap: var(--size-4-1);
}
.smtcmp-reasoning-select .smtcmp-chat-input-model-select__label {
flex: 0 1 auto;
text-align: center;
}
@media (max-width: 520px) {
.smtcmp-chat-user-input-controls__right
.smtcmp-chat-user-input-submit-button {
flex-basis: auto;
padding-inline: 0;
}
.smtcmp-chat-user-input-controls__right
.smtcmp-chat-user-input-submit-button-label {
display: none;
}
.smtcmp-chat-user-input-controls__left .smtcmp-reasoning-select {
flex-basis: auto;
}
}
.smtcmp-reasoning-select__icon {
display: flex;
align-items: center;
justify-content: center;
color: inherit;
margin-right: 2px;
}
.smtcmp-reasoning-select__icon svg {
width: 14px;
height: 14px;
}
.smtcmp-reasoning-popover {
padding: 12px 14px;
/* Sizing is declared via props in ReasoningSelect.tsx. */
}
.smtcmp-reasoning-popover__header {
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 10px;
color: var(--text-normal);
}
.smtcmp-reasoning-popover__header-icon {
color: var(--text-muted);
flex-shrink: 0;
}
.smtcmp-reasoning-popover__header-title {
font-size: 12.5px;
font-weight: 600;
}
.smtcmp-reasoning-popover__header-current {
font-size: 11.5px;
color: var(--text-muted);
font-family: var(--font-monospace);
}
/* Pill variant of the shared segmented control: solid white slider with soft
accent ring, paired with an absolutely positioned glider for the slide. */
.smtcmp-segmented.smtcmp-segmented--pill {
display: flex;
width: 100%;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
padding: 3px;
gap: 0;
position: relative;
overflow: visible;
isolation: isolate;
}
.smtcmp-segmented.smtcmp-segmented--pill > .smtcmp-segmented-glider {
position: absolute;
top: 3px;
left: 3px;
width: calc((100% - 6px) / var(--smtcmp-segment-count));
height: calc(100% - 6px);
background: var(--background-secondary);
border: none;
border-radius: 5px;
box-shadow: 0 0 0 1.5px var(--interactive-accent);
transform: translateX(calc(100% * var(--smtcmp-segment-index)));
transition: transform 0.24s cubic-bezier(0.4, 1.1, 0.4, 1);
pointer-events: none;
z-index: 1;
}
.smtcmp-segmented.smtcmp-segmented--pill > button {
flex: 1 1 0;
position: relative;
z-index: 2;
appearance: none;
-webkit-appearance: none;
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
border: none !important;
box-shadow: none !important;
outline: none;
padding: 6px 4px;
border-radius: 5px;
font-size: 12.5px;
font-weight: 500;
color: var(--text-muted) !important;
cursor: pointer;
text-align: center;
transform: none !important;
transition:
color 0.15s ease,
font-weight 0.15s ease;
}
.smtcmp-segmented.smtcmp-segmented--pill > button:hover {
background: transparent !important;
color: var(--text-normal) !important;
transform: none !important;
}
.smtcmp-segmented.smtcmp-segmented--pill > button:focus-visible {
outline: none;
box-shadow: 0 0 0 2px var(--background-modifier-border) !important;
}
/* When the active segment also has keyboard focus, suppress the neutral focus
ring so the glider's accent ring remains the visual indicator. */
.smtcmp-segmented.smtcmp-segmented--pill > button.active:focus-visible {
box-shadow: none !important;
}
.smtcmp-segmented.smtcmp-segmented--pill > button.active {
background: transparent !important;
color: var(--text-normal) !important;
font-weight: 600;
transform: none !important;
}
.smtcmp-reasoning-popover__desc {
font-size: 11.5px;
color: var(--text-muted);
margin-top: 10px;
line-height: 1.5;
}
.smtcmp-reasoning-popover__desc-label {
color: var(--text-normal);
}
.smtcmp-reasoning-popover__desc-sep {
color: var(--text-faint);
}
.smtcmp-chat-user-input-file-badge {
display: flex;
align-items: center;
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
font-size: var(--font-smallest);
padding: var(--size-2-1) var(--size-4-1);
gap: var(--size-2-1);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: var(--smtcmp-mention-badge-max-width, 260px);
cursor: pointer;
&.smtcmp-chat-user-input-file-badge-focused {
border: 1px solid var(--interactive-accent);
}
.smtcmp-excluded-content {
text-decoration: line-through;
font-style: italic;
}
svg {
flex-shrink: 0;
}
}
.smtcmp-chat-user-input-file-badge:hover {
background-color: var(--background-modifier-hover);
}
button.smtcmp-chat-user-input-file-badge-delete,
.smtcmp-chat-user-input-file-badge-delete {
appearance: none !important;
-webkit-appearance: none !important;
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
outline: none !important;
border-radius: 0 !important;
padding: 0 !important;
margin: 0 !important;
min-height: 0 !important;
min-width: 0 !important;
width: auto !important;
height: 100%;
display: flex;
align-items: center;
color: var(--text-muted);
cursor: pointer;
}
button.smtcmp-chat-user-input-file-badge-delete:hover,
button.smtcmp-chat-user-input-file-badge-delete:focus,
button.smtcmp-chat-user-input-file-badge-delete:focus-visible,
.smtcmp-chat-user-input-file-badge-delete:hover,
.smtcmp-chat-user-input-file-badge-delete:focus,
.smtcmp-chat-user-input-file-badge-delete:focus-visible {
appearance: none !important;
-webkit-appearance: none !important;
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
outline: none !important;
}
.smtcmp-chat-user-input-file-badge-expand {
height: 100%;
display: flex;
align-items: center;
color: var(--text-muted);
cursor: pointer;
padding: 0 var(--size-2-1);
border-radius: var(--radius-s);
}
.smtcmp-chat-user-input-file-badge-expand:hover {
color: var(--text-normal);
background-color: var(--background-modifier-hover);
}
.smtcmp-chat-user-input-file-badge-eye {
height: 100%;
display: flex;
align-items: center;
margin: 0 var(--size-2-1) 0 var(--size-4-1);
}
.smtcmp-chat-user-input-file-badge-name {
display: flex;
flex-direction: row;
gap: var(--size-2-1);
flex-grow: 1;
overflow: hidden;
align-items: center;
min-width: 0;
}
.smtcmp-chat-user-input-file-badge-name-icon {
color: var(--text-muted);
}
.smtcmp-chat-user-input-file-badge-name span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-chat-user-input-file-badge-name-suffix {
color: var(--text-faint);
flex-grow: 0;
}
.smtcmp-chat-user-input-file-badge-current {
color: var(--color-base-50);
}
.smtcmp-chat-user-input-file-content-preview {
position: absolute;
bottom: 100%;
left: 0;
right: 0;
margin-bottom: var(--size-4-1);
background-color: var(--background-secondary);
border-radius: var(--radius-s);
border: 1px solid var(--background-modifier-border);
max-height: 350px;
overflow-y: auto;
padding: 0 var(--size-4-2);
z-index: 10;
box-shadow: var(--shadow-s);
img {
max-width: 100%;
max-height: 350px;
}
}
.smtcmp-agent-mode-warning-modal {
display: flex;
flex-direction: column;
gap: var(--size-4-3);
}
.smtcmp-agent-mode-warning-description {
margin: 0;
color: var(--text-normal);
line-height: var(--line-height-normal);
}
.smtcmp-agent-mode-warning-list {
margin: 0;
padding-left: var(--size-4-4);
display: flex;
flex-direction: column;
gap: var(--size-4-1);
line-height: var(--line-height-normal);
}
.smtcmp-agent-mode-warning-list li::marker {
color: var(--text-muted);
}
.smtcmp-agent-mode-warning-risk-title {
font-weight: var(--font-semibold);
}
.smtcmp-agent-mode-warning-checkbox {
display: flex;
gap: var(--size-2-2);
align-items: center;
}
.smtcmp-agent-mode-warning-checkbox input[type='checkbox'] {
margin: 0;
flex-shrink: 0;
}
.smtcmp-agent-mode-warning-actions {
margin-top: var(--size-4-1);
}
.smtcmp-agent-mode-warning-confirm:disabled {
opacity: 0.55;
cursor: not-allowed;
}
.smtcmp-sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* OpenAI-Style Thinking Loader - OpenAI 风格思考动画 */
.smtcmp-thinking-loader {
display: inline-flex;
align-items: center;
gap: 6px;
}
/* 内联思考指示器 - 在编辑器中显示 */
.smtcmp-thinking-indicator-inline {
display: inline-flex;
align-items: center;
margin-left: 6px;
vertical-align: baseline;
line-height: 1;
}
/* 旋转的 Sparkles 图标 */
.smtcmp-thinking-icon {
position: relative;
width: 18px;
height: 18px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: color-mix(in srgb, var(--interactive-accent) 15%, transparent);
box-shadow:
0 0 0 1px color-mix(in srgb, var(--interactive-accent) 20%, transparent),
0 1px 4px color-mix(in srgb, var(--interactive-accent) 10%, transparent);
}
.smtcmp-thinking-icon-svg {
color: var(--interactive-accent);
animation: smtcmp-thinking-icon-spin 3s linear infinite;
}
@keyframes smtcmp-thinking-icon-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* 高光流动的文字 */
.smtcmp-thinking-text {
font-size: var(--font-ui-medium);
font-weight: var(--font-normal);
letter-spacing: 0.02em;
background: linear-gradient(
90deg,
var(--text-muted) 0%,
var(--text-muted) 30%,
var(--text-normal) 50%,
var(--text-muted) 70%,
var(--text-muted) 100%
);
background-size: 200% 100%;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: smtcmp-thinking-text-shimmer 2s ease-in-out infinite;
}
.smtcmp-thinking-snippet {
font-size: var(--font-ui-small);
line-height: 1.2;
color: var(--text-muted);
background: color-mix(in srgb, var(--interactive-accent) 10%, transparent);
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 25%, transparent);
padding: 2px 8px;
border-radius: 999px;
max-width: 220px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
backdrop-filter: blur(6px);
}
@keyframes smtcmp-thinking-text-shimmer {
0% {
background-position: 200% center;
}
100% {
background-position: -200% center;
}
}
.smtcmp-dot-loader-minimal {
display: inline-flex;
gap: 4px;
align-items: center;
color: var(--text-muted);
}
.smtcmp-dot-loader-minimal span {
width: 4px;
height: 4px;
border-radius: 50%;
background: currentColor;
opacity: 0.35;
animation: smtcmp-dot-loader-pulse 1s ease-in-out infinite;
}
.smtcmp-dot-loader-minimal span:nth-child(2) {
animation-delay: 0.15s;
}
.smtcmp-dot-loader-minimal span:nth-child(3) {
animation-delay: 0.3s;
}
@keyframes smtcmp-dot-loader-pulse {
0%,
80%,
100% {
transform: scale(0.6);
opacity: 0.25;
}
40% {
transform: scale(1);
opacity: 0.9;
}
}
/* 保留旧的 dot-loader 作为后备 */
.smtcmp-dot-loader {
display: inline-block;
text-align: left;
}
.smtcmp-dot-loader::after {
content: '...';
animation: dotFade 0.75s steps(4, end) infinite;
color: var(--text-muted);
}
@keyframes dotFade {
0%,
100% {
content: '';
}
25% {
content: '.';
}
50% {
content: '..';
}
75% {
content: '...';
}
}
.smtcmp-tooltip-content {
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-1) var(--size-4-2);
font-size: var(--font-smallest);
animation: fadeIn 0.1s ease-in-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.smtcmp-settings-textarea {
display: block;
border-top: none !important;
padding: 0 !important;
margin-bottom: var(--size-4-3);
.smtcmp-item-control {
width: 100%;
}
.setting-item-control {
padding-bottom: 0;
}
textarea {
width: 100%;
min-height: 100px;
resize: none;
}
}
/* prevent setting-item:first-child overwriting padding-top and border-top */
.smtcmp-settings-textarea-header {
padding-top: 0.75em !important;
padding-bottom: 0 !important;
border-top: 1px solid var(--background-modifier-border) !important;
}
.smtcmp-settings-model-container {
margin: var(--size-4-2) 0;
padding: var(--size-4-2) var(--size-4-4);
border-left: 2px solid var(--interactive-accent);
background-color: var(--background-secondary);
border-radius: var(--radius-s);
.setting-item {
border-top: none;
&:first-child {
margin-top: var(--size-4-2);
}
}
}
.smtcmp-settings-plain.setting-item {
padding: 0;
border: none;
background: transparent;
box-shadow: none;
}
.smtcmp-settings-plain.setting-item .setting-item-info {
display: none;
}
.smtcmp-settings-plain.setting-item .setting-item-control {
padding: 0;
}
.smtcmp-dialog-content {
position: fixed;
left: calc(50% - var(--size-4-4));
top: 50%;
z-index: 50;
display: grid;
width: calc(100% - var(--size-4-8));
max-width: 32rem;
transform: translate(-50%, -50%);
gap: var(--size-4-2);
border: var(--border-width) solid var(--background-modifier-border);
background-color: var(--background-secondary);
padding: var(--size-4-5);
transition-duration: 200ms;
border-radius: var(--radius-m);
box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
margin: var(--size-4-4);
.smtcmp-dialog-header {
margin-bottom: var(--size-4-2);
display: grid;
gap: var(--size-2-3);
}
.smtcmp-dialog-title {
font-size: var(--font-ui-medium);
font-weight: var(--font-semibold);
line-height: var(--line-height-tight);
margin: 0;
}
.smtcmp-dialog-input {
display: grid;
gap: var(--size-4-1);
& label {
font-size: var(--font-ui-smaller);
}
}
.smtcmp-dialog-description {
font-size: var(--font-ui-small);
color: var(--text-muted);
margin: 0;
}
.smtcmp-dialog-footer {
margin-top: var(--size-4-2);
display: flex;
justify-content: flex-end;
}
.smtcmp-dialog-close {
position: absolute;
right: var(--size-4-4);
top: var(--size-4-4);
cursor: var(--cursor);
opacity: 0.7;
transition: opacity 0.2s;
&:hover {
opacity: 1;
}
}
}
.smtcmp-template-menu-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-1);
width: 100%;
.smtcmp-template-menu-item-delete {
display: flex;
align-items: center;
padding: var(--size-4-1);
margin: calc(var(--size-4-1) * -1);
opacity: 0.7;
transition: opacity 0.2s;
&:hover {
opacity: 1;
}
}
}
.smtcmp-assistant-message-actions {
display: flex;
align-items: center;
justify-content: end;
gap: var(--size-4-1);
flex: 0 0 auto;
}
.smtcmp-assistant-message-action-btn {
flex-shrink: 0;
}
.smtcmp-assistant-message-more-group {
display: grid;
grid-template-columns: 0fr auto;
align-items: center;
gap: var(--size-4-1);
flex-shrink: 0;
transition: grid-template-columns 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-actions.is-more-open
.smtcmp-assistant-message-more-group {
grid-template-columns: 1fr auto;
}
.smtcmp-assistant-message-inline-actions {
min-width: 0;
overflow: hidden;
opacity: 0;
transform: translateX(6px);
transform-origin: right center;
pointer-events: none;
transition:
opacity 150ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-inline-actions.is-open {
opacity: 1;
transform: translateX(0);
pointer-events: auto;
}
.smtcmp-assistant-message-inline-actions-inner {
display: flex;
align-items: center;
gap: var(--size-4-1);
white-space: nowrap;
padding: 2px 0;
}
.smtcmp-assistant-message-inline-actions-inner
> .smtcmp-assistant-message-action-btn {
opacity: 0;
transform: translateX(5px) scale(0.96);
transition:
opacity 140ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-assistant-message-inline-actions.is-open
.smtcmp-assistant-message-inline-actions-inner
> .smtcmp-assistant-message-action-btn {
opacity: 1;
transform: translateX(0) scale(1);
}
.smtcmp-assistant-message-inline-actions.is-open
.smtcmp-assistant-message-inline-actions-inner
> .smtcmp-assistant-message-action-btn:nth-child(1) {
transition-delay: 30ms;
}
.smtcmp-assistant-message-inline-actions.is-open
.smtcmp-assistant-message-inline-actions-inner
> .smtcmp-assistant-message-action-btn:nth-child(2) {
transition-delay: 55ms;
}
.smtcmp-assistant-message-inline-actions.is-open
.smtcmp-assistant-message-inline-actions-inner
> .smtcmp-assistant-message-action-btn:nth-child(3) {
transition-delay: 80ms;
}
.smtcmp-assistant-message-more-button.is-open {
visibility: visible;
color: var(--text-normal);
background: var(--background-modifier-hover);
border-radius: var(--radius-s);
}
.smtcmp-assistant-message-more-button svg {
transition:
transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 120ms ease;
transform-origin: center;
}
.smtcmp-assistant-message-more-button.is-open svg {
transform: rotate(90deg) scale(0.96);
}
.yolo-user-message-actions {
position: absolute;
top: 100%;
right: 0;
display: flex;
align-items: center;
justify-content: flex-end;
gap: var(--size-4-1);
padding: 2px var(--size-2-2) 0;
box-sizing: border-box;
opacity: 0;
pointer-events: none;
z-index: 1;
transform: translateY(-2px);
transition:
opacity 140ms ease,
transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-user-message-card:hover ~ .yolo-user-message-actions,
.yolo-user-message-actions:hover,
.smtcmp-chat-messages-user:focus-within .yolo-user-message-actions {
opacity: 1;
pointer-events: auto;
transform: translateY(0);
}
.yolo-user-message-action-btn {
flex-shrink: 0;
}
@media (max-width: 768px) {
.yolo-user-message-actions {
opacity: 1;
pointer-events: auto;
transform: none;
}
}
.smtcmp-assistant-message-editor {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
margin-top: var(--size-2-2);
}
.smtcmp-assistant-message-editor-textarea {
width: 100%;
min-height: 120px;
max-height: 320px;
height: var(--smtcmp-assistant-editor-height, auto);
padding: var(--size-2-2);
border-radius: var(--radius-s);
border: 1px solid var(--background-modifier-border);
background: var(--background-modifier-form-field);
color: var(--text-normal);
font-family: inherit;
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
resize: vertical;
box-sizing: border-box;
overflow: auto;
overscroll-behavior: contain;
}
.smtcmp-assistant-message-editor-textarea:focus,
.smtcmp-assistant-message-editor-textarea:focus-visible {
outline: none;
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
}
.smtcmp-assistant-message-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--size-4-2);
margin-top: var(--size-4-2);
}
.smtcmp-multi-model-tabs {
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
width: fit-content;
max-width: 100%;
align-self: flex-start;
overflow-x: auto;
padding: 4px;
margin-bottom: 2px;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: color-mix(
in srgb,
var(--background-secondary) 88%,
var(--background-primary)
);
scrollbar-width: thin;
}
.smtcmp-multi-model-tab {
-webkit-appearance: none !important;
appearance: none;
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
min-width: 0;
max-width: min(220px, 60vw);
padding: 6px 10px;
margin: 0;
min-height: 0;
height: auto;
border: 1px solid transparent !important;
border-radius: var(--radius-m);
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
color: var(--text-muted);
box-shadow: none !important;
outline: none;
cursor: pointer;
flex: 0 0 auto;
transition:
background-color 140ms ease,
border-color 140ms ease,
color 140ms ease,
transform 140ms ease;
}
.smtcmp-multi-model-tab:hover,
.smtcmp-multi-model-tab:focus,
.smtcmp-multi-model-tab:focus-visible {
color: var(--text-normal);
border-color: transparent !important;
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
box-shadow: none !important;
outline: none !important;
}
.smtcmp-multi-model-tab.is-active {
color: var(--text-normal);
border-color: var(--background-modifier-border) !important;
background: var(--background-primary) !important;
background-color: var(--background-primary) !important;
background-image: none !important;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
.smtcmp-multi-model-tab__label {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-multi-model-tab__status {
display: inline-flex;
align-items: center;
gap: 4px;
flex: 0 0 auto;
font-size: calc(var(--font-smallest) * 0.96);
color: var(--text-faint);
}
.smtcmp-multi-model-tab__status.is-icon-only {
color: var(--color-green);
}
.smtcmp-multi-model-tab--streaming .smtcmp-multi-model-tab__status {
color: var(--interactive-accent);
}
.smtcmp-multi-model-tab--waiting-approval .smtcmp-multi-model-tab__status {
color: var(--text-warning);
}
.smtcmp-multi-model-tab--error .smtcmp-multi-model-tab__status {
color: var(--text-error);
}
.smtcmp-multi-model-tab--aborted .smtcmp-multi-model-tab__status {
color: var(--text-muted);
}
.smtcmp-multi-model-tab__status-icon {
flex: 0 0 auto;
}
.smtcmp-multi-model-tab__status-icon.is-spinning {
animation: smtcmp-toolcall-spin 1s linear infinite;
}
.smtcmp-multi-model-tab__status-text {
white-space: nowrap;
}
@media (max-width: 768px) {
.smtcmp-multi-model-tab {
max-width: 70vw;
}
}
.smtcmp-agent-edit-summary {
display: flex;
flex-direction: column;
gap: 2px;
margin-top: 2px;
padding: 8px 12px 6px;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-l);
background: color-mix(
in srgb,
var(--background-secondary) 82%,
var(--background-primary)
);
}
.smtcmp-agent-edit-summary-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
min-height: 0;
}
.smtcmp-agent-edit-summary-totals,
.smtcmp-agent-edit-summary-item {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
font-size: calc(var(--font-ui-small) * 0.92);
line-height: 1.15;
}
.smtcmp-agent-edit-summary-list {
display: flex;
flex-direction: column;
gap: 0;
}
.smtcmp-agent-edit-summary-item {
padding-top: 6px;
padding-bottom: 2px;
border-top: 1px solid
color-mix(in srgb, var(--background-modifier-border) 75%, transparent);
}
.smtcmp-agent-edit-summary-item-trailing {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 4px;
flex: 0 0 auto;
margin-left: auto;
padding-right: 10px;
}
.smtcmp-agent-edit-summary-deltas {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 10px;
text-align: right;
}
.smtcmp-agent-edit-summary-item:last-child {
padding-bottom: 0;
}
.smtcmp-agent-edit-summary-path {
all: unset;
display: flex;
align-items: center;
gap: 6px;
flex: 1 1 auto;
min-width: 0;
margin: 0 !important;
padding: 0 !important;
min-height: 0 !important;
height: auto !important;
border: 0 !important;
border-radius: 0 !important;
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
appearance: none !important;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: left;
color: var(--text-normal);
text-decoration: none;
cursor: pointer;
}
.smtcmp-agent-edit-summary-badge {
flex: 0 0 auto;
padding: 1px 6px;
border-radius: 999px;
border: 1px solid transparent;
font-size: calc(var(--font-ui-smaller) * 0.96);
line-height: 1.4;
}
.smtcmp-agent-edit-summary-badge--create {
border-color: color-mix(in srgb, var(--color-green) 24%, transparent);
background: color-mix(in srgb, var(--color-green) 14%, transparent);
color: color-mix(in srgb, var(--color-green) 78%, var(--text-normal));
}
.smtcmp-agent-edit-summary-badge--delete {
border-color: color-mix(in srgb, var(--color-red) 24%, transparent);
background: color-mix(in srgb, var(--color-red) 14%, transparent);
color: color-mix(in srgb, var(--color-red) 78%, var(--text-normal));
}
.smtcmp-agent-edit-summary-path-text {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-agent-edit-summary-path:hover,
.smtcmp-agent-edit-summary-path:focus-visible {
color: var(--interactive-accent);
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
border-color: transparent !important;
outline: none;
}
.smtcmp-agent-edit-summary-path:hover .smtcmp-agent-edit-summary-path-text,
.smtcmp-agent-edit-summary-path:focus-visible
.smtcmp-agent-edit-summary-path-text {
text-decoration-line: underline;
text-underline-offset: 2px;
}
.smtcmp-agent-edit-summary-added {
color: var(--color-green);
}
.smtcmp-agent-edit-summary-removed {
color: var(--color-red);
}
.smtcmp-agent-edit-summary-neutral {
color: var(--text-faint);
}
.smtcmp-agent-edit-summary-undo {
display: inline-flex;
align-items: center;
gap: var(--size-2-2);
padding: 3px 7px !important;
margin: 0 !important;
min-height: 0 !important;
height: auto !important;
border: 0 !important;
border-radius: var(--radius-m) !important;
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
appearance: none !important;
color: var(--text-muted);
font-size: calc(var(--font-ui-small) * 0.92);
line-height: 1.1;
font-weight: var(--font-normal);
text-decoration: none;
}
.smtcmp-agent-edit-summary-undo:hover:not(:disabled) {
color: var(--text-normal);
background: color-mix(
in srgb,
var(--background-modifier-hover) 72%,
transparent
) !important;
background-image: none !important;
box-shadow: none !important;
border-color: transparent !important;
}
.smtcmp-agent-edit-summary-undo:focus,
.smtcmp-agent-edit-summary-undo:focus-visible {
background: color-mix(
in srgb,
var(--background-modifier-hover) 72%,
transparent
) !important;
background-image: none !important;
box-shadow: none !important;
border-color: transparent !important;
outline: none !important;
}
.smtcmp-agent-edit-summary-undo:disabled {
opacity: 0.7;
}
.smtcmp-agent-edit-summary-undo-icon {
flex: 0 0 auto;
padding: 2px !important;
gap: 0;
opacity: 0;
pointer-events: none;
transition:
opacity 120ms ease,
color 120ms ease,
background-color 120ms ease;
}
.smtcmp-agent-edit-summary-item:hover
.smtcmp-agent-edit-summary-undo-icon:not(:disabled),
.smtcmp-agent-edit-summary-item:focus-within
.smtcmp-agent-edit-summary-undo-icon:not(:disabled),
.smtcmp-agent-edit-summary-undo-icon.is-visible {
opacity: 1;
pointer-events: auto;
}
.smtcmp-assistant-error-card {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: var(--size-4-1);
padding: 8px 12px 10px;
border: 1px solid
color-mix(in srgb, var(--color-red) 28%, var(--background-modifier-border));
border-radius: var(--radius-l);
background: color-mix(
in srgb,
var(--background-secondary) 88%,
var(--background-primary)
);
}
.smtcmp-assistant-error-card-header {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--text-normal);
font-size: calc(var(--font-ui-small) * 0.96);
line-height: 1.2;
font-weight: var(--font-medium);
}
.smtcmp-assistant-error-card-header svg {
flex: 0 0 auto;
color: var(--color-red);
}
.smtcmp-assistant-error-card-body {
color: var(--text-muted);
font-size: calc(var(--font-ui-small) * 0.96);
line-height: 1.45;
white-space: pre-wrap;
word-break: break-word;
}
.smtcmp-assistant-tool-running-preview {
margin-top: var(--size-4-1);
}
.smtcmp-assistant-tool-running-preview-header {
cursor: default;
}
.smtcmp-assistant-tool-running-preview-header:hover {
background-color: transparent;
color: var(--text-muted);
}
.smtcmp-llm-inline-info {
position: relative;
display: flex;
align-items: center;
min-width: 0;
flex: 1 1 auto;
font-size: calc(var(--font-smallest) * 0.9);
color: var(--text-faint);
padding-left: var(--size-4-2);
}
.smtcmp-llm-inline-info-content {
display: inline-flex;
align-items: center;
gap: var(--size-4-2);
min-width: 0;
flex: 1 1 auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-llm-inline-info-item {
display: inline-flex;
align-items: center;
gap: var(--size-2-3);
min-width: 0;
flex: 0 1 auto;
}
/*
* Off-screen "ghost" rows used only for measuring each compression level's
* natural width. Mirrors the styles of the visible row so measurements are
* accurate, but does not participate in layout.
*/
.smtcmp-llm-inline-info-ghosts {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
overflow: hidden;
pointer-events: none;
}
.smtcmp-llm-inline-info-ghost {
visibility: hidden;
flex: 0 0 auto;
overflow: visible;
width: max-content;
}
/* Rich details shown in the hover tooltip — always full fidelity regardless
* of how aggressively the inline row has been compressed.
*
* Design goal: a single calm tone. One row per metric, icon/label/value in the
* same muted color family, only the numeric values tinted stronger. Cache
* detail folds under Input as a tight sub-line. */
.smtcmp-llm-inline-info-tooltip-content {
z-index: 1000;
padding: var(--size-4-3) var(--size-4-4);
min-width: 240px;
}
.smtcmp-llm-inline-info-tooltip {
display: flex;
flex-direction: column;
gap: var(--size-2-3);
font-size: var(--font-ui-small);
color: var(--text-muted);
}
.smtcmp-llm-inline-info-tooltip-row {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: var(--size-4-3);
}
.smtcmp-llm-inline-info-tooltip-row .smtcmp-llm-inline-info-icon {
height: var(--size-4-3);
width: var(--size-4-3);
color: var(--text-muted);
opacity: 0.85;
}
.smtcmp-llm-inline-info-tooltip-label {
color: var(--text-muted);
}
.smtcmp-llm-inline-info-tooltip-value {
font-variant-numeric: tabular-nums;
color: var(--text-normal);
}
.smtcmp-llm-inline-info-tooltip-sub {
padding-left: calc(var(--size-4-3) + var(--size-4-3));
margin-top: calc(var(--size-2-3) * -1);
font-size: var(--font-ui-smaller);
color: var(--text-faint);
font-variant-numeric: tabular-nums;
}
.smtcmp-llm-inline-info-icon {
height: var(--size-4-3);
width: var(--size-4-3);
}
.smtcmp-llm-inline-info-icon--input {
color: inherit;
}
.smtcmp-llm-inline-info-icon--output {
color: inherit;
}
.smtcmp-llm-inline-info-icon--speed {
color: inherit;
}
.smtcmp-llm-inline-info-icon--time {
color: inherit;
}
.smtcmp-popover-content {
z-index: 1000;
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
padding: var(--size-4-2);
font-size: var(--font-smallest);
animation: fadeIn 0.1s ease-in-out;
}
/* Conversation settings popover */
.smtcmp-chat-settings-content {
/* width is set dynamically by inline style to 50% of input wrapper */
min-width: 200px;
max-width: 640px;
padding: 10px 12px;
}
.smtcmp-chat-settings {
display: flex;
flex-direction: column;
gap: 12px;
}
.smtcmp-chat-settings-section {
display: grid;
gap: 10px;
}
.smtcmp-chat-settings-section-title {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
color: var(--text-normal);
margin: 0;
}
/* Grid row: label + number pill (right), slider across entire row */
.smtcmp-chat-settings-row2 {
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
gap: 10px 12px;
}
.smtcmp-chat-settings-row-inline {
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
gap: 10px 12px;
}
.smtcmp-chat-settings-label {
font-size: var(--font-ui-small);
color: var(--text-normal);
}
.smtcmp-number-pill {
width: 88px;
height: 24px;
line-height: 24px;
text-align: right;
padding: 0 8px;
border-radius: 12px;
border: 1px solid var(--background-modifier-border);
background: var(--background-primary-alt);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
/* Segmented control for Streaming */
.smtcmp-segmented {
display: inline-flex;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
overflow: hidden;
position: relative;
}
.smtcmp-segmented > button {
background: var(--background-secondary);
color: var(--text-muted);
border: none;
padding: 2px 16px; /* make smaller */
font-size: var(--font-smallest);
line-height: 16px; /* tighter height */
cursor: pointer;
transition:
background-color 0.18s ease,
color 0.18s ease,
box-shadow 0.18s ease,
transform 0.18s ease;
}
.smtcmp-segmented > button:hover {
background: var(--background-modifier-hover);
}
/* 视图切换标签页样式 - 手风琴展开效果 */
.smtcmp-view-toggle {
display: inline-flex;
position: relative;
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
padding: 4px;
overflow: hidden;
isolation: isolate;
transition: all 0.2s ease;
width: 200px;
box-shadow:
0 1px 3px
color-mix(in srgb, var(--background-modifier-box-shadow) 15%, transparent),
inset 0 1px 0 color-mix(in srgb, white 5%, transparent);
--smtcmp-total-width: 200px;
--smtcmp-padding-inline: 8px;
--smtcmp-collapsed-width: 50px;
--smtcmp-expanded-width: calc(
var(--smtcmp-total-width) - var(--smtcmp-padding-inline) -
var(--smtcmp-collapsed-width)
);
}
.smtcmp-view-toggle-button {
position: relative;
z-index: 2;
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
border: none;
padding: 8px 6px;
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
color: var(--text-muted);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 4px;
text-align: center;
white-space: nowrap;
line-height: 1.4;
box-shadow: none !important;
outline: none;
width: var(--smtcmp-collapsed-width);
flex-shrink: 0;
overflow: hidden;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0;
}
.smtcmp-view-toggle-button--expanded {
width: var(--smtcmp-expanded-width);
justify-content: center;
gap: 6px;
}
.smtcmp-view-toggle-button-label {
display: inline-block;
transition:
opacity 0.2s ease,
max-width 0.3s ease;
opacity: 0;
max-width: 0;
overflow: hidden;
white-space: nowrap;
}
.smtcmp-view-toggle-button--expanded .smtcmp-view-toggle-button-label {
opacity: 1;
max-width: 100px;
}
.smtcmp-view-toggle-button-icon {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
transition: color 0.2s ease;
}
.smtcmp-view-toggle-button--active .smtcmp-view-toggle-button-icon {
color: var(--h1-color, var(--interactive-accent));
}
.smtcmp-view-toggle-button-icon svg {
width: 16px;
height: 16px;
}
.smtcmp-view-toggle-button:hover:not(.smtcmp-view-toggle-button--active) {
color: var(--text-normal);
background: none !important;
background-color: transparent !important;
}
.smtcmp-view-toggle-button--active {
color: var(--h1-color, var(--interactive-accent));
font-weight: var(--font-semibold);
background-color: transparent !important;
}
.smtcmp-view-toggle-button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.smtcmp-view-toggle-indicator {
position: absolute;
top: 4px;
bottom: 4px;
left: 4px;
background: transparent;
border: 2px solid var(--h1-color, var(--interactive-accent));
border-radius: 4px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1;
}
.smtcmp-view-toggle-indicator[data-active-view='chat'] {
width: var(--smtcmp-collapsed-width);
transform: translateX(0);
}
.smtcmp-view-toggle-indicator[data-active-view='composer'] {
width: var(--smtcmp-collapsed-width);
transform: translateX(var(--smtcmp-collapsed-width));
}
.smtcmp-view-toggle[data-expanded-view='chat'][data-active-expanded='true']
.smtcmp-view-toggle-indicator[data-active-view='chat'] {
width: var(--smtcmp-expanded-width);
transform: translateX(0);
}
.smtcmp-view-toggle[data-expanded-view='composer'][data-active-expanded='true']
.smtcmp-view-toggle-indicator[data-active-view='composer'] {
width: var(--smtcmp-expanded-width);
transform: translateX(var(--smtcmp-collapsed-width));
}
.smtcmp-view-toggle[data-expanded-view='chat'][data-active-expanded='false']
.smtcmp-view-toggle-indicator[data-active-view='composer'] {
width: var(--smtcmp-collapsed-width);
transform: translateX(var(--smtcmp-expanded-width));
}
.smtcmp-chat-header .smtcmp-view-toggle {
margin-right: auto;
}
.smtcmp-chat-header--workspace .smtcmp-view-toggle {
background: transparent;
border-color: transparent;
box-shadow: none;
}
.smtcmp-view-toggle:hover {
box-shadow:
0 2px 8px
color-mix(in srgb, var(--background-modifier-box-shadow) 20%, transparent),
inset 0 1px 0 color-mix(in srgb, white 8%, transparent);
}
.smtcmp-chat-header--workspace .smtcmp-view-toggle:hover {
box-shadow: none;
}
.smtcmp-view-toggle--single {
width: calc(var(--smtcmp-expanded-width) + 8px);
min-width: calc(var(--smtcmp-expanded-width) + 8px);
}
.smtcmp-view-toggle--single .smtcmp-view-toggle-button--roller {
width: var(--smtcmp-expanded-width);
justify-content: center;
gap: 6px;
}
.smtcmp-view-toggle--single .smtcmp-view-toggle-button-label {
opacity: 1;
max-width: 100px;
}
.smtcmp-view-toggle--single .smtcmp-roller-select-caret {
width: 14px;
margin-left: 4px;
opacity: 0.92;
}
.smtcmp-view-toggle-indicator--single {
width: calc(100% - 8px) !important;
transform: translateX(0) !important;
}
/* Roller behavior on top of original accordion style */
.smtcmp-roller-select-window {
height: 20px;
overflow: hidden;
display: flex;
align-items: flex-start;
pointer-events: none;
}
.smtcmp-roller-select-track {
display: flex;
flex-direction: column;
align-items: center;
transform: translateY(0);
}
.smtcmp-roller-select-track.is-rolling {
transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
transform: translateY(-20px);
}
.smtcmp-roller-select-item {
height: 20px;
display: inline-flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
.smtcmp-roller-select-caret {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text-muted);
width: 0;
height: 14px;
margin-left: 0;
opacity: 0;
overflow: hidden;
transform: rotate(0deg);
transition:
opacity 0.18s ease,
width 0.2s ease,
margin-left 0.2s ease,
transform 0.2s ease,
color 0.18s ease;
}
.smtcmp-view-toggle-button--roller.smtcmp-view-toggle-button--expanded
.smtcmp-roller-select-caret {
width: 14px;
margin-left: 4px;
opacity: 0.92;
color: var(--text-normal);
}
.smtcmp-view-toggle-button--roller.smtcmp-view-toggle-button--active
.smtcmp-roller-select-caret {
color: var(--h1-color, var(--interactive-accent));
}
.smtcmp-roller-select-trigger.is-open .smtcmp-roller-select-caret {
transform: rotate(180deg);
opacity: 1;
}
.smtcmp-roller-select-list {
padding: 4px;
max-height: 380px;
overflow-y: auto;
scrollbar-width: thin;
}
.smtcmp-roller-select-list-item {
display: flex;
align-items: flex-start;
gap: 8px;
padding: 6px 10px;
border-radius: var(--radius-s);
color: var(--text-normal);
cursor: pointer;
outline: none;
user-select: none;
}
/* 鼠标 hover 任意项都给视觉反馈;键盘 highlight 仅对非选中项给 bg。
原因:弹窗打开时 Radix 会把当前选中项自动设为 [data-highlighted],若在
[data-state='checked'] 上叠加 bg 会让"被动选中"出现一块灰底,与 ✓ 图标重复
且视觉上像 hover 状态,违和。 */
.smtcmp-roller-select-list-item:hover,
.smtcmp-roller-select-list-item:not([data-state='checked'])[data-highlighted] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 90%,
transparent
);
}
.smtcmp-roller-select-list-item-icon {
display: inline-flex;
align-items: center;
justify-content: center;
margin-top: 1px;
color: var(--text-muted);
}
.smtcmp-roller-select-list-item-content {
display: flex;
flex-direction: column;
gap: 1px;
flex: 1;
/* 让 flex 子元素允许收缩到 0,配合下面 label/desc 的 ellipsis 才会生效 */
min-width: 0;
}
.smtcmp-roller-select-list-item-label,
.smtcmp-roller-select-list-item-desc {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-roller-select-list-item-label {
color: var(--text-normal);
font-size: 12px;
font-weight: 500;
}
.smtcmp-roller-select-list-item-desc {
color: var(--text-muted);
font-size: 11px;
line-height: 1.3;
}
.smtcmp-roller-select-list-item-check {
width: 14px;
height: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--h1-color, var(--interactive-accent));
}
@media (max-width: 400px) {
.smtcmp-view-toggle {
width: 160px;
--smtcmp-total-width: 160px;
--smtcmp-collapsed-width: 40px;
}
.smtcmp-view-toggle-button {
padding: 6px 2px;
font-size: var(--font-ui-smallest);
}
.smtcmp-view-toggle-button--expanded {
width: var(--smtcmp-expanded-width);
}
.smtcmp-view-toggle-indicator[data-active-view='chat'] {
width: var(--smtcmp-collapsed-width);
}
.smtcmp-view-toggle-indicator[data-active-view='composer'] {
width: var(--smtcmp-collapsed-width);
transform: translateX(var(--smtcmp-collapsed-width));
}
}
.smtcmp-segmented > button.active {
background: var(--interactive-accent);
color: var(--text-on-accent);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--interactive-accent) 75%, black);
transform: translateY(-1px);
}
.smtcmp-segmented--glider {
background: var(--background-secondary);
padding: 2px;
gap: 0;
--smtcmp-segment-count: 2;
--smtcmp-segment-index: 0;
overflow: visible;
}
.smtcmp-segmented--glider > button {
flex: 1 1 0;
background: transparent;
position: relative;
z-index: 2;
border: none;
box-shadow: none;
}
.smtcmp-segmented--glider > button:hover {
background: transparent;
}
.smtcmp-segmented--glider > button.active {
background: transparent;
color: var(--h1-color, var(--interactive-accent));
font-weight: var(--font-semibold);
box-shadow: none;
transform: none;
}
.smtcmp-segmented-glider {
position: absolute;
top: 2px;
left: 2px;
width: calc((100% - 4px) / var(--smtcmp-segment-count));
height: calc(100% - 4px);
background: transparent;
border: 2px solid var(--h1-color, var(--interactive-accent));
border-radius: calc(var(--radius-s) - 2px);
box-shadow: 0 2px 10px
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
transform: translateX(calc(100% * var(--smtcmp-segment-index)));
transition: transform 0.36s cubic-bezier(0.4, 1.2, 0.4, 1);
pointer-events: none;
z-index: 1;
}
.smtcmp-similarity-search-results {
display: flex;
flex-direction: column;
font-size: var(--font-smaller);
padding-top: var(--size-4-1);
padding-bottom: var(--size-4-1);
user-select: none;
.smtcmp-similarity-search-results__trigger {
display: flex;
align-items: center;
gap: var(--size-4-1);
padding: var(--size-4-1);
border-radius: var(--radius-s);
cursor: pointer;
&:hover {
background-color: var(--background-modifier-hover);
}
}
.smtcmp-similarity-search-item {
display: flex;
align-items: center;
justify-content: start;
gap: var(--size-4-2);
padding: var(--size-4-1);
border-radius: var(--radius-s);
cursor: pointer;
&:hover {
background-color: var(--background-modifier-hover);
}
.smtcmp-similarity-search-item__similarity {
flex-shrink: 0;
font-size: var(--font-smallest);
color: var(--text-muted);
}
.smtcmp-similarity-search-item__path {
flex-shrink: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: var(--font-smallest);
}
.smtcmp-similarity-search-item__line-numbers {
flex-shrink: 0;
margin-left: auto;
font-size: var(--font-smallest);
}
}
}
.smtcmp-llm-info-content {
width: 320px;
display: grid;
gap: var(--size-4-3);
}
.smtcmp-llm-info-header {
display: grid;
gap: var(--size-2-2);
font-size: var(--font-ui-small);
font-weight: var(--font-semibold);
}
.smtcmp-llm-info-tokens {
display: grid;
gap: var(--size-4-2);
}
.smtcmp-llm-info-tokens-header {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-llm-info-tokens-grid {
display: grid;
grid-template-columns: 1fr 1fr;
column-gap: var(--size-4-5);
row-gap: var(--size-4-2);
font-size: var(--font-ui-small);
}
.smtcmp-llm-info-token-row {
display: flex;
align-items: center;
gap: var(--size-2-3);
}
.smtcmp-llm-info-token-value {
margin-left: auto;
color: var(--text-muted);
}
.smtcmp-llm-info-token-total {
grid-column: span 2;
font-weight: var(--font-medium);
}
.smtcmp-llm-info-footer-row {
display: flex;
align-items: center;
gap: var(--size-2-3);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
}
.smtcmp-llm-info-footer-value {
margin-left: auto;
}
.smtcmp-llm-info-model {
color: var(--text-muted);
}
.smtcmp-llm-info-icon--input {
height: var(--size-4-3);
width: var(--size-4-3);
color: var(--color-green);
}
.smtcmp-llm-info-icon--output {
height: var(--size-4-3);
width: var(--size-4-3);
color: var(--color-blue);
}
.smtcmp-llm-info-icon--total {
height: var(--size-4-3);
width: var(--size-4-3);
color: var(--text-normal);
}
.smtcmp-llm-info-icon--footer {
height: var(--size-4-4);
width: var(--size-4-4);
}
/**
* ChatUserInput
*/
.smtcmp-lexical-content-editable-root .mention {
background-color: var(--tag-background);
color: var(--tag-color);
padding: var(--size-2-1) calc(var(--size-2-1));
border-radius: var(--radius-s);
background-color: var(--tag-background);
color: var(--tag-color);
padding: 0 calc(var(--size-2-1));
border-radius: var(--radius-s);
word-break: break-all;
}
.smtcmp-lexical-content-editable-root .smtcmp-skill-mention {
display: inline-flex;
align-items: center;
gap: 0.2em;
}
.smtcmp-lexical-content-editable-root .smtcmp-skill-mention::before {
content: '';
width: 0.9em;
height: 0.9em;
flex-shrink: 0;
background-color: currentColor;
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3Z'/%3E%3Cpath d='M5 3v4'/%3E%3Cpath d='M3 5h4'/%3E%3Cpath d='M19 17v2'/%3E%3Cpath d='M18 18h2'/%3E%3C/svg%3E");
mask-repeat: no-repeat;
mask-position: center;
mask-size: contain;
}
.smtcmp-lexical-content-editable-paragraph {
margin: 0;
line-height: 1.6;
}
.yolo-popover-surface ul {
padding: 0;
list-style: none;
margin: 0;
max-height: 200px;
overflow-y: scroll;
}
.yolo-popover-surface ul {
padding: var(--size-4-1) 0;
}
/* default 变体下的 group-label / separator / list / item 样式集中在这里。
--smart-space 变体的同名元素样式集中在 src/styles/panels/smart-space.css。
两个文件按变体严格隔离,避免源码顺序决定胜者的"屎山"问题。 */
.yolo-popover-surface--default .smtcmp-popover-group-label {
display: block;
margin: 0;
padding: 10px 14px 6px 12px;
color: color-mix(in srgb, var(--text-muted) 75%, transparent);
font-size: 10px;
font-weight: var(--font-bold);
letter-spacing: 0.08em;
text-transform: uppercase;
user-select: none;
text-align: left;
opacity: 0.8;
}
.yolo-popover-surface--default .smtcmp-popover-group-separator {
height: 1px;
background: linear-gradient(
to right,
transparent 4px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent) 16px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent)
calc(100% - 16px),
transparent calc(100% - 4px)
);
margin: 6px 0;
}
.yolo-popover-surface--default .smtcmp-model-select-list {
padding: 4px 0;
max-height: 380px;
overflow-y: auto;
scrollbar-width: thin;
}
.yolo-popover-surface--default
.smtcmp-model-select-list
> .smtcmp-popover-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 4px 10px 4px 12px;
margin: 0;
border-radius: var(--radius-s);
color: var(--text-normal);
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
cursor: pointer;
outline: none;
}
.yolo-popover-surface--default
.smtcmp-model-select-list
> .smtcmp-popover-item:hover,
.yolo-popover-surface--default
.smtcmp-model-select-list
> .smtcmp-popover-item[data-highlighted] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 90%,
transparent
);
}
.yolo-popover-surface
.smtcmp-model-select-list
> .smtcmp-popover-item[data-state='checked'] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 45%,
transparent
);
font-weight: var(--font-semibold);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--background-modifier-border) 60%, transparent);
}
.smtcmp-popover-item__label {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-popover-item__indicator {
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--interactive-accent);
opacity: 0;
transition: opacity 0.15s ease;
}
.smtcmp-popover-item[data-state='checked'] .smtcmp-popover-item__indicator {
opacity: 1;
}
.yolo-popover-surface ul li {
margin: 0;
min-width: 180px;
font-size: var(--font-ui-smaller);
outline: none;
cursor: pointer;
border-radius: 0;
text-align: left;
justify-content: flex-start;
}
.yolo-popover-surface ul li.selected {
background: var(--background-modifier-hover);
}
.yolo-popover-surface li {
z-index: 1000;
max-height: 300px;
overflow-y: auto;
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
margin: 0 8px 0 8px;
padding: var(--size-2-3) var(--size-4-2);
color: var(--text-normal);
cursor: pointer;
line-height: var(--line-height-tight);
font-size: var(--font-ui-smaller);
display: flex;
align-content: center;
flex-direction: row;
flex-shrink: 0;
background-color: var(--background-primary);
border-radius: 8px;
border: 0;
min-height: 20px;
align-items: center;
gap: var(--size-4-1);
align-items: start;
}
.yolo-popover-surface li.active {
display: flex;
width: 20px;
height: 20px;
background-size: contain;
}
.yolo-popover-surface li:hover {
background-color: var(--background-modifier-hover);
}
.smtcmp-popover-item-icon {
display: flex;
user-select: none;
line-height: 16px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
height: 14px;
padding-top: 1px;
align-items: center;
color: var(--text-muted);
min-width: fit-content;
}
.yolo-popover-surface li:hover {
background-color: var(--background-modifier-hover);
cursor: pointer;
}
.yolo-popover-surface li .smtcmp-chat-list-dropdown-item-icon,
.yolo-popover-surface li .smtcmp-chat-list-pin-button {
visibility: visible;
opacity: 0;
transform: translateX(5px) scale(0.96);
pointer-events: none;
transition:
opacity 140ms ease,
transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
color 120ms ease,
background-color 120ms ease;
}
.yolo-popover-surface
li:is(:hover, :focus-within)
.smtcmp-chat-list-dropdown-item-icon,
.yolo-popover-surface
li:is(:hover, :focus-within)
.smtcmp-chat-list-pin-button {
opacity: 1;
transform: translateX(0) scale(1);
pointer-events: auto;
}
.yolo-popover-surface li .smtcmp-chat-list-dropdown-item-icon:hover {
background-color: var(--background-modifier-hover);
border-radius: var(--radius-s);
}
.smtcmp-chat-list-dropdown-item-icon:disabled {
cursor: default;
opacity: 0.9;
}
.smtcmp-chat-list-dropdown-empty {
background: transparent;
cursor: default;
color: var(--text-faint);
}
.smtcmp-chat-list-dropdown-content {
display: inline-flex;
flex-direction: column;
width: 100%;
max-width: 420px;
min-width: 0;
/* 让弹层左侧与聊天面板外层布局对齐(仅聊天历史下拉需要)。 */
margin-left: -64px;
}
.smtcmp-chat-list-search {
position: sticky;
top: 0;
z-index: 1;
padding: 6px 10px;
background: var(--background-primary);
border-bottom: 1px solid
color-mix(in srgb, var(--background-modifier-border) 60%, transparent);
}
.smtcmp-chat-list-search-field {
display: flex;
align-items: center;
gap: 4px;
padding: 0;
border-radius: 0;
background: transparent;
border: 0;
}
.smtcmp-chat-list-search-icon {
color: var(--text-muted);
margin-left: 4px;
}
.smtcmp-chat-list-search-input {
flex: 1;
min-width: 0;
padding-left: 0;
border: 0;
box-shadow: none;
outline: none;
background: transparent;
appearance: none;
-webkit-appearance: none;
color: var(--text-normal);
font-size: var(--font-ui-small);
}
.smtcmp-chat-list-search input.smtcmp-chat-list-search-input {
border: 0 !important;
box-shadow: none !important;
background: transparent !important;
outline: none !important;
appearance: none !important;
-webkit-appearance: none !important;
}
.smtcmp-chat-list-search-input::placeholder {
color: var(--text-muted);
}
.smtcmp-chat-list-dropdown-content li,
.smtcmp-chat-list-dropdown-item {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 8px;
padding: 6px 10px;
border-radius: var(--radius-l) !important;
margin: 4px 0;
width: auto;
box-sizing: border-box;
background: transparent !important;
box-shadow: none !important;
border: 0 !important;
}
.smtcmp-chat-list-dropdown-item-title {
position: relative;
flex: 1;
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
}
.smtcmp-chat-list-dropdown-item-title-text {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
opacity: 1;
transform: translateY(0);
transition:
opacity 140ms ease,
transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-chat-list-dropdown-item-title-skeleton {
position: absolute;
left: 0;
top: 50%;
width: min(72%, 220px);
height: calc(var(--font-ui-small) * 0.82);
border-radius: var(--radius-s);
transform: translateY(-50%);
opacity: 0;
background: linear-gradient(
90deg,
color-mix(in srgb, var(--background-modifier-hover) 70%, transparent) 0%,
color-mix(in srgb, var(--text-muted) 26%, transparent) 48%,
color-mix(in srgb, var(--background-modifier-hover) 70%, transparent) 100%
);
background-size: 220% 100%;
pointer-events: none;
transition: opacity 140ms ease;
}
.smtcmp-chat-list-dropdown-item-status {
flex-shrink: 0;
width: 14px;
height: 14px;
border-radius: 999px;
box-sizing: border-box;
opacity: 0.92;
}
.smtcmp-chat-list-dropdown-item-status.is-running {
border: 2px solid
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
border-top-color: color-mix(in srgb, var(--interactive-accent) 82%, white 8%);
animation: smtcmp-chat-list-run-spin 0.9s linear infinite;
}
.smtcmp-chat-list-dropdown-item-status.is-waiting {
border: 2px solid color-mix(in srgb, var(--color-orange) 20%, transparent);
border-top-color: color-mix(in srgb, var(--color-orange) 82%, white 8%);
animation: smtcmp-chat-list-run-spin 0.9s linear infinite;
}
.smtcmp-chat-list-dropdown-item-title.is-retrying
.smtcmp-chat-list-dropdown-item-title-text {
opacity: 0;
transform: translateY(-2px);
}
.smtcmp-chat-list-dropdown-item-title.is-retrying
.smtcmp-chat-list-dropdown-item-title-skeleton {
opacity: 1;
animation: smtcmp-chat-list-title-shimmer 1.1s linear infinite;
}
@keyframes smtcmp-chat-list-title-shimmer {
from {
background-position: 220% 50%;
}
to {
background-position: -20% 50%;
}
}
@keyframes smtcmp-chat-list-run-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.smtcmp-agent-status-bar,
.smtcmp-background-activity-status-bar {
position: relative;
display: inline-flex;
align-items: center;
gap: 8px;
}
.smtcmp-agent-status-bar-ring,
.smtcmp-background-activity-status-bar-ring {
flex-shrink: 0;
width: 14px;
height: 14px;
border-radius: 999px;
border: 2px solid
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
border-top-color: color-mix(in srgb, var(--interactive-accent) 82%, white 8%);
box-sizing: border-box;
opacity: 0.92;
animation: smtcmp-chat-list-run-spin 0.9s linear infinite;
}
.smtcmp-background-activity-status-bar-ring.is-waiting {
border-color: color-mix(in srgb, var(--color-orange) 20%, transparent);
border-top-color: color-mix(in srgb, var(--color-orange) 82%, white 8%);
}
.smtcmp-background-activity-status-bar-ring.is-failed {
border-color: color-mix(in srgb, var(--color-red) 22%, transparent);
border-top-color: color-mix(in srgb, var(--color-red) 82%, white 8%);
}
.smtcmp-agent-status-bar-label,
.smtcmp-background-activity-status-bar-label {
min-width: 0;
}
.smtcmp-agent-status-panel,
.smtcmp-background-activity-status-panel {
position: absolute;
right: 0;
bottom: calc(100% + 8px);
z-index: 40;
display: flex;
flex-direction: column;
gap: 8px;
width: min(320px, calc(100vw - 24px));
max-height: min(360px, 60vh);
padding: 10px;
border: 1px solid var(--background-modifier-border);
border-radius: 14px;
background: color-mix(in srgb, var(--background-primary) 94%, black 6%);
box-shadow:
0 18px 44px rgba(0, 0, 0, 0.22),
0 4px 12px rgba(0, 0, 0, 0.12);
opacity: 0;
transform: translateY(10px) scale(0.97);
transform-origin: bottom right;
transition:
opacity 160ms ease,
transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
pointer-events: none;
}
.smtcmp-agent-status-panel.is-open,
.smtcmp-background-activity-status-panel.is-open {
opacity: 1;
transform: translateY(0) scale(1);
pointer-events: auto;
}
.smtcmp-agent-status-panel-header,
.smtcmp-background-activity-status-panel-header {
font-size: var(--font-ui-small);
font-weight: 600;
color: var(--text-muted);
}
.smtcmp-agent-status-panel-list,
.smtcmp-background-activity-status-panel-list {
display: flex;
flex-direction: column;
gap: 2px;
overflow-y: auto;
}
.smtcmp-agent-status-panel-empty,
.smtcmp-background-activity-status-panel-empty {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.smtcmp-agent-status-panel-item,
.smtcmp-background-activity-status-panel-item {
padding: 8px 10px;
border-radius: 8px;
background: transparent;
cursor: pointer;
transition:
transform 140ms ease,
background-color 140ms ease;
}
.smtcmp-agent-status-panel-item:hover,
.smtcmp-agent-status-panel-item:focus-visible,
.smtcmp-background-activity-status-panel-item:hover,
.smtcmp-background-activity-status-panel-item:focus-visible {
outline: none;
transform: translateY(-1px);
background: var(--background-modifier-hover);
}
.smtcmp-agent-status-panel-item-row,
.smtcmp-background-activity-status-panel-item-row {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.smtcmp-background-activity-status-panel-item-copy {
flex: 1 1 auto;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.smtcmp-agent-status-panel-item-title,
.smtcmp-background-activity-status-panel-item-title {
flex: 1 1 auto;
min-width: 0;
font-size: var(--font-ui-small);
font-weight: 400;
color: var(--text-normal);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-background-activity-status-panel-item-detail {
min-width: 0;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-agent-status-panel-item-meta {
flex-shrink: 0;
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.smtcmp-agent-status-panel-item-indicator,
.smtcmp-background-activity-status-panel-item-indicator {
flex-shrink: 0;
width: 12px;
height: 12px;
border-radius: 999px;
border: 2px solid
color-mix(in srgb, var(--interactive-accent) 18%, transparent);
border-top-color: color-mix(in srgb, var(--interactive-accent) 82%, white 8%);
box-sizing: border-box;
opacity: 0.92;
animation: smtcmp-chat-list-run-spin 0.9s linear infinite;
}
.smtcmp-agent-status-panel-item-indicator.is-waiting-approval,
.smtcmp-background-activity-status-panel-item-indicator.is-waiting {
border-color: color-mix(in srgb, var(--color-orange) 20%, transparent);
border-top-color: color-mix(in srgb, var(--color-orange) 82%, white 8%);
}
.smtcmp-background-activity-status-panel-item-indicator.is-failed {
border-color: color-mix(in srgb, var(--color-red) 22%, transparent);
border-top-color: color-mix(in srgb, var(--color-red) 82%, white 8%);
}
input[type='text'].smtcmp-chat-list-dropdown-item-title-input {
width: 100%;
font-size: var(--font-ui-smaller);
}
.smtcmp-chat-list-dropdown-content li:hover {
color: var(--text-normal) !important;
}
.smtcmp-chat-list-dropdown-content {
transform-origin: var(--radix-popover-content-transform-origin);
}
.smtcmp-chat-list-dropdown-content[data-state='open'] {
animation: smtcmp-chat-list-dropdown-fade-in 0.22s
cubic-bezier(0.16, 1, 0.3, 1);
}
.smtcmp-chat-list-dropdown-content[data-state='closed'] {
animation: smtcmp-chat-list-dropdown-fade-out 0.16s cubic-bezier(0.4, 0, 1, 1);
}
@keyframes smtcmp-chat-list-dropdown-fade-in {
0% {
opacity: 0;
transform: translateY(7px) scale(0.96);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes smtcmp-chat-list-dropdown-fade-out {
0% {
opacity: 1;
transform: translateY(0) scale(1);
}
100% {
opacity: 0;
transform: translateY(5px) scale(0.98);
}
}
.smtcmp-chat-list-dropdown-item:hover,
.smtcmp-chat-list-dropdown-item:focus-within,
.smtcmp-chat-list-dropdown-content li:is(:hover, :focus-within, :has(:hover)) {
background: color-mix(
in srgb,
var(--background-modifier-hover) 92%,
transparent
) !important;
outline: none;
color: var(--text-normal) !important;
}
.smtcmp-chat-list-dropdown-item.selected,
.smtcmp-chat-list-dropdown-item[data-highlighted='true'],
.smtcmp-chat-list-dropdown-content li.selected,
.smtcmp-chat-list-dropdown-content li[data-highlighted='true'] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 96%,
transparent
) !important;
box-shadow: none;
border: 0 !important;
color: var(--text-normal) !important;
}
.smtcmp-chat-list-dropdown-archive-row {
padding: 0 !important;
margin-top: 2px;
background: transparent !important;
cursor: default !important;
}
.smtcmp-chat-list-dropdown-archive-row:hover {
background: transparent !important;
}
button.smtcmp-chat-list-dropdown-archive-toggle {
width: 100%;
height: 28px;
border: 0 !important;
border-radius: 0;
background: transparent;
box-shadow: none !important;
outline: none;
appearance: none;
-webkit-appearance: none;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
text-align: center;
padding: 0 10px;
cursor: pointer;
}
button.smtcmp-chat-list-dropdown-archive-toggle:hover {
background: transparent;
}
.smtcmp-chat-list-dropdown-archive-toggle-label {
display: inline-block;
border-radius: var(--radius-s);
padding: 2px 6px;
transition:
color 120ms ease,
text-decoration-color 120ms ease;
text-decoration: underline;
text-decoration-skip-ink: none;
text-decoration-color: transparent;
text-underline-offset: 2px;
}
button.smtcmp-chat-list-dropdown-archive-toggle:hover
.smtcmp-chat-list-dropdown-archive-toggle-label,
button.smtcmp-chat-list-dropdown-archive-toggle:focus-visible
.smtcmp-chat-list-dropdown-archive-toggle-label {
color: var(--text-normal);
text-decoration-color: color-mix(
in srgb,
var(--text-normal) 60%,
transparent
);
}
.smtcmp-chat-list-dropdown-item-actions {
display: flex;
align-items: center;
gap: var(--size-4-1);
margin-left: auto;
position: relative;
svg {
height: var(--icon-xs);
width: var(--icon-xs);
stroke-width: var(--icon-stroke);
}
}
.smtcmp-chat-list-inline-actions {
display: grid;
grid-template-columns: 0fr;
opacity: 0;
transform: translateX(6px);
transform-origin: right center;
pointer-events: none;
transition:
grid-template-columns 220ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 150ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-chat-list-inline-actions.is-open {
grid-template-columns: 1fr;
opacity: 1;
transform: translateX(0);
pointer-events: auto;
}
.smtcmp-chat-list-inline-actions-inner {
min-width: 0;
overflow: hidden;
display: flex;
align-items: center;
gap: var(--size-4-1);
}
.smtcmp-chat-list-inline-actions-inner > .smtcmp-chat-list-dropdown-item-icon {
opacity: 0;
transform: translateX(5px) scale(0.96);
transition:
opacity 140ms ease,
transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.smtcmp-chat-list-inline-actions.is-open
.smtcmp-chat-list-inline-actions-inner
> .smtcmp-chat-list-dropdown-item-icon {
opacity: 1;
transform: translateX(0) scale(1);
}
.smtcmp-chat-list-inline-actions.is-open
.smtcmp-chat-list-inline-actions-inner
> .smtcmp-chat-list-dropdown-item-icon:nth-child(1) {
transition-delay: 30ms;
}
.smtcmp-chat-list-inline-actions.is-open
.smtcmp-chat-list-inline-actions-inner
> .smtcmp-chat-list-dropdown-item-icon:nth-child(2) {
transition-delay: 55ms;
}
.smtcmp-chat-list-inline-actions.is-open
.smtcmp-chat-list-inline-actions-inner
> .smtcmp-chat-list-dropdown-item-icon:nth-child(3) {
transition-delay: 80ms;
}
.smtcmp-chat-list-dropdown-item-actions.is-more-open
.smtcmp-chat-list-dropdown-item-icon,
.smtcmp-chat-list-dropdown-item-actions.is-more-open
.smtcmp-chat-list-pin-button {
opacity: 1;
transform: translateX(0) scale(1);
pointer-events: auto;
}
.smtcmp-chat-list-more-button.is-open {
visibility: visible;
color: var(--text-normal);
background: var(--background-modifier-hover);
border-radius: var(--radius-s);
}
.smtcmp-chat-list-more-button svg {
transition:
transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
opacity 120ms ease;
transform-origin: center;
}
.smtcmp-chat-list-more-button.is-open svg {
transform: rotate(90deg) scale(0.96);
}
.smtcmp-chat-list-pin-button {
color: var(--text-muted);
}
.smtcmp-chat-list-pin-button svg {
fill: transparent;
}
.yolo-popover-surface li .smtcmp-chat-list-pin-button.is-pinned {
color: var(--text-normal);
opacity: 1;
transform: translateX(0) scale(1);
pointer-events: auto;
}
.yolo-popover-surface li .smtcmp-chat-list-pin-button.is-pinned svg {
fill: currentColor;
}
.smtcmp-code-block {
position: relative;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
}
.smtcmp-code-block code {
padding: 0;
}
.smtcmp-code-block-header {
justify-content: space-between;
align-items: center;
font-size: var(--font-smallest);
display: flex;
border-bottom: 1px solid var(--background-modifier-border);
background-color: var(--background-primary);
border-radius: var(--radius-s) var(--radius-s) 0 0;
height: calc(var(--size-4-8) - var(--size-4-1));
}
.smtcmp-code-block-header-filename {
appearance: none;
border: 0 !important;
box-shadow: none !important;
border-radius: 0;
outline: none;
background: transparent !important;
color: inherit;
margin: 0;
padding: 0 var(--size-4-2);
height: 100%;
display: inline-flex;
align-items: center;
font-size: var(--font-medium);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
.smtcmp-code-block-header-button-container {
margin-left: auto;
min-width: fit-content;
height: 100%;
display: flex;
gap: 0;
overflow: hidden;
.smtcmp-code-block-header-button {
height: 100%;
padding: 0 var(--size-4-2);
display: flex;
gap: var(--size-4-1);
font-size: var(--font-small);
}
/* Override clickable-icon color */
.smtcmp-code-block-header-button.clickable-icon {
color: var(--text-color) !important;
}
}
.smtcmp-code-block-content {
margin: 0;
}
.smtcmp-code-block-obsidian-markdown {
position: relative;
padding: var(--size-4-3);
overflow: hidden;
}
.smtcmp-code-block-obsidian-markdown.is-plan-transitioning {
display: grid;
align-items: start;
}
.smtcmp-plan-preview-panel {
min-width: 0;
}
.smtcmp-code-block-obsidian-markdown.is-plan-transitioning
.smtcmp-plan-preview-panel {
grid-area: 1 / 1;
}
.smtcmp-plan-preview-panel--streaming {
position: relative;
z-index: 2;
}
.smtcmp-plan-preview-panel--streaming.is-exiting {
pointer-events: none;
animation: smtcmp-plan-streaming-preview-exit 220ms
cubic-bezier(0.32, 0, 0.2, 1) forwards;
}
.smtcmp-plan-preview-panel--streaming.is-exiting
.smtcmp-plan-streaming-preview-body {
transform-origin: top left;
animation: smtcmp-plan-streaming-preview-body-collapse 220ms
cubic-bezier(0.32, 0, 0.2, 1) forwards;
}
.smtcmp-plan-preview-panel--resolved {
position: relative;
z-index: 1;
}
.smtcmp-plan-preview-panel--resolved.is-entering {
border-radius: calc(var(--radius-s) - 2px);
animation: smtcmp-plan-preview-content-enter 260ms
cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.smtcmp-plan-streaming-preview {
position: relative;
display: flex;
flex-direction: column;
gap: 6px;
padding: 2px 0;
}
.smtcmp-plan-streaming-preview-header {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
color: var(--text-muted);
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
line-height: 1.35;
}
.smtcmp-plan-streaming-preview-status-dot {
width: 7px;
height: 7px;
border-radius: 999px;
flex: 0 0 auto;
background: color-mix(in srgb, var(--interactive-accent) 72%, white 28%);
box-shadow: 0 0 0 3px
color-mix(in srgb, var(--interactive-accent) 10%, transparent);
}
.smtcmp-plan-streaming-preview-title {
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-plan-streaming-preview-loader {
margin-left: 1px;
}
.smtcmp-plan-streaming-preview-body {
display: flex;
flex-direction: column;
gap: 8px;
padding-left: 18px;
opacity: 0.7;
}
.smtcmp-plan-streaming-preview-line {
display: block;
position: relative;
height: 5px;
width: 72%;
border-radius: 999px;
background: color-mix(in srgb, var(--text-muted) 16%, transparent);
animation: smtcmp-plan-streaming-preview-pulse 1.8s ease-in-out infinite;
}
.smtcmp-plan-streaming-preview-line.is-wide {
width: 66%;
}
.smtcmp-plan-streaming-preview-line.is-short {
width: 52%;
}
@keyframes smtcmp-plan-streaming-preview-pulse {
0% {
opacity: 0.35;
}
50% {
opacity: 0.68;
}
100% {
opacity: 0.35;
}
}
@keyframes smtcmp-plan-streaming-preview-exit {
from {
opacity: 1;
transform: translateY(0) scale(1);
filter: blur(0);
}
to {
opacity: 0;
transform: translateY(-6px) scale(0.985);
filter: blur(1px);
}
}
@keyframes smtcmp-plan-streaming-preview-body-collapse {
from {
opacity: 0.7;
transform: scaleY(1);
}
to {
opacity: 0;
transform: scaleY(0.72);
}
}
@keyframes smtcmp-plan-preview-content-enter {
from {
opacity: 0;
transform: translateY(8px) scale(0.992);
background: color-mix(
in srgb,
var(--background-secondary) 88%,
transparent
);
box-shadow: 0 18px 30px -24px color-mix(in srgb, var(
--background-modifier-box-shadow
)
90%, transparent);
}
55% {
opacity: 1;
}
to {
opacity: 1;
transform: translateY(0) scale(1);
background: transparent;
box-shadow: 0 0 0 0 transparent;
}
}
.smtcmp-apply-overlay-host {
position: relative;
}
.smtcmp-apply-overlay-root {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 2;
}
.smtcmp-apply-overlay {
position: absolute;
inset: 0;
pointer-events: auto;
background: var(--background-primary);
display: flex;
flex-direction: column;
overflow: hidden;
}
.smtcmp-inline-review-widget {
margin: 2px 0;
position: relative;
overflow: visible;
width: 100%;
}
.smtcmp-inline-review-widget.is-resolved {
animation: smtcmp-inline-review-resolve-in 180ms ease;
}
.smtcmp-inline-review-content {
display: flex;
flex-direction: column;
gap: 2px;
}
.smtcmp-inline-review-resolved {
display: flex;
flex-direction: column;
gap: 2px;
}
.smtcmp-inline-review-widget.is-resolved .smtcmp-inline-review-line {
color: var(--text-normal);
}
@keyframes smtcmp-inline-review-resolve-in {
from {
opacity: 0.74;
transform: translateY(2px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.smtcmp-inline-review-line {
white-space: pre-wrap;
line-height: var(--line-height-normal);
}
.smtcmp-inline-review-widget .smtcmp-inline-diff {
display: inline;
padding: 0 3px;
margin: 0 1px;
border-radius: 2px;
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
}
.smtcmp-inline-review-widget .smtcmp-inline-diff-del {
color: color-mix(in srgb, var(--text-faint) 80%, var(--text-muted) 20%);
background: color-mix(
in srgb,
var(--background-modifier-border) 60%,
transparent
);
text-decoration-line: underline line-through;
text-decoration-style: solid;
text-decoration-thickness: 1px;
text-decoration-color: color-mix(in srgb, var(--text-faint) 70%, transparent);
text-underline-offset: 2px;
}
.smtcmp-inline-review-widget .smtcmp-inline-diff-add {
color: var(--text-accent);
background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-thickness: 1px;
text-decoration-color: color-mix(
in srgb,
var(--interactive-accent) 60%,
transparent
);
text-underline-offset: 2px;
}
.smtcmp-inline-review-floating-actions .smtcmp-apply-action {
width: 26px;
height: 26px;
border-radius: 999px;
border: 1px solid color-mix(in srgb, var(--text-muted) 40%, transparent);
background: color-mix(in srgb, var(--background-primary) 92%, transparent);
color: var(--text-normal);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: none;
transition:
background 0.15s ease,
color 0.15s ease,
border-color 0.15s ease,
transform 0.15s ease;
}
.smtcmp-inline-review-floating-actions .smtcmp-apply-action-icon {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 15px;
line-height: 1;
font-weight: 600;
color: currentColor;
}
.smtcmp-inline-review-floating-actions .smtcmp-apply-action:hover {
transform: translateY(-1px);
color: var(--text-normal);
background: color-mix(
in srgb,
var(--background-primary) 82%,
var(--background-secondary) 18%
);
border-color: color-mix(in srgb, var(--text-muted) 55%, transparent);
}
.smtcmp-inline-review-floating-root {
position: absolute;
inset: 0;
pointer-events: none;
overflow: visible;
z-index: 8;
}
.smtcmp-inline-review-floating-rail {
position: absolute;
width: 2px;
border-radius: 999px;
background: color-mix(in srgb, var(--interactive-accent) 65%, transparent);
opacity: 0.95;
}
.smtcmp-inline-review-floating-actions {
position: absolute;
display: flex;
flex-direction: column;
gap: 10px;
pointer-events: auto;
}
.smtcmp-inline-review-floating-actions .smtcmp-apply-action-accept {
color: rgb(var(--smtcmp-incoming-color-rgb, 4, 120, 87));
}
.smtcmp-inline-review-floating-actions .smtcmp-apply-action-reject {
color: rgb(var(--smtcmp-current-color-rgb, 185, 28, 28));
}
.smtcmp-inline-review-host .cm-cursorLayer,
.smtcmp-inline-review-host .cm-dropCursor {
display: none !important;
}
.smtcmp-inline-review-host .cm-cursor,
.smtcmp-inline-review-host .cm-fat-cursor,
.smtcmp-inline-review-host .cm-fat-cursor-mark {
display: none !important;
opacity: 0 !important;
}
.smtcmp-inline-review-host .cm-content {
caret-color: transparent !important;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) {
flex: 1 1 auto;
display: flex;
flex-direction: column;
font-family: var(--font-interface);
position: relative;
--smtcmp-current-color-rgb: 185, 28, 28; /* red-700 */
--smtcmp-incoming-color-rgb: 4, 120, 87; /* emerald-700 */
--smtcmp-apply-rail-offset: 6px;
--smtcmp-apply-actions-offset: 36px;
--smtcmp-apply-text-color: var(--text-normal);
--smtcmp-inline-add-color: var(--text-accent);
--smtcmp-inline-del-color: color-mix(
in srgb,
var(--text-faint) 80%,
var(--text-muted) 20%
);
.view-content {
padding: 0;
flex: 1 1 auto;
}
.markdown-source-view.mod-cm6 {
height: 100%;
display: flex;
flex-direction: column;
}
.cm-editor {
flex: 1 1 0;
min-height: 0;
position: relative !important;
box-sizing: border-box;
display: flex !important;
flex-direction: column;
}
.cm-scroller {
padding: var(--file-margins);
display: flex !important;
align-items: flex-start !important;
line-height: 1.4;
height: 100%;
overflow-x: auto;
position: relative;
z-index: 0;
}
.cm-sizer {
box-sizing: border-box;
max-width: 100%;
width: 100%;
margin-left: auto;
margin-right: auto;
display: flex;
flex-direction: column;
align-items: stretch;
padding-left: 0;
padding-right: 0;
padding-bottom: 488px;
}
.smtcmp-apply-content {
width: 100%;
}
.smtcmp-apply-decision-status {
width: min(100%, var(--file-line-width));
margin: 0 auto;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
line-height: 1.5;
}
.smtcmp-apply-decision-status {
margin-bottom: var(--size-4-1);
font-weight: var(--font-medium);
}
.view-header {
height: var(--header-height);
display: flex;
border-bottom: var(--file-header-border);
background-color: var(--background-primary);
z-index: 1;
position: relative;
gap: var(--size-4-2);
padding: 0 var(--size-4-3);
}
.view-header-title-container {
display: flex;
justify-content: space-between;
align-items: center;
flex: 1;
}
.view-actions {
button {
color: var(--text-normal);
font-weight: var(--font-medium);
gap: 2px;
}
}
.smtcmp-diff-block {
display: block;
padding: var(--size-4-1) 0;
color: var(--smtcmp-apply-text-color);
line-height: var(--line-height-normal);
width: 100%;
}
.smtcmp-diff-block--resolved {
animation: smtcmp-apply-resolve-in 180ms ease;
}
.smtcmp-diff-block--resolved .smtcmp-apply-markdown-preview {
animation: smtcmp-apply-resolve-in 180ms ease;
}
.smtcmp-diff-block.added {
background-color: rgba(var(--smtcmp-incoming-color-rgb), 0.12);
}
.smtcmp-diff-block.removed {
background-color: rgba(var(--smtcmp-current-color-rgb), 0.12);
}
.smtcmp-diff-block-container {
position: relative;
scroll-margin-top: var(--size-4-8);
}
.smtcmp-diff-block-actions {
position: absolute;
right: calc(
(100% - var(--file-line-width)) / 2 - var(--smtcmp-apply-actions-offset)
);
top: 50%;
transform: translateY(-50%);
display: flex;
flex-direction: column;
gap: 10px;
opacity: 0;
pointer-events: none;
transition: opacity 0.15s ease;
z-index: 1;
}
.smtcmp-apply-paragraph {
pointer-events: auto;
position: relative;
width: 100%;
--smtcmp-apply-side-gap: calc((100% - var(--file-line-width)) / 2);
}
.smtcmp-apply-paragraph.has-changes {
padding-right: 0;
margin-right: 0;
}
.smtcmp-apply-paragraph-indicator {
position: absolute;
right: calc(var(--smtcmp-apply-side-gap) - var(--smtcmp-apply-rail-offset));
top: 4px;
bottom: 4px;
width: 2px;
border-radius: 999px;
background: color-mix(in srgb, var(--interactive-accent) 28%, transparent);
opacity: 0.6;
transition:
background 0.15s ease,
opacity 0.15s ease;
}
.smtcmp-apply-paragraph.has-changes:hover .smtcmp-apply-paragraph-indicator,
.smtcmp-apply-paragraph.has-changes:focus-within
.smtcmp-apply-paragraph-indicator {
background: color-mix(in srgb, var(--interactive-accent) 65%, transparent);
opacity: 0.95;
}
.smtcmp-apply-paragraph.has-changes.is-active
.smtcmp-apply-paragraph-indicator {
background: color-mix(in srgb, var(--interactive-accent) 65%, transparent);
opacity: 0.95;
}
.smtcmp-apply-paragraph.is-empty {
min-height: 20px;
}
.smtcmp-apply-empty-line {
height: 12px;
}
.smtcmp-apply-paragraph:hover .smtcmp-diff-block-actions,
.smtcmp-apply-paragraph:focus-within .smtcmp-diff-block-actions {
opacity: 1;
pointer-events: auto;
}
.smtcmp-apply-paragraph.is-active .smtcmp-diff-block-actions {
opacity: 1;
pointer-events: auto;
}
.smtcmp-apply-action {
width: 26px;
height: 26px;
border-radius: 999px;
border: 1px solid color-mix(in srgb, var(--text-muted) 40%, transparent);
background: color-mix(in srgb, var(--background-primary) 92%, transparent);
color: var(--text-normal);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: none;
transition:
background 0.15s ease,
color 0.15s ease,
border-color 0.15s ease,
transform 0.15s ease;
}
.smtcmp-apply-action svg {
width: 15px;
height: 15px;
stroke-width: 2.4;
stroke: currentColor;
fill: none;
opacity: 0.95;
}
.smtcmp-apply-action-icon {
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 15px;
line-height: 1;
font-weight: 600;
color: currentColor;
}
.smtcmp-apply-action-icon--merge {
font-size: 14px;
font-weight: 500;
}
.smtcmp-apply-action:hover {
transform: translateY(-1px);
color: var(--text-normal);
background: color-mix(
in srgb,
var(--background-primary) 82%,
var(--background-secondary) 18%
);
border-color: color-mix(in srgb, var(--text-muted) 55%, transparent);
}
.smtcmp-apply-action-accept {
color: rgb(var(--smtcmp-incoming-color-rgb));
}
.smtcmp-apply-action-reject {
color: rgb(var(--smtcmp-current-color-rgb));
}
.smtcmp-accept {
color: white;
background: rgba(var(--smtcmp-incoming-color-rgb), 0.8);
&:hover {
background: rgba(var(--smtcmp-incoming-color-rgb), 1);
}
}
.smtcmp-exclude {
color: white;
background: rgba(var(--smtcmp-current-color-rgb), 0.8);
&:hover {
background: rgba(var(--smtcmp-current-color-rgb), 1);
}
}
/* Toolbar styles */
.smtcmp-apply-toolbar {
position: absolute;
left: 50%;
bottom: var(--size-4-3);
transform: translateX(-50%);
display: flex;
justify-content: center;
width: 100%;
pointer-events: none;
z-index: 3;
}
.smtcmp-apply-toolbar-pill {
pointer-events: auto;
display: flex;
align-items: center;
gap: var(--size-4-3);
padding: var(--size-4-2) var(--size-4-3);
border-radius: 999px;
max-width: calc(100% - var(--size-4-6));
flex-wrap: wrap;
justify-content: center;
background: color-mix(
in srgb,
var(--background-secondary) 86%,
transparent
);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 70%, transparent);
box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
backdrop-filter: blur(12px);
}
.smtcmp-apply-toolbar-nav,
.smtcmp-apply-toolbar-actions {
display: flex;
align-items: center;
gap: var(--size-4-2);
}
.smtcmp-apply-progress {
font-size: var(--font-ui-small);
color: var(--text-muted);
min-width: 52px;
text-align: center;
font-variant-numeric: tabular-nums;
}
.smtcmp-toolbar-btn {
padding: 6px var(--size-4-3);
font-size: var(--font-ui-small);
border-radius: 999px;
cursor: pointer;
border: 1px solid var(--background-modifier-border);
background: color-mix(in srgb, var(--background-primary) 88%, transparent);
color: var(--text-normal);
&:hover {
background: color-mix(
in srgb,
var(--background-modifier-hover) 88%,
transparent
);
}
}
.smtcmp-toolbar-btn:disabled,
.smtcmp-toolbar-icon-btn:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.smtcmp-toolbar-icon-btn {
width: 30px;
height: 30px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid var(--background-modifier-border);
background: color-mix(in srgb, var(--background-primary) 88%, transparent);
color: var(--text-muted);
cursor: pointer;
&:hover {
color: var(--text-normal);
background: color-mix(
in srgb,
var(--background-modifier-hover) 88%,
transparent
);
}
}
.smtcmp-toolbar-icon {
font-size: 14px;
line-height: 1;
font-weight: 600;
}
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root)
.smtcmp-apply-markdown.markdown-rendered {
--render-scale: 1;
color: var(--text-normal);
font-family: var(--font-text, var(--font-interface));
font-size: var(--font-text-size, 1rem);
line-height: var(--line-height-normal);
pointer-events: auto;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-diff-block-content {
max-width: var(--file-line-width);
margin-left: auto;
margin-right: auto;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-inline-title {
text-align: left;
max-width: var(--file-line-width);
margin-left: auto;
margin-right: auto;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .inline-title {
text-align: left;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h1,
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h2,
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h3,
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h4,
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h5,
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-apply-markdown h6 {
color: inherit;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root)
.smtcmp-apply-inline-markdown
p {
margin: 2px 0;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-inline-diff {
display: inline;
padding: 0 3px;
margin: 0 1px;
border-radius: 4px;
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
text-decoration-skip-ink: none;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-inline-diff-del {
color: var(--smtcmp-inline-del-color);
background: color-mix(
in srgb,
var(--background-modifier-border) 60%,
transparent
);
text-decoration-line: underline line-through;
text-decoration-style: solid;
text-decoration-thickness: 1px;
text-decoration-color: color-mix(
in srgb,
var(--smtcmp-inline-del-color) 70%,
transparent
);
text-underline-offset: 2px;
}
:is(#smtcmp-apply-view, .smtcmp-apply-view-root) .smtcmp-inline-diff-add {
color: var(--smtcmp-inline-add-color);
background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-thickness: 1px;
text-decoration-color: color-mix(
in srgb,
var(--interactive-accent) 60%,
transparent
);
text-underline-offset: 2px;
}
.smtcmp-spinner {
animation: spin 1s linear infinite;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes smtcmp-apply-resolve-in {
from {
opacity: 0.74;
transform: translateY(2px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@media (prefers-reduced-motion: reduce) {
.smtcmp-spinner,
.smtcmp-chat-list-dropdown-content,
.smtcmp-chat-list-dropdown-item-title-text,
.smtcmp-chat-list-dropdown-item-title-skeleton,
.smtcmp-inline-review-widget,
.smtcmp-diff-block--resolved,
.smtcmp-diff-block--resolved .smtcmp-apply-markdown-preview,
.smtcmp-inline-review-floating-rail,
.smtcmp-inline-review-floating-actions,
.smtcmp-inline-review-floating-actions .smtcmp-apply-action,
.smtcmp-plan-preview-panel--streaming.is-exiting,
.smtcmp-plan-preview-panel--streaming.is-exiting
.smtcmp-plan-streaming-preview-body,
.smtcmp-plan-preview-panel--resolved.is-entering,
.smtcmp-plan-streaming-preview-line {
animation: none !important;
transition: none !important;
}
}
button.smtcmp-chat-input-model-select {
background-color: transparent;
box-shadow: none;
border: 0;
padding: 0;
font-size: var(--font-smallest);
font-weight: var(--font-medium);
color: var(--text-muted);
cursor: pointer;
height: auto;
&:hover {
color: var(--text-normal);
}
.smtcmp-chat-input-model-select__model-name {
flex-shrink: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-chat-input-model-select__icon {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}
}
.smtcmp-query-progress {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.smtcmp-query-progress-detail {
font-size: var(--font-smallest);
color: var(--text-faint);
}
/* ViewToggle 模式切换下拉的 purpose 类——按 surface.css 头部约定一次性需求
自带 yolo-popover- class。这里只覆盖宽度(跟 trigger 按钮严格对齐),
背景沿用 --default 变体的 --background-primary:在侧栏/独立窗口里都能跟周围
bg 自然过渡,不会出现"独立窗口白底但 popover 灰底"的违和。 */
.yolo-popover-surface.yolo-popover-view-toggle-mode {
width: var(--radix-dropdown-menu-trigger-width);
}
/* 外部 Agent 工具卡:终端样式
* 布局:状态条 → Progress(始终展开+自动滚底) → Output → metadata chips
* 同步派遣与异步派遣完成卡片共用此样式(异步走 ExternalAgentToolCard 适配层)。
*/
.yolo-external-agent-card {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
font-size: var(--font-ui-small);
}
/* ── 状态条 ── */
.yolo-external-agent-card__status-row {
display: flex;
align-items: center;
gap: var(--size-4-2);
flex-wrap: wrap;
}
.yolo-external-agent-card__badge {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
padding: 2px var(--size-2-2);
border-radius: var(--radius-s);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
line-height: 1;
}
.yolo-external-agent-card__badge--running {
background: var(--background-modifier-active-hover);
color: var(--text-accent);
}
.yolo-external-agent-card__badge--success {
background: color-mix(in srgb, var(--color-green) 15%, transparent);
color: var(--color-green);
}
.yolo-external-agent-card__badge--aborted {
background: color-mix(in srgb, var(--color-yellow) 15%, transparent);
color: var(--color-yellow);
}
.yolo-external-agent-card__badge--error {
background: color-mix(in srgb, var(--color-red) 15%, transparent);
color: var(--color-red);
}
.yolo-external-agent-card__meta-inline {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.yolo-external-agent-card__meta-inline-sep {
opacity: 0.5;
}
.yolo-external-agent-card__cwd {
font-family: var(--font-monospace);
max-width: 220px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
direction: rtl;
text-align: left;
}
.yolo-external-agent-card__abort-btn {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
margin-left: auto;
padding: var(--size-2-1) var(--size-2-3);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
background: var(--background-secondary);
color: var(--text-normal);
font-size: var(--font-ui-smaller);
cursor: pointer;
transition: background 0.12s ease;
}
.yolo-external-agent-card__abort-btn:hover {
background: color-mix(in srgb, var(--color-red) 15%, transparent);
border-color: var(--color-red);
color: var(--color-red);
}
/* ── 输出块(Progress / Output 共用) ── */
.yolo-external-agent-card__stream-section {
display: flex;
flex-direction: column;
gap: var(--size-2-2);
}
.yolo-external-agent-card__stream-label {
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.04em;
}
.yolo-external-agent-card__console {
margin: 0;
padding: var(--size-4-2) var(--size-4-3);
background: var(--background-primary-alt);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
font-family: var(--font-monospace);
font-size: var(--font-ui-smaller);
line-height: 1.5;
color: var(--text-normal);
white-space: pre-wrap;
word-break: break-word;
}
.yolo-external-agent-card__console--progress {
color: var(--text-muted);
}
/* progress 中按行渲染的容器(用于 claude 标签着色) */
.yolo-external-agent-card__line {
display: block;
}
.yolo-external-agent-card__line--system {
color: var(--text-faint);
}
.yolo-external-agent-card__line--thinking {
color: var(--text-accent);
font-style: italic;
}
.yolo-external-agent-card__line--tool {
color: var(--color-blue);
}
.yolo-external-agent-card__line--tool-result {
color: var(--color-green);
}
.yolo-external-agent-card__line--done {
color: var(--text-success);
font-weight: var(--font-medium);
}
.yolo-external-agent-card__line--section {
color: var(--text-normal);
font-weight: var(--font-semibold);
}
.yolo-external-agent-card__line--parse-error {
color: var(--text-error);
opacity: 0.7;
}
/* ── metadata chips(底部) ── */
.yolo-external-agent-card__meta-row {
display: flex;
flex-wrap: wrap;
gap: var(--size-4-2);
padding-top: var(--size-2-2);
border-top: 1px solid var(--background-modifier-border);
font-size: var(--font-ui-smaller);
color: var(--text-muted);
}
.yolo-external-agent-card__chip {
display: inline-flex;
align-items: center;
gap: var(--size-2-1);
}
.yolo-external-agent-card__chip-icon {
opacity: 0.7;
flex-shrink: 0;
}
/* ── 截断/无输出提示 ── */
.yolo-external-agent-card__truncation-notice {
font-size: var(--font-ui-smaller);
color: var(--text-warning);
padding: var(--size-2-1) 0;
}
.yolo-external-agent-card__no-output {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
font-style: italic;
}
/* Custom continue inline panel */
.smtcmp-smart-space-overlay-host {
position: relative;
}
.smtcmp-smart-space-overlay-root {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1;
}
.smtcmp-smart-space-overlay {
position: absolute;
pointer-events: none;
z-index: 2;
animation: smtcmp-smart-space-fade-in 0.25s cubic-bezier(0.16, 1, 0.3, 1)
forwards;
}
.smtcmp-smart-space-overlay.closing {
animation: smtcmp-smart-space-fade-out 0.2s cubic-bezier(0.4, 0, 1, 1)
forwards;
}
/* Smart Space 弹出动画 */
@keyframes smtcmp-smart-space-fade-in {
0% {
opacity: 0;
transform: translateY(8px) scale(0.96);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* Smart Space 关闭动画 */
@keyframes smtcmp-smart-space-fade-out {
0% {
opacity: 1;
transform: translateY(0) scale(1);
}
100% {
opacity: 0;
transform: translateY(-4px) scale(0.98);
}
}
/* Smart Space 内部元素淡入动画 */
@keyframes smtcmp-smart-space-item-fade-in {
0% {
opacity: 0;
transform: translateY(4px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.smtcmp-smart-space-inline-anchor {
display: inline-block;
width: 0;
height: 0;
line-height: 0;
}
.smtcmp-smart-space-panel {
position: relative;
width: 100%;
max-width: min(var(--file-line-width, 720px), 92vw);
display: flex;
flex-direction: column;
gap: 12px;
max-height: min(440px, 70vh);
pointer-events: none;
}
.smtcmp-smart-space-input-card {
background: var(--background-primary);
border: 1px solid var(--h1-color, var(--interactive-accent));
border-radius: var(--radius-l);
box-shadow: var(--shadow-l, 0 4px 12px rgba(0, 0, 0, 0.08));
overflow: visible;
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
animation: smtcmp-smart-space-item-fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1)
0.05s backwards;
pointer-events: auto;
position: relative;
}
.smtcmp-smart-space-input-card:focus-within {
border-color: var(--h1-color, var(--interactive-accent));
box-shadow:
0 0 0 2px
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 20%,
transparent
),
var(--shadow-l, 0 4px 12px rgba(0, 0, 0, 0.08));
}
.smtcmp-smart-space-input-card:hover {
background: var(--background-primary) !important;
}
.smtcmp-smart-space-header {
display: flex;
align-items: flex-start;
gap: 12px;
width: 100%;
padding: 12px 16px;
flex-wrap: nowrap;
position: relative;
}
.smtcmp-smart-space-header.is-empty {
align-items: center;
}
.smtcmp-smart-space-header:not(.is-empty) .smtcmp-smart-space-avatar,
.smtcmp-smart-space-header:not(.is-empty) .smtcmp-smart-space-controls {
margin-top: 6px;
}
.smtcmp-smart-space-header:hover {
background: transparent !important;
}
.smtcmp-smart-space-avatar {
width: 24px;
height: 24px;
border-radius: 999px;
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 16%,
transparent
);
display: flex;
align-items: center;
justify-content: center;
color: var(--h1-color, var(--interactive-accent));
flex-shrink: 0;
}
.smtcmp-smart-space-input-wrapper {
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
flex: 1 1 auto;
max-width: 100%;
}
.smtcmp-smart-space-input-wrapper:hover {
background: transparent !important;
}
.smtcmp-smart-space-input {
width: 100%;
border: none;
outline: none;
background: transparent;
color: var(--text-normal);
font-family: var(--font-interface);
font-size: var(--font-ui-medium);
line-height: 1.5;
min-height: 24px;
max-height: 200px;
box-shadow: none;
position: relative;
cursor: text;
display: flex;
align-items: flex-start;
padding: 4px 0;
}
.smtcmp-smart-space-input.is-disabled {
opacity: 0.6;
cursor: not-allowed;
}
.smtcmp-smart-space-input.is-empty {
align-items: center;
}
.smtcmp-smart-space-input-placeholder {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
color: var(--text-muted);
pointer-events: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-smart-space-input.is-multiline .smtcmp-smart-space-input-placeholder {
top: 4px;
transform: none;
}
.smtcmp-smart-space-content-editable {
width: 100%;
min-height: 24px;
max-height: 200px;
overflow-y: auto;
outline: none;
display: block;
flex: 1;
font-size: var(--font-ui-medium);
line-height: 1.5;
}
.smtcmp-smart-space-input-hint {
font-size: var(--font-ui-smaller);
color: var(--text-faint);
display: flex;
align-items: center;
gap: 4px;
user-select: none;
opacity: 0.8;
}
.smtcmp-smart-space-mention-badges {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.smtcmp-smart-space-mention-popover {
position: absolute;
bottom: calc(100% + 10px);
left: 16px;
right: 16px;
display: flex;
justify-content: flex-start;
pointer-events: none;
z-index: 5;
}
.smtcmp-smart-space-mention-popover[data-placement='bottom'] {
bottom: auto;
top: calc(100% + 10px);
}
.smtcmp-smart-space-mention-dropdown {
display: block;
right: auto;
width: min(100%, var(--smtcmp-chat-typeahead-max-width, 480px));
min-width: 0;
max-width: min(100%, var(--smtcmp-chat-typeahead-max-width, 480px));
pointer-events: auto;
padding: 0;
/* 视觉表面由 .yolo-popover-surface--smart-space 提供;此处不再覆盖 background/border/box-shadow。
宽度上限用 CSS 变量 --smtcmp-chat-typeahead-max-width 控制:
默认 480px;centered 容器(input.css)会覆盖为 400px。 */
}
.smtcmp-smart-space-mention-list {
width: 100%;
display: flex;
flex-direction: column;
gap: 4px;
overflow-y: auto;
background: transparent;
border: none;
padding: 8px;
}
.yolo-popover-surface--smart-space .smtcmp-smart-space-mention-list {
max-height: min(320px, var(--smtcmp-typeahead-available-height, 320px));
overflow-y: auto;
scrollbar-width: thin;
scroll-padding-top: 8px;
scroll-padding-bottom: 8px;
}
.smtcmp-smart-space-mention-option {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
border: none;
background: transparent;
color: var(--text-normal);
cursor: pointer;
text-align: left;
}
.smtcmp-smart-space-mention-option-icon {
color: var(--h1-color, var(--interactive-accent));
margin-top: 0;
flex-shrink: 0;
}
.smtcmp-smart-space-mention-option-text {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
flex: 1;
}
.smtcmp-smart-space-mention-option-text--inline-meta {
flex-direction: row;
align-items: center;
gap: 8px;
}
.smtcmp-smart-space-mention-option-name {
font-weight: 600;
font-size: var(--font-ui-small);
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-smart-space-mention-option-text--inline-meta
.smtcmp-smart-space-mention-option-name {
min-width: 0;
flex: 0 1 auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-smart-space-mention-option-text--inline-meta
.smtcmp-smart-space-mention-option-path {
flex: 1 1 auto;
width: 0;
min-width: 0;
}
.smtcmp-smart-space-mention-option-path {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: 1.25;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
word-break: normal;
}
.smtcmp-smart-space-mention-option-inline-meta {
flex: 1;
min-width: 0;
}
.yolo-popover-surface--smart-space
.smtcmp-smart-space-mention-list
> .smtcmp-smart-space-mention-option {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 10px;
white-space: normal;
line-height: 1.35;
background: transparent;
border: none;
margin: 0;
box-shadow: none;
border-radius: 8px;
transform: none;
scroll-margin-top: 8px;
scroll-margin-bottom: 8px;
}
.yolo-popover-surface--smart-space
.smtcmp-smart-space-mention-list
> .smtcmp-smart-space-mention-option:focus-visible {
outline: 1px solid
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 70%,
transparent
);
}
.yolo-popover-surface--smart-space
.smtcmp-smart-space-mention-list
> .smtcmp-smart-space-mention-option::before {
display: none;
}
.yolo-popover-surface--smart-space
.smtcmp-smart-space-mention-list
> .smtcmp-smart-space-mention-option:hover,
.yolo-popover-surface--smart-space
.smtcmp-smart-space-mention-list
> .smtcmp-smart-space-mention-option[data-highlighted='true'] {
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 14%,
transparent
);
border-radius: 8px;
box-shadow: inset 0 0 0 1px
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 40%,
transparent
);
border: none;
}
.smtcmp-smart-space-mention-empty {
padding: 10px 12px;
font-size: var(--font-ui-small);
color: var(--text-muted);
}
.smtcmp-smart-space-mention-option-check {
margin-left: auto;
margin-top: 0;
color: var(--text-accent, var(--interactive-accent));
}
.smtcmp-smart-space-mention-option-expand {
margin-left: auto;
color: var(--text-muted);
opacity: 0.85;
}
.smtcmp-smart-space-section-card {
flex: 1;
min-height: 0;
background: var(--background-primary);
border: 1px solid var(--h1-color, var(--interactive-accent));
border-radius: var(--radius-l);
box-shadow: var(--shadow-s, 0 2px 8px rgba(0, 0, 0, 0.05));
padding: 12px;
display: flex;
flex-direction: column;
overflow: visible;
width: min(420px, 100%);
align-self: flex-start;
animation: smtcmp-smart-space-item-fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1)
0.1s backwards;
pointer-events: auto;
}
.smtcmp-smart-space-section-card.is-floating {
position: absolute;
left: 0;
flex: 0 0 auto;
z-index: 1;
}
.smtcmp-smart-space-section-list {
flex: 1;
min-height: 0;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 12px;
padding-right: 4px;
}
.smtcmp-smart-space-section {
display: flex;
flex-direction: column;
gap: 6px;
}
.smtcmp-smart-space-section + .smtcmp-smart-space-section {
padding-top: 10px;
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-smart-space-section-title {
font-size: var(--font-ui-smaller);
font-weight: var(--font-semibold);
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.04em;
}
.smtcmp-smart-space-section-items {
display: flex;
flex-direction: column;
gap: 4px;
padding-left: 2px;
padding-right: 2px;
}
.smtcmp-smart-space-item {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
border: 1px solid transparent !important;
background: transparent !important;
box-shadow: none !important;
border-radius: var(--radius-s);
padding: 6px 8px;
color: inherit;
text-align: left;
font: inherit;
cursor: pointer;
transition:
background 0.15s ease,
border-color 0.15s ease,
transform 0.1s ease;
animation: smtcmp-smart-space-item-fade-in 0.25s cubic-bezier(0.16, 1, 0.3, 1)
backwards;
}
/* 为不同的选项添加渐进式延迟 */
.smtcmp-smart-space-item:nth-child(1) {
animation-delay: 0.15s;
}
.smtcmp-smart-space-item:nth-child(2) {
animation-delay: 0.18s;
}
.smtcmp-smart-space-item:nth-child(3) {
animation-delay: 0.21s;
}
.smtcmp-smart-space-item:nth-child(4) {
animation-delay: 0.24s;
}
.smtcmp-smart-space-item:nth-child(5) {
animation-delay: 0.27s;
}
.smtcmp-smart-space-item:nth-child(6) {
animation-delay: 0.3s;
}
.smtcmp-smart-space-item:nth-child(7) {
animation-delay: 0.33s;
}
.smtcmp-smart-space-item:nth-child(8) {
animation-delay: 0.36s;
}
.smtcmp-smart-space-item:hover,
.smtcmp-smart-space-item:focus,
.smtcmp-smart-space-item:focus-visible {
background: color-mix(
in srgb,
var(--background-modifier-hover) 40%,
transparent
) !important;
border-color: color-mix(
in srgb,
var(--interactive-accent) 55%,
transparent
) !important;
outline: none;
}
/* 键盘导航时禁用鼠标 hover 的视觉反馈,避免与焦点状态冲突 */
.smtcmp-smart-space-section-card.is-keyboard-nav
.smtcmp-smart-space-item:hover:not(:focus-visible):not(:focus) {
background: transparent !important;
border-color: transparent !important;
}
.smtcmp-smart-space-item:disabled {
opacity: 0.6;
cursor: default;
transform: none;
}
.smtcmp-smart-space-item-icon {
width: 24px;
height: 24px;
border-radius: 999px;
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 12%,
transparent
);
display: flex;
align-items: center;
justify-content: center;
color: var(--h1-color, var(--interactive-accent));
flex-shrink: 0;
}
.smtcmp-smart-space-item-icon-svg {
width: 14px;
height: 14px;
}
.smtcmp-smart-space-item-label {
flex: 1;
font-size: var(--font-ui-small);
color: var(--text-normal);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-smart-space-status {
display: flex;
align-items: center;
padding: 4px 0;
margin-top: -6px;
animation: smtcmp-status-fade-in 0.3s ease;
}
@keyframes smtcmp-status-fade-in {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
.smtcmp-smart-space-error {
font-size: var(--font-ui-smaller);
color: var(--text-error);
padding-left: 8px;
}
/* Smart Space Controls Container */
.smtcmp-smart-space-controls {
display: flex;
align-items: center;
gap: 8px;
flex: 0 0 auto;
min-width: 0;
width: auto;
justify-content: flex-end;
flex-wrap: nowrap;
margin-left: auto;
}
/* Smart Space Model Select - 精致的按钮设计 */
.smtcmp-smart-space-model-select {
display: flex;
align-items: center;
flex: 0 1 auto;
min-width: 0;
}
@media (max-width: 640px) {
.smtcmp-smart-space-header {
flex-wrap: wrap;
}
.smtcmp-smart-space-controls {
flex: 1 1 100%;
justify-content: flex-start;
flex-wrap: wrap;
margin-left: 0;
}
.smtcmp-smart-space-model-select {
flex: 1 1 160px;
}
}
/* 多行输入时,将模型选择等控件移到底部一行,右对齐 */
.smtcmp-smart-space-header:not(.is-empty) {
padding-bottom: 22px;
}
.smtcmp-smart-space-header:not(.is-empty) .smtcmp-smart-space-input-wrapper {
flex: 1 1 auto;
min-width: 0;
padding-right: 0;
}
.smtcmp-smart-space-header:not(.is-empty) .smtcmp-smart-space-controls {
position: absolute;
right: 16px;
bottom: 16px;
flex: 0 0 auto;
min-width: 0;
width: auto;
justify-content: flex-end;
align-items: center;
flex-wrap: nowrap;
gap: 6px;
margin-left: 0;
}
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select {
font-size: var(--font-ui-smaller);
padding: 5px 9px 5px 10px;
height: auto;
min-height: 26px;
border-radius: 8px;
border: 1px solid transparent;
background: transparent;
color: var(--text-normal);
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
box-shadow: none;
}
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select:hover,
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select:focus,
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select:focus-visible {
background: color-mix(
in srgb,
var(--background-modifier-hover) 85%,
transparent
);
border-color: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 35%,
transparent
);
box-shadow:
0 2px 6px rgba(0, 0, 0, 0.12),
inset 0 1px 0 rgba(255, 255, 255, 0.08);
transform: translateY(-0.5px);
outline: none;
}
.smtcmp-smart-space-model-select
.smtcmp-chat-input-model-select[data-state='open'] {
border-color: var(--h1-color, var(--interactive-accent));
background: color-mix(
in srgb,
var(--background-modifier-hover) 90%,
transparent
);
box-shadow:
0 0 0 2px
color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 15%,
transparent
),
0 2px 8px rgba(0, 0, 0, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select__model-name {
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 160px;
line-height: 1.3;
}
.smtcmp-smart-space-model-select .smtcmp-chat-input-model-select__icon {
margin-left: 5px;
display: flex;
align-items: center;
opacity: 0.5;
transition: all 0.2s ease;
}
.smtcmp-smart-space-model-select
.smtcmp-chat-input-model-select:hover
.smtcmp-chat-input-model-select__icon,
.smtcmp-smart-space-model-select
.smtcmp-chat-input-model-select:focus
.smtcmp-chat-input-model-select__icon,
.smtcmp-smart-space-model-select
.smtcmp-chat-input-model-select:focus-visible
.smtcmp-chat-input-model-select__icon {
opacity: 0.75;
}
.smtcmp-smart-space-model-select
.smtcmp-chat-input-model-select[data-state='open']
.smtcmp-chat-input-model-select__icon {
opacity: 1;
color: var(--h1-color, var(--interactive-accent));
}
.smtcmp-chat-sidebar-model-select {
flex: 0 1 clamp(140px, 28vw, 280px);
display: flex;
margin-left: -6px;
min-width: 0;
}
.smtcmp-chat-sidebar-model-select .smtcmp-chat-input-model-select {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 6px 10px 6px 6px;
border-radius: 10px;
background: transparent;
border: 1px solid transparent;
box-shadow: none;
color: var(--text-muted);
gap: 8px;
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
min-height: 30px;
transition: all 0.18s ease;
}
.smtcmp-chat-sidebar-model-select .smtcmp-chat-input-model-select:hover,
.smtcmp-chat-sidebar-model-select .smtcmp-chat-input-model-select:focus,
.smtcmp-chat-sidebar-model-select
.smtcmp-chat-input-model-select:focus-visible {
color: var(--text-normal);
}
.smtcmp-chat-sidebar-model-select .smtcmp-chat-input-model-select__model-name {
max-width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.smtcmp-chat-sidebar-model-select .smtcmp-chat-input-model-select__icon {
margin-left: 6px;
display: flex;
align-items: center;
opacity: 0.6;
transition: opacity 0.18s ease;
}
.smtcmp-chat-sidebar-model-select
.smtcmp-chat-input-model-select:hover
.smtcmp-chat-input-model-select__icon,
.smtcmp-chat-sidebar-model-select
.smtcmp-chat-input-model-select:focus
.smtcmp-chat-input-model-select__icon,
.smtcmp-chat-sidebar-model-select
.smtcmp-chat-input-model-select:focus-visible
.smtcmp-chat-input-model-select__icon {
opacity: 0.85;
}
/* --smart-space 变体下 model-select-list 的容器样式。
--default 变体的对应规则在 src/styles/chat/popover.css。 */
.yolo-popover-surface--smart-space .smtcmp-model-select-list {
max-height: 380px;
overflow-y: auto;
scrollbar-width: thin;
padding: 8px;
}
.yolo-popover-surface--smart-space .smtcmp-model-select-list::-webkit-scrollbar,
.yolo-popover-surface--default .smtcmp-model-select-list::-webkit-scrollbar {
width: 8px;
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list::-webkit-scrollbar-track,
.yolo-popover-surface--default
.smtcmp-model-select-list::-webkit-scrollbar-track {
background: transparent;
margin: 8px 0;
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list::-webkit-scrollbar-thumb {
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 25%,
transparent
);
border-radius: 4px;
border: 2px solid transparent;
background-clip: padding-box;
}
.yolo-popover-surface--default
.smtcmp-model-select-list::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--text-muted) 30%, transparent);
border-radius: 4px;
border: 2px solid transparent;
background-clip: padding-box;
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list::-webkit-scrollbar-thumb:hover {
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 40%,
transparent
);
background-clip: padding-box;
}
.yolo-popover-surface--default
.smtcmp-model-select-list::-webkit-scrollbar-thumb:hover {
background: color-mix(in srgb, var(--text-muted) 50%, transparent);
background-clip: padding-box;
}
.yolo-popover-surface--smart-space .smtcmp-popover-group-label {
display: block;
margin: 0;
padding: 8px 12px 6px 12px;
font-size: 10px;
font-weight: var(--font-bold);
color: color-mix(in srgb, var(--text-muted) 85%, transparent);
text-transform: uppercase;
letter-spacing: 0.08em;
user-select: none;
opacity: 0.8;
}
.yolo-popover-surface--smart-space .smtcmp-popover-group-separator {
height: 1px;
background: linear-gradient(
to right,
transparent 4px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent) 16px,
color-mix(in srgb, var(--background-modifier-border) 50%, transparent)
calc(100% - 16px),
transparent calc(100% - 4px)
);
margin: 6px 0;
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list
> .smtcmp-popover-item {
position: relative;
padding: 8px 12px;
margin: 2px 0;
min-width: 0;
font-size: var(--font-ui-small);
color: var(--text-normal);
cursor: pointer;
border-radius: 8px;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.4;
outline: none;
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list
> .smtcmp-popover-item:hover,
.yolo-popover-surface--smart-space
.smtcmp-model-select-list
> .smtcmp-popover-item[data-highlighted] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 80%,
transparent
);
color: var(--text-normal);
}
.yolo-popover-surface--smart-space
.smtcmp-model-select-list
> .smtcmp-popover-item:active {
transform: scale(0.98);
}
/* Smart Space Gemini Tools */
.smtcmp-smart-space-tools {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
.smtcmp-smart-space-tool-button {
display: flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
padding: 0;
color: var(--text-muted);
background: transparent !important;
border: 1px solid transparent !important;
box-shadow: none !important;
border-radius: var(--radius-s);
cursor: pointer;
transition: all 0.15s ease;
}
.smtcmp-smart-space-tool-button:hover,
.smtcmp-smart-space-tool-button:focus,
.smtcmp-smart-space-tool-button:focus-visible {
color: var(--text-normal);
background: color-mix(
in srgb,
var(--background-modifier-hover) 50%,
transparent
) !important;
border-color: color-mix(
in srgb,
var(--interactive-accent) 50%,
transparent
) !important;
outline: none;
}
.smtcmp-smart-space-tool-button.active {
color: var(--interactive-accent);
background: transparent;
border-color: var(--interactive-accent) !important;
}
.smtcmp-smart-space-tool-button.active:hover,
.smtcmp-smart-space-tool-button.active:focus,
.smtcmp-smart-space-tool-button.active:focus-visible {
color: var(--interactive-accent-hover);
background: color-mix(
in srgb,
var(--interactive-accent) 10%,
transparent
) !important;
border-color: var(--interactive-accent-hover) !important;
outline: none;
}
/* Floating Panel */
.smtcmp-floating-panel-container {
position: fixed;
z-index: 9999;
top: 0;
left: 0;
}
.smtcmp-floating-panel {
position: fixed;
max-width: 92vw;
background: var(--background-primary);
color: var(--text-normal);
box-shadow: var(--shadow-s);
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
overflow: hidden;
display: flex;
flex-direction: column;
}
.smtcmp-floating-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 10px;
cursor: move;
user-select: none;
border-bottom: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
}
.smtcmp-floating-panel-title {
font-weight: 600;
}
.smtcmp-floating-panel-close {
border: none;
background: transparent;
color: var(--text-muted);
cursor: pointer;
}
.smtcmp-floating-panel-body {
padding: 12px;
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
}
.smtcmp-floating-panel-drag-handle {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 8px;
cursor: move;
}
.smtcmp-floating-panel-resize-handle {
position: absolute;
width: 14px;
height: 14px;
right: 6px;
bottom: 6px;
cursor: nwse-resize;
border-right: 2px solid var(--background-modifier-border);
border-bottom: 2px solid var(--background-modifier-border);
}
/* Textarea container and inputs */
.smtcmp-textarea-container {
width: 100%;
height: 100%;
}
.smtcmp-instruction-editor-container {
width: 100%;
flex: 1;
min-height: 0;
display: flex;
}
.smtcmp-instruction-textarea {
width: 100%;
height: 100%;
min-height: 160px;
resize: none;
}
.smtcmp-modal-input-container {
width: 100%;
margin-bottom: 12px;
}
.smtcmp-prewrap {
white-space: pre-wrap;
}
.smtcmp-display-contents {
display: contents;
}
/* Folder selection list */
.smtcmp-folder-selection {
width: 100%;
}
.smtcmp-folder-selection-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
}
.smtcmp-folder-selection-title {
font-weight: 600;
opacity: 0.8;
}
.smtcmp-folder-selection-actions {
display: flex;
gap: 6px;
}
.smtcmp-folder-selection-btn {
border: 1px solid var(--background-modifier-border);
border-radius: 0;
background: var(--background-primary);
color: var(--text-muted);
padding: 0 6px;
height: 20px;
line-height: 20px;
font-size: 12px;
cursor: pointer;
}
.smtcmp-folder-selection-picker {
border: 1px solid var(--background-modifier-border);
border-radius: 0;
padding: 6px 8px;
min-height: 32px;
position: relative;
}
.smtcmp-folder-selection-empty {
opacity: 0.7;
}
.smtcmp-folder-selection-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.smtcmp-folder-selection-chip {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 6px;
border: 1px solid var(--background-modifier-border);
border-radius: 0;
background: var(--background-secondary);
cursor: grab;
user-select: none;
}
.smtcmp-folder-selection-chip-handle {
opacity: 0.5;
font-size: 12px;
}
.smtcmp-folder-selection-chip-path {
font-family: var(--font-monospace);
font-size: 12px;
}
.smtcmp-folder-selection-chip-remove {
cursor: pointer;
color: var(--text-muted);
font-size: 12px;
line-height: 1;
user-select: none;
}
/* Floating panel positioning using CSS custom properties */
.smtcmp-floating-panel {
position: fixed;
top: var(--smtcmp-panel-top, 0px);
left: var(--smtcmp-panel-left, 0px);
width: var(--smtcmp-panel-width, 300px);
height: var(--smtcmp-panel-height, 200px);
}
/* Removed attr() function usage due to browser compatibility issues */
/* LexicalMenu positioning - removed attr() usage for compatibility */
.smtcmp-typeahead-menu {
position: fixed;
}
.smtcmp-typeahead-menu.smtcmp-menu-above {
transform: translateY(-100%);
}
.smtcmp-typeahead-menu.smtcmp-menu-right-align {
transform: translateX(-100%);
}
/* Other component styles */
.smtcmp-similarity-results-container {
display: flex;
flex-direction: column;
}
.smtcmp-url-citation-text {
word-break: break-all;
}
.smtcmp-content-editable {
background: transparent;
}
.smtcmp-fixed-position {
position: fixed;
}
/* Smart Space Quick Actions Settings */
.smtcmp-smart-space-settings {
margin-top: var(--size-4-3);
}
.smtcmp-smart-space-settings-row {
display: flex;
align-items: center;
gap: var(--size-4-3);
justify-content: space-between;
flex-wrap: wrap;
}
.smtcmp-smart-space-settings-row .smtcmp-settings-desc {
margin: 0;
flex: 1 1 140px;
min-width: 0;
}
.smtcmp-smart-space-settings-row .setting-item-control,
.smtcmp-smart-space-settings-row button {
margin-left: auto;
}
.smtcmp-quick-action-editor {
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
padding: var(--size-4-3);
margin: var(--size-4-3) 0;
box-shadow: var(--shadow-s);
}
.smtcmp-quick-action-editor-inline {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: var(--radius-m);
border-bottom-right-radius: var(--radius-m);
margin-top: -1px;
margin-bottom: var(--size-4-1);
border-color: var(--background-modifier-border);
animation: smtcmp-editor-expand 0.2s ease;
}
@keyframes smtcmp-editor-expand {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.smtcmp-quick-action-editor-new {
margin-bottom: var(--size-4-3);
}
.smtcmp-quick-action-editor-buttons {
display: flex;
gap: var(--size-4-2);
justify-content: flex-end;
margin-top: var(--size-4-3);
padding-top: var(--size-4-3);
border-top: 1px solid var(--background-modifier-border);
}
.smtcmp-quick-actions-list {
display: flex;
flex-direction: column;
gap: var(--size-4-1);
margin-top: var(--size-4-3);
}
/* Group Header */
.smtcmp-quick-actions-group-header {
font-size: var(--font-ui-small);
font-weight: var(--font-semibold);
color: var(--text-muted);
padding: var(--size-2-3) var(--size-4-1);
margin-top: 0;
margin-bottom: var(--size-4-1);
text-transform: none;
letter-spacing: 0.02em;
}
.smtcmp-quick-actions-group-header:first-child {
margin-top: 0;
}
/* Group Divider */
.smtcmp-quick-actions-group-divider {
height: 1px;
background: transparent;
border-top: 1px dashed var(--background-modifier-border);
margin: var(--size-4-2) 0 var(--size-4-1) 0;
}
.smtcmp-quick-action-item {
display: flex;
align-items: stretch;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
transition: all 0.15s ease;
cursor: move;
position: relative;
}
.smtcmp-quick-action-item:hover {
border-color: var(--background-modifier-border-hover);
box-shadow: var(--shadow-xs);
}
.smtcmp-quick-action-item.editing {
border-color: var(--background-modifier-border);
cursor: default;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
border-bottom: none;
background: color-mix(
in srgb,
var(--interactive-accent) 5%,
var(--background-primary)
);
}
.smtcmp-quick-action-item.disabled {
opacity: 0.6;
}
.smtcmp-quick-action-item.disabled .smtcmp-quick-action-content {
color: var(--text-muted);
}
.smtcmp-quick-action-item.smtcmp-quick-action-dragging {
opacity: 0.5;
cursor: grabbing;
}
.smtcmp-quick-action-drag-handle {
display: flex;
align-items: center;
justify-content: center;
padding: 0;
flex: 0 0 48px;
align-self: stretch;
background: var(--background-secondary);
border-right: 1px solid var(--background-modifier-border);
cursor: grab;
color: var(--text-faint);
transition: color 0.15s ease;
}
.smtcmp-quick-action-drag-handle:hover {
color: var(--text-muted);
}
.smtcmp-quick-action-drag-handle .smtcmp-drag-handle {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
.smtcmp-quick-action-drag-handle
.smtcmp-drag-handle.smtcmp-drag-handle--active {
color: var(--interactive-accent);
}
.smtcmp-quick-action-content {
flex: 1;
padding: var(--size-4-3);
min-width: 0;
cursor: default;
}
.smtcmp-quick-action-header {
display: flex;
align-items: center;
gap: var(--size-4-2);
margin-bottom: var(--size-4-1);
}
.smtcmp-quick-action-icon {
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
color: var(--h1-color, var(--interactive-accent));
flex-shrink: 0;
}
.smtcmp-quick-action-icon svg {
width: 16px;
height: 16px;
}
.smtcmp-quick-action-label {
font-size: var(--font-ui-small);
font-weight: var(--font-medium);
color: var(--text-normal);
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-quick-action-category {
display: inline-block;
font-size: var(--font-ui-smaller);
padding: 2px 8px;
border-radius: var(--radius-s);
background: var(--background-modifier-border);
color: var(--text-muted);
white-space: nowrap;
}
.smtcmp-quick-action-category.category-suggestions {
background: color-mix(in srgb, var(--interactive-accent) 15%, transparent);
color: var(--interactive-accent);
}
.smtcmp-quick-action-category.category-writing {
background: color-mix(in srgb, var(--color-green) 15%, transparent);
color: var(--color-green);
}
.smtcmp-quick-action-category.category-thinking {
background: color-mix(in srgb, var(--color-blue) 15%, transparent);
color: var(--color-blue);
}
.smtcmp-quick-action-category.category-custom {
background: color-mix(in srgb, var(--color-purple) 15%, transparent);
color: var(--color-purple);
}
.smtcmp-quick-action-disabled-badge {
display: inline-block;
font-size: var(--font-ui-smaller);
padding: 2px 6px;
border-radius: var(--radius-s);
background: var(--background-modifier-error);
color: var(--text-error);
margin-left: var(--size-4-1);
}
.smtcmp-quick-action-instruction {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
line-height: var(--line-height-tight);
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
}
.smtcmp-quick-action-controls {
display: flex;
align-items: center;
gap: var(--size-2-1);
padding: var(--size-4-2);
background: var(--background-secondary-alt);
border-left: 1px solid var(--background-modifier-border);
border-radius: 0 var(--radius-m) var(--radius-m) 0;
cursor: default;
}
.smtcmp-quick-action-controls button {
padding: var(--size-2-2);
background: transparent;
border: none;
border-radius: var(--radius-s);
color: var(--text-muted);
cursor: pointer;
transition: all 0.15s ease;
display: flex;
align-items: center;
justify-content: center;
}
.smtcmp-quick-action-controls button:hover:not(:disabled) {
background: var(--background-modifier-hover);
color: var(--text-normal);
}
.smtcmp-quick-action-controls button:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.smtcmp-quick-action-controls button svg {
width: 14px;
height: 14px;
}
/* Override button styles for consistency with Obsidian */
.smtcmp-smart-space-settings .setting-item-control button {
margin-left: 0;
}
.smtcmp-smart-space-settings .setting-item {
flex-wrap: wrap;
column-gap: var(--size-4-3);
row-gap: var(--size-2-2);
}
.smtcmp-smart-space-settings .setting-item-info {
min-width: 0;
flex: 1 1 220px;
}
.smtcmp-smart-space-settings .setting-item-control {
max-width: 100%;
margin-left: auto;
}
.smtcmp-smart-space-trigger-setting .setting-item-control select {
width: 220px;
}
/* Modal styles for quick action editor */
.smtcmp-quick-action-editor .setting-item {
border-top: none;
padding-top: var(--size-4-2);
}
.smtcmp-quick-action-editor .setting-item:first-child {
padding-top: 0;
}
.smtcmp-quick-action-editor textarea {
min-height: 80px;
resize: vertical;
}
/* SearchableDropdown Component */
.smtcmp-searchable-dropdown {
position: relative;
width: 100%;
}
.smtcmp-obsidian-dropdown-optgroup,
.smtcmp-obsidian-dropdown-option {
padding-inline-start: 0;
padding-left: 0;
margin-left: 0;
text-indent: 0;
}
.smtcmp-searchable-dropdown__input {
width: 100%;
padding: var(--size-2-2) var(--size-4-2);
background: var(--background-modifier-form-field);
border: var(--input-border-width) solid var(--background-modifier-border);
border-radius: var(--radius-s);
color: var(--text-normal);
font-family: inherit;
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
transition: border-color 0.15s ease;
}
.smtcmp-searchable-dropdown__input:focus {
outline: none;
border-color: var(--interactive-accent);
}
.smtcmp-searchable-dropdown__input:disabled {
opacity: 0.5;
cursor: not-allowed;
background: var(--background-modifier-form-field);
}
.smtcmp-searchable-dropdown__input::placeholder {
color: var(--text-faint);
}
.smtcmp-searchable-dropdown__list {
position: absolute;
top: calc(100% + 4px);
left: 0;
right: 0;
max-height: 300px;
overflow-y: auto;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
box-shadow: var(--shadow-s);
z-index: 1000;
}
.smtcmp-searchable-dropdown__item {
padding: var(--size-2-2) var(--size-4-2);
cursor: pointer;
font-size: var(--font-ui-small);
color: var(--text-normal);
transition: background-color 0.1s ease;
text-align: left;
}
.smtcmp-searchable-dropdown__item:hover {
background: var(--background-modifier-hover);
}
.smtcmp-searchable-dropdown__item--selected {
background: var(--background-modifier-hover);
}
.smtcmp-searchable-dropdown__item--current {
font-weight: var(--font-medium);
color: var(--interactive-accent);
}
.smtcmp-searchable-dropdown__empty {
padding: var(--size-4-2);
text-align: center;
color: var(--text-faint);
font-size: var(--font-ui-smaller);
}
/* ==================== Quick Ask Panel - Cmd+K Style ==================== */
.smtcmp-quick-ask-overlay-host {
position: relative;
}
.smtcmp-quick-ask-overlay-root {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: var(--smtcmp-quick-ask-z-index, 900);
}
.smtcmp-quick-ask-overlay {
position: absolute;
pointer-events: none;
z-index: 1;
-webkit-app-region: no-drag;
animation: smtcmp-quick-ask-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1)
forwards;
}
.smtcmp-quick-ask-overlay.smtcmp-quick-ask-overlay--docking {
transition:
left 0.22s cubic-bezier(0.16, 1, 0.3, 1),
top 0.22s cubic-bezier(0.16, 1, 0.3, 1),
width 0.22s cubic-bezier(0.16, 1, 0.3, 1),
height 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
.smtcmp-quick-ask-overlay.closing {
animation: smtcmp-quick-ask-fade-out 0.15s cubic-bezier(0.4, 0, 1, 1) forwards;
}
@keyframes smtcmp-quick-ask-fade-in {
0% {
opacity: 0;
transform: translateY(4px) scale(0.98);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes smtcmp-quick-ask-fade-out {
0% {
opacity: 1;
transform: translateY(0) scale(1);
}
100% {
opacity: 0;
transform: translateY(-2px) scale(0.99);
}
}
.smtcmp-quick-ask-inline-anchor {
display: inline-block;
width: 0;
height: 0;
line-height: 0;
}
/* Panel - compact by default, expands when has messages */
.smtcmp-quick-ask-panel {
position: relative;
-webkit-app-region: no-drag;
--smtcmp-quick-ask-message-top-safe-area: 18px;
min-width: min(420px, 83vw);
max-width: min(560px, 90vw);
width: min(420px, 83vw);
margin: 0;
display: flex;
flex-direction: column;
pointer-events: auto;
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
box-shadow:
0 8px 20px rgba(0, 0, 0, 0.18),
0 1px 0 color-mix(in srgb, white 2%, transparent);
overflow: hidden;
}
.smtcmp-quick-ask-panel.has-messages {
max-height: min(500px, 70vh);
}
.smtcmp-quick-ask-panel.has-messages .smtcmp-quick-ask-input-row {
order: 2;
}
/* Input Row */
.smtcmp-quick-ask-input-row {
display: flex;
align-items: center;
gap: 6px;
padding: 2px 32px 0 6px;
margin-top: 4px;
background: transparent;
border-bottom: none;
position: relative;
min-height: 0;
order: 0;
}
.smtcmp-quick-ask-assistant-trigger {
all: unset;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 6px 10px;
background: transparent !important;
border: none !important;
border-radius: 6px;
box-shadow: none !important;
appearance: none;
-webkit-appearance: none;
outline: none;
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
color: var(--text-muted) !important;
cursor: pointer;
transition: all 0.15s ease;
white-space: nowrap;
margin-left: -5px;
}
.smtcmp-quick-ask-assistant-trigger:hover,
.smtcmp-quick-ask-assistant-trigger:focus-visible {
background: color-mix(
in srgb,
var(--background-modifier-hover) 32%,
transparent
);
color: var(--interactive-accent) !important;
outline: none;
}
.smtcmp-quick-ask-assistant-icon {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}
.smtcmp-quick-ask-assistant-name {
max-width: 140px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-quick-ask-model-select {
display: flex;
align-items: center;
margin-left: 0px;
min-width: 0;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select {
display: inline-flex;
align-items: center;
gap: 0px;
padding: 6px 10px;
min-height: 28px;
min-width: 0;
max-width: 220px;
flex-shrink: 1;
border: none !important;
border-radius: 6px;
background: transparent !important;
box-shadow: none !important;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
transition: all 0.15s ease;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select:hover,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select:focus,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select:focus-visible,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select[data-state='open'] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 32%,
transparent
);
border: none !important;
box-shadow: none !important;
color: var(--interactive-accent);
outline: none;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select__model-name {
max-width: 160px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select__icon {
display: flex;
align-items: center;
justify-content: center;
margin-left: 2px;
color: inherit;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select[data-state='open']
.smtcmp-chat-input-model-select__icon {
color: inherit !important;
opacity: 0.85;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-model-select
.smtcmp-chat-input-model-select__icon
svg {
width: 12px;
height: 12px;
}
.smtcmp-quick-ask-model-popover {
min-width: max(var(--radix-dropdown-menu-trigger-width, 0px), 220px);
max-width: min(
calc(var(--radix-dropdown-menu-trigger-width, 320px) + 80px),
360px
);
}
/* Mode Select */
.smtcmp-quick-ask-mode-select {
display: flex;
align-items: center;
margin-left: 0px;
min-width: 0;
}
.smtcmp-quick-ask-toolbar .smtcmp-quick-ask-mode-select .smtcmp-mode-select {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 6px 10px;
min-height: 28px;
min-width: 0;
max-width: 180px;
flex-shrink: 1;
border: none !important;
border-radius: 6px;
background: transparent !important;
box-shadow: none !important;
color: var(--text-muted);
font-size: var(--font-ui-smaller);
font-weight: var(--font-medium);
transition: all 0.15s ease;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-mode-select
.smtcmp-chat-input-model-select__model-name {
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-mode-select
.smtcmp-mode-select:hover,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-mode-select
.smtcmp-mode-select:focus,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-mode-select
.smtcmp-mode-select:focus-visible,
.smtcmp-quick-ask-toolbar
.smtcmp-quick-ask-mode-select
.smtcmp-mode-select[data-state='open'] {
background: color-mix(
in srgb,
var(--background-modifier-hover) 32%,
transparent
);
border: none !important;
box-shadow: none !important;
color: var(--interactive-accent);
outline: none;
}
.smtcmp-mode-select__icon {
display: flex;
align-items: center;
justify-content: center;
color: inherit;
}
.smtcmp-mode-select__icon svg {
width: 14px;
height: 14px;
}
.smtcmp-quick-ask-mode-popover {
min-width: 140px;
max-width: 200px;
}
.smtcmp-mode-select-item {
display: flex;
align-items: flex-start;
gap: 6px;
padding: 6px 10px !important;
}
.smtcmp-mode-select-item__icon {
display: flex;
align-items: center;
justify-content: center;
margin-top: 1px;
color: var(--text-muted);
}
.smtcmp-mode-select-item__icon svg {
width: 12px;
height: 12px;
}
.smtcmp-mode-select-item__content {
display: flex;
flex-direction: column;
gap: 1px;
}
.smtcmp-mode-select-item__label {
font-size: 12px;
font-weight: 500;
color: var(--text-normal);
}
.smtcmp-mode-select-item__desc {
font-size: 11px;
color: var(--text-muted);
line-height: 1.3;
}
.smtcmp-mode-select-item[data-state='checked'] .smtcmp-mode-select-item__icon,
.smtcmp-mode-select-item[data-highlighted] .smtcmp-mode-select-item__icon {
color: var(--text-normal);
}
/* Assistant Dropdown */
.smtcmp-quick-ask-assistant-dropdown {
min-width: 200px;
width: clamp(200px, 34vw, 300px);
background: color-mix(in srgb, var(--background-primary) 96%, transparent);
border: 1px solid
color-mix(in srgb, var(--background-modifier-border) 84%, transparent);
border-radius: 8px;
box-shadow:
0 10px 24px rgba(0, 0, 0, 0.24),
0 1px 0 color-mix(in srgb, white 2%, transparent);
animation: smtcmp-quick-ask-fade-in 0.12s ease forwards;
}
/* Assistant Menu */
.smtcmp-quick-ask-assistant-menu {
display: flex;
flex-direction: column;
padding: 6px 0;
}
.smtcmp-quick-ask-assistant-menu.compact {
padding: 4px 0;
}
.smtcmp-quick-ask-assistant-menu-title {
padding: 6px 12px;
font-size: var(--font-ui-smaller);
font-weight: 600;
color: var(--text-muted);
user-select: none;
}
.smtcmp-quick-ask-assistant-list {
list-style: none;
margin: 0;
padding: 0;
outline: none;
max-height: 240px;
overflow-y: auto;
}
.smtcmp-quick-ask-assistant-item {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
cursor: pointer;
transition: background 0.1s ease;
}
.smtcmp-quick-ask-assistant-menu.compact .smtcmp-quick-ask-assistant-item {
padding: 5px 10px;
}
.smtcmp-quick-ask-assistant-item:hover,
.smtcmp-quick-ask-assistant-item.selected {
background: var(--background-modifier-hover);
}
.smtcmp-quick-ask-assistant-item.current {
background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
}
.smtcmp-quick-ask-assistant-item-icon {
display: flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
flex-shrink: 0;
color: var(--interactive-accent);
}
.smtcmp-quick-ask-assistant-item-content {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 1px;
}
.smtcmp-quick-ask-assistant-item-name {
font-size: var(--font-ui-small);
font-weight: 500;
color: var(--text-normal);
}
.smtcmp-quick-ask-assistant-item-description {
font-size: var(--font-ui-smaller);
color: var(--text-muted);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.smtcmp-quick-ask-assistant-item-check {
display: flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
color: var(--interactive-accent);
}
.smtcmp-quick-ask-assistant-menu-hint {
padding: 6px 12px;
font-size: var(--font-ui-smaller);
color: var(--text-faint);
border-top: 1px solid var(--background-modifier-border);
margin-top: 4px;
}
/* Input field */
.smtcmp-quick-ask-input {
flex: 1;
display: flex;
flex-direction: column;
position: relative;
min-height: 22px;
max-height: 200px;
overflow: hidden;
padding: 0 0 0 0;
box-sizing: border-box;
}
.smtcmp-quick-ask-input.is-disabled {
opacity: 1;
pointer-events: none;
min-height: 34px;
}
.smtcmp-quick-ask-content-editable {
width: 100%;
max-width: 100%;
flex: 1 1 auto;
margin-right: 0;
min-height: 20px;
max-height: 200px;
padding: 8px 6px 1px 6px !important;
background: transparent;
border: none;
font-size: var(--font-ui-small);
line-height: 1.6 !important;
outline: none;
overflow-y: auto;
scrollbar-gutter: stable; /* keep gutter on the right */
color: var(--text-normal);
}
.smtcmp-quick-ask-content-editable .smtcmp-lexical-content-editable-paragraph {
line-height: 1.6 !important;
padding-top: 0 !important;
}
.smtcmp-quick-ask-content-editable::-webkit-scrollbar {
width: 0;
height: 0;
}
.smtcmp-quick-ask-content-editable:focus {
border-color: transparent;
box-shadow: none;
}
.smtcmp-quick-ask-input-placeholder {
position: absolute;
left: 6px;
top: 9px;
transform: none;
color: color-mix(in srgb, var(--text-muted) 78%, transparent);
pointer-events: none;
font-size: var(--font-ui-small);
}
.smtcmp-quick-ask-run-status {
position: absolute;
left: 6px;
bottom: 2px;
display: inline-flex;
align-items: center;
gap: 6px;
color: color-mix(in srgb, var(--text-muted) 88%, transparent);
font-size: var(--font-ui-smaller);
line-height: 1.2;
pointer-events: none;
}
.smtcmp-quick-ask-input.is-disabled .smtcmp-quick-ask-run-status {
position: static;
padding: 12px 6px 2px;
}
.smtcmp-quick-ask-run-status-dot {
width: 6px;
height: 6px;
border-radius: 999px;
background: var(--interactive-accent);
opacity: 0.9;
animation: smtcmp-quick-ask-status-pulse 1.4s ease-in-out infinite;
}
@keyframes smtcmp-quick-ask-status-pulse {
0% {
opacity: 0.25;
}
50% {
opacity: 1;
}
100% {
opacity: 0.25;
}
}
.smtcmp-quick-ask-close-button {
display: flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
margin-top: 0;
padding: 0;
background: transparent !important;
border: none !important;
border-radius: 6px;
box-shadow: none !important;
cursor: pointer;
color: color-mix(in srgb, var(--text-normal) 82%, transparent);
transition: color 0.15s ease;
flex-shrink: 0;
appearance: none;
-webkit-appearance: none;
outline: none !important;
position: absolute;
top: 7px;
right: 6px;
z-index: 3;
}
.smtcmp-quick-ask-close-button:hover {
background: transparent !important;
border: none !important;
box-shadow: none !important;
color: var(--text-normal);
}
/* Bottom Toolbar - Cursor style: [Assistant ▼] ... [Copy] [Insert] [Send] */
.smtcmp-quick-ask-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0px 8px 6px;
border-top: none;
background: color-mix(in srgb, var(--background-primary) 96%, transparent);
border-bottom-left-radius: inherit;
border-bottom-right-radius: inherit;
order: 3;
}
.smtcmp-quick-ask-panel.is-resized-empty .smtcmp-quick-ask-input-row {
flex: 1 1 auto;
align-items: stretch;
margin-top: 6px;
}
.smtcmp-quick-ask-panel.is-resized-empty .smtcmp-quick-ask-toolbar {
margin-top: 0;
}
.smtcmp-quick-ask-panel.is-resized-empty .smtcmp-quick-ask-input {
min-height: 0;
max-height: none;
}
.smtcmp-quick-ask-panel.is-resized-empty .smtcmp-quick-ask-content-editable {
min-height: 0;
max-height: none;
height: 100%;
}
.smtcmp-quick-ask-toolbar-left {
position: relative;
display: flex;
align-items: center;
flex: 1 1 auto;
min-width: 0;
}
.smtcmp-quick-ask-toolbar-right {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
/* Toolbar action buttons */
.smtcmp-quick-ask-toolbar-button {
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
background: transparent;
border: none;
border-radius: 6px;
cursor: pointer;
color: color-mix(in srgb, var(--text-normal) 82%, transparent);
transition: all 0.15s ease;
appearance: none;
-webkit-appearance: none;
outline: none;
}
.smtcmp-quick-ask-toolbar-button:hover {
background: transparent;
color: var(--text-normal);
}
/* Divider between action buttons and send */
.smtcmp-quick-ask-toolbar-divider {
width: 1px;
height: 12px;
margin: 0 2px;
background: color-mix(
in srgb,
var(--background-modifier-border) 75%,
transparent
);
}
/* Send button */
.smtcmp-quick-ask-send-button {
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
background: transparent;
border: none;
border-radius: 6px;
cursor: pointer;
color: color-mix(in srgb, var(--text-normal) 82%, transparent);
transition: all 0.15s ease;
appearance: none;
-webkit-appearance: none;
outline: none;
}
.smtcmp-quick-ask-send-button:hover:not(:disabled) {
background: transparent;
color: var(--text-on-accent);
}
.smtcmp-quick-ask-send-button:disabled {
opacity: 0.35;
cursor: not-allowed;
}
.smtcmp-quick-ask-send-button.stop {
background: color-mix(
in srgb,
var(--text-error) 24%,
var(--background-secondary) 76%
);
color: var(--text-on-accent);
border-color: color-mix(
in srgb,
var(--text-error) 30%,
var(--background-modifier-border) 70%
);
}
.smtcmp-quick-ask-send-button.stop:hover {
background: color-mix(
in srgb,
var(--text-error) 58%,
var(--background-secondary)
);
}
/* Chat Area - only shown when there are messages */
.smtcmp-quick-ask-chat-shell {
flex: 1 1 auto;
min-height: 0;
padding-top: var(--smtcmp-quick-ask-message-top-safe-area);
display: flex;
flex-direction: column;
overflow: hidden;
border-top-left-radius: inherit;
border-top-right-radius: inherit;
order: 1;
}
.smtcmp-quick-ask-chat-area {
flex: 1 1 auto;
min-height: 0;
overflow-y: auto;
overflow-anchor: none;
padding: 12px;
display: flex;
flex-direction: column;
gap: 10px;
user-select: text;
pointer-events: auto;
}
.smtcmp-quick-ask-chat-area.smtcmp-quick-ask-chat-area--hide-scrollbar {
scrollbar-width: none;
-ms-overflow-style: none;
}
.smtcmp-quick-ask-chat-area.smtcmp-quick-ask-chat-area--hide-scrollbar::-webkit-scrollbar {
display: none;
}
.smtcmp-quick-ask-user-message {
align-self: flex-end;
width: auto;
max-width: 85%;
display: flex;
justify-content: flex-end;
padding: 0;
background: transparent;
color: inherit;
border-radius: 0;
font-size: var(--font-ui-small);
line-height: 1.5;
white-space: pre-wrap;
word-break: break-word;
}
.smtcmp-quick-ask-user-message .smtcmp-user-message-card {
width: auto;
max-width: 100%;
}
.smtcmp-quick-ask-user-message .smtcmp-chat-user-input-wrapper {
width: auto;
max-width: 100%;
}
.smtcmp-quick-ask-user-message .smtcmp-chat-user-input-wrapper--compact {
max-width: 100%;
}
.smtcmp-quick-ask-user-message--editing {
max-width: min(440px, 92%);
cursor: text;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-wrapper {
width: min(440px, 100%);
cursor: text;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-container {
padding: var(--size-2-3);
gap: var(--size-2-2);
cursor: text;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-editor {
min-height: 0;
height: auto;
cursor: text;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-content-editable,
.smtcmp-quick-ask-user-message--editing .smtcmp-obsidian-textarea {
min-height: 0;
max-height: 120px;
height: auto;
padding: 0;
line-height: 1.45;
overflow-y: auto;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-lexical-content-editable-root {
min-height: 0;
}
.smtcmp-quick-ask-user-message--editing
.smtcmp-lexical-content-editable-paragraph {
margin: 0;
line-height: 1.45;
}
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-editor:has(.smtcmp-content-editable) {
display: flex;
align-items: flex-start;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-controls {
height: auto;
min-height: 28px;
gap: var(--size-2-3);
margin-top: 0;
cursor: default;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-controls__left {
gap: var(--size-2-3);
}
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-controls__left
.smtcmp-chat-input-model-select {
max-width: 170px;
}
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-controls__left
.smtcmp-chat-input-model-select__model-name {
max-width: 128px;
}
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-controls
.smtcmp-chat-input-model-select,
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-controls
.smtcmp-chat-input-model-select
*,
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-controls
button {
cursor: pointer;
}
.smtcmp-quick-ask-user-message--editing .smtcmp-chat-user-input-submit-button,
.smtcmp-quick-ask-user-message--editing
.smtcmp-chat-user-input-submit-button-circle {
transform: scale(0.95);
transform-origin: center;
}
.smtcmp-quick-ask-chat-area--shared .smtcmp-chat-messages-assistant {
max-width: 100%;
}
.smtcmp-quick-ask-chat-area--shared .smtcmp-code-block,
.smtcmp-quick-ask-chat-area--shared .smtcmp-toolcall {
font-size: var(--font-ui-smaller);
}
.smtcmp-quick-ask-assistant-message {
align-self: flex-start;
max-width: 95%;
padding: 0 0 var(--size-2-2);
background: transparent;
border-radius: 0;
font-size: var(--font-ui-small);
line-height: 1.5;
user-select: text;
pointer-events: auto;
}
.smtcmp-quick-ask-assistant-footer {
display: flex;
align-items: center;
justify-content: flex-end;
margin-top: var(--size-2-2);
}
.smtcmp-quick-ask-assistant-message .markdown-rendered {
font-size: var(--font-ui-small);
user-select: text;
}
.smtcmp-quick-ask-assistant-block + .smtcmp-quick-ask-assistant-block {
margin-top: 8px;
}
.smtcmp-quick-ask-assistant-actions {
display: flex;
justify-content: flex-end;
gap: 6px;
margin-top: 8px;
}
.smtcmp-quick-ask-assistant-message .markdown-rendered p {
margin: 0 0 0.5em 0;
}
.smtcmp-quick-ask-assistant-message .markdown-rendered p:last-child {
margin-bottom: 0;
}
.smtcmp-quick-ask-assistant-message .markdown-rendered pre {
margin: 0.5em 0;
padding: 8px;
border-radius: var(--radius-s);
overflow-x: auto;
}
.smtcmp-quick-ask-assistant-message .markdown-rendered code {
font-size: var(--font-ui-smaller);
}
/* Drag handle */
.smtcmp-quick-ask-drag-handle {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 8px;
-webkit-app-region: no-drag;
display: flex;
align-items: center;
justify-content: center;
cursor: grab;
z-index: 20; /* Higher than resize handles */
background: transparent;
transition: background-color 0.15s ease;
}
.smtcmp-quick-ask-drag-handle:hover {
background: color-mix(
in srgb,
var(--background-modifier-hover) 20%,
transparent
);
}
.smtcmp-quick-ask-drag-handle:active {
cursor: grabbing;
}
.smtcmp-quick-ask-drag-indicator {
width: 64px;
height: 5px;
border-radius: 2px;
background: color-mix(in srgb, var(--text-muted) 40%, transparent);
transition: background-color 0.15s ease;
}
.smtcmp-quick-ask-drag-handle:hover .smtcmp-quick-ask-drag-indicator {
background: color-mix(in srgb, var(--text-muted) 65%, transparent);
}
/* Resize handles */
.smtcmp-quick-ask-resize-handle {
position: absolute;
z-index: 10; /* Lower than drag handle */
background: transparent;
}
.smtcmp-quick-ask-resize-handle-right {
top: 8px; /* Start below drag handle */
right: 0;
width: 4px;
height: calc(100% - 8px); /* Exclude drag handle area */
cursor: ew-resize;
}
.smtcmp-quick-ask-resize-handle-bottom {
bottom: 0;
left: 0;
width: 100%;
height: 4px;
cursor: ns-resize;
}
.smtcmp-quick-ask-resize-handle-bottom-left {
bottom: 0;
left: 0;
width: 12px;
height: 12px;
cursor: nesw-resize;
}
.smtcmp-quick-ask-resize-handle-bottom-right {
bottom: 0;
right: 0;
width: 12px;
height: 12px;
cursor: nwse-resize;
}
/* Visual indicator for bottom-right corner */
.smtcmp-quick-ask-resize-handle-bottom-right::after {
content: '';
position: absolute;
bottom: -1px;
right: -1px;
width: 8px;
height: 8px;
border-right: 2px solid color-mix(in srgb, var(--text-muted) 35%, transparent);
border-bottom: 2px solid
color-mix(in srgb, var(--text-muted) 35%, transparent);
opacity: 0;
transition: opacity 0.15s ease;
}
.smtcmp-quick-ask-resize-handle-bottom-left::after {
content: '';
position: absolute;
bottom: -1px;
left: -1px;
width: 8px;
height: 8px;
border-left: 2px solid color-mix(in srgb, var(--text-muted) 35%, transparent);
border-bottom: 2px solid
color-mix(in srgb, var(--text-muted) 35%, transparent);
opacity: 0;
transition: opacity 0.15s ease;
}
.smtcmp-quick-ask-panel:hover
.smtcmp-quick-ask-resize-handle-bottom-right::after {
opacity: 1;
}
.smtcmp-quick-ask-panel:hover
.smtcmp-quick-ask-resize-handle-bottom-left::after {
opacity: 1;
}
/* Panel states */
.smtcmp-quick-ask-panel.is-dragging {
cursor: grabbing;
user-select: none;
}
.smtcmp-quick-ask-panel.is-resizing {
user-select: none;
}
/* Global interaction state (drag/resize) */
body.smtcmp-quick-ask-global-interaction,
body.smtcmp-quick-ask-global-interaction * {
cursor: var(--smtcmp-quick-ask-global-cursor, auto) !important;
-webkit-user-select: var(
--smtcmp-quick-ask-global-user-select,
auto
) !important;
user-select: var(--smtcmp-quick-ask-global-user-select, auto) !important;
}
.smtcmp-simple-select-wrapper {
width: 100%;
max-width: 100%;
min-width: 0;
flex: 1 1 auto;
}
.smtcmp-simple-select-wrapper > .smtcmp-simple-select__trigger {
width: 100%;
max-width: 100%;
}
/* ============================================
Selection Chat - Cursor-like text selection actions
============================================ */
/* Overlay root container */
.smtcmp-selection-chat-overlay-host {
position: relative;
}
.smtcmp-selection-chat-overlay-root {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1;
}
.smtcmp-selection-chat-overlay {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 2;
}
/* Layer-based highlight (replaces Decoration.mark to avoid DOM mutation) */
.yolo-selection-persisted-layer {
background: var(
--text-selection,
color-mix(in srgb, var(--interactive-accent) 18%, transparent)
);
border-radius: 2px;
pointer-events: none;
}
.yolo-selection-persisted-layer.yolo-selection-persisted-layer-updated {
animation: yolo-selection-highlight-updated-fade 3s ease-out forwards;
}
@keyframes yolo-selection-highlight-updated-fade {
0% {
background: color-mix(in srgb, var(--interactive-accent) 28%, transparent);
}
100% {
background: var(
--text-selection,
color-mix(in srgb, var(--interactive-accent) 18%, transparent)
);
}
}
/* Selection Indicator - small floating capsule */
.smtcmp-selection-indicator {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: 14px;
background: var(--background-primary);
border: 1px solid var(--h1-color, var(--interactive-accent));
box-shadow: var(--shadow-s);
cursor: pointer;
pointer-events: auto;
z-index: 2;
opacity: 0;
transform: scale(0.85);
transition:
opacity 0.15s cubic-bezier(0.34, 1.56, 0.64, 1),
transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.smtcmp-selection-indicator.visible {
opacity: 1;
transform: scale(1);
}
.smtcmp-selection-indicator:hover {
background: var(--background-primary);
border-color: var(--interactive-accent-hover);
box-shadow: var(--shadow-s);
transform: scale(1.05);
}
.smtcmp-selection-indicator svg {
width: 14px;
height: 14px;
color: var(--h1-color, var(--interactive-accent));
}
/* Selection Actions Menu */
.smtcmp-selection-menu {
position: absolute;
min-width: 200px;
max-width: 280px;
pointer-events: none;
z-index: 3;
opacity: 0;
transform: translateY(-4px) scale(0.96);
transition: all 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.smtcmp-selection-menu.visible {
pointer-events: auto;
opacity: 1;
transform: translateY(0) scale(1);
}
.smtcmp-selection-menu-content {
background: var(--background-primary);
border: 1px solid
color-mix(in srgb, var(--interactive-accent) 30%, transparent);
border-radius: var(--radius-m);
box-shadow:
0 0 0 1px color-mix(in srgb, var(--interactive-accent) 8%, transparent),
0 8px 24px rgba(0, 0, 0, 0.15);
padding: 6px;
display: flex;
flex-direction: column;
gap: 4px;
}
.smtcmp-selection-menu-item {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 8px;
border: 1px solid transparent !important;
background: transparent !important;
box-shadow: none !important;
border-radius: var(--radius-s);
cursor: pointer;
transition:
background 0.15s ease,
border-color 0.15s ease,
transform 0.1s ease;
width: 100%;
text-align: left;
color: var(--text-normal);
font-size: var(--font-ui-small);
}
.smtcmp-selection-menu-item:hover,
.smtcmp-selection-menu-item:focus,
.smtcmp-selection-menu-item:focus-visible {
background: color-mix(
in srgb,
var(--background-modifier-hover) 40%,
transparent
) !important;
border-color: color-mix(
in srgb,
var(--interactive-accent) 55%,
transparent
) !important;
outline: none;
}
.smtcmp-selection-menu-item:active {
transform: scale(0.97);
}
.smtcmp-selection-menu-item-icon {
width: 24px;
height: 24px;
border-radius: 999px;
background: color-mix(
in srgb,
var(--h1-color, var(--interactive-accent)) 12%,
transparent
);
color: var(--h1-color, var(--interactive-accent));
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.smtcmp-selection-menu-item-icon svg {
width: 14px;
height: 14px;
}
.smtcmp-selection-menu-item-label {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* ============================================
PDF Selection - Persistent highlight for PDF text layer (CSS Custom Highlight API)
============================================ */
/* Painted by pdfSelectionHighlightController via the CSS Custom Highlight API.
Character-level granularity: only the selected characters are tinted, even
when the selection lives inside a single PDF.js textLayer span.
Note on color:
PDF.js textLayer applies its own blend mode that wipes any alpha background.
So we use a fully opaque accent color and let textLayer's blend produce the
translucent-looking effect — same trick the previous class-based rule used. */
::highlight(yolo-pdf-selection) {
background-color: var(--interactive-accent);
}
.yolo-tab-loading-dots {
display: inline-flex;
align-items: center;
gap: 3px;
height: 1em;
margin-left: 6px;
vertical-align: middle;
pointer-events: none;
user-select: none;
}
.yolo-tab-loading-dots__dot {
width: 3px;
height: 3px;
border-radius: 50%;
background-color: var(--text-muted);
opacity: 0.35;
animation: yolo-tab-loading-dots-pulse 1.2s ease-in-out infinite;
}
.yolo-tab-loading-dots__dot:nth-child(2) {
animation-delay: 0.2s;
}
.yolo-tab-loading-dots__dot:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes yolo-tab-loading-dots-pulse {
0%,
80%,
100% {
opacity: 0.2;
transform: scale(0.85);
}
40% {
opacity: 0.55;
transform: scale(1);
}
}
/* PDF region screenshot overlay */
.yolo-pdf-region-overlay {
position: absolute;
inset: 0;
z-index: 9999;
cursor: crosshair;
background: rgba(0, 0, 0, 0.25);
user-select: none;
}
.yolo-pdf-region-hint {
position: absolute;
top: 8px;
left: 50%;
transform: translateX(-50%);
background: var(--background-primary, #fff);
color: var(--text-normal, #333);
border: 1px solid var(--background-modifier-border, #ccc);
border-radius: 6px;
padding: 4px 12px;
font-size: 12px;
white-space: nowrap;
pointer-events: none;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.yolo-pdf-region-selection {
position: absolute;
display: none;
border: 2px solid var(--interactive-accent, #4a90e2);
background: rgba(74, 144, 226, 0.1);
pointer-events: none;
}
/* PDF toolbar button */
.yolo-pdf-toolbar-btn {
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: 4px;
border: none;
background: transparent;
cursor: pointer;
color: var(--text-muted);
margin-left: 2px;
}
.yolo-pdf-toolbar-btn:hover {
color: var(--text-normal);
background: var(--background-modifier-hover);
}