[hidden] { display: none !important; } .workspace { padding-right: var(--chat-space, 0px); } /* Page mounts stay alive for drafts without breaking the bounded table layout. */ .alpha-page-view { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; overflow: hidden; } .main-shell { container-type: inline-size; } .ai-chat { position: fixed; inset: 0 0 0 auto; width: min(var(--chat-width, 420px), 100vw); z-index: 1001; display: flex; flex-direction: column; background: var(--surface); border-left: 1px solid var(--line); color: var(--ink); } .ai-mask { position: fixed; inset: 0; z-index: 1000; background: #1f232926; } .ai-header { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; height: 56px; padding: 0 var(--space-4); border-bottom: 1px solid var(--line); background: var(--semi-color-ai-background-top); } .ai-header h2 { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 500; } .ai-conversations { display: flex; flex-shrink: 0; gap: var(--space-2); padding: var(--space-3) var(--space-4); } .ai-conversations .semi-select { flex: 1; min-width: 0; } .ai-chat > .semi-banner { margin: 0 var(--space-4) var(--space-3); } .ai-messages { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--space-3) var(--space-4) var(--space-4); } .ai-message { overflow-wrap: anywhere; min-width: 0; } .ai-role { display: block; color: var(--muted); font-size: 12px; line-height: 20px; margin-bottom: var(--space-2); } .ai-text { white-space: pre-wrap; line-height: 24px; font-weight: 400; } .ai-markdown { min-width: 0; font-size: 14px; line-height: 24px; } .ai-markdown .markstream-react { color: var(--ink); font-family: inherit; font-size: inherit; line-height: inherit; } .ai-markdown :is(h1, h2, h3, h4, h5, h6) { font-size: 16px; line-height: 24px; font-weight: 600; margin: 16px 0 8px; } .ai-markdown :is(p, ul, ol, blockquote, pre, table) { margin-top: 8px; margin-bottom: 8px; } .ai-chat .ai-markdown .markstream-react pre[data-markstream-pre] { font-size: 12px; max-width: 100%; overflow-x: auto; white-space: pre; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--canvas); } .ai-markdown code { font-size: 12px; } .ai-markdown table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; } .ai-markdown :is(th, td) { padding: 6px 10px; border: 1px solid var(--line); white-space: nowrap; } .ai-markdown a { color: var(--accent); text-decoration: underline; } .ai-markdown blockquote { border-left: 3px solid var(--line); padding-left: 12px; color: var(--muted); } .ai-message.user .ai-text { background: var(--canvas); padding: var(--space-3); border-radius: 8px; } .ai-empty { margin: 32px 0; color: var(--muted); line-height: 24px; } .ai-empty h3 { color: var(--ink); font-size: 16px; font-weight: 500; margin: 0 0 var(--space-2); } .ai-empty .semi-button { margin-top: var(--space-3); } .ai-empty span { display: block; font-size: 12px; line-height: 20px; margin-top: var(--space-4); } .ai-composer { flex-shrink: 0; padding: var(--space-3) var(--space-4) var(--space-4); border-top: 1px solid var(--line); background: var(--surface); } .ai-context { color: var(--muted); font-size: 12px; line-height: 20px; margin-bottom: var(--space-2); overflow-wrap: anywhere; } .ai-send { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-2); } .ai-send small, .ai-tool-card small, .ai-run-state small { color: var(--muted); font-size: 12px; line-height: 20px; font-weight: 400; } .ai-send .semi-button { flex-shrink: 0; } .ai-run-state small, .ai-tool-card small { display: block; margin-top: var(--space-1); overflow-wrap: anywhere; } .ai-tool-card { border: 1px solid var(--line); border-radius: 8px; padding: var(--space-3); margin: var(--space-3) 0; font-size: 13px; line-height: 20px; } .ai-card-title { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-2); } .ai-card-title strong { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; } /* Semi owns the controls; local constraints keep the research rail usable at 360px. */ .research-ai-input { min-width: 0; } .research-ai-editor.semi-aiChatInput { padding: 12px; background: var(--semi-color-ai-background-bottom); border-color: rgba(var(--semi-ai-purple-2), 0.65); } .research-ai-editor:focus-within { border-color: var(--semi-color-ai-purple); } .research-ai-editor .tiptap { min-height: 72px; max-height: 180px; overflow-y: auto; overscroll-behavior: contain; overflow-wrap: anywhere; } .research-ai-editor .semi-aiChatInput-references { max-height: 100px; overflow-y: auto; overscroll-behavior: contain; } .research-ai-reference { max-width: 100%; min-width: 0; } .research-ai-reference .semi-tag { max-width: 100%; } .research-ai-reference .semi-tag-content { min-width: 0; overflow: hidden; text-overflow: ellipsis; } .research-ai-editor .semi-aiChatInput-footer { gap: 8px; flex-wrap: wrap; margin-top: 12px; } .research-ai-shortcut, .research-ai-hint { font-size: 12px; line-height: 18px; color: var(--semi-color-text-2); } .research-ai-hint { margin-top: 8px; } .research-ai-prompts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; } .research-ai-prompts .semi-button { height: auto; white-space: normal; text-align: left; max-width: 100%; } .research-ai-section { min-width: 0; } .research-ai-section h4 { display: flex; align-items: center; gap: 6px; margin: 12px 0; font-weight: 500; } .ai-avatar { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 8px; background: var(--semi-color-ai-background-top); } .ai-messages .semi-ai-chat-dialogue { min-height: 0; } .ai-messages .semi-ai-chat-dialogue-inner { min-width: 0; } .ai-tool-card p { margin: var(--space-2) 0; } .ai-tool-card summary { cursor: pointer; padding: var(--space-2) 0; } .ai-approval { border-top: 1px solid var(--line); padding-top: var(--space-2); margin-top: var(--space-3); } .ai-diff { display: grid; gap: var(--space-2); margin: var(--space-2) 0 var(--space-3); } .ai-diff strong { font-weight: 400; color: var(--muted); } .ai-diff del, .ai-diff ins { display: block; padding: var(--space-2) var(--space-3); white-space: pre-wrap; border-radius: 4px; text-decoration: none; } .ai-diff del > span, .ai-diff ins > span { display: block; color: var(--muted); font-size: 12px; margin-bottom: var(--space-1); } .ai-diff del { background: var(--canvas); } .ai-diff ins { background: var(--semi-color-success-light-default); } .ai-alpha-results > div { padding: var(--space-3) 0; border-top: 1px solid var(--line); } .ai-alpha-results .text-link { margin-left: 0; padding: 0; text-align: left; overflow-wrap: anywhere; } .ai-alpha-results table { width: 100%; text-align: left; margin-top: var(--space-2); border-collapse: collapse; table-layout: fixed; font-variant-numeric: tabular-nums; } .ai-alpha-results th, .ai-alpha-results td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 400; padding: var(--space-1) 0; } .ai-alpha-results th { color: var(--muted); font-size: 12px; } .ai-resize { position: absolute; left: -4px; top: 0; height: 100%; width: 8px; cursor: col-resize; touch-action: none; } .ai-resize:hover, .ai-resize:focus-visible { background: var(--accent); opacity: 0.3; } .ai-settings { scroll-margin-top: var(--space-4); } .ai-settings-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 var(--space-4); } .ai-settings form > .muted { margin: var(--space-2) 0 var(--space-3); } .ai-settings .inline-actions { margin-top: var(--space-3); } .ai-test-results { display: grid; gap: var(--space-2); font-size: 13px; } .ai-test-results > div { display: flex; align-items: baseline; gap: var(--space-2); } .ai-test-results .semi-tag { flex-shrink: 0; } .ai-launcher { position: fixed; right: var(--space-4); bottom: 64px; z-index: 1002; border: 1px solid var(--line); background: var(--surface); box-shadow: 0 4px 12px #1f232914; } /* Reacting to available business width also covers an expanded 640px chat rail. */ @container (max-width: 900px) { .account-grid, .profile-grid, .permission-list { grid-template-columns: 1fr; } .preferences-grid, .advanced-grid { grid-template-columns: 1fr 1fr; } .preferences-form { flex-wrap: wrap; } .library-stats .last-sync { display: none; } } @container (max-width: 600px) { .ai-settings-grid { grid-template-columns: 1fr; } .account-counts { grid-template-columns: 1fr 1fr; row-gap: var(--space-3); } .account-counts > div:nth-child(2) { border: 0; } .account-name, .breadcrumbs { display: none; } .top-actions { margin-left: auto; } } @media (max-width: 640px) { .ai-chat { width: 100vw; } .ai-resize { display: none; } }