.activityBar { position: fixed; z-index: 290; inset-inline-start: 50%; bottom: max(1rem, env(safe-area-inset-bottom, 0px)); display: flex; width: min(31rem, calc(100vw - 1rem)); min-height: 3.5rem; align-items: center; gap: 0.25rem; padding: 0.35rem 0.4rem 0.35rem 0.5rem; transform: translateX(-50%); border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-lg); background: var(--mantine-color-body); animation: assistant-activity-in 180ms cubic-bezier(0.22, 1, 0.36, 1); } .activityTrigger { min-width: 0; flex: 1; padding: 0.15rem; border-radius: var(--mantine-radius-md); text-align: start; } .activityTrigger:focus-visible { outline: 2px solid var(--mantine-primary-color-filled); outline-offset: 2px; } .activityCopy { min-width: 0; flex: 1; } .activityExpandIcon { flex: 0 0 auto; color: var(--mantine-color-dimmed); } .activityReviewAction { display: flex; flex: 0 0 auto; align-items: center; gap: 0.25rem; padding: 0.35rem 0.5rem; border-radius: var(--mantine-radius-sm); color: var(--mantine-color-yellow-light-color); background: var(--mantine-color-yellow-light); } .activityDismiss { width: 2.5rem; height: 2.5rem; } .boardSettingsTool { padding: 0.9rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-body); } .boardSettingsHeader { min-width: 0; } .boardSettingsTabs :global(.mantine-Tabs-list) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; } .boardSettingsTabs :global(.mantine-Tabs-tab) { min-width: max-content; } .boardCssEditor { line-height: 1.55; tab-size: 2; font-family: var(--mantine-font-family-monospace); font-size: var(--mantine-font-size-xs); } .boardSettingsActions { padding-top: 0.8rem; border-top: 1px solid var(--mantine-color-default-border); } .boardSettingsSubmitGroup { margin-inline-start: auto; } .floatingPanel { container-name: assistant-widget; container-type: size; position: fixed; z-index: 290; inset-inline-start: 50%; bottom: 1rem; display: flex; width: min(46rem, calc(100vw - 2rem)); height: min(36rem, calc(100dvh - 5rem)); min-height: min(22rem, calc(100dvh - 5rem)); margin: 0; transform: translateX(-50%); flex-direction: column; overflow: hidden; padding: 0; border: 0; border-radius: var(--mantine-radius-lg); color: var(--mantine-color-text); background: var(--mantine-color-body); box-shadow: var(--mantine-shadow-xl); animation: assistant-panel-in 180ms cubic-bezier(0.22, 1, 0.36, 1); } .widgetPanel { container-name: assistant-widget; container-type: size; display: flex; width: 100%; height: 100%; min-width: 0; min-height: 0; flex-direction: column; overflow: hidden; color: var(--mantine-color-text); } .widgetState { container-type: inline-size; overflow: auto; } .compactState { width: 100%; height: 100%; padding: 0.75rem; } .compactCopy { min-width: 0; } .widgetPanel[data-editing] .panelActions { padding-inline-end: 2.75rem; } .panelHeader { min-height: 3.75rem; flex: 0 0 auto; padding: 0.65rem 0.75rem 0.65rem 0.9rem; border-bottom: 1px solid var(--mantine-color-default-border); } .panelIdentity, .panelIdentityText { min-width: 0; } .panelIdentity { flex: 1; } .panelActions { flex: 0 0 auto; } .panelAction { width: 2.625rem; height: 2.625rem; } @container assistant-widget (max-width: 30rem) { .panelHeader { min-height: 3.25rem; padding: 0.45rem 0.5rem 0.45rem 0.65rem; } .panelIdentityText > :last-child, .composerHints { display: none; } .historyButton { width: 2.625rem; max-width: 2.625rem; height: 2.625rem; padding-inline: 0.75rem; } .historyButtonSection { margin-inline-end: 0; } .historyButtonLabel { display: none; } .messages { padding: 0.5rem 0.65rem 1rem; } .composerWrap { padding: 0.45rem; } .composer { gap: 0.25rem; padding: 0.25rem 0.3rem; } .composerInput { min-height: 2.625rem; padding: 0.6rem 0.5rem; } .runtimeButtonGroup, .runtimeControls { width: 100%; } .modelButton { min-width: 0; max-width: none; } .reasoningButton { min-width: 2.5rem; max-width: 7.75rem; } .suggestions { grid-template-columns: 1fr; } } @container assistant-widget (max-width: 22rem) { .panelIdentityText { display: none; } .panelActions { margin-inline-start: auto; } .panelAction, .historyButton { width: 2.25rem; max-width: 2.25rem; height: 2.25rem; padding-inline: 0.55rem; } .composerFooter { overflow: hidden; } .runtimeButton { padding-inline: 0.5rem; } .reasoningButton { width: 2.5rem; min-width: 2.5rem; max-width: 2.5rem; } .reasoningButton :global(.mantine-Button-label), .reasoningButton :global(.mantine-Button-section[data-position="right"]) { display: none; } .reasoningButton :global(.mantine-Button-section[data-position="left"]) { margin-inline: 0; } } @container assistant-widget (max-width: 18rem) { .compactDescription { display: none; } } @container assistant-widget (max-width: 10rem) { .compactTitle { display: none; } } @container assistant-widget (max-height: 24rem) { .empty { min-height: 16rem; padding-block: 1rem; } .suggestion { min-height: 2.5rem; padding-block: 0.45rem; } } .historyMenu { background: var(--mantine-color-body); } .historyItem { border-radius: var(--mantine-radius-md); } .historyItem:hover { background: var(--mantine-color-default-hover); } .thread { position: relative; display: flex; min-width: 0; min-height: 0; flex: 1; flex-direction: column; } .viewport { position: relative; display: flex; min-height: 0; flex: 1; flex-direction: column; overflow-y: auto; scroll-behavior: smooth; } .messages { width: 100%; max-width: 44rem; margin-inline: auto; padding: 0.75rem 1rem 1.5rem; } .message { margin-block: 0.9rem; } .userMessageWrap { width: fit-content; max-width: 86%; margin-inline-start: auto; } .userMessage { padding: 0.65rem 0.85rem; border-radius: 0.9rem 0.9rem 0.25rem 0.9rem; background: var(--mantine-color-red-light); } .assistantMessage { max-width: 100%; } .messageText { line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; } .messageMarkdown { line-height: 1.65; overflow-wrap: anywhere; } .messageMarkdown > :first-child { margin-top: 0; } .messageMarkdown > :last-child { margin-bottom: 0; } .messageMarkdown p { margin-block: 0.55rem; } .messageMarkdown h1, .messageMarkdown h2, .messageMarkdown h3, .messageMarkdown h4 { margin: 1rem 0 0.4rem; line-height: 1.25; } .messageMarkdown h1 { font-size: var(--mantine-font-size-xl); } .messageMarkdown h2 { font-size: var(--mantine-font-size-lg); } .messageMarkdown h3, .messageMarkdown h4 { font-size: var(--mantine-font-size-md); } .messageMarkdown ul, .messageMarkdown ol { margin-block: 0.55rem; padding-inline-start: 1.35rem; } .messageMarkdown li { padding-inline-start: 0.18rem; } .messageMarkdown li + li { margin-top: 0.3rem; } .messageMarkdown li > p { margin-block: 0.2rem; } .messageMarkdown a { color: var(--mantine-primary-color-filled); text-decoration: underline; text-underline-offset: 0.16em; } .messageMarkdown blockquote { margin: 0.75rem 0; padding: 0.45rem 0.75rem; border-inline-start: 3px solid var(--mantine-color-red-filled); color: var(--mantine-color-dimmed); background: color-mix(in srgb, var(--mantine-color-default) 60%, transparent); } .messageMarkdown code { padding: 0.08rem 0.28rem; border-radius: var(--mantine-radius-xs); background: var(--mantine-color-default); font-family: var(--mantine-font-family-monospace); font-size: 0.88em; } .messageMarkdown pre { max-width: 100%; margin-block: 0.75rem; overflow: auto; padding: 0.75rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-default); line-height: 1.5; } .messageMarkdown pre code { padding: 0; background: transparent; font-size: var(--mantine-font-size-xs); } .messageMarkdown hr { margin-block: 1rem; border: 0; border-top: 1px solid var(--mantine-color-default-border); } .messageMarkdown img { display: block; max-width: 100%; height: auto; margin-block: 0.65rem; border-radius: var(--mantine-radius-md); } .messageMarkdown input[type="checkbox"] { margin-inline: -1.1rem 0.45rem; accent-color: var(--mantine-primary-color-filled); } .markdownTableWrap { max-width: 100%; margin-block: 0.75rem; overflow-x: auto; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); } .markdownTableWrap table { width: 100%; min-width: 24rem; border-collapse: collapse; font-size: var(--mantine-font-size-sm); } .markdownTableWrap th, .markdownTableWrap td { padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--mantine-color-default-border); text-align: start; vertical-align: top; } .markdownTableWrap th { background: var(--mantine-color-default); font-weight: 650; } .markdownTableWrap tr:last-child td { border-bottom: 0; } .messageQuote { margin: 0 0 0.55rem; padding-inline-start: 0.65rem; border-inline-start: 2px solid var(--mantine-color-red-filled); color: var(--mantine-color-dimmed); white-space: pre-wrap; } .messageError { margin-top: 0.5rem; padding: 0.65rem 0.75rem; border-radius: var(--mantine-radius-md); color: var(--mantine-color-red-text); background: var(--mantine-color-red-light); } .messageErrorText { color: var(--mantine-color-text); font-size: var(--mantine-font-size-sm); line-height: 1.45; } .tool { margin-block: 0.5rem; padding: 0.7rem 0.8rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-default); } .toolHeader { width: 100%; text-align: start; } .approvalPanel { margin-top: 0.8rem; padding-top: 0.8rem; border-top: 1px solid var(--mantine-color-default-border); } .approvalActions { margin-top: 0.85rem; } .pendingActionBanner { flex: 0 0 auto; padding: 0.6rem 0.75rem; border-block: 1px solid var(--mantine-color-default-border); background: var(--mantine-color-yellow-light); } .humanTool, .appTool { width: 100%; margin-block: 0.65rem; padding: 1rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-default); } .humanToolQuestion { line-height: 1.35; text-wrap: pretty; } .humanToolOption { height: auto; min-height: 3.25rem; padding-block: 0.55rem; padding-inline: 0.8rem; white-space: normal; } .humanToolOption :global(.mantine-Button-inner), .humanToolOption :global(.mantine-Button-label) { width: 100%; } .humanToolOtherInput { flex: 1 1 auto; min-width: 0; } .humanToolCompleted { display: flex; width: 100%; align-items: center; gap: 0.65rem; margin-block: 0.5rem; padding: 0.7rem 0.8rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-default); } .toolResultText, .toolResultProperties, .toolResultCollection { margin-top: 0.65rem; } .toolResultText { padding: 0.5rem 0.6rem; border-radius: var(--mantine-radius-sm); background: var(--mantine-color-body); white-space: pre-wrap; } .toolResultProperties { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: 0.4rem; } .toolResultProperty, .toolResultItem { min-width: 0; padding: 0.5rem 0.6rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-sm); background: var(--mantine-color-body); } .toolResultCollection { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); gap: 0.4rem; } .toolResultIdentity { min-width: 0; } .toolResultMore { align-self: center; justify-self: center; } .disclosureIcon { flex: 0 0 auto; transition: transform 150ms ease; } .disclosureIcon[data-opened] { transform: rotate(180deg); } .codeBlock { max-height: 12rem; margin: 0.25rem 0 0; overflow: auto; padding: 0.5rem; border-radius: var(--mantine-radius-sm); white-space: pre-wrap; overflow-wrap: anywhere; background: var(--mantine-color-body); } .reasoning { margin-block: 0.45rem; padding: 0.45rem 0.6rem; border-inline-start: 2px solid var(--mantine-color-default-border); } .reasoning summary { cursor: pointer; list-style: none; } .reasoning summary::-webkit-details-marker { display: none; } .reasoningText { margin-top: 0.45rem; white-space: pre-wrap; } .source { display: inline-flex; align-items: center; gap: 0.25rem; margin-inline-end: 0.4rem; } .messageFile, .attachment { width: fit-content; max-width: 100%; padding: 0.35rem 0.5rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-sm); background: var(--mantine-color-default); } .messageImage { display: block; width: auto; max-width: min(100%, 28rem); max-height: 22rem; margin-block: 0.5rem; border-radius: var(--mantine-radius-md); object-fit: contain; } .attachment { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0 0.35rem 0.35rem 0; } .attachmentThumb { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: var(--mantine-radius-sm); color: var(--mantine-color-dimmed); background: var(--mantine-color-body); font-size: 0.62rem; font-weight: 700; } .attachmentName { max-width: 12rem; } .messageActions { min-height: 1.75rem; margin-top: 0.3rem; } .userActions { min-height: 1.75rem; } .branchPicker { display: flex; min-height: 1.75rem; align-items: center; gap: 0.1rem; } .editComposer { margin-block: 0.9rem; padding: 0.65rem; border: 1px solid var(--mantine-primary-color-filled); border-radius: var(--mantine-radius-md); background: var(--mantine-color-default); } .editComposerInput { width: 100%; min-height: 4.5rem; resize: vertical; border: 0; outline: 0; color: var(--mantine-color-text); background: transparent; font: inherit; } .telemetry { margin-top: 0.45rem; padding-inline: 0.15rem; } .telemetryFacts { flex: 1 1 auto; min-width: 0; } .modelBadge { max-width: min(100%, 14rem); } .contextMeter { display: grid; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--mantine-color-text); transition: background-color 160ms ease, transform 160ms ease; } .contextMeter:hover { background: var(--mantine-color-default-hover); } .contextMeter:active { transform: scale(0.96); } .contextMeter:focus-visible { outline: 2px solid var(--mantine-primary-color-filled); outline-offset: 2px; } .contextMeterLabel { font-size: 0.55rem; line-height: 1; } .telemetryPopover { max-height: min(32rem, calc(100dvh - 2rem)); overflow-y: auto; } .contextStats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; } .contextStats > div { min-width: 0; padding: 0.45rem 0.5rem; border-radius: var(--mantine-radius-sm); background: var(--mantine-color-body); } .contextStats :global(.mantine-Text-root) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .usageGrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: 0.75rem; } .stepRow { padding: 0.3rem 0.4rem; border-radius: var(--mantine-radius-sm); background: var(--mantine-color-body); } .generationId { overflow: hidden; margin-top: 0.2rem; font-family: var(--mantine-font-family-monospace); text-overflow: ellipsis; white-space: nowrap; } .composerWrap { flex: 0 0 auto; padding: 0.65rem 0.75rem 0.75rem; border-top: 1px solid var(--mantine-color-default-border); background: var(--mantine-color-body); } .composer { position: relative; display: flex; width: 100%; max-width: 44rem; margin-inline: auto; flex-direction: column; align-items: stretch; gap: 0.5rem; padding: 0.4rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-lg); background: var(--mantine-color-default); } .composerDropzone[data-dragging] .composer { border-color: var(--mantine-primary-color-filled); box-shadow: 0 0 0 2px var(--mantine-primary-color-light); } .composerQuote { display: flex; min-width: 0; align-items: center; gap: 0.45rem; padding: 0.4rem 0.5rem; border-inline-start: 2px solid var(--mantine-color-red-filled); border-radius: var(--mantine-radius-sm); background: var(--mantine-color-body); } .composerQuoteText { min-width: 0; flex: 1; overflow: hidden; color: var(--mantine-color-dimmed); font-size: var(--mantine-font-size-xs); text-overflow: ellipsis; white-space: nowrap; } .selectionToolbar { z-index: 400; padding: 0.2rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-body); box-shadow: var(--mantine-shadow-md); } .composerRow { width: 100%; } .composer:focus-within { border-color: var(--mantine-primary-color-filled); } .composerInput { min-height: 2.5rem; max-height: 9rem; flex: 1; resize: none; border: 0; outline: 0; padding: 0.55rem 0.65rem; color: var(--mantine-color-text); background: transparent; font: inherit; } .composerHints { padding-inline: 0.45rem; } .composerFooter { min-width: 0; padding-inline: 0.2rem; } .runtimeControls { min-width: 0; flex: 1 1 auto; } .runtimeButtonGroup { min-width: 0; max-width: 100%; } .runtimeButton { min-width: 0; border-color: var(--mantine-color-default-border); color: var(--mantine-color-text); background: var(--mantine-color-body); font-weight: 600; } .runtimeButton:hover { background: var(--mantine-color-default-hover); } .runtimeButtonLabel { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .modelButton { min-width: 8rem; max-width: 15rem; flex: 1 1 auto; } .reasoningButton { min-width: 7.5rem; max-width: 10.5rem; flex: 0 1 auto; } .modelDropdown { max-width: calc(100vw - 2rem); } .modelOptions { max-height: min(18rem, 42dvh); overflow-y: auto; overscroll-behavior: contain; } .modelOption { padding-block: 0.45rem; } .modelOptionText { min-width: 0; flex: 1; } .runtimeOptionCheck { flex: 0 0 auto; color: var(--mantine-primary-color-filled); } .runtimeMenuItem[data-selected] { color: var(--mantine-primary-color-filled); background: var(--mantine-primary-color-light); font-weight: 600; } .triggerPopover { position: absolute; z-index: 5; inset-inline: 0; bottom: calc(100% + 0.45rem); max-height: min(22rem, 45dvh); overflow: auto; padding: 0.35rem; border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); background: var(--mantine-color-body); box-shadow: var(--mantine-shadow-lg); } .triggerList { display: grid; gap: 0.15rem; } .triggerItem { display: flex; width: 100%; min-height: 2.75rem; align-items: center; gap: 0.55rem; padding: 0.45rem 0.55rem; border: 0; border-radius: var(--mantine-radius-sm); color: var(--mantine-color-text); background: transparent; text-align: start; } .triggerItem:hover, .triggerItem[data-highlighted] { background: var(--mantine-color-default-hover); } .triggerItemText { min-width: 0; flex: 1; } .composerInput::placeholder { color: var(--mantine-color-dimmed); opacity: 1; } .empty { display: flex; min-height: 23rem; align-items: center; justify-content: center; padding: 2rem 1rem; text-align: center; } .suggestions { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; } .suggestion { height: auto; min-height: 3rem; justify-content: flex-start; padding: 0.65rem 0.8rem; text-align: start; white-space: normal; } .scrollToBottom { position: sticky; bottom: 0.75rem; z-index: 1; flex: 0 0 auto; align-self: center; margin-top: -2.5rem; margin-bottom: 0.75rem; box-shadow: var(--mantine-shadow-sm); } .scrollToBottom:disabled { display: none; } @keyframes assistant-activity-in { from { opacity: 0; transform: translate(-50%, 0.5rem); } to { opacity: 1; transform: translate(-50%, 0); } } @keyframes assistant-panel-in { from { opacity: 0; transform: translate(-50%, 0.75rem) scale(0.985); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } } @media (max-width: 48em) { .activityBar { bottom: max(0.5rem, env(safe-area-inset-bottom, 0px)); } .floatingPanel { bottom: max(0.5rem, env(safe-area-inset-bottom, 0px)); width: calc(100vw - 1rem); height: min(44rem, calc(100dvh - 1rem - env(safe-area-inset-bottom, 0px))); min-height: min(20rem, calc(100dvh - 1rem - env(safe-area-inset-bottom, 0px))); } .panelHeader { min-height: 3.5rem; padding: 0.5rem; padding-inline-start: 0.65rem; } .composerWrap { padding: 0.5rem; } .composer { gap: 0.25rem; padding: 0.25rem 0.3rem; } .composerInput { min-height: 2.625rem; padding: 0.6rem 0.55rem; } .composerFooter { padding-inline: 0.1rem; } .composerHints { display: none; } .runtimeControls { width: 100%; } .runtimeButtonGroup { width: 100%; } .modelButton { min-width: 0; max-width: none; } .reasoningButton { max-width: 9rem; } .suggestions { grid-template-columns: 1fr; } .empty { min-height: 26rem; padding-block: 1.5rem; } } @media (max-width: 30em) { .activityReviewAction > span { display: none; } .historyButton { width: 2.625rem; max-width: 2.625rem; height: 2.625rem; padding-inline: 0.75rem; } .historyButtonSection { margin-inline-end: 0; } .historyButtonLabel { display: none; } .messages { padding: 0.5rem 0.75rem 1rem; } .message { margin-block: 0.7rem; } .userMessage { max-width: 100%; } .userMessageWrap { max-width: 92%; } .usageGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .reasoningButton { min-width: 2.5rem; max-width: 7.75rem; } .approvalActions { flex-direction: column; } .humanTool, .appTool, .boardSettingsTool { padding: 0.8rem; } .boardSettingsActions, .boardSettingsSubmitGroup { width: 100%; } .boardSettingsSubmitGroup { justify-content: space-between; margin-inline-start: 0; } } @media (prefers-reduced-motion: reduce) { .activityBar, .floatingPanel, .contextMeter { animation: none; transition: none; } .viewport { scroll-behavior: auto; } }