/* User workspace visual system. Unmigrated screens keep their existing styles.
   Theme colors and runtime/state classes remain owned by their existing modules. */
body.workspace-redesign {
  --btn-primary-bg: var(--action-primary);
  --btn-primary-text: var(--action-primary-text);
  --btn-primary-hover: var(--action-primary-hover);
  --accent: var(--action-primary);
  --accent-hover: var(--action-primary-hover);
  color-scheme: var(--workspace-color-scheme, dark);
  --bg: var(--bg-workspace, var(--bg-primary));
  --chat-bg: var(--bg-workspace, var(--bg-chat));
  --bg-header: var(--bg-workspace, var(--bg-primary));
  --bg-input-bar: var(--bg-workspace, var(--bg-primary));
  --sidebar-bg: var(--bg-workspace-sidebar, var(--bg-sidebar));
  --bg-sidebar-btn: var(--bg-workspace-sidebar, var(--bg-sidebar));
  --input-bg: var(--bg-workspace-input, var(--bg-bubble-user));
  --workspace-reading-width: 800px;
  --workspace-row-radius: 7px;
  --workspace-hover: var(--btn-secondary-hover);
}

/* Shared, compact project and conversation controls (Chat + Cowork). */
.workspace-redesign.unified-conversation-actions :is(#headerActionsMoreBtn, #shareConversationBtn, #moveToFolderBtn, #newChatHeader) { display: none !important; }
.workspace-redesign.unified-conversation-actions #headerActionsInline { display: contents; }
.workspace-redesign #conversationActionsBtn { margin-left: 4px; }
.workspace-redesign .history-pin { display: inline-flex; color: var(--muted); flex: 0 0 12px; }
.workspace-redesign .history-pin svg { width: 12px; height: 12px; }
.workspace-redesign .folder-group-icon svg { width: 16px; height: 16px; display: block; fill: none; stroke: currentColor; }
[data-project-color="neutral"] { --project-color: var(--project-neutral); }
[data-project-color="red"] { --project-color: var(--project-red); }
[data-project-color="orange"] { --project-color: var(--project-orange); }
[data-project-color="yellow"] { --project-color: var(--project-yellow); }
[data-project-color="green"] { --project-color: var(--project-green); }
[data-project-color="blue"] { --project-color: var(--project-blue); }
[data-project-color="purple"] { --project-color: var(--project-purple); }
[data-project-color="pink"] { --project-color: var(--project-pink); }
.workspace-redesign .folder-group-icon[data-project-color] { color: var(--project-color); }
.personal-dialog, .conversation-actions-menu {
  font-family: inherit; font-size: 13px; line-height: 1.45; color: var(--text);
  background: var(--user-dialog-bg, var(--bg-workspace)); border: 1px solid var(--user-dialog-border, var(--border-subtle)); border-radius: 12px;
  box-shadow: 0 12px 36px var(--shadow-color, rgb(0 0 0 / 24%));
}
.conversation-actions-menu { position: fixed; inset: auto; margin: 0; padding: 5px; width: 252px; max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); overflow-y: auto; }
.conversation-actions-menu button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 34px; padding: 7px 10px; border: 0; border-radius: 6px; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.conversation-actions-menu button span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conversation-actions-menu svg, .personal-icon-button svg { width: 17px; height: 17px; flex: 0 0 17px; }
.conversation-actions-menu [data-project-color] svg:first-child { color: var(--project-color); }
.conversation-actions-menu hr { border: 0; border-top: 1px solid var(--border-subtle); margin: 5px 7px; }
.conversation-actions-menu p { margin: 9px; color: var(--muted); }
.personal-dialog { position: fixed; inset: 0; margin: auto; box-sizing: border-box; padding: 20px; width: 470px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; }
.personal-dialog::backdrop { background: var(--overlay-bg, rgb(0 0 0 / 55%)); }
.personal-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.personal-dialog h2 { margin: 0; font-size: 18px; font-weight: 600; }
.personal-dialog button { font: inherit; border: 0; border-radius: 7px; min-height: 34px; padding: 7px 12px; color: var(--text); background: var(--btn-secondary-bg); cursor: pointer; }
.personal-dialog label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; }
.personal-dialog input { box-sizing: border-box; width: 100%; min-width: 0; height: 38px; padding: 7px 10px; border: 1px solid var(--border-subtle); border-radius: 7px; color: var(--text); background: var(--input-bg); font: inherit; }
.personal-dialog footer { display: flex; gap: 8px; justify-content: flex-end; margin-top: 20px; flex-wrap: wrap; }
.personal-dialog button.personal-primary { background: var(--action-primary); color: var(--action-primary-text); }
.personal-dialog button.personal-remove { margin-right: auto; color: var(--status-danger); background: transparent; }
.personal-dialog .personal-help { color: var(--muted); font-size: 12px; margin: 12px 0 0; }
.personal-dialog-error { color: var(--status-danger); margin: 12px 0 0; }
.personal-icon-button, .personal-dialog .personal-icon-button { display: inline-flex; align-items: center; justify-content: center; padding: 6px; width: 34px; min-height: 34px; flex: 0 0 34px; color: var(--text); background: transparent; border: 0; border-radius: 7px; cursor: pointer; }
.workspace-redesign .personal-icon-button svg, .workspace-redesign .history-pin svg { fill: none; stroke: currentColor; }
.personal-project-name { display: flex; gap: 8px; align-items: center; }
.personal-dialog [data-project-color] { color: var(--project-color); }
.project-appearance { margin-top: 12px; padding: 10px; border: 1px solid var(--border-subtle); border-radius: 9px; }
.project-colors, .project-icons { display: flex; flex-wrap: wrap; gap: 4px; }
.project-icons { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--border-subtle); }
.personal-dialog .project-color-option { padding: 6px; width: 34px; background: transparent; }
.project-color-option span { display: block; width: 19px; height: 19px; border-radius: 50%; background: var(--project-color); }
.personal-dialog [aria-pressed="true"] { outline: 1px solid var(--text); outline-offset: -2px; background: var(--workspace-hover); }
.conversation-actions-menu button:hover, .personal-icon-button:hover, .personal-dialog button:hover { background: var(--workspace-hover); }
.personal-dialog .personal-primary:hover { background: var(--action-primary-hover); }
.personal-dialog button:active, .personal-icon-button:active { opacity: .8; }
.personal-dialog button:disabled, .personal-icon-button:disabled { opacity: .45; cursor: default; }
.conversation-actions-menu button:focus-visible, .personal-dialog :is(button, input):focus-visible, .personal-icon-button:focus-visible { outline: 2px solid var(--text); outline-offset: -2px; }
@media (max-width: 767px) {
  .conversation-actions-menu button, .personal-dialog button, .personal-icon-button, .personal-dialog .personal-icon-button { min-height: 44px; }
  .personal-icon-button, .personal-dialog .personal-icon-button, .personal-dialog .project-color-option { width: 44px; flex-basis: 44px; }
  .personal-dialog { padding: 16px; }
  .personal-dialog input { height: 44px; font-size: 16px; }
}

.workspace-redesign .sidebar {
  padding: 10px 8px 8px;
  gap: 6px;
  transition: transform 120ms ease;
}

.workspace-redesign .sidebar-header { margin-bottom: 0; }
.workspace-redesign .sidebar-section-heading { display: flex; align-items: center; }
.workspace-redesign .sidebar-section-heading .sidebar-section-toggle { flex: 1; min-width: 0; }
.workspace-redesign .sidebar-section-add { flex: 0 0 32px; height: 32px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font: inherit; font-size: 18px; cursor: pointer; }
.workspace-redesign .sidebar-section-add:hover { background: var(--workspace-hover); color: var(--text); }
.workspace-redesign .sidebar-section-add:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.workspace-redesign .folder-group.sidebar-drop-target > .folder-group-header { background: var(--workspace-hover); outline: 2px solid var(--accent); outline-offset: -2px; border-radius: 7px; }
.workspace-redesign .folder-group[aria-busy="true"] > .folder-group-header { cursor: progress; }
@media (max-width: 767px) { .workspace-redesign .sidebar-section-add { flex-basis: 44px; height: 44px; } }
.workspace-redesign .sidebar-mode-switch {
  border: 0;
  background: transparent;
  padding: 2px;
  gap: 4px;
}
.workspace-redesign .sidebar-mode-option { height: 32px; }
.workspace-redesign .sidebar-mode-option.active {
  background: var(--workspace-hover);
  box-shadow: none;
}
.workspace-redesign .sidebar-mode-option.active svg { fill: currentColor; }
.workspace-redesign .sidebar-search input {
  height: 34px;
  padding: 6px 8px 6px 34px;
  border: 1px solid transparent;
  border-radius: var(--workspace-row-radius);
  background: transparent;
  transition: background 120ms ease, border-color 120ms ease;
}
.workspace-redesign .sidebar-search input:hover { background: var(--workspace-hover); }
.workspace-redesign .sidebar-search input:focus {
  background: var(--workspace-hover);
  border-color: var(--accent);
  outline: none;
}
.workspace-redesign .sidebar-search svg { left: 10px; width: 16px; height: 16px; }
.workspace-redesign .sidebar-primary-nav { gap: 2px; }
.workspace-redesign .sidebar-btn {
  min-height: 32px;
  padding: 6px 10px;
  gap: 9px;
  border-radius: var(--workspace-row-radius);
  transition: background 120ms ease;
}
.workspace-redesign .sidebar-btn:hover { background: var(--workspace-hover); }
.workspace-redesign .sidebar-btn.publications-sidebar-active { border-color: transparent; }
.workspace-redesign .sidebar-btn.publications-sidebar-active:not(#newChat) { background: var(--workspace-hover); }
.workspace-redesign .sidebar-btn.publications-sidebar-active#newChat { background: transparent; }
.workspace-redesign .sidebar-btn :is(svg, .sidebar-btn-icon) { width: 17px; height: 17px; }
.workspace-redesign .sidebar-section { gap: 2px; }
.workspace-redesign .sidebar-section-toggle {
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  border-radius: var(--workspace-row-radius);
}
.workspace-redesign .sidebar-history { gap: 2px; }
.workspace-redesign .history-item { transition: background 120ms ease; }
.workspace-redesign .history-item.active { background: var(--workspace-hover); }
.workspace-redesign .history-item.new-item { animation: none; }
.workspace-redesign .history-item-meta { display: none; }
.workspace-redesign .timestamp { display: none; }
.workspace-redesign .history-item-header { min-height: 20px; }
.workspace-redesign .history-status-indicator {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--status-warning);
}
.workspace-redesign .history-status-indicator[data-status="failed"] { background: var(--status-danger); }
.workspace-redesign .history-status-indicator[data-status="unread"] { background: var(--status-unread, #6488ff); }
.workspace-redesign .history-item-header > .history-run-spinner { margin-left: auto; }
.workspace-redesign :is(.chat-conversation-history-item, .agent-thread-history-item) .history-item-link {
  padding: 6px 36px 6px 10px;
  gap: 0;
}
.workspace-redesign .history-item-title { line-height: 18px; }
.workspace-redesign .history-item-date { line-height: 15px; }
.workspace-redesign .history-item-actions { top: 4px; right: 4px; }
.workspace-redesign .user-menu-area {
  padding-top: 4px;
  border-top: 1px solid var(--border-sidebar);
}
.workspace-redesign .user-menu-trigger {
  min-height: 44px;
  padding: 7px 10px;
  border: 0;
  border-radius: var(--workspace-row-radius);
}
.workspace-redesign .user-menu-name { font-size: 13px; font-weight: 500; }
.workspace-redesign .user-menu-role { font-size: 11px; }

.workspace-redesign .header { min-height: 48px; padding: 6px 12px; gap: 8px; }
.workspace-redesign .header-left { gap: 8px; }
.workspace-redesign .model-selector-btn { font-size: 14px; border-radius: 7px; min-height: 36px; padding-block: 3px; max-width: min(320px, 52vw); }
.workspace-redesign .model-selector-summary { display: flex; flex-direction: column; gap: 1px; min-width: 0; text-align: left; }
.workspace-redesign .model-selector-summary > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 17px; }
.workspace-redesign .model-selector-assistant { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 13px !important; }
.workspace-redesign .model-selector-btn > svg { flex-shrink: 0; }

/* Projects are a compact tree, not nested cards. Grouping never grants context. */
.workspace-redesign .sidebar-folders { gap: 4px; }
.workspace-redesign .folder-group { border: 0; background: transparent; border-radius: 0; min-width: 0; }
.workspace-redesign .folder-group-header { padding: 0 4px 0 10px; min-height: 32px; gap: 4px; border-radius: 7px; }
.workspace-redesign .folder-group-header:hover { background: var(--workspace-hover); }
.workspace-redesign .folder-group-header-toggle { min-width: 0; min-height: 32px; }
.workspace-redesign .folder-group-header-main { min-width: 0; gap: 8px; }
.workspace-redesign .folder-group-icon { width: 16px; height: 16px; flex: 0 0 16px; fill: none; color: var(--muted); }
.workspace-redesign .folder-group-title { font-size: 13px; font-weight: 400; }
.workspace-redesign .folder-group-count { display: none; }
.workspace-redesign .folder-group-conversations { padding: 0 0 0 18px; gap: 2px; }
.workspace-redesign .folder-group-conversations .history-empty { padding: 6px 10px; font-size: 12px; }
.workspace-redesign .folder-group-actions { opacity: 0; }
.workspace-redesign .folder-group:is(:hover, :focus-within) .folder-group-actions,
.workspace-redesign .folder-group:has(.folder-group-menu:not([hidden])) .folder-group-actions { opacity: 1; }
.workspace-redesign :is(.folder-group-menu-trigger, .folder-conversation-menu-trigger) { width: 24px; height: 24px; border: 0; border-radius: 5px; }
.workspace-redesign .folder-conversation-menu-trigger { opacity: 0; }
.workspace-redesign .history-item:is(:hover, :focus-within) .folder-conversation-menu-trigger,
.workspace-redesign .folder-conversation-menu-trigger[aria-expanded="true"] { opacity: 1; }
.workspace-redesign .history-item-actions { align-items: center; gap: 0; }
.workspace-redesign .history-item-archive { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 4px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; opacity: 0; }
.workspace-redesign .history-item:is(:hover, :focus-within) .history-item-archive { opacity: 1; }
.workspace-redesign .history-item-archive svg { width: 16px; height: 16px; fill: none; }
.workspace-redesign .history-item-archive:hover { background: var(--workspace-hover); color: var(--text); }
.workspace-redesign .history-item:has(.history-item-archive):is(:hover, :focus-within) .history-item-link { padding-right: 62px; }
.workspace-redesign .history-run-spinner { flex-shrink: 0; }

@media (max-width: 767px), (pointer: coarse) {
  .workspace-redesign .folder-group-actions { opacity: 1; }
  .workspace-redesign .folder-conversation-menu-trigger { opacity: 1; }
  .workspace-redesign :is(.folder-group-header, .folder-group-header-toggle) { min-height: 44px; }
  .workspace-redesign :is(.folder-group-menu-trigger, .folder-conversation-menu-trigger) { width: 44px; height: 44px; }
  .workspace-redesign .history-item-archive { display: none; } /* Archive remains in the touch menu. */
  .workspace-redesign .history-item:has(.history-item-archive):is(:hover, :focus-within) .history-item-link { padding-right: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .workspace-redesign .history-run-spinner { animation: none; }
}
.workspace-redesign .welcome-state { padding-inline: 24px; }
.workspace-redesign .welcome-title { font-size: 26px; font-weight: 500; letter-spacing: -0.6px; }
.workspace-redesign :is(.welcome-input-container, .input-container) { max-width: var(--workspace-reading-width); }
.workspace-redesign .input-bar {
  padding: 12px 24px calc(16px + env(safe-area-inset-bottom, 0px));
}
.workspace-redesign :is(.input-shell, .welcome-input-shell) {
  flex-wrap: wrap;
  border-radius: 16px;
  padding: 10px;
  gap: 6px;
  transition: border-color 120ms ease;
}
.workspace-redesign :is(.input-shell, .welcome-input-shell) textarea {
  flex: 1 0 100%;
  min-width: 0;
  padding: 2px 4px 8px;
  min-height: 44px;
  max-height: 200px;
}
.workspace-redesign :is(.input-shell, .welcome-input-shell) .reasoning-mode-wrapper { margin-left: auto; }
.workspace-redesign .reasoning-mode-btn { border-radius: 7px; background: transparent; font-size: 12px; }
.workspace-redesign .reasoning-mode-btn:hover { background: var(--workspace-hover); }
.workspace-redesign :is(.input-shell, .welcome-input-shell).realtime-mode { flex-wrap: nowrap; }
.workspace-redesign :is(.input-shell, .welcome-input-shell).realtime-mode textarea { flex: 1 1 auto; }
.workspace-redesign :is(.input-shell, .welcome-input-shell) :is(.web-search-tag, .research-tag, .image-studio-tag, .attachment-limit-tag) {
  max-width: 100%;
}

.workspace-redesign.agent-page .agent-runtime-board {
  border-left: 1px solid var(--border-sidebar);
  transition: transform 120ms ease, opacity 120ms ease;
}
.workspace-redesign .agent-runtime-board-scroll { padding: 8px; }
.workspace-redesign .agent-runtime-section {
  background: transparent;
  border: 0;
  border-radius: var(--workspace-row-radius);
}
.workspace-redesign .agent-runtime-section + .agent-runtime-section { margin-top: 4px; }
.workspace-redesign .agent-runtime-section-toggle { padding: 8px; min-height: 40px; border-radius: 7px; }
.workspace-redesign .agent-runtime-section-title { font-weight: 500; gap: 7px; }
.workspace-redesign .agent-runtime-section.expanded { background: var(--bg-bubble-ai); }
.workspace-redesign .agent-runtime-section-body { padding: 4px 10px 12px; }
.workspace-redesign .msg-wrapper.agent-message-enter { animation: none; }

.workspace-redesign :is(button, a):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}

@media (min-width: 768px) {
  .workspace-redesign .sidebar.collapsed { padding: 0; }
  .workspace-redesign .messages {
    max-width: none;
    padding-inline: max(24px, calc((100% - var(--workspace-reading-width)) / 2));
  }
  .workspace-redesign .sidebar { width: var(--sidebar-width, 248px); }
  .workspace-redesign .sidebar.collapsed { width: 0; }
}

@media (max-width: 767px) {
  .workspace-redesign .sidebar-header { padding-top: env(safe-area-inset-top, 0px); }
  .workspace-redesign .header { padding: 4px 8px; min-height: 52px; }
  .workspace-redesign .model-selector-btn { min-height: 44px; }
  .workspace-redesign .welcome-state { padding-inline: 16px; }
  .workspace-redesign .welcome-title { font-size: 24px; }
  .workspace-redesign .input-bar { padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px)); }
  .workspace-redesign :is(.input-shell, .welcome-input-shell) { padding: 8px; }
  .workspace-redesign :is(.sidebar-btn, .sidebar-mode-option, .sidebar-section-toggle, .sidebar-search input, .agent-runtime-section-toggle) { min-height: 44px; }
  .workspace-redesign :is(.add-btn, .mic-btn, .send-btn, .reasoning-mode-btn) { min-width: 44px; min-height: 44px; }
  .workspace-redesign .reasoning-mode-btn { font-size: 12px; }
  .workspace-redesign .sidebar-primary-nav { gap: 0; }
  .workspace-redesign :is(.chat-conversation-history-item, .agent-thread-history-item) .history-item-link { min-height: 44px; justify-content: center; }
  .workspace-redesign :is(.chat-conversation-history-item, .agent-thread-history-item) .history-item-more { min-width: 44px; min-height: 44px; }
  .workspace-redesign .history-item-actions { top: 0; right: 0; }
  .workspace-redesign .agent-runtime-board-scroll { padding: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .workspace-redesign *, .workspace-redesign *::before, .workspace-redesign *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* Sprint 3: one searchable catalog in Chat and Cowork, no new model adapters. */
.workspace-redesign .model-dropdown {
  width: min(680px, calc(100vw - var(--sidebar-width, 248px) - 88px));
  max-height: calc(100dvh - 76px);
  border-radius: 12px;
  background: var(--bg);
  backdrop-filter: none;
}
.workspace-redesign .model-dropdown.show { display: flex; flex-direction: column; animation: none; }
.workspace-redesign .model-catalog { display: flex; flex-direction: column; min-height: 0; color-scheme: var(--workspace-color-scheme, dark); }
.workspace-redesign .assistant-selector-bar { padding: 12px; background: transparent; flex-shrink: 0; }
.workspace-redesign .assistant-selector-label { font-size: 11px; letter-spacing: 0; text-transform: none; }
.workspace-redesign .assistant-dropdown-btn { border-radius: 7px; background: transparent; border-color: var(--border-subtle); }
.workspace-redesign .model-catalog-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 12px; gap: 10px; }
.workspace-redesign .model-catalog-search-field { grid-column: 1 / -1; }
.workspace-redesign .model-catalog-filter-field { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.workspace-redesign .model-catalog-filter { font-size: 13px; border-radius: 7px; background: var(--input-bg); }
.workspace-redesign #modelSearchInput { cursor: text; height: 38px; padding: 0 12px; }
.workspace-redesign .model-catalog-results { min-height: 0; max-height: 440px; padding: 4px 8px 8px; }
.workspace-redesign .model-publisher-heading { background: var(--bg); min-height: 32px; top: -4px; border: 0; padding-block: 6px; }
.workspace-redesign .model-publisher-logo { width: 20px; height: 20px; flex-basis: 20px; padding: 3px; }
.workspace-redesign .model-option { border-radius: 7px; padding: 9px 10px; gap: 4px 8px; }
.workspace-redesign .model-option-name { font-size: 13px; font-weight: 500; }
.workspace-redesign .model-option.selected { background: var(--workspace-hover); border-color: transparent; }
.workspace-redesign .model-option-meta { font-size: 11px; line-height: 1.45; flex-wrap: wrap; }
.workspace-redesign .model-option-route { font-size: 11px; }
@media (max-width: 767px) {
  .workspace-redesign .model-dropdown { position: fixed; top: 60px; left: 8px; right: 8px; width: auto; max-height: calc(100dvh - 76px); }
  .workspace-redesign .model-catalog-filter { height: 44px; }
  .workspace-redesign #modelSearchInput { height: 44px; }
  .workspace-redesign .model-catalog-filters { gap: 8px; padding: 10px; }
  .workspace-redesign .model-option { min-height: 52px; }
  .workspace-redesign .model-option-main { flex-wrap: wrap; gap: 4px 6px; }
}
