codex-overleaf-link 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.md +155 -392
  2. package/README.zh-CN.md +154 -393
  3. package/extension/bootstrap/background.js +52 -9
  4. package/extension/bootstrap/manifest.template.json +1 -1
  5. package/extension/bootstrap/popup.html +1 -0
  6. package/extension/bootstrap/popupFallback.js +55 -0
  7. package/extension/bootstrap/updateStatus.js +1 -0
  8. package/extension/src/background.js +283 -55
  9. package/extension/src/backgroundBootstrapMigration.js +181 -0
  10. package/extension/src/backgroundSharedSessions.js +129 -16
  11. package/extension/src/backgroundUpdateCoordinator.js +242 -29
  12. package/extension/src/backgroundUpdateSafety.js +173 -0
  13. package/extension/src/content/activeTurnControl.js +171 -8
  14. package/extension/src/content/applyResultFormatters.js +46 -73
  15. package/extension/src/content/assetTransferBroker.js +72 -14
  16. package/extension/src/content/composerAttachments.js +104 -47
  17. package/extension/src/content/composerPanel.js +110 -12
  18. package/extension/src/content/contentRuntime.js +1555 -926
  19. package/extension/src/content/contextTray.js +8 -2
  20. package/extension/src/content/contextUsageView.js +267 -0
  21. package/extension/src/content/diagnosticsController.js +122 -96
  22. package/extension/src/content/diagnosticsExport.js +19 -5
  23. package/extension/src/content/diagnosticsPanel.js +48 -0
  24. package/extension/src/content/directoryCleanupRecovery.js +54 -0
  25. package/extension/src/content/generated/content.bundle.js +11077 -3412
  26. package/extension/src/content/generated/content.bundle.meta.json +14 -3
  27. package/extension/src/content/globalPreferencesController.js +1 -1
  28. package/extension/src/content/legacyGlobalRegistry.js +10 -0
  29. package/extension/src/content/localSkillsPanel.js +104 -14
  30. package/extension/src/content/markdownDomRenderer.js +5 -3
  31. package/extension/src/content/markdownText.js +47 -11
  32. package/extension/src/content/modelPicker.js +8 -4
  33. package/extension/src/content/nativeCompatibilityController.js +74 -30
  34. package/extension/src/content/otWarmMirror.js +5 -6
  35. package/extension/src/content/otWarmMirrorController.js +17 -20
  36. package/extension/src/content/pageBridgeClient.js +17 -4
  37. package/extension/src/content/panelMaintenance.js +46 -14
  38. package/extension/src/content/panelRenderer.js +57 -27
  39. package/extension/src/content/pendingInputView.js +1 -1
  40. package/extension/src/content/projectProviderSelection.js +13 -4
  41. package/extension/src/content/projectSessionCleanup.js +109 -62
  42. package/extension/src/content/projectSettingsCoordinator.js +67 -6
  43. package/extension/src/content/providerSettingsCoordinator.js +46 -8
  44. package/extension/src/content/providerSettingsDialog.js +73 -14
  45. package/extension/src/content/recentProjects.js +15 -8
  46. package/extension/src/content/runActivitySummary.js +160 -18
  47. package/extension/src/content/runCompletionMeta.js +532 -0
  48. package/extension/src/content/runController.js +39 -15
  49. package/extension/src/content/runFailureNotice.js +29 -13
  50. package/extension/src/content/runGuidanceController.js +72 -27
  51. package/extension/src/content/runGuidanceView.js +59 -10
  52. package/extension/src/content/runPresence.js +18 -8
  53. package/extension/src/content/runQueueScheduler.js +157 -47
  54. package/extension/src/content/runRecoveryActions.js +147 -0
  55. package/extension/src/content/runResultActions.js +28 -143
  56. package/extension/src/content/runReviewController.js +633 -0
  57. package/extension/src/content/runScrollLayout.js +21 -2
  58. package/extension/src/content/runTimelineView.js +367 -175
  59. package/extension/src/content/scopedPersistencePanelState.js +134 -20
  60. package/extension/src/content/selectionContextView.js +1 -1
  61. package/extension/src/content/sensitivePreflight.js +153 -0
  62. package/extension/src/content/sessionForkController.js +80 -17
  63. package/extension/src/content/sessionManager.js +50 -4
  64. package/extension/src/content/sessionMenuView.js +54 -18
  65. package/extension/src/content/sessionPersistence.js +25 -5
  66. package/extension/src/content/settingsPanel.js +22 -5
  67. package/extension/src/content/settingsWorkbench.js +132 -89
  68. package/extension/src/content/sharedSessionViewSync.js +49 -11
  69. package/extension/src/content/subagentActivityView.js +23 -7
  70. package/extension/src/content/updateIdle.js +4 -1
  71. package/extension/src/content/updateNotice.js +118 -12
  72. package/extension/src/content/updateSafetyReceiver.js +58 -0
  73. package/extension/src/content/writebackController.js +53 -4
  74. package/extension/src/content/writebackOrchestrator.js +116 -94
  75. package/extension/src/content/writingStyleSettings.js +35 -11
  76. package/extension/src/page/binaryAssetUploader.js +136 -14
  77. package/extension/src/page/compileBridge.js +193 -180
  78. package/extension/src/page/fileMover.js +256 -0
  79. package/extension/src/page/overleafCapabilities.js +4 -1
  80. package/extension/src/page/ownedDirectoryCleanup.js +94 -0
  81. package/extension/src/page/referenceProjects.js +1 -0
  82. package/extension/src/page/reviewContext.js +113 -0
  83. package/extension/src/page/saveState.js +6 -4
  84. package/extension/src/page/snapshotRouter.js +84 -39
  85. package/extension/src/page/textCoordinates.js +17 -1
  86. package/extension/src/page/textFileCreator.js +114 -26
  87. package/extension/src/page/trackedChangeCapture.js +12 -2
  88. package/extension/src/page/trackedChangeOwnership.js +19 -1
  89. package/extension/src/page/trackedChangeReplay.js +41 -21
  90. package/extension/src/page/trackedChangesLifecycle.js +217 -199
  91. package/extension/src/page/treeOperations.js +7 -10
  92. package/extension/src/page/updateSafetyProbe.js +41 -0
  93. package/extension/src/page/writebackReceiptJournal.js +2 -0
  94. package/extension/src/page/writebackRouter.js +103 -155
  95. package/extension/src/pageBridge.js +126 -69
  96. package/extension/src/popup.js +62 -10
  97. package/extension/src/shared/agentTranscript.js +373 -17
  98. package/extension/src/shared/auditRecords.js +4 -0
  99. package/extension/src/shared/compatibility.js +22 -6
  100. package/extension/src/shared/compileAdapter.js +129 -66
  101. package/extension/src/shared/composerAttachmentDraft.js +156 -0
  102. package/extension/src/shared/contextUsage.js +125 -0
  103. package/extension/src/shared/directoryCleanupProof.js +43 -0
  104. package/extension/src/shared/failureReasons.js +349 -4
  105. package/extension/src/shared/globalPreferences.js +30 -13
  106. package/extension/src/shared/governanceRules.js +4 -37
  107. package/extension/src/shared/i18n.js +590 -24
  108. package/extension/src/shared/lineReferences.js +38 -31
  109. package/extension/src/shared/managedUpdateProjection.js +2 -2
  110. package/extension/src/shared/nativeRequestIdentity.js +1 -0
  111. package/extension/src/shared/pageRpcContract.js +5 -4
  112. package/extension/src/shared/panelIcons.js +39 -0
  113. package/extension/src/shared/projectFiles.js +21 -44
  114. package/extension/src/shared/providerProfiles.js +5 -3
  115. package/extension/src/shared/reviewing.js +130 -1
  116. package/extension/src/shared/runActivityModel.js +70 -4
  117. package/extension/src/shared/runExecutionSnapshot.js +13 -0
  118. package/extension/src/shared/runInputQueue.js +48 -5
  119. package/extension/src/shared/selectionContext.js +12 -3
  120. package/extension/src/shared/sessionState.js +132 -28
  121. package/extension/src/shared/sessionTitle.js +14 -1
  122. package/extension/src/shared/settlementFacts.js +10 -2
  123. package/extension/src/shared/sharedSessionBridge.js +118 -27
  124. package/extension/src/shared/sharedSessionTransfer.js +140 -0
  125. package/extension/src/shared/staleGuard.js +166 -52
  126. package/extension/src/shared/storageDb.js +90 -26
  127. package/extension/src/shared/storageMigration.js +78 -112
  128. package/extension/src/shared/storageRunActions.js +267 -30
  129. package/extension/src/shared/subagentActivityModel.js +1 -1
  130. package/extension/src/shared/undoOperations.js +253 -32
  131. package/extension/src/shared/updateConsent.js +6 -4
  132. package/extension/src/shared/updateRuntimeIdentity.js +17 -3
  133. package/extension/src/shared/writebackIntent.js +16 -0
  134. package/extension/src/shared/writebackOperationEvidence.js +4 -15
  135. package/extension/src/shared/writebackSettlement.js +58 -40
  136. package/extension/styles/panel.css +1123 -493
  137. package/native-host/src/anthropicBridgeRequest.js +4 -2
  138. package/native-host/src/anthropicBridgeResponse.js +6 -2
  139. package/native-host/src/anthropicMessagesBridge.js +24 -16
  140. package/native-host/src/bootstrapMigration.js +296 -0
  141. package/native-host/src/bootstrapMigrationContract.js +101 -0
  142. package/native-host/src/bootstrapUpdate.js +269 -0
  143. package/native-host/src/bootstrapUpdateWatchdog.js +44 -0
  144. package/native-host/src/chatBridgeRequest.js +60 -6
  145. package/native-host/src/chatBridgeResponse.js +20 -1
  146. package/native-host/src/chatCompletionsBridge.js +48 -15
  147. package/native-host/src/codexConfigPaths.js +106 -0
  148. package/native-host/src/codexHome.js +66 -73
  149. package/native-host/src/codexHomeScope.js +124 -0
  150. package/native-host/src/codexInheritedAuth.js +90 -0
  151. package/native-host/src/codexLocalSkills.js +301 -0
  152. package/native-host/src/codexPromptAssembly.js +114 -127
  153. package/native-host/src/codexProviderTest.js +24 -26
  154. package/native-host/src/codexSessionRunner.js +234 -198
  155. package/native-host/src/codexSessionTiming.js +18 -8
  156. package/native-host/src/codexSkillIsolation.js +170 -0
  157. package/native-host/src/codexThreadFork.js +19 -3
  158. package/native-host/src/index.js +19 -7
  159. package/native-host/src/managedInstall.js +110 -35
  160. package/native-host/src/managedInstallRecovery.js +140 -0
  161. package/native-host/src/managedRuntimeEvidence.js +57 -0
  162. package/native-host/src/mirrorWorkspace.js +92 -22
  163. package/native-host/src/nativeDoctor.js +15 -0
  164. package/native-host/src/nativeHelperLifecycle.js +21 -0
  165. package/native-host/src/nativeHostRegistration.js +33 -0
  166. package/native-host/src/nativeRunLifecycle.js +71 -0
  167. package/native-host/src/processStopBarrier.js +42 -7
  168. package/native-host/src/projectPathPlatform.js +30 -0
  169. package/native-host/src/providerContextError.js +20 -0
  170. package/native-host/src/providerHttp.js +80 -0
  171. package/native-host/src/providerProfile.js +4 -2
  172. package/native-host/src/providerReasoning.js +2 -7
  173. package/native-host/src/providerRuntime.js +1 -0
  174. package/native-host/src/providerStore.js +72 -14
  175. package/native-host/src/responsesPassthroughBridge.js +266 -52
  176. package/native-host/src/runtimeInstaller.js +21 -1
  177. package/native-host/src/selectionScope.js +36 -8
  178. package/native-host/src/subagentAdmission.js +26 -0
  179. package/native-host/src/subagentBroker.js +79 -66
  180. package/native-host/src/subagentTelemetry.js +19 -10
  181. package/native-host/src/subagentWorkspacePath.js +5 -2
  182. package/native-host/src/taskRunnerRuntime.js +92 -57
  183. package/native-host/src/textPatch.js +473 -377
  184. package/native-host/src/tomlStatements.js +140 -0
  185. package/native-host/src/updateManager.js +409 -46
  186. package/native-host/src/writingStyleRuntime.js +57 -29
  187. package/native-host/src/writingStyleStore.js +73 -0
  188. package/package.json +5 -8
  189. package/scripts/install-managed.mjs +1 -0
@@ -4,52 +4,79 @@
4
4
 
5
5
  /* Independent child-conversation view. Execution and the composer stay mounted. */
6
6
  #codex-overleaf-panel .run-subagents { margin: 12px 0 16px; min-width: 0; }
7
+ /* Expanded, the timeline continues right under the subagents at its own row rhythm. */
8
+ #codex-overleaf-panel .run-process[open] ~ .run-subagents { margin-bottom: 0; }
9
+ #codex-overleaf-panel .run-process[open] ~ .run-subagents + .run-workflow-list { margin-top: 0; }
7
10
  #codex-overleaf-panel .run-subagents[hidden] { display: none !important; }
8
- #codex-overleaf-panel .run-subagents-heading { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 5px; color: var(--tl-fg-3); font-size: 12px; }
11
+ #codex-overleaf-panel .run-subagents-heading { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 5px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); }
9
12
  #codex-overleaf-panel .run-subagents-count { margin-left: auto; font-variant-numeric: tabular-nums; }
10
- #codex-overleaf-panel .run-subagent-row { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; min-height: 52px; padding: 9px 8px; margin: 0; text-align: left; border: 0; border-radius: 7px; background: transparent; color: var(--tl-fg-2); box-shadow: none; cursor: pointer; }
13
+ #codex-overleaf-panel .run-subagent-row { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; min-height: 0; padding: 7px 8px; margin: 0; text-align: left; border: 0; border-radius: 7px; background: transparent; color: var(--tl-fg-2); box-shadow: none; cursor: pointer; }
11
14
  #codex-overleaf-panel .run-subagent-row:hover { background: var(--tl-hover); }
12
- #codex-overleaf-panel .run-subagent-row > .run-workflow-icon { flex: 0 0 16px; color: var(--tl-fg-3); }
13
- #codex-overleaf-panel .run-subagent-row[data-state="running"] > .run-workflow-icon { color: var(--tl-run); }
15
+ #codex-overleaf-panel .run-subagent-row > .run-workflow-icon { display: none; }
14
16
  #codex-overleaf-panel .run-subagent-copy { display: grid; gap: 3px; flex: 1; min-width: 0; }
15
- #codex-overleaf-panel .run-subagent-name { font-size: 13px; font-weight: 500; color: var(--tl-fg-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
16
- #codex-overleaf-panel .run-subagent-activity { font-size: 12px; line-height: 1.5; color: var(--tl-fg-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
17
- #codex-overleaf-panel .run-subagent-tail { flex: 0 0 auto; display: grid; gap: 3px; justify-items: end; font-size: 11px; font-weight: 400; color: var(--tl-fg-3); }
17
+ #codex-overleaf-panel .run-subagent-name { font-size: var(--tl-text-md, 13px); font-weight: 500; color: var(--tl-fg-1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
18
+ #codex-overleaf-panel .run-subagent-activity { font-size: var(--tl-text-sm, 12px); line-height: 1.5; color: var(--tl-fg-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
19
+ #codex-overleaf-panel .run-subagent-tail { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: var(--tl-text-xs, 11px); font-weight: 400; color: var(--tl-fg-3); }
20
+ #codex-overleaf-panel .run-subagent-status { display: inline-flex; align-items: center; gap: 6px; }
21
+ #codex-overleaf-panel .run-subagent-status::before { content: ""; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--tl-fg-3); }
18
22
  #codex-overleaf-panel .run-subagent-time { font-variant-numeric: tabular-nums; }
19
- #codex-overleaf-panel .run-subagent-row[data-state="failed"] .run-subagent-tail { color: var(--tl-fail); }
20
- #codex-overleaf-panel .run-subagent-row[data-state="completed"] .run-subagent-tail { color: var(--tl-ok); }
23
+ #codex-overleaf-panel .run-subagent-time:empty { display: none; }
24
+ #codex-overleaf-panel .run-subagent-time::before { content: "·"; margin-right: 6px; }
25
+ #codex-overleaf-panel .run-subagent-row[data-state="failed"] .run-subagent-status::before { background: var(--tl-fail); }
26
+ #codex-overleaf-panel .run-subagent-row[data-state="completed"] .run-subagent-status::before { background: var(--tl-ok); }
27
+ #codex-overleaf-panel .run-subagent-row:is([data-state="pending"], [data-state="running"]) .run-subagent-status::before { background: var(--tl-run); }
21
28
  #codex-overleaf-panel .run-presentation-workflow .run-activity-list { display: grid; }
22
29
  #codex-overleaf-panel .codex-subagent-view { position: absolute; z-index: 30; inset: 0; display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--tl-surface-0); color: var(--tl-fg-1); font: inherit; }
23
30
  #codex-overleaf-panel .codex-subagent-view [hidden] { display: none !important; }
24
31
  #codex-overleaf-panel .codex-subagent-view-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px 8px; }
25
32
  #codex-overleaf-panel .codex-subagent-back,
26
33
  #codex-overleaf-panel .codex-subagent-sibling,
27
- #codex-overleaf-panel .codex-subagent-latest { min-height: 32px; margin: 0; padding: 5px 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--tl-fg-2); box-shadow: none; font: inherit; font-size: 12px; cursor: pointer; }
34
+ #codex-overleaf-panel .codex-subagent-latest { min-height: 32px; margin: 0; padding: 5px 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--tl-fg-2); box-shadow: none; font: inherit; font-size: var(--tl-text-sm, 12px); cursor: pointer; }
28
35
  #codex-overleaf-panel .codex-subagent-back:hover,
29
36
  #codex-overleaf-panel .codex-subagent-sibling:hover { background: var(--tl-hover); }
30
- #codex-overleaf-panel .codex-subagent-readonly { font-size: 11px; color: var(--tl-fg-3); }
31
- #codex-overleaf-panel .codex-subagent-parent { display: grid; gap: 4px; padding: 7px 22px 12px; font-size: 12px; line-height: 1.5; color: var(--tl-fg-3); min-width: 0; }
37
+ #codex-overleaf-panel .codex-subagent-readonly { font-size: var(--tl-text-xs, 11px); color: var(--tl-fg-3); }
38
+ #codex-overleaf-panel .codex-subagent-parent { display: grid; gap: 4px; padding: 7px 22px 12px; font-size: var(--tl-text-sm, 12px); line-height: 1.5; color: var(--tl-fg-3); min-width: 0; }
32
39
  #codex-overleaf-panel .codex-subagent-parent-label { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
33
- #codex-overleaf-panel .codex-subagent-parent-count { font-size: 11px; }
40
+ #codex-overleaf-panel .codex-subagent-parent-count { font-size: var(--tl-text-xs, 11px); }
34
41
  #codex-overleaf-panel .codex-subagent-siblings { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 18px 10px; flex: 0 0 auto; max-height: 116px; overflow-y: auto; }
35
42
  #codex-overleaf-panel .codex-subagent-sibling { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
36
43
  #codex-overleaf-panel .codex-subagent-sibling[aria-pressed="true"] { background: var(--tl-hover); color: var(--tl-fg-1); }
37
44
  #codex-overleaf-panel .codex-subagent-body { flex: 1; min-height: 0; min-width: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 12px 22px 24px; scrollbar-gutter: stable; }
38
45
  #codex-overleaf-panel .codex-subagent-title { margin: 0 0 6px; font-size: 17px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; }
39
- #codex-overleaf-panel .codex-subagent-meta { font-size: 11px; color: var(--tl-fg-3); line-height: 1.5; margin-bottom: 18px; }
40
- #codex-overleaf-panel .codex-subagent-assignment { margin-bottom: 18px; font-size: 12px; color: var(--tl-fg-3); }
46
+ #codex-overleaf-panel .codex-subagent-meta { font-size: var(--tl-text-xs, 11px); color: var(--tl-fg-3); line-height: 1.5; margin-bottom: 18px; }
47
+ #codex-overleaf-panel .codex-subagent-assignment { margin-bottom: 18px; font-size: var(--tl-text-sm, 12px); color: var(--tl-fg-3); }
41
48
  #codex-overleaf-panel .codex-subagent-assignment summary { cursor: pointer; padding: 5px 0; }
42
- #codex-overleaf-panel .codex-subagent-assignment p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
49
+ #codex-overleaf-panel .codex-subagent-assignment p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
43
50
  #codex-overleaf-panel .codex-subagent-empty,
44
- #codex-overleaf-panel .codex-subagent-history-note { font-size: 12px; line-height: 1.6; color: var(--tl-fg-3); margin: 12px 0; }
51
+ #codex-overleaf-panel .codex-subagent-history-note { font-size: var(--tl-text-sm, 12px); line-height: 1.6; color: var(--tl-fg-3); margin: 12px 0; }
45
52
  #codex-overleaf-panel .codex-subagent-latest { align-self: center; background: var(--tl-surface-2); border-color: var(--tl-border); }
46
- #codex-overleaf-panel .codex-subagent-footer { flex: 0 0 auto; padding: 12px 22px; font-size: 11px; color: var(--tl-fg-3); }
53
+ #codex-overleaf-panel .codex-subagent-footer { flex: 0 0 auto; padding: 12px 22px; font-size: var(--tl-text-xs, 11px); color: var(--tl-fg-3); }
47
54
  #codex-overleaf-panel .codex-subagent-view :is(pre, code) { max-width: 100%; overflow-wrap: anywhere; }
48
55
  #codex-overleaf-panel :is(.run-subagent-row, .codex-subagent-back, .codex-subagent-sibling, .codex-subagent-latest):focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 2px; }
49
56
  @media (pointer: coarse) {
50
57
  #codex-overleaf-panel :is(.codex-subagent-back, .codex-subagent-sibling, .codex-subagent-latest) { min-height: 44px; }
51
58
  }
52
59
 
60
+ /* Child view polish: a real back control, a lock for read-only, status dots on
61
+ the sibling tabs, and one parent status line instead of three. */
62
+ #codex-overleaf-panel .codex-subagent-view-head { padding: 10px 12px; border-bottom: 1px solid var(--tl-border); }
63
+ #codex-overleaf-panel .codex-subagent-back { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px 4px 6px; border-color: var(--tl-border); background: var(--tl-surface-1); color: var(--tl-fg-1); }
64
+ #codex-overleaf-panel .codex-subagent-back .codex-glyph { width: 14px; height: 14px; stroke-width: 1.6; }
65
+ #codex-overleaf-panel .codex-subagent-readonly { display: inline-flex; align-items: center; gap: 4px; }
66
+ #codex-overleaf-panel .codex-subagent-readonly .codex-glyph { width: 12px; height: 12px; stroke-width: 1.5; }
67
+ #codex-overleaf-panel .codex-subagent-parent { display: flex; flex-wrap: wrap; gap: 0 8px; padding: 10px 22px 6px; }
68
+ #codex-overleaf-panel .codex-subagent-parent-count:not([hidden])::before { content: "·"; margin-right: 8px; color: var(--tl-fg-4); }
69
+ #codex-overleaf-panel .codex-subagent-parent-count[hidden] { display: none; }
70
+ #codex-overleaf-panel .codex-subagent-siblings { margin: 4px 18px 8px; padding: 2px; gap: 2px; border-radius: 8px; background: var(--tl-surface-2); }
71
+ #codex-overleaf-panel .codex-subagent-sibling { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: center; gap: 6px; min-width: 0; border-radius: 6px; }
72
+ #codex-overleaf-panel .codex-subagent-sibling[aria-pressed="true"] { background: var(--tl-surface-1); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12); font-weight: 500; }
73
+ #codex-overleaf-panel :is(.codex-subagent-sibling, .codex-subagent-meta)::before { content: ""; flex: none; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--tl-fg-4); }
74
+ #codex-overleaf-panel .codex-subagent-meta::before { margin-right: 6px; vertical-align: 1px; }
75
+ #codex-overleaf-panel :is(.codex-subagent-sibling, .codex-subagent-meta)[data-state="completed"]::before { background: var(--tl-ok); }
76
+ #codex-overleaf-panel :is(.codex-subagent-sibling, .codex-subagent-meta)[data-state="failed"]::before { background: var(--tl-fail); }
77
+ #codex-overleaf-panel :is(.codex-subagent-sibling, .codex-subagent-meta):is([data-state="running"], [data-state="pending"])::before { background: var(--tl-run); }
78
+ #codex-overleaf-panel .codex-subagent-title { font-size: 18px; }
79
+
53
80
  /* Protocol-brand marks inherit the provider dialog's light/dark foreground. */
54
81
  .codex-provider-dialog-root .codex-provider-nav-mark .codex-provider-brand-icon,
55
82
  .codex-provider-dialog-root .codex-provider-template-mark .codex-provider-brand-icon {
@@ -67,28 +94,28 @@
67
94
  .codex-provider-dialog-root .codex-provider-model-close:hover { background: var(--provider-hover); color: var(--provider-text); }
68
95
  .codex-provider-dialog-root .codex-provider-model-close svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
69
96
  .codex-provider-dialog-root .codex-provider-model-basics { display: grid; gap: 18px; }
70
- .codex-provider-dialog-root .codex-provider-model-types-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 8px; color: var(--provider-field-label); font-size: 12px; }
71
- .codex-provider-dialog-root .codex-provider-model-types-head small { color: var(--provider-muted); font-size: 11px; }
97
+ .codex-provider-dialog-root .codex-provider-model-types-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 8px; color: var(--provider-field-label); font-size: var(--tl-text-sm, 12px); }
98
+ .codex-provider-dialog-root .codex-provider-model-types-head small { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
72
99
  .codex-provider-dialog-root .codex-provider-type-options { display: flex; flex-wrap: wrap; gap: 8px; }
73
- .codex-provider-dialog-root .codex-provider-type-chip { box-sizing: border-box; display: inline-flex; align-items: center; gap: 7px; min-height: 34px; margin: 0; padding: 6px 10px; border: 1px solid var(--provider-checkbox-border); border-radius: 7px; color: var(--provider-text); font-size: 12px; cursor: pointer; }
100
+ .codex-provider-dialog-root .codex-provider-type-chip { box-sizing: border-box; display: inline-flex; align-items: center; gap: 7px; min-height: 34px; margin: 0; padding: 6px 10px; border: 1px solid var(--provider-checkbox-border); border-radius: 7px; color: var(--provider-text); font-size: var(--tl-text-sm, 12px); cursor: pointer; }
74
101
  .codex-provider-dialog-root .codex-provider-type-chip.is-fixed { cursor: default; border-color: var(--provider-line); background: var(--provider-bg); }
75
- .codex-provider-dialog-root .codex-provider-type-chip small { font-size: 10px; color: var(--provider-muted); }
102
+ .codex-provider-dialog-root .codex-provider-type-chip small { font-size: var(--tl-text-xs, 11px); color: var(--provider-muted); }
76
103
  .codex-provider-dialog-root .codex-provider-type-chip svg { width: 14px; height: 14px; fill: none; stroke: var(--provider-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
77
104
  .codex-provider-dialog-root .codex-provider-type-chip input { appearance: auto; position: static; width: 14px; height: 14px; min-width: 14px; min-height: 14px; margin: 0; opacity: 1; accent-color: var(--provider-accent); }
78
105
  .codex-provider-dialog-root .codex-provider-type-chip:has(input:checked) { border-color: var(--provider-accent); background: color-mix(in srgb, var(--provider-accent) 10%, var(--provider-surface)); }
79
106
  .codex-provider-dialog-root .codex-provider-type-chip:has(input:focus-visible) { outline: 2px solid var(--provider-accent); outline-offset: 2px; }
80
107
  .codex-provider-dialog-root .codex-provider-model-settings { margin-top: 12px; }
81
108
  .codex-provider-dialog-root .codex-provider-model-basics + .codex-provider-model-settings { margin-top: 22px; }
82
- .codex-provider-dialog-root .codex-provider-model-settings > summary { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 4px 0; color: var(--provider-text); font-size: 12px; cursor: pointer; list-style: none; }
109
+ .codex-provider-dialog-root .codex-provider-model-settings > summary { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 4px 0; color: var(--provider-text); font-size: var(--tl-text-sm, 12px); cursor: pointer; list-style: none; }
83
110
  .codex-provider-dialog-root .codex-provider-model-settings > summary::-webkit-details-marker { display: none; }
84
111
  .codex-provider-dialog-root .codex-provider-model-settings > summary::before { content: ""; width: 5px; height: 5px; flex: 0 0 5px; margin-right: 3px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); color: var(--provider-muted); }
85
112
  .codex-provider-dialog-root .codex-provider-model-settings[open] > summary::before { transform: rotate(135deg); }
86
- .codex-provider-dialog-root .codex-provider-model-settings > summary small { min-width: 0; max-width: 65%; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--provider-muted); font-size: 11px; }
113
+ .codex-provider-dialog-root .codex-provider-model-settings > summary small { min-width: 0; max-width: 65%; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
87
114
  .codex-provider-dialog-root .codex-provider-model-settings > summary:focus-visible { outline: 2px solid var(--provider-accent); outline-offset: 2px; border-radius: 4px; }
88
115
  .codex-provider-dialog-root .codex-provider-model-settings-body { padding: 8px 0 6px; }
89
116
  .codex-provider-dialog-root .codex-provider-model-settings-body .codex-provider-effort-chips { margin-bottom: 16px; }
90
117
  .codex-provider-dialog-root .is-minimal .codex-provider-model-editor-foot { align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 12px; }
91
- .codex-provider-dialog-root .is-minimal .codex-provider-model-editor-foot > small { flex: 1; margin-right: auto; color: var(--provider-muted); font-size: 10px; line-height: 1.4; }
118
+ .codex-provider-dialog-root .is-minimal .codex-provider-model-editor-foot > small { flex: 1; margin-right: auto; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
92
119
 
93
120
  /* Provider confirmations belong to the plugin's top layer, not window.confirm. */
94
121
  .codex-provider-dialog-root .codex-provider-confirmation {
@@ -108,9 +135,9 @@
108
135
  .codex-provider-dialog-root .codex-provider-confirmation:not([open]) { display: none; }
109
136
  .codex-provider-dialog-root .codex-provider-confirmation::backdrop { background: var(--provider-backdrop); }
110
137
  .codex-provider-dialog-root .codex-provider-confirmation header { padding: 20px 22px 0; }
111
- .codex-provider-dialog-root .codex-provider-confirm-brand { color: var(--provider-muted); font-size: 11px; }
138
+ .codex-provider-dialog-root .codex-provider-confirm-brand { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
112
139
  .codex-provider-dialog-root .codex-provider-confirmation h3 { margin: 8px 0 0; color: var(--provider-text); font-size: 17px; font-weight: 650; line-height: 1.4; }
113
- .codex-provider-dialog-root .codex-provider-confirmation p { margin: 12px 0 0; padding: 0 22px; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
140
+ .codex-provider-dialog-root .codex-provider-confirmation p { margin: 12px 0 0; padding: 0 22px; font-size: var(--tl-text-md, 13px); line-height: 1.65; overflow-wrap: anywhere; }
114
141
  .codex-provider-dialog-root .codex-provider-confirmation footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 20px 22px; }
115
142
  .codex-provider-dialog-root .codex-provider-confirmation button { min-height: 36px; white-space: normal; }
116
143
  .codex-provider-dialog-root .codex-provider-confirmation .codex-provider-danger-button { border-color: var(--provider-danger); color: var(--provider-danger); }
@@ -134,10 +161,10 @@
134
161
  .codex-provider-v2 .codex-provider-row[aria-current="true"] { box-shadow: none; background: var(--provider-hover); }
135
162
  .codex-provider-v2 .codex-provider-nav-copy { display: grid; gap: 4px; min-width: 0; flex: 1; }
136
163
  .codex-provider-v2 .codex-provider-nav-mark,
137
- .codex-provider-v2 .codex-provider-template-mark { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border: 1px solid var(--provider-line); border-radius: 8px; background: var(--provider-surface); color: var(--provider-text); font-size: 13px; font-weight: 650; }
138
- .codex-provider-v2 .codex-provider-add { flex: 0 0 auto; margin: 0; padding: 10px; font-size: 12px; }
164
+ .codex-provider-v2 .codex-provider-template-mark { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border: 1px solid var(--provider-line); border-radius: 8px; background: var(--provider-surface); color: var(--provider-text); font-size: var(--tl-text-md, 13px); font-weight: 650; }
165
+ .codex-provider-v2 .codex-provider-add { flex: 0 0 auto; margin: 0; padding: 10px; font-size: var(--tl-text-sm, 12px); }
139
166
  .codex-provider-v2 .codex-provider-search { display: block; min-width: 0; }
140
- .codex-provider-v2 .codex-provider-search input { box-sizing: border-box; width: 100%; min-width: 0; padding: 8px 10px; border: 1px solid var(--provider-line); border-radius: 7px; background: transparent; color: var(--provider-text); font: inherit; font-size: 12px; }
167
+ .codex-provider-v2 .codex-provider-search input { box-sizing: border-box; width: 100%; min-width: 0; padding: 8px 10px; border: 1px solid var(--provider-line); border-radius: 7px; background: transparent; color: var(--provider-text); font: inherit; font-size: var(--tl-text-sm, 12px); }
141
168
  .codex-provider-v2 .codex-provider-search input::placeholder { color: var(--provider-muted); opacity: 1; }
142
169
  .codex-provider-v2 .codex-provider-detail { padding: 24px 28px; background: var(--provider-surface); }
143
170
  .codex-provider-v2 .codex-provider-detail-titleline { margin-bottom: 20px; align-items: center; }
@@ -147,38 +174,38 @@
147
174
  .codex-provider-v2 .codex-provider-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
148
175
  .codex-provider-v2 .codex-provider-name-field input { min-height: 32px; padding: 2px 5px; margin-left: -5px; border-color: transparent; background: transparent; font-size: 20px; font-weight: 650; }
149
176
  .codex-provider-v2 .codex-provider-name-field input:hover { border-color: var(--provider-line); }
150
- .codex-provider-v2 .codex-provider-detail-titleline p { font-size: 11px; }
177
+ .codex-provider-v2 .codex-provider-detail-titleline p { font-size: var(--tl-text-xs, 11px); }
151
178
  .codex-provider-v2 .codex-provider-form-grid { gap: 14px 16px; }
152
179
  .codex-provider-v2 .codex-provider-field { gap: 6px; font-weight: 500; }
153
- .codex-provider-v2 .codex-provider-field :is(input,select,textarea) { min-height: 36px; font-size: 13px; color: var(--provider-text); background: var(--provider-control-bg); }
180
+ .codex-provider-v2 .codex-provider-field :is(input,select,textarea) { min-height: 36px; font-size: var(--tl-text-md, 13px); color: var(--provider-text); background: var(--provider-control-bg); }
154
181
  .codex-provider-v2 .codex-provider-secret-row { align-items: stretch; gap: 5px; }
155
182
  .codex-provider-v2 .codex-provider-secret-row input { flex: 1; min-width: 0; }
156
183
  .codex-provider-v2 .codex-provider-inline-button { padding: 0 9px; min-height: 30px; font-weight: 500; }
157
184
  .codex-provider-v2 .codex-provider-inline-button:hover { background: var(--provider-hover); }
158
185
  .codex-provider-v2 .codex-provider-model-section { margin-top: 28px; }
159
186
  .codex-provider-v2 .codex-provider-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
160
- .codex-provider-v2 .codex-provider-section-head h4 { margin: 0; font-size: 13px; font-weight: 650; color: var(--provider-text); }
161
- .codex-provider-v2 .codex-provider-section-head h4 span { margin-left: 6px; font-size: 11px; font-weight: 450; color: var(--provider-muted); }
187
+ .codex-provider-v2 .codex-provider-section-head h4 { margin: 0; font-size: var(--tl-text-md, 13px); font-weight: 650; color: var(--provider-text); }
188
+ .codex-provider-v2 .codex-provider-section-head h4 span { margin-left: 6px; font-size: var(--tl-text-xs, 11px); font-weight: 450; color: var(--provider-muted); }
162
189
  .codex-provider-v2 .codex-provider-section-head p,
163
- .codex-provider-v2 .codex-provider-help { margin: 5px 0 12px; color: var(--provider-muted); font-size: 11px; line-height: 1.6; }
190
+ .codex-provider-v2 .codex-provider-help { margin: 5px 0 12px; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.6; }
164
191
  .codex-provider-v2 .codex-provider-section-head p { margin-bottom: 0; }
165
192
  .codex-provider-v2 .codex-provider-model-list { margin-top: 8px; display: grid; gap: 5px; }
166
193
  .codex-provider-v2 .codex-provider-model-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; column-gap: 10px; padding: 11px 10px; background: var(--provider-bg); border-radius: 9px; }
167
194
  .codex-provider-v2 .codex-provider-model-identity { display: grid; gap: 4px; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--provider-text); text-align: left; cursor: pointer; }
168
- .codex-provider-v2 .codex-provider-model-identity strong { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
169
- .codex-provider-v2 .codex-provider-model-identity code { font-size: 11px; padding: 0; background: transparent; color: var(--provider-muted); overflow-wrap: anywhere; }
170
- .codex-provider-v2 .codex-provider-model-identity small { font-size: 11px; color: var(--provider-muted); }
171
- .codex-provider-v2 .codex-provider-default-tag { color: var(--provider-accent); font-size: 10px; font-weight: 500; }
195
+ .codex-provider-v2 .codex-provider-model-identity strong { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; font-size: var(--tl-text-md, 13px); font-weight: 600; overflow-wrap: anywhere; }
196
+ .codex-provider-v2 .codex-provider-model-identity code { font-size: var(--tl-text-xs, 11px); padding: 0; background: transparent; color: var(--provider-muted); overflow-wrap: anywhere; }
197
+ .codex-provider-v2 .codex-provider-model-identity small { font-size: var(--tl-text-xs, 11px); color: var(--provider-muted); }
198
+ .codex-provider-v2 .codex-provider-default-tag { color: var(--provider-accent); font-size: var(--tl-text-xs, 11px); font-weight: 500; }
172
199
  .codex-provider-v2 .codex-provider-model-actions { display: flex; align-items: center; gap: 1px; }
173
200
  .codex-provider-v2 .codex-provider-model-action { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: var(--provider-muted); cursor: pointer; }
174
201
  .codex-provider-v2 .codex-provider-model-action:hover { color: var(--provider-text); background: var(--provider-hover); }
175
202
  .codex-provider-v2 .codex-provider-model-action[data-selected="true"] { color: var(--provider-accent); }
176
203
  .codex-provider-v2 .codex-provider-model-action[data-provider-model-action="remove"]:hover { color: var(--provider-danger); }
177
204
  .codex-provider-v2 .codex-provider-model-action svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
178
- .codex-provider-v2 .codex-provider-model-status { grid-column: 1/-1; margin-top: 5px; font-size: 10px; color: var(--provider-muted); line-height: 1.4; overflow-wrap: anywhere; }
205
+ .codex-provider-v2 .codex-provider-model-status { grid-column: 1/-1; margin-top: 5px; font-size: var(--tl-text-xs, 11px); color: var(--provider-muted); line-height: 1.4; overflow-wrap: anywhere; }
179
206
  .codex-provider-v2 .codex-provider-model-status[data-tone="success"] { color: var(--provider-accent); }
180
207
  .codex-provider-v2 .codex-provider-model-status[data-tone="failed"] { color: var(--provider-danger); }
181
- .codex-provider-v2 .codex-provider-model-empty { padding: 22px 14px; border: 1px dashed var(--provider-line); border-radius: 9px; color: var(--provider-muted); font-size: 12px; line-height: 1.65; }
208
+ .codex-provider-v2 .codex-provider-model-empty { padding: 22px 14px; border: 1px dashed var(--provider-line); border-radius: 9px; color: var(--provider-muted); font-size: var(--tl-text-sm, 12px); line-height: 1.65; }
182
209
  .codex-provider-v2 .codex-provider-advanced { margin-top: 24px; border: 0; padding: 0; }
183
210
  .codex-provider-v2 .codex-provider-advanced summary { padding: 8px 0; font-weight: 500; }
184
211
  .codex-provider-v2 .codex-provider-advanced[open] summary { margin-bottom: 8px; }
@@ -186,7 +213,7 @@
186
213
  .codex-provider-v2 .codex-provider-test-row { background: transparent; border: 0; padding: 12px 0 0; box-shadow: none; gap: 8px; }
187
214
  .codex-provider-v2 .codex-provider-test-copy > span { display: none; }
188
215
  .codex-provider-v2 .codex-provider-test-controls { grid-template-columns: minmax(0,1fr) auto; }
189
- .codex-provider-v2 .codex-provider-test-select-shell select { min-height: 34px; font-weight: 450; font-size: 12px; background: var(--provider-control-bg); }
216
+ .codex-provider-v2 .codex-provider-test-select-shell select { min-height: 34px; font-weight: 450; font-size: var(--tl-text-sm, 12px); background: var(--provider-control-bg); }
190
217
  .codex-provider-v2 .codex-provider-test-select-shell select:hover { background: var(--provider-hover); border-color: var(--provider-line); }
191
218
  .codex-provider-v2 .codex-provider-test-button { min-height: 34px; background: var(--provider-control-bg); border-color: var(--provider-line); color: var(--provider-text); box-shadow: none; font-weight: 500; transform: none; }
192
219
  .codex-provider-v2 .codex-provider-test-button:not(:disabled):hover { background: var(--provider-hover); color: var(--provider-text); transform: none; }
@@ -199,27 +226,27 @@
199
226
  .codex-provider-v2 .codex-provider-template { display: flex; align-items: center; gap: 12px; min-height: 82px; padding: 14px; background: transparent; border: 1px solid var(--provider-line); border-radius: 10px; color: var(--provider-text); text-align: left; cursor: pointer; }
200
227
  .codex-provider-v2 .codex-provider-template:hover { background: var(--provider-hover); }
201
228
  .codex-provider-v2 .codex-provider-template > span:nth-child(2) { flex: 1; min-width: 0; }
202
- .codex-provider-v2 .codex-provider-template strong { display: block; font-size: 13px; font-weight: 600; }
203
- .codex-provider-v2 .codex-provider-template small { display: block; margin-top: 5px; font-size: 10px; line-height: 1.5; color: var(--provider-muted); }
229
+ .codex-provider-v2 .codex-provider-template strong { display: block; font-size: var(--tl-text-md, 13px); font-weight: 600; }
230
+ .codex-provider-v2 .codex-provider-template small { display: block; margin-top: 5px; font-size: var(--tl-text-xs, 11px); line-height: 1.5; color: var(--provider-muted); }
204
231
  .codex-provider-v2 .codex-provider-model-editor { box-sizing: border-box; width: min(570px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 1px solid var(--provider-line); border-radius: 12px; background: var(--provider-surface); color: var(--provider-text); font: inherit; box-shadow: var(--provider-shadow); }
205
232
  .codex-provider-v2 .codex-provider-model-editor[open] { display: flex; flex-direction: column; }
206
233
  .codex-provider-v2 .codex-provider-model-editor:not([open]) { display: none; }
207
234
  .codex-provider-v2 .codex-provider-model-editor::backdrop { background: var(--provider-backdrop); }
208
235
  .codex-provider-v2 .codex-provider-model-editor-head { flex: 0 0 auto; padding: 20px 22px 12px; }
209
236
  .codex-provider-v2 .codex-provider-model-editor-head h3 { margin: 0; font-size: 17px; font-weight: 650; }
210
- .codex-provider-v2 .codex-provider-model-editor-head p { margin: 7px 0 0; font-size: 11px; line-height: 1.5; color: var(--provider-muted); }
237
+ .codex-provider-v2 .codex-provider-model-editor-head p { margin: 7px 0 0; font-size: var(--tl-text-xs, 11px); line-height: 1.5; color: var(--provider-muted); }
211
238
  .codex-provider-v2 .codex-provider-model-editor-body { padding: 8px 22px 16px; overflow: auto; min-height: 0; }
212
239
  .codex-provider-v2 .codex-provider-model-editor-foot { display: flex; flex: 0 0 auto; justify-content: flex-end; gap: 8px; padding: 14px 22px; }
213
- .codex-provider-v2 .codex-provider-model-checkbox { display: flex; align-items: center; gap: 8px; margin: 16px 0; color: var(--provider-text); font-size: 12px; }
240
+ .codex-provider-v2 .codex-provider-model-checkbox { display: flex; align-items: center; gap: 8px; margin: 16px 0; color: var(--provider-text); font-size: var(--tl-text-sm, 12px); }
214
241
  .codex-provider-v2 .codex-provider-model-checkbox input { accent-color: var(--provider-accent); }
215
- .codex-provider-v2 .codex-provider-model-reasoning h4 { margin: 20px 0 0; font-size: 12px; font-weight: 600; }
242
+ .codex-provider-v2 .codex-provider-model-reasoning h4 { margin: 20px 0 0; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
216
243
  .codex-provider-v2 .codex-provider-effort-chips { display: flex; flex-wrap: wrap; gap: 7px; }
217
244
  .codex-provider-v2 .codex-provider-effort-chips label { cursor: pointer; }
218
245
  .codex-provider-v2 .codex-provider-effort-chips input { position: absolute; opacity: 0; width: 1px; height: 1px; }
219
- .codex-provider-v2 .codex-provider-effort-chips span { display: block; padding: 5px 9px; border: 1px solid var(--provider-line); border-radius: 6px; font-size: 12px; color: var(--provider-muted); }
246
+ .codex-provider-v2 .codex-provider-effort-chips span { display: block; padding: 5px 9px; border: 1px solid var(--provider-line); border-radius: 6px; font-size: var(--tl-text-sm, 12px); color: var(--provider-muted); }
220
247
  .codex-provider-v2 .codex-provider-effort-chips input:checked + span { border-color: var(--provider-accent); color: var(--provider-accent); background: var(--provider-hover); }
221
248
  .codex-provider-v2 .codex-provider-effort-chips input:focus-visible + span { outline: 2px solid var(--provider-accent); outline-offset: 2px; }
222
- .codex-provider-v2 .codex-provider-model-error { color: var(--provider-danger); font-size: 12px; line-height: 1.6; }
249
+ .codex-provider-v2 .codex-provider-model-error { color: var(--provider-danger); font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
223
250
  .codex-provider-v2 [hidden] { display: none !important; }
224
251
  @media (max-width: 660px) {
225
252
  .codex-provider-v2 .codex-provider-dialog-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0,1fr); }
@@ -285,6 +312,12 @@
285
312
  overflow-wrap: anywhere;
286
313
  }
287
314
 
315
+ #codex-overleaf-panel .col-log .codex-line-reference-group,
316
+ #codex-overleaf-panel .col-log .codex-line-reference-group > .codex-line-reference {
317
+ white-space: nowrap;
318
+ overflow-wrap: normal;
319
+ }
320
+
288
321
  /* Preserve long code/formulas and table columns without widening the log. */
289
322
  #codex-overleaf-panel .col-log :is(pre, .run-markdown-table, .run-math--display) {
290
323
  box-sizing: border-box;
@@ -306,7 +339,7 @@
306
339
  min-width: 0;
307
340
  max-width: 100%;
308
341
  color: var(--tl-fg-2);
309
- font-size: 14px;
342
+ font-size: var(--tl-text-base, 14px);
310
343
  line-height: 1.6;
311
344
  overflow-wrap: anywhere;
312
345
  word-break: normal;
@@ -457,7 +490,7 @@
457
490
  background: var(--wb-surface);
458
491
  color: var(--wb-fg);
459
492
  font: inherit;
460
- font-size: 14px;
493
+ font-size: var(--tl-text-base, 14px);
461
494
  line-height: 1.5;
462
495
  box-shadow: 0 22px 80px #00000040;
463
496
  }
@@ -477,74 +510,112 @@
477
510
  #codex-overleaf-panel .codex-settings-workbench[open] { display: flex; flex-direction: column; animation: codexSettingsEnter 140ms ease-out; }
478
511
  #codex-overleaf-panel .codex-settings-workbench::backdrop { background: #15201966; }
479
512
  #codex-overleaf-panel .codex-settings-workbench [hidden] { display: none !important; }
480
- #codex-overleaf-panel .codex-wb-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 26px 18px; flex-shrink: 0; }
481
- #codex-overleaf-panel .codex-wb-heading h2 { margin: 0; color: var(--wb-fg); font-size: 21px; line-height: 1.4; font-weight: 600; letter-spacing: -.35px; }
482
- #codex-overleaf-panel .codex-wb-heading p { margin: 4px 0 0; color: var(--wb-muted); font-size: 12px; line-height: 1.5; }
483
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-close { flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px; padding: 0; margin: 0; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--wb-muted); font-size: 23px; line-height: 1; box-shadow: none; }
484
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-close:hover { color: var(--wb-fg); background: var(--wb-input); border-color: var(--wb-line); }
485
- #codex-overleaf-panel .codex-wb-layout { display: grid; grid-template-columns: 205px minmax(0, 1fr); min-height: 0; flex: 1; }
486
- #codex-overleaf-panel .codex-wb-sidebar { display: flex; flex-direction: column; min-height: 0; gap: 22px; padding: 18px 13px; background: var(--wb-rail); overflow-y: auto; }
487
- #codex-overleaf-panel .codex-wb-filters { display: flex; gap: 3px; padding: 3px; background: var(--wb-surface); border-radius: 8px; }
488
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-filters button { flex: 1; min-width: 0; min-height: 31px; padding: 5px 6px; border: 0; border-radius: 5px; background: transparent; color: var(--wb-muted); box-shadow: none; font-size: 11px; font-weight: 500; white-space: normal; line-height: 1.5; }
489
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-filters button[aria-pressed="true"] { color: var(--wb-fg); background: var(--wb-input); }
490
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-filters button:disabled { opacity: .45; cursor: not-allowed; }
491
- #codex-overleaf-panel .codex-wb-nav { display: flex; flex-direction: column; gap: 5px; }
492
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 39px; margin: 0; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; box-shadow: none; color: var(--wb-muted); text-align: left; white-space: normal; font-size: 12.5px; font-weight: 500; line-height: 1.5; }
493
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button:hover { background: var(--wb-input); color: var(--wb-fg); }
494
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button[aria-selected="true"] { background: var(--wb-green-soft); color: var(--wb-green); }
495
- #codex-overleaf-panel .codex-wb-nav-icon { display: flex; align-items: center; width: 16px; flex-shrink: 0; }
496
- #codex-overleaf-panel .codex-wb-nav-icon .codex-icon { width: 16px; height: 16px; }
497
- #codex-overleaf-panel .codex-wb-brand { margin-top: auto; padding: 12px 10px 0; color: var(--wb-muted); font-size: 11px; letter-spacing: .1px; }
513
+ /* Quiet-list workbench: the title sits on the rail, sections are plain headings over
514
+ hairline-separated rows, and scope lives in the sidebar sections and page lines. */
515
+ #codex-overleaf-panel .codex-settings-workbench {
516
+ --wb-hairline: color-mix(in srgb, var(--wb-line) 72%, transparent);
517
+ --wb-selected: color-mix(in srgb, var(--wb-fg) 7%, transparent);
518
+ --wb-hover: color-mix(in srgb, var(--wb-fg) 4%, transparent);
519
+ --wb-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
520
+ }
521
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-close { position: absolute; top: 14px; right: 14px; z-index: 2; display: inline-grid; place-items: center; width: 32px; height: 32px; min-height: 32px; padding: 0; margin: 0; border: 0; border-radius: 7px; background: transparent; color: var(--wb-muted); font-size: 23px; line-height: 1; box-shadow: none; }
522
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-close:hover { color: var(--wb-fg); background: var(--wb-hover); }
523
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-close .codex-icon { width: 16px; height: 16px; }
524
+ #codex-overleaf-panel .codex-provider-dialog-root .codex-provider-back-button { display: inline-flex; align-items: center; gap: 4px; padding: 0 10px 0 6px; }
525
+ #codex-overleaf-panel .codex-provider-dialog-root .codex-provider-back-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
526
+ #codex-overleaf-panel .codex-wb-layout { display: grid; grid-template-columns: 216px minmax(0, 1fr); min-height: 0; flex: 1; }
527
+ #codex-overleaf-panel .codex-wb-sidebar { display: flex; flex-direction: column; min-height: 0; gap: 14px; padding: 18px 10px 14px; border-right: 1px solid var(--wb-hairline); background: var(--wb-rail); overflow-y: auto; }
528
+ #codex-overleaf-panel .codex-wb-title { margin: 0; padding: 2px 12px 0; color: var(--wb-fg); font-size: var(--tl-text-lg, 15px); font-weight: 600; line-height: 1.5; letter-spacing: -.1px; }
529
+ #codex-overleaf-panel .codex-wb-nav { display: flex; flex-direction: column; gap: 1px; }
530
+ #codex-overleaf-panel .codex-wb-nav-section { padding: 16px 10px 6px; color: var(--wb-muted); font-size: var(--tl-text-xs, 11px); font-weight: 600; line-height: 1.4; letter-spacing: .6px; text-transform: uppercase; }
531
+ #codex-overleaf-panel .codex-wb-nav-section:first-child { padding-top: 4px; }
532
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 30px; margin: 0; padding: 5px 10px; border: 0; border-radius: 6px; background: transparent; box-shadow: none; color: var(--wb-muted); text-align: left; white-space: normal; font-size: var(--tl-text-md, 13px); font-weight: 400; line-height: 1.45; }
533
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button:hover { background: var(--wb-hover); color: var(--wb-fg); }
534
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button[aria-selected="true"] { background: var(--wb-selected); color: var(--wb-fg); font-weight: 500; }
535
+ #codex-overleaf-panel .codex-wb-nav-icon { display: flex; align-items: center; width: 15px; flex-shrink: 0; }
536
+ #codex-overleaf-panel .codex-wb-nav-icon .codex-icon { width: 15px; height: 15px; }
498
537
  #codex-overleaf-panel .codex-wb-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
499
- #codex-overleaf-panel .codex-wb-body { flex: 1; min-height: 0; min-width: 0; padding: 24px 30px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
538
+ #codex-overleaf-panel .codex-wb-body { flex: 1; min-height: 0; min-width: 0; padding: 54px 48px 40px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
500
539
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-panel,
501
540
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel { display: block; min-height: 0; max-height: none; height: auto; width: 100%; padding: 0; margin: 0; border: 0; background: transparent; overflow: visible; box-shadow: none; }
502
- #codex-overleaf-panel .codex-wb-page-title { margin: 0 0 23px; font-size: 20px; line-height: 1.45; font-weight: 600; letter-spacing: -.25px; color: var(--wb-fg); }
541
+ #codex-overleaf-panel .codex-wb-page { max-width: 600px; }
542
+ #codex-overleaf-panel .codex-wb-page-title { margin: 0; font-size: 20px; line-height: 1.4; font-weight: 600; letter-spacing: -.3px; color: var(--wb-fg); }
543
+ #codex-overleaf-panel .codex-wb-page-scope { margin: 4px 0 26px; color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); line-height: 1.5; }
544
+ #codex-overleaf-panel .codex-wb-page-scope b { color: var(--wb-fg); font-weight: 500; }
545
+ /* Sections: always open, not focusable, no chevron, no scope chip. */
503
546
  #codex-overleaf-panel .codex-settings-workbench .codex-set-group,
504
- #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-scope { margin: 0 0 24px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
547
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-scope { margin: 0 0 36px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
548
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group { overflow: visible; }
505
549
  #codex-overleaf-panel .codex-settings-workbench .codex-set-group:last-child { margin-bottom: 0; }
506
- #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head { display: flex; align-items: center; gap: 9px; padding: 0 0 10px; border: 0; background: transparent; color: var(--wb-muted); font-size: 12px; line-height: 1.5; }
507
- #codex-overleaf-panel .codex-settings-workbench .codex-set-group-title { flex: 1; min-width: 0; gap: 7px; flex-wrap: wrap; font-size: 12px; font-weight: 500; color: var(--wb-muted); }
550
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--wb-fg); cursor: default; list-style: none; }
551
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head::-webkit-details-marker { display: none; }
552
+ /* Headings are not controls: cancel the panel-wide summary hover band. */
553
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head:hover { background: transparent; }
554
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head::after { content: none; display: none; }
555
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-title { flex: 1; min-width: 0; gap: 7px; flex-wrap: wrap; font-size: var(--tl-text-md, 13px); font-weight: 600; color: var(--wb-fg); }
508
556
  #codex-overleaf-panel .codex-settings-workbench .codex-set-group-icon { display: none; }
509
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-scope-label { flex-shrink: 0; font-size: 10.5px; font-weight: 400; color: var(--wb-muted); opacity: .9; margin-left: auto; }
510
- #codex-overleaf-panel .codex-settings-workbench .codex-set-saved { color: var(--wb-green); font-size: 11px; order: 3; margin-left: 0; }
557
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-saved { margin-left: auto; color: var(--wb-green); font-size: var(--tl-text-xs, 11px); }
558
+ /* A sole section repeats the page title: drop the title, keep the Saved mark above the first hairline. */
559
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group[data-sole-section="true"] > .codex-set-group-head { position: relative; height: 0; margin: 0; }
560
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group[data-sole-section="true"] > .codex-set-group-head .codex-set-group-title { display: none; }
561
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group[data-sole-section="true"] > .codex-set-group-head .codex-set-saved { position: absolute; right: 0; bottom: 8px; }
562
+ /* Rows hang from one hairline and are separated by hairlines. */
511
563
  #codex-overleaf-panel .codex-settings-workbench .codex-set-card { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
512
- #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 46px; padding: 10px 0; border: 0; color: var(--wb-fg); }
564
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card:not(.codex-provider-settings-entry) { gap: 0; border-top: 1px solid var(--wb-hairline); }
565
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > :is(.codex-project-settings-row, .codex-set-row, .codex-storage-data-row, .codex-skills-entry) ~ :is(.codex-project-settings-row, .codex-set-row, .codex-storage-data-row, .codex-skills-entry) { border-top: 1px solid var(--wb-hairline); }
566
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 0; padding: 13px 0; border: 0; color: var(--wb-fg); }
567
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row:has(+ .codex-set-row-help) { padding-bottom: 2px; }
568
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row + .codex-set-row-help { margin: 0; padding: 0 72px 13px 0; }
569
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row + [data-experimental-ot-menu-status] { padding: 0 0 13px; font-size: var(--tl-text-xs, 11px); }
570
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-set-row-help:first-child { margin: 12px 0 10px; }
513
571
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row-label,
514
- #codex-overleaf-panel .codex-settings-workbench .codex-set-row-label { font-size: 13px; font-weight: 500; line-height: 1.55; color: var(--wb-fg); }
515
- #codex-overleaf-panel .codex-settings-workbench .codex-set-row { padding: 11px 0; border: 0; }
572
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row-label { font-size: var(--tl-text-md, 13px); font-weight: 500; line-height: 1.55; color: var(--wb-fg); }
573
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row { padding: 13px 0; border: 0; }
516
574
  #codex-overleaf-panel .codex-settings-workbench .codex-set-row-help,
517
- #codex-overleaf-panel .codex-settings-workbench .codex-set-row-sub { margin: 2px 0 14px; color: var(--wb-muted); font-size: 12px; font-weight: 400; line-height: 1.6; opacity: 1; }
518
- #codex-overleaf-panel .codex-settings-workbench .codex-set-row-sub { display: block; margin: 4px 0 0; }
519
- #codex-overleaf-panel .codex-settings-workbench .codex-set-note { font-size: 12px; line-height: 1.6; }
575
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row-sub { margin: 2px 0 12px; color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); font-weight: 400; line-height: 1.55; opacity: 1; }
576
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row-sub { display: block; margin: 3px 0 0; }
577
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-note { font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
578
+ /* Fields */
520
579
  #codex-overleaf-panel .codex-settings-workbench .codex-set-select,
521
580
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-textarea,
522
- #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { color: var(--wb-fg); background: var(--wb-input); border: 1px solid var(--wb-line); border-radius: 7px; padding: 9px 11px; font: inherit; font-size: 13px; line-height: 1.6; box-shadow: none; }
581
+ #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { color: var(--wb-fg); background: var(--wb-surface); border: 1px solid var(--wb-line); border-radius: 7px; padding: 5px 10px; font: inherit; font-size: var(--tl-text-md, 13px); line-height: 1.55; box-shadow: none; }
523
582
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-textarea,
524
- #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { display: block; width: 100%; min-height: 110px; resize: vertical; }
525
- #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { min-height: 190px; }
583
+ #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { display: block; width: 100%; min-height: 88px; padding: 8px 11px; border-radius: 8px; resize: vertical; }
584
+ #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { min-height: 150px; }
585
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-custom-instructions-input { margin-bottom: 14px; }
586
+ /* Glob rules read as code. */
587
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-textarea { font-family: var(--wb-mono); font-size: var(--tl-text-sm, 12px); line-height: 1.7; }
526
588
  #codex-overleaf-panel .codex-settings-workbench textarea::placeholder { color: var(--wb-muted); opacity: .8; }
527
- #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row .codex-set-select { width: auto; min-width: 145px; max-width: 55%; }
589
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row .codex-set-select { width: auto; min-width: 145px; max-width: 55%; min-height: 30px; }
528
590
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch { appearance: none; -webkit-appearance: none; display: block; position: relative; flex: 0 0 36px; width: 36px; height: 22px; min-height: 22px; margin: 0; padding: 0; border: 1px solid var(--wb-line); border-radius: 20px; background: var(--wb-line); box-shadow: none; }
529
591
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch::before { content: none; }
530
592
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--wb-surface); box-shadow: 0 1px 2px #00000025; transform: translateX(0); transition: transform 130ms ease; }
531
593
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch:checked { background: var(--wb-switch); border-color: var(--wb-switch); }
532
594
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch:checked::after { transform: translateX(14px); background: var(--wb-thumb); }
533
- #codex-overleaf-panel .codex-settings-workbench .codex-set-btn,
534
- #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-panel button:not(.codex-wb-theme-choice) { min-height: 34px; height: auto; line-height: 1.5; white-space: normal; }
535
- #codex-overleaf-panel .codex-settings-workbench .codex-set-btn { width: fit-content; max-width: 100%; padding: 7px 12px; border: 1px solid var(--wb-line); border-radius: 7px; color: var(--wb-fg); background: var(--wb-input); font-size: 12px; box-shadow: none; }
595
+ /* One quiet button for every secondary action; danger only tints text and border. */
596
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-panel button:not(.codex-wb-theme-choice) { min-height: 28px; height: auto; line-height: 1.4; white-space: normal; }
597
+ #codex-overleaf-panel .codex-settings-workbench :is(.codex-set-btn, .codex-history-empty .codex-history-jump, .codex-history-more) { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: auto; max-width: 100%; min-height: 28px; padding: 3px 11px; margin: 0; border: 1px solid var(--wb-line); border-radius: 7px; background: var(--wb-surface); color: var(--wb-fg); font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.4; text-decoration: none; box-shadow: 0 1px 0 color-mix(in srgb, var(--wb-fg) 5%, transparent); }
598
+ #codex-overleaf-panel .codex-settings-workbench :is(.codex-set-btn, .codex-history-empty .codex-history-jump, .codex-history-more):hover { background: var(--wb-hover); text-decoration: none; }
599
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-btn.codex-set-btn--danger { color: var(--tl-fail); border-color: color-mix(in srgb, var(--tl-fail) 38%, var(--wb-line)); }
536
600
  #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
537
- #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-entry .codex-set-btn,
538
- #codex-overleaf-panel .codex-settings-workbench [data-update-settings] button { width: auto; }
539
- #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary { color: var(--wb-muted); font-size: 12px; }
540
- #codex-overleaf-panel .codex-settings-workbench .codex-provider-experimental-badge { font-size: 10px; white-space: normal; }
541
- #codex-overleaf-panel .codex-settings-workbench .codex-set-btn--danger { color: var(--tl-danger, #c6615e); }
542
- #codex-overleaf-panel .codex-wb-themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 0 0 11px; }
543
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-theme-choice { width: 100%; padding: 8px; border: 1px solid var(--wb-line); border-radius: 8px; background: transparent; color: var(--wb-fg); text-align: left; box-shadow: none; }
544
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-theme-choice[aria-checked="true"] { border-color: var(--wb-green); box-shadow: 0 0 0 1px var(--wb-green); }
545
- #codex-overleaf-panel .codex-wb-theme-preview { display: flex; height: 64px; margin: 0 0 8px; border: 1px solid #ced6d2; border-radius: 4px; background: #fafbf9; overflow: hidden; }
601
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-row { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
602
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-row-help { margin: 0; }
603
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-note { align-self: stretch; margin: 0; padding: 0; border: 0; background: none; }
604
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-note:not(:empty) { padding: 9px 12px; border-radius: 8px; color: var(--tl-fail); background: color-mix(in srgb, var(--tl-fail) 9%, transparent); }
605
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary { color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); }
606
+ /* The workbench rule above outranks the base tone rules; keep warnings and failures visible. */
607
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary[data-tone="warning"] { color: var(--tl-review); }
608
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary[data-tone="failed"] { color: var(--tl-fail); }
609
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-experimental-badge { font-size: var(--tl-text-xs, 11px); white-space: normal; }
610
+ /* Theme: three compact swatches. */
611
+ #codex-overleaf-panel .codex-wb-themes { display: grid; grid-template-columns: repeat(3, 128px); gap: 10px; margin: 0 0 4px; }
612
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row:has(+ .codex-wb-themes) { padding-bottom: 10px; }
613
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-themes + .codex-set-row-help { margin: 4px 0 0; padding-bottom: 13px; }
614
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-theme-choice { width: 100%; padding: 5px 5px 4px; border: 1px solid var(--wb-line); border-radius: 8px; background: transparent; color: var(--wb-fg); text-align: left; box-shadow: none; }
615
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-theme-choice[aria-checked="true"] { border-color: var(--wb-fg); box-shadow: 0 0 0 1px var(--wb-fg); }
616
+ #codex-overleaf-panel .codex-wb-theme-preview { display: flex; height: 54px; margin: 0 0 4px; border: 1px solid #ced6d2; border-radius: 5px; background: #fafbf9; overflow: hidden; }
546
617
  #codex-overleaf-panel .codex-wb-theme-preview::before { content: ""; width: 24%; background: #e5eae6; flex-shrink: 0; }
547
- #codex-overleaf-panel .codex-wb-theme-lines { display: block; flex: 1; padding: 12px 10px; }
618
+ #codex-overleaf-panel .codex-wb-theme-lines { display: block; flex: 1; padding: 11px 10px; }
548
619
  #codex-overleaf-panel .codex-wb-theme-lines b { display: block; height: 4px; max-width: 76%; margin-bottom: 7px; border-radius: 2px; background: #becfc2; }
549
620
  #codex-overleaf-panel .codex-wb-theme-lines b:nth-child(2) { width: 50%; background: #87ab91; }
550
621
  #codex-overleaf-panel .codex-wb-theme-lines b:last-child { width: 62%; }
@@ -552,34 +623,39 @@
552
623
  #codex-overleaf-panel .codex-wb-theme-preview[data-preview-theme="dark"]::before { background: #18211b; }
553
624
  #codex-overleaf-panel .codex-wb-theme-preview[data-preview-theme="dark"] b { background: #526b59; }
554
625
  #codex-overleaf-panel .codex-wb-theme-preview[data-preview-theme="auto"] { background: linear-gradient(115deg, #fafbf9 50%, #262d28 50%); }
555
- #codex-overleaf-panel .codex-wb-theme-caption { display: block; font-size: 12px; line-height: 1.6; }
556
- #codex-overleaf-panel .codex-wb-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; flex-shrink: 0; padding: 12px 30px 16px; color: var(--wb-muted); font-size: 11px; }
557
- #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-status { flex: 1; min-width: 0; margin: 0; padding: 0; font-size: 12px; line-height: 1.5; }
626
+ #codex-overleaf-panel .codex-wb-theme-caption { display: block; padding: 0 2px; font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
627
+ /* Footer status shares the content column. */
628
+ #codex-overleaf-panel .codex-wb-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; flex-shrink: 0; padding: 0 48px 18px; color: var(--wb-muted); font-size: var(--tl-text-xs, 11px); }
629
+ #codex-overleaf-panel .codex-wb-footer > * { max-width: 600px; }
630
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-status { flex: 1; min-width: 0; margin: 0; padding: 0; font-size: var(--tl-text-sm, 12px); line-height: 1.5; }
558
631
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-status:empty { display: none; }
632
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-status[data-status="failed"] { padding: 9px 12px; border-radius: 8px; background: color-mix(in srgb, var(--tl-fail) 9%, transparent); }
559
633
  #codex-overleaf-panel .codex-wb-footer:not(:has([data-project-settings-status]:not(:empty):not([hidden]))) { display: none; }
560
634
  #codex-overleaf-panel[data-settings-workbench="true"][data-settings-workbench-open="true"] [data-settings-slot] { display: contents; }
561
635
  #codex-overleaf-panel[data-settings-workbench="true"][data-settings-workbench-open="true"] [data-main] { display: flex; }
562
636
  #codex-overleaf-panel[data-settings-workbench="true"][data-settings-workbench-open="true"] [data-composer-slot] { display: block; }
563
- #codex-overleaf-panel .codex-settings-workbench :is(button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--wb-green); outline-offset: 3px; }
637
+ #codex-overleaf-panel .codex-settings-workbench :is(button, input, select, textarea):focus-visible { outline: 2px solid var(--wb-green); outline-offset: 3px; }
564
638
  @keyframes codexSettingsEnter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
565
639
  @media (max-width: 640px) {
566
640
  #codex-overleaf-panel .codex-settings-workbench { width: calc(100vw - 20px); height: calc(100vh - 24px); height: calc(100dvh - 24px); border-radius: 12px; }
567
- #codex-overleaf-panel .codex-wb-header { padding: 16px 18px; }
568
- #codex-overleaf-panel .codex-wb-heading h2 { font-size: 19px; }
569
641
  #codex-overleaf-panel .codex-wb-layout { display: flex; flex-direction: column; }
570
- #codex-overleaf-panel .codex-wb-sidebar { padding: 0 12px 12px; gap: 9px; flex-shrink: 0; max-height: 40%; }
571
- #codex-overleaf-panel .codex-wb-filters { align-self: flex-start; min-width: 205px; }
572
- #codex-overleaf-panel .codex-wb-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
573
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button { justify-content: center; padding: 7px 4px; min-height: 34px; font-size: 11px; text-align: center; }
574
- #codex-overleaf-panel .codex-wb-nav-icon, #codex-overleaf-panel .codex-wb-brand { display: none; }
642
+ #codex-overleaf-panel .codex-wb-sidebar { padding: 16px 12px 10px; gap: 8px; flex-shrink: 0; max-height: 45%; border-right: 0; border-bottom: 1px solid var(--wb-hairline); }
643
+ #codex-overleaf-panel .codex-wb-title { padding: 4px 4px 0; }
644
+ #codex-overleaf-panel .codex-wb-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 4px; }
645
+ #codex-overleaf-panel .codex-wb-nav-section { grid-column: 1 / -1; padding: 8px 4px 2px; }
646
+ #codex-overleaf-panel .codex-wb-nav-section:first-child { padding-top: 0; }
647
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button { justify-content: center; padding: 6px 4px; min-height: 30px; font-size: var(--tl-text-sm, 12px); text-align: center; }
648
+ #codex-overleaf-panel .codex-wb-nav-icon { display: none; }
575
649
  #codex-overleaf-panel .codex-wb-main { flex: 1; }
576
650
  #codex-overleaf-panel .codex-wb-body { padding: 20px 18px; }
577
- #codex-overleaf-panel .codex-wb-footer { padding: 10px 18px; }
578
- #codex-overleaf-panel .codex-wb-page-title { font-size: 18px; margin-bottom: 18px; }
579
- #codex-overleaf-panel .codex-wb-themes { gap: 8px; }
651
+ #codex-overleaf-panel .codex-wb-footer { padding: 0 18px 12px; }
652
+ #codex-overleaf-panel .codex-wb-page-title { font-size: 18px; }
653
+ #codex-overleaf-panel .codex-wb-page-scope { margin-bottom: 18px; }
654
+ #codex-overleaf-panel .codex-wb-themes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
580
655
  #codex-overleaf-panel .codex-wb-theme-preview { height: 44px; }
581
- #codex-overleaf-panel .codex-wb-theme-caption { font-size: 11px; }
656
+ #codex-overleaf-panel .codex-wb-theme-caption { font-size: var(--tl-text-xs, 11px); }
582
657
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row { gap: 14px; }
658
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row + .codex-set-row-help { padding-right: 0; }
583
659
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row .codex-set-select { min-width: 112px; }
584
660
  #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-entry { grid-template-columns: minmax(0, 1fr); }
585
661
  }
@@ -639,17 +715,18 @@
639
715
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-close { display: none; }
640
716
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 0 0 18px; border: 0; background: transparent; }
641
717
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-heading { flex: 1; min-width: 0; }
642
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-heading p { margin: 8px 0 0; font-size: 12px; line-height: 1.6; color: var(--wb-muted); }
718
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-heading p { margin: 8px 0 0; font-size: var(--tl-text-sm, 12px); line-height: 1.6; color: var(--wb-muted); }
643
719
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-body { display: flex; flex-direction: column; min-height: 0; overflow: visible; background: transparent; }
644
720
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-list { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-width: 0; max-width: none; padding: 0 0 18px; border: 0; background: transparent; overflow: visible; }
645
721
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-search { grid-column: 1; grid-row: 1; width: min(230px, 100%); margin: 0; }
646
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-add { grid-column: 2; grid-row: 1; width: auto; margin: 0; padding: 7px 10px; color: var(--wb-green); font-size: 12px; white-space: normal; }
722
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-add { grid-column: 2; grid-row: 1; width: auto; min-height: 28px; margin: 0; padding: 3px 11px; border: 1px solid var(--wb-line); border-radius: 7px; background: var(--wb-surface); color: var(--wb-fg); font-size: var(--tl-text-sm, 12px); font-weight: 500; white-space: normal; box-shadow: 0 1px 0 color-mix(in srgb, var(--wb-fg) 5%, transparent); }
723
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-add:hover { background: var(--wb-hover); }
647
724
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-nav-items { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
648
725
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row { display: flex; align-items: center; flex: 0 1 auto; gap: 8px; width: auto; min-width: 120px; max-width: 250px; margin: 0; padding: 9px 12px; border: 1px solid transparent; border-radius: 8px; background: var(--wb-input); box-shadow: none; color: var(--wb-fg); text-align: left; }
649
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row[aria-current="true"] { border-color: var(--wb-green); background: var(--wb-green-soft); }
650
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-nav-mark { display: grid; place-items: center; flex-shrink: 0; width: 26px; height: 26px; border-radius: 6px; font-size: 12px; color: var(--wb-green); background: var(--wb-surface); }
651
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-main { font-size: 12px; font-weight: 500; line-height: 1.5; }
652
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-status { font-size: 10.5px; line-height: 1.5; color: var(--wb-muted); }
726
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row[aria-current="true"] { border-color: color-mix(in srgb, var(--wb-fg) 55%, var(--wb-line)); background: var(--wb-selected); }
727
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-nav-mark { display: grid; place-items: center; flex-shrink: 0; width: 26px; height: 26px; border-radius: 6px; font-size: var(--tl-text-sm, 12px); color: var(--wb-green); background: var(--wb-surface); }
728
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-main { font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.5; }
729
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-status { font-size: var(--tl-text-xs, 11px); line-height: 1.5; color: var(--wb-muted); }
653
730
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-status[data-tone="active"] { color: var(--wb-green); }
654
731
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-detail { min-width: 0; padding: 8px 0 14px; overflow: visible; border: 0; background: transparent; }
655
732
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-detail-titleline { margin: 0 0 18px; }
@@ -657,16 +734,16 @@
657
734
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-head h3,
658
735
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin h3 { margin: 0; font-size: 17px; line-height: 1.5; font-weight: 600; color: var(--wb-fg); }
659
736
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-detail-titleline p,
660
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin p { margin: 5px 0 0; font-size: 12px; line-height: 1.65; color: var(--wb-muted); }
737
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin p { margin: 5px 0 0; font-size: var(--tl-text-sm, 12px); line-height: 1.65; color: var(--wb-muted); }
661
738
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 18px; }
662
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field { min-width: 0; gap: 6px; margin: 0; font-size: 12px; color: var(--wb-fg); }
739
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field { min-width: 0; gap: 6px; margin: 0; font-size: var(--tl-text-sm, 12px); color: var(--wb-fg); }
663
740
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field--wide { grid-column: 1 / -1; }
664
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] :is(input:not([type="checkbox"]), select, textarea) { min-width: 0; padding: 9px 11px; min-height: 35px; border: 1px solid var(--wb-line); border-radius: 7px; background: var(--wb-input); color: var(--wb-fg); font: inherit; font-size: 12px; line-height: 1.6; box-shadow: none; }
741
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] :is(input:not([type="checkbox"]), select, textarea) { min-width: 0; padding: 5px 10px; min-height: 30px; border: 1px solid var(--wb-line); border-radius: 7px; background: var(--wb-surface); color: var(--wb-fg); font: inherit; font-size: var(--tl-text-sm, 12px); line-height: 1.6; box-shadow: none; }
665
742
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field :is(input:not([type="checkbox"]), select, textarea),
666
743
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-search input { width: 100%; }
667
744
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] input::placeholder,
668
745
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] textarea::placeholder { color: var(--wb-muted); opacity: .85; }
669
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field small { font-size: 11px; line-height: 1.6; color: var(--wb-muted); }
746
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field small { font-size: var(--tl-text-xs, 11px); line-height: 1.6; color: var(--wb-muted); }
670
747
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] input[type="checkbox"] { flex-shrink: 0; accent-color: var(--wb-green); }
671
748
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-capability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
672
749
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@@ -674,34 +751,48 @@
674
751
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template:hover { background: var(--wb-input); }
675
752
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-mark { width: 30px; height: 30px; min-width: 30px; }
676
753
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-mark svg { width: 22px; height: 22px; }
677
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template strong { font-size: 12px; line-height: 1.5; font-weight: 500; }
678
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template small { font-size: 11px; line-height: 1.5; color: var(--wb-muted); }
679
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin { padding: 20px; border: 0; border-radius: 10px; background: var(--wb-input); }
754
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template strong { font-size: var(--tl-text-sm, 12px); line-height: 1.5; font-weight: 500; }
755
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template small { font-size: var(--tl-text-xs, 11px); line-height: 1.5; color: var(--wb-muted); }
756
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: 16px; max-width: none; padding: 16px 0; border: 0; border-top: 1px solid var(--wb-hairline); border-radius: 0; background: transparent; }
757
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin > * { margin: 0; }
758
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin-mark { grid-row: 1 / 3; }
759
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin :is(h3, p) { grid-column: 2; }
760
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin h3 { font-size: var(--tl-text-base, 14px); }
761
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin .codex-provider-active-badge { grid-column: 3; grid-row: 1 / 3; }
680
762
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin-mark { width: 34px; height: 34px; }
681
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-foot { position: sticky; bottom: -24px; z-index: 1; display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin: 0; padding: 14px 0; border: 0; background: var(--wb-surface); box-shadow: none; }
763
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-foot { position: sticky; bottom: -32px; z-index: 1; display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin: 0; padding: 14px 0; border: 0; background: var(--wb-surface); box-shadow: none; }
764
+ /* Only Save/Cancel actions need to stay in view; a lone status line flows after the content instead of covering it. */
765
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-foot:not(:has(.codex-provider-footer-actions:not(:empty))) { position: static; min-height: 0; padding: 6px 0 0; background: transparent; }
682
766
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-footer-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; width: 100%; }
683
767
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-footer-actions:empty,
684
768
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-operation-status:empty { display: none; }
685
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-operation-status { min-width: 0; font-size: 12px; line-height: 1.6; }
686
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] :is(.codex-provider-primary-button, .codex-provider-secondary-button, .codex-provider-danger-button, .codex-provider-inline-button) { min-height: 33px; height: auto; width: auto; max-width: 100%; padding: 7px 10px; border-radius: 7px; font-size: 12px; line-height: 1.5; white-space: normal; box-shadow: none; }
769
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-operation-status { min-width: 0; font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
770
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-operation-status[data-tone="failed"]:not(:empty) { padding: 10px 12px; border-radius: 8px; background: color-mix(in srgb, var(--tl-fail) 9%, transparent); }
771
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-head .codex-provider-inline-button { border: 1px solid var(--wb-line); background: var(--wb-surface); color: var(--wb-fg); font-weight: 500; box-shadow: 0 1px 0 color-mix(in srgb, var(--wb-fg) 5%, transparent); }
772
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] :is(.codex-provider-primary-button, .codex-provider-secondary-button, .codex-provider-danger-button, .codex-provider-inline-button) { min-height: 28px; height: auto; width: auto; max-width: 100%; padding: 3px 11px; border-radius: 7px; font-size: var(--tl-text-sm, 12px); line-height: 1.5; white-space: normal; box-shadow: none; }
687
773
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-primary-button { color: var(--wb-thumb); background: var(--wb-switch); border-color: var(--wb-switch); }
688
- #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-secondary-button { color: var(--wb-fg); background: var(--wb-input); border-color: var(--wb-line); }
774
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-secondary-button { color: var(--wb-fg); background: var(--wb-surface); border-color: var(--wb-line); }
689
775
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-inline-button { color: var(--wb-muted); background: transparent; border-color: transparent; }
690
776
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-inline-button:hover { color: var(--wb-fg); border-color: var(--wb-line); background: var(--wb-input); }
777
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-back-button { border-color: var(--wb-line); background: var(--wb-surface); color: var(--wb-fg); }
778
+ /* Embedded, these buttons sit under the panel-wide reset (#codex-overleaf-panel button), which outranks the
779
+ provider base rules: restate the border, and keep danger actions red. */
780
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] :is(.codex-provider-primary-button, .codex-provider-secondary-button, .codex-provider-danger-button, .codex-provider-inline-button) { border-width: 1px; border-style: solid; }
781
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-secondary-button:hover { background: var(--wb-hover); }
782
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-danger-button { border-color: color-mix(in srgb, var(--tl-fail) 38%, var(--wb-line)); background: var(--wb-surface); color: var(--tl-fail); }
783
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-danger-button:hover { background: color-mix(in srgb, var(--tl-fail) 8%, var(--wb-surface)); }
784
+ /* In a confirmation the destructive answer is the primary action. */
785
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-confirmation footer button { min-height: 32px; padding: 5px 14px; font-weight: 500; }
786
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-confirmation .codex-provider-danger-button { border-color: var(--tl-fail); background: var(--tl-fail); color: var(--wb-surface); }
787
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-confirmation .codex-provider-danger-button:hover { background: color-mix(in srgb, var(--tl-fail) 88%, var(--wb-fg)); }
691
788
 
692
789
  /* Approved skills-list preview: dedicated page, compact icon rows, real switches. */
693
- #codex-overleaf-panel[data-view="skills"] .codex-settings-workbench {
694
- width: min(820px, calc(100vw - 40px));
695
- height: min(550px, calc(100vh - 40px));
696
- height: min(550px, calc(100dvh - 40px));
697
- }
698
790
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel {
699
791
  box-sizing: border-box;
700
792
  width: 100%;
701
- max-width: 500px;
793
+ max-width: 600px;
702
794
  margin: 0;
703
- padding: 0 8px;
704
- font-family: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
795
+ padding: 0;
705
796
  }
706
797
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-head {
707
798
  position: relative;
@@ -713,10 +804,10 @@
713
804
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-title {
714
805
  margin: 0;
715
806
  color: var(--wb-fg);
716
- font-size: 18px;
717
- font-weight: 500;
718
- line-height: 1.45;
719
- letter-spacing: -.28px;
807
+ font-size: 20px;
808
+ font-weight: 600;
809
+ line-height: 1.4;
810
+ letter-spacing: -.3px;
720
811
  }
721
812
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel [data-skills-back] {
722
813
  position: absolute;
@@ -764,16 +855,16 @@
764
855
  background: transparent;
765
856
  }
766
857
  #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-master-copy { min-width: 0; }
767
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-master-row .codex-project-settings-row-label { font-size: 13px; font-weight: 500; line-height: 1.55; }
858
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-master-row .codex-project-settings-row-label { font-size: var(--tl-text-md, 13px); font-weight: 500; line-height: 1.55; }
768
859
  #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-help {
769
860
  display: block;
770
861
  margin: 3px 0 0;
771
862
  color: var(--wb-muted);
772
- font-size: 12px;
863
+ font-size: var(--tl-text-sm, 12px);
773
864
  font-weight: 400;
774
865
  line-height: 1.6;
775
866
  }
776
- #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-list-title { margin: 0 0 7px; color: var(--wb-muted); font-size: 11.5px; font-weight: 500; line-height: 1.5; }
867
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-list-title { margin: 0 0 7px; color: var(--wb-muted); font-size: var(--tl-text-xs, 11px); font-weight: 500; line-height: 1.5; }
777
868
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-divider { display: none; }
778
869
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-list {
779
870
  display: flex;
@@ -817,7 +908,7 @@
817
908
  display: block;
818
909
  overflow: hidden;
819
910
  color: var(--wb-fg);
820
- font-size: 14px;
911
+ font-size: var(--tl-text-base, 14px);
821
912
  font-weight: 500;
822
913
  line-height: 1.45;
823
914
  letter-spacing: -.1px;
@@ -829,7 +920,7 @@
829
920
  margin-top: 2px;
830
921
  overflow: hidden;
831
922
  color: var(--wb-muted);
832
- font-size: 12px;
923
+ font-size: var(--tl-text-sm, 12px);
833
924
  font-weight: 400;
834
925
  line-height: 1.5;
835
926
  white-space: nowrap;
@@ -837,7 +928,7 @@
837
928
  }
838
929
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 44px; }
839
930
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin: 0; }
840
- #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-actions button { min-height: 29px; height: auto; padding: 4px 8px; font-size: 11px; line-height: 1.5; white-space: normal; }
931
+ #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-actions button { min-height: 29px; height: auto; padding: 4px 8px; font-size: var(--tl-text-xs, 11px); line-height: 1.5; white-space: normal; }
841
932
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel input.codex-switch {
842
933
  position: relative;
843
934
  display: block;
@@ -887,16 +978,15 @@
887
978
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-row[data-disabled="true"] { opacity: 1; }
888
979
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-row[data-disabled="true"] .codex-local-skill-copy,
889
980
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-row[data-disabled="true"] .codex-local-skill-icon { opacity: .55; }
890
- #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-project-settings-empty { padding: 10px 12px; margin: 0; color: var(--wb-muted); font-size: 12px; line-height: 1.6; }
981
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-project-settings-empty { padding: 10px 12px; margin: 0; color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
891
982
  @media (max-width: 640px) {
892
- #codex-overleaf-panel[data-view="skills"] .codex-settings-workbench { width: calc(100vw - 20px); height: calc(100vh - 24px); height: calc(100dvh - 24px); }
893
983
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-title { font-size: 17px; }
894
984
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel [data-skills-back] { inset-inline-start: -21px; width: 23px; min-width: 23px; }
895
985
  }
896
986
  @media (max-width: 520px) {
897
987
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-row { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; }
898
988
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-icon { width: 34px; height: 34px; }
899
- #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-name { font-size: 13px; }
989
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-name { font-size: var(--tl-text-md, 13px); }
900
990
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-row:has(.codex-local-skill-actions) .codex-local-skill-controls { grid-column: 2 / -1; justify-content: flex-end; }
901
991
  }
902
992
  @media (pointer: coarse) {
@@ -934,12 +1024,12 @@
934
1024
 
935
1025
  .codex-provider-settings-summary {
936
1026
  margin: 5px 0 0;
937
- color: #92d99a;
938
- font-size: 12px;
1027
+ color: var(--tl-ok, #92d99a);
1028
+ font-size: var(--tl-text-sm, 12px);
939
1029
  }
940
1030
 
941
- .codex-provider-settings-summary[data-tone="warning"] { color: #d9bd78; }
942
- .codex-provider-settings-summary[data-tone="failed"] { color: #ef8f84; }
1031
+ .codex-provider-settings-summary[data-tone="warning"] { color: var(--tl-review, #d9bd78); }
1032
+ .codex-provider-settings-summary[data-tone="failed"] { color: var(--tl-fail, #ef8f84); }
943
1033
 
944
1034
  .codex-provider-experimental-badge {
945
1035
  display: inline-flex;
@@ -950,7 +1040,7 @@
950
1040
  border-radius: 999px;
951
1041
  background: rgba(217, 189, 120, 0.08);
952
1042
  color: #d9bd78;
953
- font-size: 9px;
1043
+ font-size: var(--tl-text-xs, 11px);
954
1044
  font-weight: 700;
955
1045
  line-height: 1;
956
1046
  letter-spacing: 0.035em;
@@ -1080,7 +1170,7 @@
1080
1170
  .codex-provider-builtin p {
1081
1171
  margin: 6px 0 0;
1082
1172
  color: var(--provider-muted);
1083
- font-size: 12px;
1173
+ font-size: var(--tl-text-sm, 12px);
1084
1174
  }
1085
1175
 
1086
1176
  .codex-provider-dialog-close {
@@ -1134,8 +1224,8 @@
1134
1224
  .codex-provider-row:hover,
1135
1225
  .codex-provider-row[aria-current="true"] { background: var(--provider-hover); }
1136
1226
  .codex-provider-row[aria-current="true"] { box-shadow: inset 2px 0 var(--provider-accent); }
1137
- .codex-provider-row-main { display: block; width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 13px; font-weight: 650; white-space: nowrap; }
1138
- .codex-provider-row-status { color: var(--provider-muted); font-size: 11px; }
1227
+ .codex-provider-row-main { display: block; width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: var(--tl-text-md, 13px); font-weight: 650; white-space: nowrap; }
1228
+ .codex-provider-row-status { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
1139
1229
  .codex-provider-row-status[data-tone="active"] { color: var(--provider-accent); }
1140
1230
  .codex-provider-add { margin-top: 8px; color: var(--provider-accent); }
1141
1231
 
@@ -1161,7 +1251,7 @@
1161
1251
  border: 1px solid rgba(121, 213, 138, 0.42);
1162
1252
  border-radius: 999px;
1163
1253
  color: var(--provider-accent);
1164
- font-size: 11px;
1254
+ font-size: var(--tl-text-xs, 11px);
1165
1255
  font-weight: 700;
1166
1256
  }
1167
1257
 
@@ -1177,7 +1267,7 @@
1177
1267
  flex-direction: column;
1178
1268
  gap: 7px;
1179
1269
  color: var(--provider-field-label);
1180
- font-size: 12px;
1270
+ font-size: var(--tl-text-sm, 12px);
1181
1271
  font-weight: 650;
1182
1272
  }
1183
1273
 
@@ -1203,7 +1293,7 @@
1203
1293
  .codex-provider-field input:focus,
1204
1294
  .codex-provider-field textarea:focus,
1205
1295
  .codex-provider-field select:focus { border-color: rgba(121, 213, 138, 0.7); box-shadow: 0 0 0 3px rgba(121, 213, 138, 0.1); }
1206
- .codex-provider-field small { color: var(--provider-muted); font-size: 11px; font-weight: 450; }
1296
+ .codex-provider-field small { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); font-weight: 450; }
1207
1297
  .codex-provider-secret-row { display: flex; gap: 8px; }
1208
1298
 
1209
1299
  .codex-provider-advanced {
@@ -1213,7 +1303,7 @@
1213
1303
  border-bottom: 1px solid var(--provider-line);
1214
1304
  }
1215
1305
 
1216
- .codex-provider-advanced summary { color: var(--provider-muted); cursor: pointer; font-size: 12px; font-weight: 650; }
1306
+ .codex-provider-advanced summary { color: var(--provider-muted); cursor: pointer; font-size: var(--tl-text-sm, 12px); font-weight: 650; }
1217
1307
  .codex-provider-advanced[open] summary { margin-bottom: 14px; color: inherit; }
1218
1308
 
1219
1309
  .codex-provider-disclosure {
@@ -1224,7 +1314,7 @@
1224
1314
  border-radius: 9px;
1225
1315
  background: rgba(217, 189, 120, 0.09);
1226
1316
  color: #d8c892;
1227
- font-size: 11px;
1317
+ font-size: var(--tl-text-xs, 11px);
1228
1318
  line-height: 1.45;
1229
1319
  }
1230
1320
 
@@ -1243,8 +1333,8 @@
1243
1333
  }
1244
1334
 
1245
1335
  .codex-provider-test-copy { display: grid; gap: 3px; min-width: 0; }
1246
- .codex-provider-test-copy strong { color: var(--provider-text); font-size: 12px; font-weight: 750; letter-spacing: 0.01em; }
1247
- .codex-provider-test-copy > span { color: var(--provider-muted); font-size: 11px; line-height: 1.4; }
1336
+ .codex-provider-test-copy strong { color: var(--provider-text); font-size: var(--tl-text-sm, 12px); font-weight: 750; letter-spacing: 0.01em; }
1337
+ .codex-provider-test-copy > span { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
1248
1338
 
1249
1339
  .codex-provider-test-controls {
1250
1340
  display: grid;
@@ -1257,7 +1347,7 @@
1257
1347
  .codex-provider-test-model { display: grid; gap: 6px; min-width: 0; }
1258
1348
  .codex-provider-test-model-label {
1259
1349
  color: var(--provider-muted);
1260
- font-size: 10px;
1350
+ font-size: var(--tl-text-xs, 11px);
1261
1351
  font-weight: 750;
1262
1352
  letter-spacing: 0.08em;
1263
1353
  text-transform: uppercase;
@@ -1277,7 +1367,7 @@
1277
1367
  color: var(--provider-text);
1278
1368
  color-scheme: dark;
1279
1369
  font: inherit;
1280
- font-size: 12px;
1370
+ font-size: var(--tl-text-sm, 12px);
1281
1371
  font-weight: 650;
1282
1372
  line-height: 1;
1283
1373
  outline: none;
@@ -1314,7 +1404,7 @@
1314
1404
  color: #b8edc2;
1315
1405
  box-shadow: 0 5px 15px rgba(6, 19, 10, 0.16);
1316
1406
  font: inherit;
1317
- font-size: 12px;
1407
+ font-size: var(--tl-text-sm, 12px);
1318
1408
  font-weight: 750;
1319
1409
  white-space: nowrap;
1320
1410
  cursor: pointer;
@@ -1330,7 +1420,7 @@
1330
1420
  .codex-provider-test-button:not(:disabled):active { transform: translateY(0); }
1331
1421
  .codex-provider-test-button[data-provider-action="cancel-test"] { border-color: rgba(242, 129, 113, 0.42); background: rgba(122, 55, 47, 0.24); color: #f3aaa0; }
1332
1422
 
1333
- .codex-provider-test-state { min-height: 16px; color: var(--provider-muted); font-size: 11px; line-height: 1.4; }
1423
+ .codex-provider-test-state { min-height: 16px; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
1334
1424
  .codex-provider-test-state:empty { display: none; }
1335
1425
  .codex-provider-test-state[data-tone="success"] { color: var(--provider-accent); }
1336
1426
  .codex-provider-test-state[data-tone="failed"] { color: var(--provider-danger); }
@@ -1344,7 +1434,7 @@
1344
1434
  background: var(--provider-footer-bg);
1345
1435
  }
1346
1436
 
1347
- .codex-provider-operation-status { min-width: 0; color: var(--provider-muted); font-size: 11px; }
1437
+ .codex-provider-operation-status { min-width: 0; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
1348
1438
  .codex-provider-operation-status[data-tone="success"] { color: var(--provider-accent); }
1349
1439
  .codex-provider-operation-status[data-tone="failed"] { color: var(--provider-danger); }
1350
1440
  .codex-provider-operation-status[data-tone="progress"]::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 7px; border: 2px solid rgba(121, 213, 138, 0.3); border-top-color: var(--provider-accent); border-radius: 50%; animation: codex-provider-spin var(--tl-m-spin, 800ms) linear infinite; }
@@ -1362,7 +1452,7 @@
1362
1452
  background: var(--provider-control-bg);
1363
1453
  color: inherit;
1364
1454
  font: inherit;
1365
- font-size: 12px;
1455
+ font-size: var(--tl-text-sm, 12px);
1366
1456
  font-weight: 700;
1367
1457
  cursor: pointer;
1368
1458
  }
@@ -1449,7 +1539,7 @@
1449
1539
  border-left: 1px solid var(--tl-border);
1450
1540
  background: var(--tl-surface-0);
1451
1541
  color: var(--tl-fg-2);
1452
- font: 13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
1542
+ font: var(--tl-text-md, 13px)/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
1453
1543
  overflow: hidden;
1454
1544
  }
1455
1545
 
@@ -1624,7 +1714,7 @@
1624
1714
  align-items: center;
1625
1715
  border-bottom: 1px solid var(--tl-accent);
1626
1716
  color: var(--tl-fg-2);
1627
- font-size: 11px;
1717
+ font-size: var(--tl-text-xs, 11px);
1628
1718
  letter-spacing: 0;
1629
1719
  text-transform: uppercase;
1630
1720
  }
@@ -1682,7 +1772,7 @@
1682
1772
  color: var(--tl-fg-1);
1683
1773
  }
1684
1774
 
1685
- #codex-overleaf-panel .codex-vscode-head-actions [data-refresh][data-loading="true"] {
1775
+ #codex-overleaf-panel .codex-diagnostics-menu [data-refresh][data-loading="true"] .codex-glyph {
1686
1776
  animation: codex-refresh-spin var(--tl-m-spin, 800ms) linear infinite;
1687
1777
  color: var(--tl-fg-1);
1688
1778
  }
@@ -1778,19 +1868,19 @@
1778
1868
 
1779
1869
  #codex-overleaf-panel .codex-diagnostics-check-title {
1780
1870
  color: var(--tl-fg-1);
1781
- font-size: 12px;
1871
+ font-size: var(--tl-text-sm, 12px);
1782
1872
  font-weight: 600;
1783
1873
  }
1784
1874
 
1785
1875
  #codex-overleaf-panel .codex-diagnostics-check-summary {
1786
1876
  color: var(--tl-fg-3);
1787
- font-size: 11px;
1877
+ font-size: var(--tl-text-xs, 11px);
1788
1878
  line-height: 1.4;
1789
1879
  }
1790
1880
 
1791
1881
  #codex-overleaf-panel .codex-diagnostics-check-next {
1792
1882
  color: var(--tl-accent);
1793
- font-size: 11px;
1883
+ font-size: var(--tl-text-xs, 11px);
1794
1884
  line-height: 1.4;
1795
1885
  margin-top: 2px;
1796
1886
  }
@@ -1837,11 +1927,22 @@
1837
1927
 
1838
1928
  #codex-overleaf-panel .codex-toast-body {
1839
1929
  color: var(--tl-fg-2);
1840
- font-size: 12px;
1930
+ font-size: var(--tl-text-sm, 12px);
1841
1931
  line-height: 1.45;
1842
1932
  word-break: break-word;
1843
1933
  }
1844
1934
 
1935
+ #codex-overleaf-panel .codex-toast-title {
1936
+ color: var(--tl-fg-1);
1937
+ font-weight: 600;
1938
+ margin-bottom: 3px;
1939
+ }
1940
+
1941
+ #codex-overleaf-panel .codex-toast-group { margin-top: 5px; }
1942
+ #codex-overleaf-panel .codex-toast-group summary { cursor: pointer; color: var(--tl-fg-3); }
1943
+ #codex-overleaf-panel .codex-toast-group ul { margin: 5px 0 0; padding-left: 18px; }
1944
+ #codex-overleaf-panel .codex-toast-group code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--tl-text-xs, 11px); }
1945
+
1845
1946
  #codex-overleaf-panel .codex-toast-close {
1846
1947
  width: 22px;
1847
1948
  height: 22px;
@@ -1886,7 +1987,7 @@
1886
1987
  padding: 6px 8px 8px;
1887
1988
  border-bottom: 1px solid var(--tl-border-strong);
1888
1989
  color: var(--tl-fg-3);
1889
- font-size: 11px;
1990
+ font-size: var(--tl-text-xs, 11px);
1890
1991
  line-height: 1.35;
1891
1992
  }
1892
1993
 
@@ -1905,17 +2006,20 @@
1905
2006
 
1906
2007
  #codex-overleaf-panel .codex-diagnostics-menu button span {
1907
2008
  color: var(--tl-fg-1);
1908
- font-size: 12px;
2009
+ font-size: var(--tl-text-sm, 12px);
1909
2010
  line-height: 1.3;
1910
2011
  }
1911
2012
 
1912
2013
  #codex-overleaf-panel .codex-diagnostics-menu button small {
1913
2014
  margin-top: 2px;
1914
2015
  color: var(--tl-fg-3);
1915
- font-size: 11px;
2016
+ font-size: var(--tl-text-xs, 11px);
1916
2017
  line-height: 1.3;
1917
2018
  }
1918
2019
 
2020
+ #codex-overleaf-panel .codex-diagnostics-refresh-title { display: inline-flex; align-items: center; gap: 6px; }
2021
+ #codex-overleaf-panel .codex-diagnostics-refresh-title .codex-glyph { width: 14px; height: 14px; flex: 0 0 14px; }
2022
+
1919
2023
  #codex-overleaf-panel .codex-diagnostics-result {
1920
2024
  position: fixed;
1921
2025
  display: flex;
@@ -2016,7 +2120,7 @@
2016
2120
 
2017
2121
  #codex-overleaf-panel .codex-custom-instructions-title {
2018
2122
  color: var(--tl-fg-1);
2019
- font-size: 14px;
2123
+ font-size: var(--tl-text-base, 14px);
2020
2124
  font-weight: 650;
2021
2125
  line-height: 1.35;
2022
2126
  }
@@ -2024,7 +2128,7 @@
2024
2128
  #codex-overleaf-panel .codex-custom-instructions-subtitle {
2025
2129
  margin-top: 3px;
2026
2130
  color: var(--tl-fg-3);
2027
- font-size: 12px;
2131
+ font-size: var(--tl-text-sm, 12px);
2028
2132
  line-height: 1.4;
2029
2133
  }
2030
2134
 
@@ -2049,7 +2153,7 @@
2049
2153
  color: var(--tl-fg-1);
2050
2154
  padding: 9px;
2051
2155
  outline: none;
2052
- font-size: 12px;
2156
+ font-size: var(--tl-text-sm, 12px);
2053
2157
  line-height: 1.45;
2054
2158
  }
2055
2159
 
@@ -2074,7 +2178,7 @@
2074
2178
 
2075
2179
  #codex-overleaf-panel .codex-project-settings-scope-title {
2076
2180
  color: var(--tl-fg-1);
2077
- font-size: 13px;
2181
+ font-size: var(--tl-text-md, 13px);
2078
2182
  font-weight: 650;
2079
2183
  line-height: 1.35;
2080
2184
  }
@@ -2089,7 +2193,7 @@
2089
2193
  background: var(--tl-surface-0);
2090
2194
  color: var(--tl-fg-1);
2091
2195
  padding: 8px;
2092
- font-size: 12px;
2196
+ font-size: var(--tl-text-sm, 12px);
2093
2197
  line-height: 1.4;
2094
2198
  }
2095
2199
 
@@ -2109,7 +2213,7 @@
2109
2213
  gap: 8px;
2110
2214
  align-items: center;
2111
2215
  color: var(--tl-fg-1);
2112
- font-size: 12px;
2216
+ font-size: var(--tl-text-sm, 12px);
2113
2217
  }
2114
2218
 
2115
2219
  /* Skill name fills the row; actions and the enable switch stay on the right. */
@@ -2140,7 +2244,7 @@
2140
2244
  #codex-overleaf-panel .codex-project-settings-empty,
2141
2245
  #codex-overleaf-panel .codex-project-settings-status {
2142
2246
  color: var(--tl-fg-3);
2143
- font-size: 12px;
2247
+ font-size: var(--tl-text-sm, 12px);
2144
2248
  line-height: 1.35;
2145
2249
  }
2146
2250
 
@@ -2210,7 +2314,7 @@
2210
2314
  justify-content: space-between;
2211
2315
  gap: 10px;
2212
2316
  color: var(--tl-fg-1);
2213
- font-size: 12px;
2317
+ font-size: var(--tl-text-sm, 12px);
2214
2318
  line-height: 1.35;
2215
2319
  cursor: pointer;
2216
2320
  }
@@ -2232,7 +2336,7 @@
2232
2336
  color: var(--tl-fg-1);
2233
2337
  padding: 9px 10px;
2234
2338
  text-align: left;
2235
- font-size: 12px;
2339
+ font-size: var(--tl-text-sm, 12px);
2236
2340
  line-height: 1.35;
2237
2341
  }
2238
2342
 
@@ -2248,13 +2352,13 @@
2248
2352
  #codex-overleaf-panel .codex-skills-entry-summary {
2249
2353
  flex: 0 0 auto;
2250
2354
  color: var(--tl-fg-3);
2251
- font-size: 11px;
2355
+ font-size: var(--tl-text-xs, 11px);
2252
2356
  }
2253
2357
 
2254
2358
  #codex-overleaf-panel .codex-skills-entry-chevron {
2255
2359
  flex: 0 0 auto;
2256
2360
  color: var(--tl-fg-3);
2257
- font-size: 14px;
2361
+ font-size: var(--tl-text-base, 14px);
2258
2362
  }
2259
2363
 
2260
2364
  /* ---------------------------------------------------------------------------
@@ -2300,7 +2404,7 @@
2300
2404
  align-items: center;
2301
2405
  gap: 3px;
2302
2406
  color: var(--tl-ok);
2303
- font-size: 10.5px;
2407
+ font-size: var(--tl-text-xs, 11px);
2304
2408
  white-space: nowrap;
2305
2409
  animation: tl-fade-in 120ms ease;
2306
2410
  }
@@ -2316,7 +2420,7 @@
2316
2420
  border: 1px solid var(--tl-border-strong);
2317
2421
  border-radius: var(--tl-r-sm);
2318
2422
  padding: 6px 9px;
2319
- font-size: 11px;
2423
+ font-size: var(--tl-text-xs, 11px);
2320
2424
  line-height: 1.45;
2321
2425
  }
2322
2426
 
@@ -2335,7 +2439,7 @@
2335
2439
  display: block;
2336
2440
  margin-top: 2px;
2337
2441
  color: var(--tl-fg-3);
2338
- font-size: 10.5px;
2442
+ font-size: var(--tl-text-xs, 11px);
2339
2443
  font-weight: 400;
2340
2444
  line-height: 1.4;
2341
2445
  }
@@ -2350,21 +2454,21 @@
2350
2454
  #codex-overleaf-panel .run-history-truncated {
2351
2455
  padding: 4px 10px;
2352
2456
  color: var(--tl-fg-4);
2353
- font-size: 10.5px;
2457
+ font-size: var(--tl-text-xs, 11px);
2354
2458
  text-align: center;
2355
2459
  }
2356
2460
 
2357
2461
  #codex-overleaf-panel .codex-diff-hunk-status + [data-diff-hunk-revert] {
2358
2462
  margin-left: 6px;
2359
2463
  color: var(--tl-fg-3);
2360
- font-size: 10.5px;
2464
+ font-size: var(--tl-text-xs, 11px);
2361
2465
  text-decoration: underline;
2362
2466
  }
2363
2467
 
2364
2468
  #codex-overleaf-panel .codex-set-eyebrow {
2365
2469
  text-transform: uppercase;
2366
2470
  letter-spacing: 0.06em;
2367
- font-size: 11px;
2471
+ font-size: var(--tl-text-xs, 11px);
2368
2472
  font-weight: 600;
2369
2473
  color: var(--tl-fg-4);
2370
2474
  }
@@ -2386,7 +2490,7 @@
2386
2490
  gap: 8px;
2387
2491
  padding: 10px 12px;
2388
2492
  color: var(--tl-fg-1);
2389
- font-size: 12px;
2493
+ font-size: var(--tl-text-sm, 12px);
2390
2494
  font-weight: 600;
2391
2495
  line-height: 1.35;
2392
2496
  cursor: pointer;
@@ -2403,7 +2507,7 @@
2403
2507
  content: "›";
2404
2508
  margin-left: auto;
2405
2509
  color: var(--tl-fg-4);
2406
- font-size: 15px;
2510
+ font-size: var(--tl-text-lg, 15px);
2407
2511
  line-height: 1;
2408
2512
  transition: transform 120ms ease;
2409
2513
  }
@@ -2438,7 +2542,7 @@
2438
2542
 
2439
2543
  #codex-overleaf-panel .codex-set-row-label {
2440
2544
  color: var(--tl-fg-2);
2441
- font-size: 11px;
2545
+ font-size: var(--tl-text-xs, 11px);
2442
2546
  font-weight: 600;
2443
2547
  letter-spacing: 0.01em;
2444
2548
  }
@@ -2446,7 +2550,7 @@
2446
2550
  #codex-overleaf-panel .codex-set-row-help {
2447
2551
  margin: 0;
2448
2552
  color: var(--tl-fg-3);
2449
- font-size: 11px;
2553
+ font-size: var(--tl-text-xs, 11px);
2450
2554
  line-height: 1.45;
2451
2555
  }
2452
2556
 
@@ -2463,7 +2567,7 @@
2463
2567
  background: var(--tl-surface-2);
2464
2568
  color: var(--tl-fg-1);
2465
2569
  padding: 3px 6px;
2466
- font-size: 12px;
2570
+ font-size: var(--tl-text-sm, 12px);
2467
2571
  cursor: pointer;
2468
2572
  }
2469
2573
 
@@ -2493,7 +2597,7 @@
2493
2597
  background: var(--tl-surface-2);
2494
2598
  color: var(--tl-fg-2);
2495
2599
  padding: 3px 10px;
2496
- font-size: 11px;
2600
+ font-size: var(--tl-text-xs, 11px);
2497
2601
  font-weight: 500;
2498
2602
  line-height: 1.4;
2499
2603
  cursor: pointer;
@@ -2560,7 +2664,7 @@
2560
2664
 
2561
2665
  #codex-overleaf-panel .codex-diagnostics-result-title {
2562
2666
  color: var(--tl-fg-1);
2563
- font-size: 14px;
2667
+ font-size: var(--tl-text-base, 14px);
2564
2668
  font-weight: 650;
2565
2669
  line-height: 1.35;
2566
2670
  }
@@ -2568,7 +2672,7 @@
2568
2672
  #codex-overleaf-panel .codex-diagnostics-result-subtitle {
2569
2673
  margin-top: 2px;
2570
2674
  color: var(--tl-fg-3);
2571
- font-size: 11px;
2675
+ font-size: var(--tl-text-xs, 11px);
2572
2676
  line-height: 1.35;
2573
2677
  }
2574
2678
 
@@ -2605,7 +2709,7 @@
2605
2709
  #codex-overleaf-panel .codex-diagnostics-result-body {
2606
2710
  padding: 10px 12px 12px;
2607
2711
  color: var(--tl-fg-2);
2608
- font-size: 12px;
2712
+ font-size: var(--tl-text-sm, 12px);
2609
2713
  line-height: 1.45;
2610
2714
  }
2611
2715
 
@@ -2641,7 +2745,7 @@
2641
2745
  #codex-overleaf-panel .codex-install-command-label {
2642
2746
  margin-bottom: 6px;
2643
2747
  color: var(--tl-fg-3);
2644
- font-size: 11px;
2748
+ font-size: var(--tl-text-xs, 11px);
2645
2749
  }
2646
2750
 
2647
2751
  #codex-overleaf-panel .codex-install-command code {
@@ -2654,7 +2758,7 @@
2654
2758
  color: var(--tl-accent);
2655
2759
  white-space: pre-wrap;
2656
2760
  word-break: break-word;
2657
- font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2761
+ font: var(--tl-text-xs, 11px)/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2658
2762
  }
2659
2763
 
2660
2764
  #codex-overleaf-panel .codex-install-command button {
@@ -2665,7 +2769,7 @@
2665
2769
  background: var(--tl-ok-wash);
2666
2770
  color: var(--tl-ok);
2667
2771
  padding: 6px 8px;
2668
- font-size: 12px;
2772
+ font-size: var(--tl-text-sm, 12px);
2669
2773
  }
2670
2774
 
2671
2775
  #codex-overleaf-panel .codex-diagnostics-technical {
@@ -2680,7 +2784,7 @@
2680
2784
  #codex-overleaf-panel .codex-diagnostics-technical summary {
2681
2785
  cursor: pointer;
2682
2786
  color: var(--tl-fg-3);
2683
- font-size: 11px;
2787
+ font-size: var(--tl-text-xs, 11px);
2684
2788
  }
2685
2789
 
2686
2790
  #codex-overleaf-panel .codex-diagnostics-technical pre {
@@ -2690,7 +2794,7 @@
2690
2794
  color: var(--tl-fg-2);
2691
2795
  white-space: pre-wrap;
2692
2796
  word-break: break-word;
2693
- font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2797
+ font: var(--tl-text-xs, 11px)/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2694
2798
  }
2695
2799
 
2696
2800
  #codex-overleaf-panel .codex-plugin-confirm {
@@ -2750,7 +2854,7 @@
2750
2854
 
2751
2855
  #codex-overleaf-panel .codex-plugin-confirm-brand {
2752
2856
  color: var(--tl-accent);
2753
- font-size: 11px;
2857
+ font-size: var(--tl-text-xs, 11px);
2754
2858
  font-weight: 650;
2755
2859
  line-height: 1.2;
2756
2860
  }
@@ -2758,7 +2862,7 @@
2758
2862
  #codex-overleaf-panel .codex-plugin-confirm-title {
2759
2863
  margin-top: 2px;
2760
2864
  color: var(--tl-fg-1);
2761
- font-size: 14px;
2865
+ font-size: var(--tl-text-base, 14px);
2762
2866
  font-weight: 650;
2763
2867
  line-height: 1.35;
2764
2868
  }
@@ -2770,12 +2874,27 @@
2770
2874
  overflow: auto;
2771
2875
  padding: 12px 14px;
2772
2876
  color: var(--tl-fg-1);
2773
- font-size: 12px;
2877
+ font-size: var(--tl-text-sm, 12px);
2774
2878
  line-height: 1.5;
2775
2879
  white-space: pre-wrap;
2776
2880
  word-break: break-word;
2777
2881
  }
2778
2882
 
2883
+ #codex-overleaf-panel .codex-native-guidance-command {
2884
+ display: block;
2885
+ margin-top: 12px;
2886
+ padding: 8px 10px;
2887
+ border: 1px solid var(--tl-border);
2888
+ border-radius: 6px;
2889
+ background: var(--tl-surface-2);
2890
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
2891
+ white-space: pre-wrap;
2892
+ word-break: break-all;
2893
+ }
2894
+
2895
+ #codex-overleaf-panel .codex-native-guidance-link { display: block; margin-top: 12px; color: var(--tl-accent); text-decoration: none; }
2896
+ #codex-overleaf-panel .codex-native-guidance-link::after { content: " ↗"; }
2897
+
2779
2898
  #codex-overleaf-panel .codex-plugin-confirm-actions {
2780
2899
  display: flex;
2781
2900
  flex: 0 0 auto;
@@ -2846,7 +2965,7 @@
2846
2965
  justify-content: space-between;
2847
2966
  min-height: 24px;
2848
2967
  color: var(--tl-fg-3);
2849
- font-size: 12px;
2968
+ font-size: var(--tl-text-sm, 12px);
2850
2969
  font-weight: 600;
2851
2970
  }
2852
2971
 
@@ -2909,7 +3028,7 @@
2909
3028
 
2910
3029
  #codex-overleaf-panel .codex-session-row time {
2911
3030
  color: var(--tl-fg-3);
2912
- font-size: 12px;
3031
+ font-size: var(--tl-text-sm, 12px);
2913
3032
  white-space: nowrap;
2914
3033
  }
2915
3034
 
@@ -2941,7 +3060,7 @@
2941
3060
  }
2942
3061
 
2943
3062
  #codex-overleaf-panel .codex-session-rename {
2944
- font-size: 12px;
3063
+ font-size: var(--tl-text-sm, 12px);
2945
3064
  }
2946
3065
 
2947
3066
  #codex-overleaf-panel .codex-session-row:hover .codex-session-rename,
@@ -2971,7 +3090,7 @@
2971
3090
  #codex-overleaf-panel .codex-session-empty-hint {
2972
3091
  padding: 6px 6px 8px;
2973
3092
  color: var(--tl-fg-4);
2974
- font-size: 12px;
3093
+ font-size: var(--tl-text-sm, 12px);
2975
3094
  line-height: 1.4;
2976
3095
  }
2977
3096
 
@@ -3004,6 +3123,7 @@
3004
3123
  --tl-border: #2a2a2a; /* dividers / resting control borders */
3005
3124
  --tl-border-strong: #3a3a3a; /* elevated popover / tray borders */
3006
3125
  --tl-accent: #6f9fd8;
3126
+ --tl-action: #8cc79c;
3007
3127
  --tl-accent-wash: rgba(111, 159, 216, 0.14); /* selected/active accent fill */
3008
3128
  --tl-ok-wash: rgba(137, 209, 133, 0.14);
3009
3129
  --tl-fail-wash: rgba(224, 121, 95, 0.16);
@@ -3017,6 +3137,12 @@
3017
3137
  --tl-diff-add-fg: #89d185; /* added-line code text; darkened in light */
3018
3138
  --tl-r-sm: 4px;
3019
3139
  --tl-r-md: 8px;
3140
+ /* Type scale: every panel text size at or below 15px maps to one of these. */
3141
+ --tl-text-xs: 11px;
3142
+ --tl-text-sm: 12px;
3143
+ --tl-text-md: 13px;
3144
+ --tl-text-base: 14px;
3145
+ --tl-text-lg: 15px;
3020
3146
  /* Motion tokens: one cadence for every spinner, fade and settle. */
3021
3147
  --tl-m-fast: 140ms;
3022
3148
  --tl-m-base: 240ms;
@@ -3042,14 +3168,15 @@
3042
3168
  --tl-border: #d7dbe0;
3043
3169
  --tl-border-strong: #c4c9d0;
3044
3170
  --tl-accent: #2f6fb0;
3171
+ --tl-action: #2c7044;
3045
3172
  --tl-accent-wash: rgba(47, 111, 176, 0.12);
3046
3173
  --tl-ok-wash: rgba(46, 158, 84, 0.12);
3047
3174
  --tl-fail-wash: rgba(192, 57, 43, 0.10);
3048
- --tl-review-wash: rgba(184, 134, 11, 0.12);
3175
+ --tl-review-wash: rgba(138, 101, 8, 0.12);
3049
3176
  --tl-run: #1f9c86;
3050
3177
  --tl-ok: #2e9e54;
3051
3178
  --tl-fail: #c0392b;
3052
- --tl-review: #b8860b;
3179
+ --tl-review: #8a6508; /* 5.3:1 on white; #b8860b was 3.3:1 */
3053
3180
  --tl-run-wash: rgba(31, 156, 134, 0.12);
3054
3181
  --tl-on-solid: #ffffff; /* semantic fills are dark/saturated in light */
3055
3182
  --tl-diff-add-fg: #1a7f37; /* AA-safe green for 11px mono on light wash */
@@ -3090,14 +3217,14 @@
3090
3217
  display: inline-flex;
3091
3218
  align-items: center;
3092
3219
  gap: 6px;
3093
- border: 1px solid var(--tl-border);
3220
+ border: 1px solid var(--tl-border-strong);
3094
3221
  border-radius: 14px;
3095
- background: var(--tl-surface-2);
3222
+ background: var(--tl-surface-1);
3096
3223
  color: var(--tl-fg-2);
3097
3224
  padding: 4px 10px;
3098
- font-size: 11px;
3225
+ font-size: var(--tl-text-xs, 11px);
3099
3226
  cursor: pointer;
3100
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
3227
+ box-shadow: 0 0 0 10px var(--tl-surface-0), 0 0 18px 14px var(--tl-surface-0);
3101
3228
  animation: tl-fade-in 120ms ease-out;
3102
3229
  }
3103
3230
 
@@ -3145,7 +3272,7 @@
3145
3272
  align-items: center;
3146
3273
  gap: 6px;
3147
3274
  min-height: 24px;
3148
- font-size: 12px;
3275
+ font-size: var(--tl-text-sm, 12px);
3149
3276
  }
3150
3277
 
3151
3278
  #codex-overleaf-panel .codex-thread-title-text {
@@ -3167,7 +3294,7 @@
3167
3294
  background: var(--tl-surface-1);
3168
3295
  color: var(--tl-fg-1);
3169
3296
  padding: 0 6px;
3170
- font-size: 12px;
3297
+ font-size: var(--tl-text-sm, 12px);
3171
3298
  outline: none;
3172
3299
  }
3173
3300
 
@@ -3190,7 +3317,7 @@
3190
3317
  height: 22px;
3191
3318
  border-radius: var(--tl-r-sm);
3192
3319
  color: var(--tl-fg-4);
3193
- font-size: 12px;
3320
+ font-size: var(--tl-text-sm, 12px);
3194
3321
  opacity: 0.8;
3195
3322
  }
3196
3323
 
@@ -3232,7 +3359,7 @@
3232
3359
  #codex-overleaf-panel .codex-thread-title-chevron {
3233
3360
  flex: 0 0 auto;
3234
3361
  color: var(--tl-fg-4);
3235
- font-size: 9px;
3362
+ font-size: var(--tl-text-xs, 11px);
3236
3363
  }
3237
3364
 
3238
3365
  #codex-overleaf-panel .codex-session-menu {
@@ -3258,15 +3385,29 @@
3258
3385
  }
3259
3386
 
3260
3387
  #codex-overleaf-panel .codex-session-menu-item {
3388
+ position: relative;
3261
3389
  display: flex;
3262
3390
  align-items: center;
3263
3391
  gap: 8px;
3264
3392
  min-width: 0;
3265
3393
  border-radius: var(--tl-r-sm);
3266
- padding: 5px 8px;
3394
+ padding: 0;
3267
3395
  text-align: left;
3268
3396
  }
3269
3397
 
3398
+ #codex-overleaf-panel .codex-session-menu-item:hover { background: var(--tl-hover); }
3399
+ #codex-overleaf-panel .codex-session-menu-switch { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; margin: 0; padding: 5px 8px; border: 0; background: transparent; text-align: left; }
3400
+ #codex-overleaf-panel .codex-session-menu-item-delete { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); display: inline-grid; place-items: center; width: 22px; height: 22px; margin: 0; padding: 0; border: 0; border-radius: var(--tl-r-sm, 4px); background: transparent; color: var(--tl-fg-3); opacity: 0; pointer-events: none; }
3401
+ #codex-overleaf-panel .codex-session-menu-item-delete .codex-glyph { width: 14px; height: 14px; }
3402
+ /* Icon-only action: its empty label would form a second grid row and lift the glyph. */
3403
+ #codex-overleaf-panel .codex-session-menu-item-delete > span { display: none; }
3404
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-delete { opacity: 1; pointer-events: auto; }
3405
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-time { visibility: hidden; }
3406
+ #codex-overleaf-panel .codex-session-menu-item-delete:hover:not(:disabled) { background: color-mix(in srgb, var(--tl-fail) 14%, transparent); color: var(--tl-fail); }
3407
+ #codex-overleaf-panel .codex-session-menu-item-delete:disabled { opacity: 0; cursor: not-allowed; }
3408
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-delete:disabled { opacity: 0.4; }
3409
+ #codex-overleaf-panel :is(.codex-session-menu-switch, .codex-session-menu-item-delete):focus-visible { outline: 2px solid var(--tl-accent); outline-offset: -2px; }
3410
+
3270
3411
  #codex-overleaf-panel .codex-session-menu-item[data-active="true"] {
3271
3412
  background: var(--tl-accent-wash);
3272
3413
  }
@@ -3289,15 +3430,18 @@
3289
3430
  min-width: 0;
3290
3431
  overflow: hidden;
3291
3432
  color: var(--tl-fg-1);
3292
- font-size: 12px;
3433
+ font-size: var(--tl-text-sm, 12px);
3293
3434
  text-overflow: ellipsis;
3294
3435
  white-space: nowrap;
3295
3436
  }
3296
3437
 
3297
3438
  #codex-overleaf-panel .codex-session-menu-item-time {
3298
3439
  flex: 0 0 auto;
3440
+ /* Reserve the delete control's width so a long title never runs under it. */
3441
+ min-width: 22px;
3442
+ text-align: right;
3299
3443
  color: var(--tl-fg-3);
3300
- font-size: 11px;
3444
+ font-size: var(--tl-text-xs, 11px);
3301
3445
  white-space: nowrap;
3302
3446
  }
3303
3447
 
@@ -3307,10 +3451,42 @@
3307
3451
  margin-top: 2px;
3308
3452
  padding: 6px 8px;
3309
3453
  color: var(--tl-accent);
3310
- font-size: 12px;
3454
+ font-size: var(--tl-text-sm, 12px);
3311
3455
  text-align: left;
3312
3456
  }
3313
3457
 
3458
+ /* Header session switcher: the active session title replaces the CODEX label
3459
+ and the always-open Sessions list. Rename/delete/new live in the menu footer. */
3460
+ #codex-overleaf-panel [data-session-slot] { display: none; }
3461
+ #codex-overleaf-panel .codex-head-session { display: flex; flex: 1 1 auto; align-items: center; min-width: 0; margin-right: 6px; }
3462
+ #codex-overleaf-panel[data-view="recent-projects"] .codex-head-session { display: none; }
3463
+ #codex-overleaf-panel:not([data-view="recent-projects"]) .codex-vscode-title { display: none; }
3464
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-trigger { flex: 0 1 auto; max-width: 100%; min-height: 28px; margin-left: -6px; padding: 3px 6px; color: var(--tl-fg-1); font-size: var(--tl-text-md, 13px); font-weight: 500; }
3465
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-text { flex: 0 1 auto; color: inherit; }
3466
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-chevron { display: inline-flex; color: var(--tl-fg-3); font-size: 0; }
3467
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-chevron .codex-icon { width: 12px; height: 12px; transition: transform var(--tl-m-fast) var(--tl-m-ease); }
3468
+ #codex-overleaf-panel .codex-head-session [aria-expanded="true"] .codex-thread-title-chevron .codex-icon { transform: rotate(180deg); }
3469
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-trigger:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
3470
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-input { height: 26px; font-size: var(--tl-text-md, 13px); }
3471
+ #codex-overleaf-panel .codex-head-session .codex-session-menu { top: calc(100% + 6px); left: -6px; right: auto; width: min(320px, calc(var(--codex-overleaf-panel-width) - 24px)); }
3472
+ #codex-overleaf-panel[data-theme="light"] .codex-session-menu { background: var(--tl-surface-1); box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14); }
3473
+ #codex-overleaf-panel .codex-session-menu-item-title { font-size: var(--tl-text-md, 13px); }
3474
+ #codex-overleaf-panel .codex-session-menu-footer { display: flex; gap: 2px; margin-top: 2px; padding-top: 4px; border-top: 1px solid var(--tl-border); }
3475
+ #codex-overleaf-panel .codex-session-menu-footer button { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: center; gap: 5px; min-width: 0; margin: 0; padding: 6px 4px; border: 0; border-top: 0; border-radius: var(--tl-r-sm); color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); white-space: nowrap; }
3476
+ #codex-overleaf-panel .codex-session-menu-footer button span { overflow: hidden; text-overflow: ellipsis; }
3477
+ #codex-overleaf-panel .codex-session-menu-footer button:hover:not(:disabled) { background: var(--tl-hover); color: var(--tl-fg-1); }
3478
+ #codex-overleaf-panel .codex-session-menu-footer .codex-session-menu-new { color: var(--tl-accent); }
3479
+ #codex-overleaf-panel .codex-session-menu-footer .codex-session-menu-delete:hover:not(:disabled) { color: var(--tl-fail); }
3480
+ #codex-overleaf-panel .codex-session-menu-footer button:disabled { opacity: 0.4; }
3481
+ #codex-overleaf-panel .codex-session-menu-footer .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
3482
+
3483
+ /* Health pill: the diagnostics dot gains a short state label. */
3484
+ #codex-overleaf-panel .codex-vscode-head-actions .codex-diagnostics-trigger { gap: 5px; width: auto; height: 22px; margin-right: 4px; padding: 0 8px 0 7px; border-radius: 999px; background: var(--tl-surface-2); color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1; white-space: nowrap; }
3485
+ #codex-overleaf-panel .codex-vscode-head-actions .codex-diagnostics-trigger:hover { background: var(--tl-hover); color: var(--tl-fg-1); }
3486
+ #codex-overleaf-panel .codex-diagnostics-trigger .codex-diagnostics-dot { width: 6px; height: 6px; box-shadow: none; }
3487
+ #codex-overleaf-panel .codex-diagnostics-trigger[data-health="fail"] { color: var(--tl-fail); }
3488
+ #codex-overleaf-panel .codex-diagnostics-trigger[data-health="warn"] { color: var(--tl-review); }
3489
+
3314
3490
  #codex-overleaf-panel .col-log {
3315
3491
  flex: 1 1 auto;
3316
3492
  min-height: 0;
@@ -3353,7 +3529,7 @@
3353
3529
 
3354
3530
  #codex-overleaf-panel .empty-runs-hint {
3355
3531
  color: var(--tl-fg-4);
3356
- font-size: 11px;
3532
+ font-size: var(--tl-text-xs, 11px);
3357
3533
  }
3358
3534
 
3359
3535
  #codex-overleaf-panel .codex-empty-icon {
@@ -3420,7 +3596,6 @@
3420
3596
 
3421
3597
  #codex-overleaf-panel .run-guidance-message {
3422
3598
  display: block;
3423
- border-top: 2px solid var(--tl-accent, #55b9f3);
3424
3599
  margin: 7px 0 4px auto;
3425
3600
  animation: tl-slide-in 140ms ease-out;
3426
3601
  }
@@ -3432,6 +3607,13 @@
3432
3607
  overflow-wrap: anywhere;
3433
3608
  }
3434
3609
 
3610
+ #codex-overleaf-panel .run-guidance-label {
3611
+ margin-top: 3px;
3612
+ color: var(--tl-fg-3);
3613
+ font-size: var(--tl-text-xs, 11px);
3614
+ line-height: 1.4;
3615
+ }
3616
+
3435
3617
  /* A right-aligned toolbar: buttons sit together at the end of the row. Each
3436
3618
  button used to claim margin-left:auto, so two visible buttons split the free
3437
3619
  space and Undo drifted into the middle. */
@@ -3443,26 +3625,38 @@
3443
3625
  min-height: 22px;
3444
3626
  margin: 6px 0 2px;
3445
3627
  color: var(--tl-fg-3);
3446
- font-size: 11px;
3628
+ font-size: var(--tl-text-xs, 11px);
3447
3629
  }
3448
3630
 
3631
+ #codex-overleaf-panel .run-turn-meta:not(:has(> :not([hidden]))) { display: none; }
3632
+ #codex-overleaf-panel .run-turn-meta:not(:has(> :not([hidden]))) + .run-process { margin-top: 10px; }
3633
+
3449
3634
  #codex-overleaf-panel .run-turn-meta .run-edit-action,
3450
3635
  #codex-overleaf-panel .run-turn-meta .run-sync-action {
3451
3636
  flex: 0 0 30px;
3452
3637
  padding: 0;
3453
3638
  }
3454
3639
 
3640
+ /* Finished-run actions (Copy, Fork) always sit bottom right. */
3455
3641
  #codex-overleaf-panel .run-result-actions {
3456
3642
  display: flex;
3457
- justify-content: flex-start;
3643
+ justify-content: flex-end;
3458
3644
  align-items: center;
3459
3645
  gap: 2px;
3460
- min-height: 30px;
3461
- margin: 10px 0 0;
3646
+ min-height: 26px;
3647
+ margin: 6px 0 0;
3462
3648
  }
3463
3649
 
3464
3650
  #codex-overleaf-panel .run-result-actions[hidden] { display: none; }
3465
3651
 
3652
+ /* One meta row: facts summary on the left, Copy/Fork fixed on the right.
3653
+ Long facts wrap inside their own column instead of pushing the actions to a new line. */
3654
+ #codex-overleaf-panel .run-final-answer__facts:has(> .run-result-actions:not([hidden])) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 2px 8px; }
3655
+ #codex-overleaf-panel .run-final-answer__facts:has(> .run-result-actions:not([hidden])) > .run-final-answer__facts-sum { justify-self: start; width: auto; max-width: calc(100% + 8px); min-width: 0; min-height: 26px; margin-right: 0; }
3656
+ #codex-overleaf-panel .run-final-answer__facts > .run-result-actions { min-height: 26px; margin: 0; }
3657
+ #codex-overleaf-panel .run-result-actions :is(.run-copy-action, .run-fork-action) { width: 26px; height: 26px; }
3658
+ #codex-overleaf-panel .run-final-answer__facts > .run-final-answer__meta { grid-column: 1 / -1; }
3659
+
3466
3660
  #codex-overleaf-panel .run-copy-action,
3467
3661
  #codex-overleaf-panel .run-fork-action {
3468
3662
  display: inline-grid;
@@ -3503,15 +3697,6 @@
3503
3697
  #codex-overleaf-panel .run-copy-action[hidden],
3504
3698
  #codex-overleaf-panel .run-fork-action[hidden] { display: none; }
3505
3699
 
3506
- #codex-overleaf-panel .run-completed-time {
3507
- margin-left: 5px;
3508
- color: var(--tl-fg-4);
3509
- font-size: 12px;
3510
- font-variant-numeric: tabular-nums;
3511
- line-height: 30px;
3512
- }
3513
-
3514
- #codex-overleaf-panel .run-completed-time[hidden] { display: none; }
3515
3700
 
3516
3701
  #codex-overleaf-panel .run-turn-meta [data-run-accept],
3517
3702
  #codex-overleaf-panel .run-turn-meta [data-run-accept-confirm],
@@ -3519,7 +3704,7 @@
3519
3704
  min-height: 30px;
3520
3705
  border-radius: 4px;
3521
3706
  padding: 3px 11px;
3522
- font-size: 12px;
3707
+ font-size: var(--tl-text-sm, 12px);
3523
3708
  font-weight: 700;
3524
3709
  }
3525
3710
 
@@ -3559,7 +3744,7 @@
3559
3744
  color: var(--tl-on-solid);
3560
3745
  padding: 3px 11px;
3561
3746
  box-shadow: 0 0 0 1px rgba(240, 136, 62, 0.34), 0 4px 12px rgba(0, 0, 0, 0.24);
3562
- font-size: 12px;
3747
+ font-size: var(--tl-text-sm, 12px);
3563
3748
  font-weight: 700;
3564
3749
  }
3565
3750
 
@@ -3574,7 +3759,7 @@
3574
3759
  #codex-overleaf-panel .run-status {
3575
3760
  flex: 0 0 auto;
3576
3761
  color: var(--tl-accent) !important;
3577
- font-size: 11px !important;
3762
+ font-size: var(--tl-text-xs, 11px) !important;
3578
3763
  white-space: nowrap;
3579
3764
  }
3580
3765
 
@@ -3636,7 +3821,7 @@
3636
3821
  justify-content: center;
3637
3822
  width: 14px;
3638
3823
  height: 14px;
3639
- font-size: 11px;
3824
+ font-size: var(--tl-text-xs, 11px);
3640
3825
  line-height: 1;
3641
3826
  background: transparent;
3642
3827
  }
@@ -3701,7 +3886,7 @@
3701
3886
  align-items: center;
3702
3887
  gap: 8px;
3703
3888
  color: var(--tl-fg-3);
3704
- font-size: 11px;
3889
+ font-size: var(--tl-text-xs, 11px);
3705
3890
  }
3706
3891
 
3707
3892
  #codex-overleaf-panel .run-activity[data-kind="checkpoint"] .run-activity-title::before,
@@ -3715,7 +3900,7 @@
3715
3900
  #codex-overleaf-panel .run-activity-title {
3716
3901
  min-width: 0;
3717
3902
  color: var(--tl-fg-2);
3718
- font-size: 12px;
3903
+ font-size: var(--tl-text-sm, 12px);
3719
3904
  line-height: 1.45;
3720
3905
  /* v1.7.7: activity narration must be readable in full — wrap instead of
3721
3906
  the old single-line ellipsis (which hid text at every panel width).
@@ -3772,7 +3957,7 @@
3772
3957
  white-space: pre-wrap;
3773
3958
  overflow-wrap: anywhere;
3774
3959
  word-break: normal;
3775
- font-size: 12px;
3960
+ font-size: var(--tl-text-sm, 12px);
3776
3961
  line-height: 1.48;
3777
3962
  }
3778
3963
 
@@ -3858,28 +4043,38 @@
3858
4043
  color: var(--tl-fg-3);
3859
4044
  }
3860
4045
 
4046
+ /* File-line references render as quiet monospace pills so several in one
4047
+ sentence don't drown the prose; the model's surrounding text is unchanged. */
3861
4048
  #codex-overleaf-panel .codex-line-reference {
4049
+ display: inline;
4050
+ margin: 0 1px;
3862
4051
  border: 0;
3863
- background: transparent;
4052
+ border-radius: 5px;
4053
+ background: var(--tl-accent-wash);
3864
4054
  color: var(--tl-accent);
3865
- padding: 0;
3866
- font: inherit;
4055
+ padding: 1px 5px 2px;
4056
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4057
+ font-size: 0.8em;
4058
+ font-weight: 500;
3867
4059
  line-height: inherit;
3868
- text-decoration: underline;
3869
- text-underline-offset: 2px;
4060
+ text-decoration: none;
4061
+ white-space: nowrap;
4062
+ vertical-align: 0.06em;
4063
+ -webkit-box-decoration-break: clone;
4064
+ box-decoration-break: clone;
3870
4065
  cursor: pointer;
4066
+ transition: background var(--tl-m-fast, 140ms) ease, color var(--tl-m-fast, 140ms) ease;
3871
4067
  }
3872
4068
 
3873
4069
  #codex-overleaf-panel .codex-line-reference:hover,
3874
4070
  #codex-overleaf-panel .codex-line-reference:focus-visible {
3875
- background: transparent;
3876
- color: var(--tl-accent);
4071
+ background: var(--tl-accent);
4072
+ color: var(--tl-on-solid, #ffffff);
3877
4073
  }
3878
4074
 
3879
4075
  #codex-overleaf-panel .codex-line-reference:focus-visible {
3880
- outline: 1px solid var(--tl-accent);
3881
- outline-offset: 2px;
3882
- border-radius: 2px;
4076
+ outline: 2px solid var(--tl-accent);
4077
+ outline-offset: 1px;
3883
4078
  }
3884
4079
 
3885
4080
  #codex-overleaf-panel .codex-line-reference:disabled {
@@ -3911,7 +4106,7 @@
3911
4106
  gap: 6px;
3912
4107
  cursor: pointer;
3913
4108
  color: var(--tl-fg-3);
3914
- font-size: 12px;
4109
+ font-size: var(--tl-text-sm, 12px);
3915
4110
  list-style: none;
3916
4111
  user-select: none;
3917
4112
  background: var(--tl-surface-1);
@@ -3927,7 +4122,7 @@
3927
4122
  #codex-overleaf-panel .run-process summary::before {
3928
4123
  content: "·";
3929
4124
  color: var(--tl-fg-4);
3930
- font-size: 11px;
4125
+ font-size: var(--tl-text-xs, 11px);
3931
4126
  line-height: 1;
3932
4127
  }
3933
4128
 
@@ -4023,7 +4218,7 @@
4023
4218
  min-height: 28px;
4024
4219
  padding: 3px 0;
4025
4220
  background: transparent;
4026
- font-size: 12px;
4221
+ font-size: var(--tl-text-sm, 12px);
4027
4222
  line-height: 1.5;
4028
4223
  flex-wrap: wrap;
4029
4224
  }
@@ -4037,12 +4232,11 @@
4037
4232
  }
4038
4233
  #codex-overleaf-panel .run-presentation-workflow .run-process:not([open]) + .run-activity-list { display: grid; }
4039
4234
  #codex-overleaf-panel .run-workflow-list { gap: 0; margin-top: 5px; }
4040
- #codex-overleaf-panel .run-workflow-list[data-expanded="false"] > .run-work-block:not([data-kind="guidance"]) { display: none; }
4041
- #codex-overleaf-panel .run-presentation-workflow .run-guidance-list:empty,
4042
- #codex-overleaf-panel .run-workflow-guidance:empty { display: none; }
4235
+ #codex-overleaf-panel .run-workflow-list[data-expanded="false"] > .run-work-block { display: none; }
4236
+ #codex-overleaf-panel .run-presentation-workflow .run-guidance-list:empty { display: none; }
4043
4237
  #codex-overleaf-panel .run-workflow-message {
4044
4238
  color: var(--tl-fg-1);
4045
- font-size: 13px;
4239
+ font-size: var(--tl-text-md, 13px);
4046
4240
  line-height: 1.75;
4047
4241
  margin: 10px 0 13px;
4048
4242
  white-space: normal;
@@ -4057,7 +4251,7 @@
4057
4251
  #codex-overleaf-panel .run-peek[data-overflow="true"] { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 16px); mask-image: linear-gradient(to bottom, transparent 0, #000 16px); }
4058
4252
  #codex-overleaf-panel .run-peek[hidden], #codex-overleaf-panel .run-peek-more[hidden] { display: none !important; }
4059
4253
  #codex-overleaf-panel .run-peek-track { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; }
4060
- #codex-overleaf-panel .run-peek-row { display: flex; align-items: center; gap: 7px; min-width: 0; height: 22px; color: var(--tl-fg-2); font-size: 12px; line-height: 22px; }
4254
+ #codex-overleaf-panel .run-peek-row { display: flex; align-items: center; gap: 7px; min-width: 0; height: 22px; color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); line-height: 22px; }
4061
4255
  #codex-overleaf-panel .run-peek-row.is-entering { animation: tl-peek-in 420ms var(--tl-m-ease); }
4062
4256
  #codex-overleaf-panel .run-peek-glyph { display: inline-grid; place-items: center; flex: none; width: 14px; height: 14px; color: var(--tl-fg-4); }
4063
4257
  #codex-overleaf-panel .run-peek-glyph svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
@@ -4077,10 +4271,10 @@
4077
4271
  #codex-overleaf-panel .run-peek-row[data-kind="thought"] .run-peek-label { color: var(--tl-fg-3); }
4078
4272
  #codex-overleaf-panel .run-peek-lead { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
4079
4273
  #codex-overleaf-panel .run-peek-row[data-kind="thought"] .run-peek-lead { color: var(--tl-fg-4); }
4080
- #codex-overleaf-panel .run-peek-row[data-kind="tool"] .run-peek-lead { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; }
4274
+ #codex-overleaf-panel .run-peek-row[data-kind="tool"] .run-peek-lead { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--tl-text-xs, 11px); }
4081
4275
  #codex-overleaf-panel .run-peek-row[data-kind="setup"][data-state="running"] .run-peek-lead { color: var(--tl-fg-1); }
4082
- #codex-overleaf-panel .run-peek-result { flex: none; margin-left: auto; padding-left: 8px; color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
4083
- #codex-overleaf-panel .run-peek-more { display: block; margin: 0 0 2px 25px; min-height: 0; height: auto; padding: 0; border: 0; background: none; box-shadow: none; color: var(--tl-fg-4); font: inherit; font-size: 11px; cursor: pointer; }
4276
+ #codex-overleaf-panel .run-peek-result { flex: none; margin-left: auto; padding-left: 8px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
4277
+ #codex-overleaf-panel .run-peek-more { display: block; margin: 0 0 2px 25px; min-height: 0; height: auto; padding: 0; border: 0; background: none; box-shadow: none; color: var(--tl-fg-4); font: inherit; font-size: var(--tl-text-xs, 11px); cursor: pointer; }
4084
4278
  #codex-overleaf-panel .run-peek-more:hover { color: var(--tl-fg-1); }
4085
4279
  #codex-overleaf-panel .run-peek-more:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
4086
4280
  @keyframes tl-peek-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@@ -4088,7 +4282,7 @@
4088
4282
  /* Start-up block: Send → project read → workspace → Codex → first model response. */
4089
4283
  #codex-overleaf-panel .run-setup { min-width: 0; margin: 6px 0 4px; border: 1px solid var(--tl-border); border-radius: var(--tl-r-md); background: var(--tl-surface-1); overflow: hidden; animation: tl-rise var(--tl-m-base) var(--tl-m-ease); }
4090
4284
  #codex-overleaf-panel .run-setup[hidden] { display: none !important; }
4091
- #codex-overleaf-panel .run-setup-summary { display: flex; align-items: center; gap: 7px; min-height: 28px; padding: 4px 10px; list-style: none; color: var(--tl-fg-3); font-size: 12px; cursor: pointer; font-variant-numeric: tabular-nums; }
4285
+ #codex-overleaf-panel .run-setup-summary { display: flex; align-items: center; gap: 7px; min-height: 28px; padding: 4px 10px; list-style: none; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); cursor: pointer; font-variant-numeric: tabular-nums; }
4092
4286
  #codex-overleaf-panel .run-setup-summary::-webkit-details-marker { display: none; }
4093
4287
  #codex-overleaf-panel .run-setup-summary:hover { color: var(--tl-fg-1); }
4094
4288
  #codex-overleaf-panel .run-setup-summary:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: -2px; }
@@ -4101,7 +4295,7 @@
4101
4295
  #codex-overleaf-panel .run-setup[data-folded="false"] > .run-setup-summary { display: none; }
4102
4296
  #codex-overleaf-panel .run-setup-steps { display: grid; gap: 1px; padding: 6px 10px 7px; }
4103
4297
  #codex-overleaf-panel .run-setup[data-folded="true"] .run-setup-steps { border-top: 1px solid var(--tl-border); }
4104
- #codex-overleaf-panel .run-setup-step { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: start; gap: 7px; padding: 3px 0; color: var(--tl-fg-2); font-size: 12px; line-height: 1.5; animation: tl-rise var(--tl-m-base) var(--tl-m-ease); }
4298
+ #codex-overleaf-panel .run-setup-step { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: start; gap: 7px; padding: 3px 0; color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); line-height: 1.5; animation: tl-rise var(--tl-m-base) var(--tl-m-ease); }
4105
4299
  #codex-overleaf-panel .run-setup-glyph { display: inline-grid; place-items: center; width: 14px; height: 18px; color: var(--tl-ok); }
4106
4300
  #codex-overleaf-panel .run-setup-glyph svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
4107
4301
  #codex-overleaf-panel .run-setup-step[data-state="running"] .run-setup-glyph { color: var(--tl-run); }
@@ -4109,12 +4303,12 @@
4109
4303
  #codex-overleaf-panel .run-setup-step[data-state="running"] .run-setup-text { color: var(--tl-fg-1); }
4110
4304
  #codex-overleaf-panel .run-setup-step[data-state="warning"] .run-setup-glyph { color: var(--tl-review); }
4111
4305
  #codex-overleaf-panel .run-setup-text { min-width: 0; overflow-wrap: anywhere; }
4112
- #codex-overleaf-panel .run-setup-note { display: block; color: var(--tl-review); font-size: 11.5px; }
4113
- #codex-overleaf-panel .run-setup-calm { display: block; margin-top: 2px; color: var(--tl-fg-4); font-size: 11.5px; animation: tl-rise var(--tl-m-slow) var(--tl-m-ease); }
4114
- #codex-overleaf-panel .run-setup-time { color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
4306
+ #codex-overleaf-panel .run-setup-note { display: block; color: var(--tl-review); font-size: var(--tl-text-xs, 11px); }
4307
+ #codex-overleaf-panel .run-setup-calm { display: block; margin-top: 2px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); animation: tl-rise var(--tl-m-slow) var(--tl-m-ease); }
4308
+ #codex-overleaf-panel .run-setup-time { color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
4115
4309
 
4116
4310
  /* Reasoning (CoT) rounds: live = last three lines streaming under a fade; settled = one quiet line. */
4117
- #codex-overleaf-panel .run-workflow-thought { min-width: 0; max-width: 100%; margin: 3px 0; color: var(--tl-fg-3); font-size: 12px; line-height: 1.55; }
4311
+ #codex-overleaf-panel .run-workflow-thought { min-width: 0; max-width: 100%; margin: 3px 0; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.55; }
4118
4312
  #codex-overleaf-panel .run-workflow-thought-line { display: flex; align-items: baseline; gap: 7px; min-width: 0; padding: 3px 3px 3px 26px; border-radius: 6px; list-style: none; cursor: pointer; position: relative; }
4119
4313
  #codex-overleaf-panel .run-workflow-thought-line::-webkit-details-marker { display: none; }
4120
4314
  #codex-overleaf-panel .run-workflow-thought-line::before { content: ""; position: absolute; left: 8px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--tl-fg-4); opacity: .7; }
@@ -4133,7 +4327,6 @@
4133
4327
  #codex-overleaf-panel .run-workflow-thought-full > :first-child { margin-top: 0; }
4134
4328
  #codex-overleaf-panel .run-workflow-thought-full > :last-child { margin-bottom: 0; }
4135
4329
  #codex-overleaf-panel .run-workflow-message > :last-child { margin-bottom: 0; }
4136
- #codex-overleaf-panel .run-workflow-guidance { margin: 15px 0; min-width: 0; }
4137
4330
  #codex-overleaf-panel .run-workflow-tool { min-width: 0; max-width: 100%; margin: 3px 0; }
4138
4331
  #codex-overleaf-panel .run-workflow-tool-summary {
4139
4332
  display: flex;
@@ -4145,7 +4338,7 @@
4145
4338
  padding: 5px 3px;
4146
4339
  border-radius: 6px;
4147
4340
  color: var(--tl-fg-3);
4148
- font-size: 12px;
4341
+ font-size: var(--tl-text-sm, 12px);
4149
4342
  line-height: 1.6;
4150
4343
  list-style: none;
4151
4344
  cursor: pointer;
@@ -4169,7 +4362,7 @@
4169
4362
  -webkit-line-clamp: 2;
4170
4363
  overflow: hidden;
4171
4364
  }
4172
- #codex-overleaf-panel .run-workflow-tool-state { flex: 0 1 auto; margin-left: auto; font-size: 11px; text-align: right; }
4365
+ #codex-overleaf-panel .run-workflow-tool-state { flex: 0 1 auto; margin-left: auto; font-size: var(--tl-text-xs, 11px); text-align: right; }
4173
4366
  #codex-overleaf-panel .run-workflow-chevron {
4174
4367
  width: 5px; height: 5px;
4175
4368
  flex: 0 0 5px;
@@ -4192,7 +4385,7 @@
4192
4385
  margin: 4px 0 9px 26px;
4193
4386
  min-width: 0;
4194
4387
  color: var(--tl-fg-3);
4195
- font-size: 12px;
4388
+ font-size: var(--tl-text-sm, 12px);
4196
4389
  line-height: 1.65;
4197
4390
  }
4198
4391
  #codex-overleaf-panel .run-workflow-tool-body > .run-workflow-tool { margin: 1px 0; }
@@ -4207,15 +4400,15 @@
4207
4400
  color: var(--tl-fg-2);
4208
4401
  white-space: pre-wrap;
4209
4402
  overflow-wrap: anywhere;
4210
- font-size: 11px;
4403
+ font-size: var(--tl-text-xs, 11px);
4211
4404
  line-height: 1.65;
4212
4405
  }
4213
- #codex-overleaf-panel .run-workflow-diff-count { display: inline-flex; gap: 5px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
4406
+ #codex-overleaf-panel .run-workflow-diff-count { display: inline-flex; gap: 5px; font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; white-space: nowrap; }
4214
4407
  #codex-overleaf-panel .run-workflow-added,
4215
4408
  #codex-overleaf-panel .run-workflow-patch .is-added { color: var(--tl-ok); }
4216
4409
  #codex-overleaf-panel .run-workflow-removed,
4217
4410
  #codex-overleaf-panel .run-workflow-patch .is-removed { color: var(--tl-fail); }
4218
- #codex-overleaf-panel .run-workflow-metrics { color: var(--tl-fg-3); font-size: 11px; }
4411
+ #codex-overleaf-panel .run-workflow-metrics { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
4219
4412
  #codex-overleaf-panel .run-workflow-attention {
4220
4413
  display: block;
4221
4414
  width: 100%;
@@ -4223,13 +4416,13 @@
4223
4416
  border: 0;
4224
4417
  padding: 6px 0;
4225
4418
  color: var(--tl-review);
4226
- font-size: 12px;
4419
+ font-size: var(--tl-text-sm, 12px);
4227
4420
  text-align: left;
4228
4421
  line-height: 1.6;
4229
4422
  overflow-wrap: anywhere;
4230
4423
  cursor: pointer;
4231
4424
  }
4232
- #codex-overleaf-panel .run-workflow-busy { color: var(--tl-fg-3); padding: 5px 0; font-size: 12px; }
4425
+ #codex-overleaf-panel .run-workflow-busy { color: var(--tl-fg-3); padding: 5px 0; font-size: var(--tl-text-sm, 12px); }
4233
4426
  #codex-overleaf-panel .run-presentation-workflow [hidden] { display: none !important; }
4234
4427
  @media (pointer: coarse) {
4235
4428
  #codex-overleaf-panel .run-workflow-tool-summary { min-height: 40px; align-items: center; }
@@ -4246,7 +4439,7 @@
4246
4439
  margin: 0;
4247
4440
  color: var(--tl-fg-1);
4248
4441
  word-break: break-word;
4249
- font-size: 13px;
4442
+ font-size: var(--tl-text-md, 13px);
4250
4443
  line-height: 1.52;
4251
4444
  }
4252
4445
 
@@ -4271,7 +4464,7 @@
4271
4464
  gap: 6px;
4272
4465
  margin: 7px 0 8px;
4273
4466
  color: var(--tl-ok);
4274
- font-size: 12px;
4467
+ font-size: var(--tl-text-sm, 12px);
4275
4468
  }
4276
4469
 
4277
4470
  #codex-overleaf-panel .run-final-answer .run-change-summary__check {
@@ -4347,7 +4540,7 @@
4347
4540
  background: var(--tl-surface-2);
4348
4541
  color: var(--tl-review);
4349
4542
  padding: 1px 4px;
4350
- font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4543
+ font: var(--tl-text-sm, 12px)/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4351
4544
  }
4352
4545
 
4353
4546
  /* Completion facts: one muted summary line; the meta rows sit behind it. */
@@ -4356,11 +4549,12 @@
4356
4549
  display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px;
4357
4550
  box-sizing: border-box; width: calc(100% + 8px); min-height: 0; margin: 0 -4px; padding: 3px 4px;
4358
4551
  border: 0; border-radius: 6px; background: none; color: var(--tl-fg-3);
4359
- font: inherit; font-size: 12px; line-height: 1.5; text-align: left; font-variant-numeric: tabular-nums; cursor: pointer;
4552
+ font: inherit; font-size: var(--tl-text-sm, 12px); line-height: 1.5; text-align: left; font-variant-numeric: tabular-nums; cursor: pointer;
4360
4553
  }
4361
4554
  #codex-overleaf-panel .run-final-answer__facts-sum:hover { background: var(--tl-surface-1); color: var(--tl-fg-2); }
4362
4555
  #codex-overleaf-panel .run-final-answer__facts-sum:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
4363
4556
  #codex-overleaf-panel .run-final-answer__facts-sep { color: var(--tl-fg-4); }
4557
+ #codex-overleaf-panel .run-final-answer__facts-tail { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
4364
4558
  #codex-overleaf-panel .run-final-answer__fact[data-tone="warn"] { color: var(--tl-review); }
4365
4559
  #codex-overleaf-panel .run-final-answer__fact[data-tone="warn"][data-fact="skip"]::before { content: "\26A0\FE0E "; }
4366
4560
  #codex-overleaf-panel .run-final-answer__fact[data-tone="fail"] { color: var(--tl-fail); }
@@ -4378,7 +4572,7 @@
4378
4572
  grid-template-columns: max-content 1fr;
4379
4573
  column-gap: 12px;
4380
4574
  row-gap: 4px;
4381
- font-size: 12px; /* 11.5 -> 12: clears WCAG-AA at the muted color */
4575
+ font-size: var(--tl-text-sm, 12px); /* 11.5 -> 12: clears WCAG-AA at the muted color */
4382
4576
  line-height: 1.5;
4383
4577
  color: var(--tl-fg-3);
4384
4578
  }
@@ -4428,7 +4622,7 @@
4428
4622
  border-radius: 3px;
4429
4623
  color: var(--tl-fg-1);
4430
4624
  font: inherit;
4431
- font-size: 12px;
4625
+ font-size: var(--tl-text-sm, 12px);
4432
4626
  cursor: pointer;
4433
4627
  transition: background 0.12s ease, border-color 0.12s ease;
4434
4628
  }
@@ -4451,7 +4645,7 @@
4451
4645
  border-radius: 8px;
4452
4646
  background: var(--tl-surface-2);
4453
4647
  color: var(--tl-fg-2);
4454
- font-size: 12px;
4648
+ font-size: var(--tl-text-sm, 12px);
4455
4649
  line-height: 1.5;
4456
4650
  overflow-wrap: anywhere;
4457
4651
  }
@@ -4480,21 +4674,28 @@
4480
4674
  }
4481
4675
  }
4482
4676
 
4677
+ /* Quiet scope line above the composer: icon + what Codex will read. Only a
4678
+ condition that needs the user (a failed refresh) changes its tone. */
4483
4679
  #codex-overleaf-panel .codex-probe-line {
4484
4680
  flex: 0 0 auto;
4485
- min-height: 18px;
4486
- border-top: 1px solid var(--tl-border);
4681
+ display: flex;
4682
+ align-items: center;
4683
+ flex-wrap: wrap;
4684
+ gap: 2px 6px;
4685
+ min-height: 16px;
4686
+ padding: 8px 18px 0;
4487
4687
  color: var(--tl-fg-3);
4488
- padding: 4px 12px 0;
4489
- font-size: 11px;
4490
- /* Narrative status text (v1.7.7) — wrap instead of hiding the tail. */
4688
+ font-size: var(--tl-text-xs, 11px);
4689
+ line-height: 16px;
4491
4690
  white-space: normal;
4492
4691
  overflow-wrap: anywhere;
4493
4692
  }
4494
-
4495
- #codex-overleaf-panel .codex-probe-line[data-ok="true"] {
4496
- color: var(--tl-ok);
4497
- }
4693
+ #codex-overleaf-panel .codex-probe-scope { display: inline-flex; align-items: center; gap: 5px; }
4694
+ #codex-overleaf-panel .codex-probe-scope .codex-glyph { flex: 0 0 12px; width: 12px; height: 12px; }
4695
+ #codex-overleaf-panel .codex-probe-sep { opacity: .7; }
4696
+ #codex-overleaf-panel .codex-probe-line [data-tone="warn"],
4697
+ #codex-overleaf-panel .codex-probe-line[data-tone="warn"] { color: var(--tl-review); }
4698
+ #codex-overleaf-panel .codex-probe-line[data-tone="warn"]::before { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
4498
4699
 
4499
4700
  #codex-overleaf-panel .codex-composer {
4500
4701
  position: relative;
@@ -4525,7 +4726,7 @@
4525
4726
  border-radius: var(--tl-r-md);
4526
4727
  padding: 8px 10px;
4527
4728
  color: var(--tl-fg-2);
4528
- font-size: 12px;
4729
+ font-size: var(--tl-text-sm, 12px);
4529
4730
  line-height: 1.4;
4530
4731
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
4531
4732
  animation: tl-fade-in 160ms ease-out;
@@ -4533,51 +4734,129 @@
4533
4734
 
4534
4735
  #codex-overleaf-panel .codex-slash-menu {
4535
4736
  position: absolute;
4536
- left: 8px;
4537
- right: 8px;
4737
+ left: 6px;
4738
+ right: 6px;
4538
4739
  bottom: calc(100% + 6px);
4539
4740
  z-index: 2147483647;
4540
4741
  display: grid;
4541
- gap: 2px;
4742
+ grid-auto-rows: max-content;
4743
+ align-content: start;
4744
+ gap: 1px;
4745
+ box-sizing: border-box;
4746
+ max-height: min(390px, var(--codex-slash-menu-space, 50vh));
4747
+ overflow-y: auto;
4748
+ overflow-x: hidden;
4749
+ overscroll-behavior: contain;
4542
4750
  border: 1px solid var(--tl-border-strong);
4543
- border-radius: 8px;
4751
+ border-radius: 10px;
4544
4752
  background: var(--tl-surface-2);
4545
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
4546
- padding: 5px;
4753
+ box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48), 0 2px 6px rgba(0, 0, 0, 0.24);
4754
+ padding: 4px 4px 0;
4547
4755
  }
4548
4756
 
4757
+ #codex-overleaf-panel[data-theme="light"] .codex-slash-menu { box-shadow: 0 16px 40px rgba(15, 23, 42, 0.16), 0 2px 6px rgba(15, 23, 42, 0.06); }
4758
+
4549
4759
  #codex-overleaf-panel .codex-slash-menu[hidden] {
4550
4760
  display: none;
4551
4761
  }
4552
4762
 
4763
+ #codex-overleaf-panel .codex-slash-menu-group { padding: 8px 8px 4px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-weight: 500; }
4764
+ #codex-overleaf-panel .codex-slash-menu-group:first-child { padding-top: 5px; }
4765
+
4553
4766
  #codex-overleaf-panel .codex-slash-menu button {
4554
4767
  display: grid;
4555
- gap: 2px;
4768
+ grid-template-columns: 26px minmax(0, 1fr) auto;
4769
+ align-items: center;
4770
+ column-gap: 10px;
4556
4771
  width: 100%;
4772
+ min-width: 0;
4557
4773
  border: 0;
4558
- border-radius: 6px;
4774
+ border-radius: 7px;
4559
4775
  background: transparent;
4560
4776
  color: var(--tl-fg-1);
4561
- padding: 7px 8px;
4777
+ padding: 5px 8px 5px 5px;
4562
4778
  text-align: left;
4779
+ white-space: normal;
4780
+ overflow-wrap: anywhere;
4563
4781
  }
4564
4782
 
4565
4783
  #codex-overleaf-panel .codex-slash-menu button[data-active="true"],
4566
4784
  #codex-overleaf-panel .codex-slash-menu button:hover {
4567
- background: var(--tl-accent-wash);
4785
+ background: var(--tl-hover);
4568
4786
  color: var(--tl-fg-1);
4569
4787
  }
4570
4788
 
4789
+ #codex-overleaf-panel .codex-slash-menu-icon {
4790
+ display: grid;
4791
+ place-items: center;
4792
+ width: 26px;
4793
+ height: 26px;
4794
+ border-radius: 7px;
4795
+ background: var(--tl-surface-1);
4796
+ box-shadow: inset 0 0 0 1px var(--tl-border);
4797
+ color: var(--tl-fg-2);
4798
+ transition: background-color var(--tl-m-fast), color var(--tl-m-fast);
4799
+ }
4800
+ #codex-overleaf-panel .codex-slash-menu-icon .codex-glyph { width: 14px; height: 14px; stroke-width: 1.5; }
4801
+ #codex-overleaf-panel .codex-slash-menu button[data-active="true"] .codex-slash-menu-icon {
4802
+ background: var(--tl-accent-wash);
4803
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tl-accent) 32%, transparent);
4804
+ color: var(--tl-accent);
4805
+ }
4806
+ #codex-overleaf-panel .codex-slash-menu-text { display: grid; gap: 1px; min-width: 0; }
4807
+ #codex-overleaf-panel .codex-slash-menu-title { font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.35; }
4808
+ #codex-overleaf-panel .codex-slash-menu-title code { margin: 0 0 0 7px; padding: 0; border: 0; background: none; color: var(--tl-fg-3); font: 400 var(--tl-text-xs, 11px) ui-monospace, SFMono-Regular, Menlo, monospace; }
4809
+ #codex-overleaf-panel .codex-slash-menu mark { background: none; color: var(--tl-accent); font-weight: 600; }
4810
+ #codex-overleaf-panel .codex-slash-menu-meta { padding: 1px 6px; border-radius: 5px; background: var(--tl-surface-1); box-shadow: inset 0 0 0 1px var(--tl-border); color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
4811
+ #codex-overleaf-panel .codex-slash-menu-meta[data-level="high"] { color: var(--tl-review); }
4812
+ #codex-overleaf-panel .codex-slash-menu-meta[data-level="near-limit"] { color: var(--tl-fail); }
4813
+
4814
+ /* The hint row stays visible while the list scrolls; keyboard reveal subtracts its height. */
4815
+ #codex-overleaf-panel .codex-slash-menu-foot {
4816
+ position: sticky;
4817
+ bottom: 0;
4818
+ display: flex;
4819
+ flex-wrap: wrap;
4820
+ gap: 4px 14px;
4821
+ margin: 3px -4px 0;
4822
+ padding: 7px 12px;
4823
+ border-top: 1px solid var(--tl-border);
4824
+ background: var(--tl-surface-2);
4825
+ color: var(--tl-fg-3);
4826
+ font-size: var(--tl-text-xs, 11px);
4827
+ }
4828
+ /* Overleaf's Bootstrap styles every kbd (dark fill, white text, inset shadow); own each property. */
4829
+ #codex-overleaf-panel .codex-slash-menu-foot kbd {
4830
+ display: inline-block;
4831
+ min-width: 18px;
4832
+ margin-right: 4px;
4833
+ padding: 0 5px;
4834
+ border: 1px solid var(--tl-border-strong);
4835
+ border-bottom-width: 2px;
4836
+ border-radius: 4px;
4837
+ background: var(--tl-surface-1);
4838
+ box-shadow: none;
4839
+ color: var(--tl-fg-2);
4840
+ font: 500 var(--tl-text-xs, 11px)/14px ui-monospace, SFMono-Regular, Menlo, monospace;
4841
+ text-align: center;
4842
+ vertical-align: baseline;
4843
+ }
4844
+ #codex-overleaf-panel .codex-slash-menu-foot kbd + kbd { margin-left: -2px; }
4845
+
4571
4846
  #codex-overleaf-panel .codex-slash-menu-note {
4572
- padding: 8px 10px;
4847
+ padding: 8px 10px 12px;
4573
4848
  color: var(--tl-fg-3);
4574
- font-size: 12px;
4849
+ font-size: var(--tl-text-sm, 12px);
4575
4850
  }
4576
4851
 
4577
4852
  #codex-overleaf-panel .codex-slash-menu small {
4853
+ display: -webkit-box;
4854
+ overflow: hidden;
4855
+ -webkit-box-orient: vertical;
4856
+ -webkit-line-clamp: 2;
4578
4857
  color: var(--tl-fg-3);
4579
- font-size: 11px;
4580
- line-height: 1.3;
4858
+ font-size: var(--tl-text-xs, 11px);
4859
+ line-height: 1.35;
4581
4860
  }
4582
4861
 
4583
4862
  #codex-overleaf-panel .codex-composer-skill-context {
@@ -4592,7 +4871,7 @@
4592
4871
  background: var(--tl-surface-1);
4593
4872
  color: var(--tl-fg-1);
4594
4873
  padding: 5px 7px;
4595
- font-size: 12px;
4874
+ font-size: var(--tl-text-sm, 12px);
4596
4875
  line-height: 1.2;
4597
4876
  }
4598
4877
 
@@ -4601,10 +4880,13 @@
4601
4880
  }
4602
4881
 
4603
4882
  #codex-overleaf-panel .codex-composer-skill-icon {
4883
+ display: inline-grid;
4604
4884
  color: var(--tl-accent);
4605
- font-size: 13px;
4606
4885
  }
4607
4886
 
4887
+ #codex-overleaf-panel .codex-composer-skill-icon .codex-glyph { width: 13px; height: 13px; stroke-width: 1.4; }
4888
+ #codex-overleaf-panel .codex-composer-skill-context button .codex-glyph { width: 11px; height: 11px; stroke-width: 1.7; }
4889
+
4608
4890
  #codex-overleaf-panel .codex-composer-skill-context [data-composer-skill-label] {
4609
4891
  overflow: hidden;
4610
4892
  text-overflow: ellipsis;
@@ -4621,7 +4903,7 @@
4621
4903
  background: transparent;
4622
4904
  color: var(--tl-fg-3);
4623
4905
  padding: 0;
4624
- font-size: 14px;
4906
+ font-size: var(--tl-text-base, 14px);
4625
4907
  line-height: 1;
4626
4908
  }
4627
4909
 
@@ -4682,7 +4964,7 @@
4682
4964
  border-radius: 4px;
4683
4965
  color: var(--tl-fg-3);
4684
4966
  padding: 0 4px;
4685
- font-size: 11px;
4967
+ font-size: var(--tl-text-xs, 11px);
4686
4968
  text-overflow: ellipsis;
4687
4969
  white-space: nowrap;
4688
4970
  transition: background-color 120ms ease, color 120ms ease;
@@ -4716,7 +4998,7 @@
4716
4998
  #codex-overleaf-panel .codex-context-summary-label {
4717
4999
  flex: 0 0 auto;
4718
5000
  color: var(--tl-fg-3);
4719
- font-size: 11px;
5001
+ font-size: var(--tl-text-xs, 11px);
4720
5002
  }
4721
5003
 
4722
5004
  #codex-overleaf-panel .codex-context-summary-chip {
@@ -4731,7 +5013,7 @@
4731
5013
  background: var(--tl-surface-2);
4732
5014
  color: var(--tl-fg-2);
4733
5015
  padding: 2px 3px 2px 7px;
4734
- font-size: 11px;
5016
+ font-size: var(--tl-text-xs, 11px);
4735
5017
  }
4736
5018
 
4737
5019
  #codex-overleaf-panel .codex-context-summary-chip-label {
@@ -4766,7 +5048,7 @@
4766
5048
  background: var(--tl-surface-1);
4767
5049
  color: var(--tl-fg-1);
4768
5050
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.38);
4769
- font-size: 11px;
5051
+ font-size: var(--tl-text-xs, 11px);
4770
5052
  line-height: 1.35;
4771
5053
  overflow-wrap: anywhere;
4772
5054
  pointer-events: none;
@@ -4793,7 +5075,7 @@
4793
5075
  still scrolls from its first card. */
4794
5076
  #codex-overleaf-panel .run-attachments { margin: 0 0 6px; padding: 2px 0 4px; }
4795
5077
  #codex-overleaf-panel .run-attachments > :first-child { margin-left: auto; }
4796
- #codex-overleaf-panel .run-selection { display: flex; justify-content: flex-end; min-width: 0; margin: 0 0 6px; font-size: 12px; line-height: 1.5; }
5078
+ #codex-overleaf-panel .run-selection { display: flex; justify-content: flex-end; min-width: 0; margin: 0 0 6px; font-size: var(--tl-text-sm, 12px); line-height: 1.5; }
4797
5079
  #codex-overleaf-panel .run-selection[hidden] { display: none; }
4798
5080
  #codex-overleaf-panel .run-selection[data-run-selection] details { min-width: 0; max-width: 100%; }
4799
5081
  #codex-overleaf-panel .run-selection details[open] { flex: 1 1 auto; }
@@ -4849,7 +5131,7 @@
4849
5131
  border-radius: 5px;
4850
5132
  background: var(--tl-surface-2);
4851
5133
  color: var(--tl-fg-2);
4852
- font-size: 9px;
5134
+ font-size: var(--tl-text-xs, 11px);
4853
5135
  font-weight: 600;
4854
5136
  }
4855
5137
  #codex-overleaf-panel .codex-attachment-preview-meta {
@@ -4863,12 +5145,12 @@
4863
5145
  overflow: hidden;
4864
5146
  text-overflow: ellipsis;
4865
5147
  white-space: nowrap;
4866
- font-size: 11px;
5148
+ font-size: var(--tl-text-xs, 11px);
4867
5149
  line-height: 16px;
4868
5150
  }
4869
5151
  #codex-overleaf-panel .codex-attachment-preview-card[data-kind="image"] .codex-attachment-preview-name {
4870
5152
  text-align: center;
4871
- font-size: 10px;
5153
+ font-size: var(--tl-text-xs, 11px);
4872
5154
  }
4873
5155
  #codex-overleaf-panel .codex-attachment-preview-size { color: var(--tl-fg-3); }
4874
5156
  #codex-overleaf-panel button.codex-attachment-preview-remove {
@@ -4943,7 +5225,7 @@
4943
5225
 
4944
5226
  #codex-overleaf-panel .codex-attachment-preview-dialog-caption {
4945
5227
  color: var(--tl-fg-1);
4946
- font-size: 12px;
5228
+ font-size: var(--tl-text-sm, 12px);
4947
5229
  text-align: center;
4948
5230
  }
4949
5231
 
@@ -4971,6 +5253,8 @@
4971
5253
  min-width: 26px;
4972
5254
  }
4973
5255
 
5256
+ #codex-overleaf-panel .codex-composer-toolbar [data-add-context] .codex-glyph { width: 15px; height: 15px; stroke-width: 1.6; }
5257
+
4974
5258
  /* Independent native checkbox preferences; the visual check is decorative. */
4975
5259
  #codex-overleaf-panel .codex-write-preferences {
4976
5260
  display: flex;
@@ -5009,7 +5293,7 @@
5009
5293
 
5010
5294
  #codex-overleaf-panel .codex-review-label,
5011
5295
  #codex-overleaf-panel .codex-recompile-label {
5012
- font-size: 12px;
5296
+ font-size: var(--tl-text-sm, 12px);
5013
5297
  line-height: 1.3;
5014
5298
  white-space: nowrap;
5015
5299
  }
@@ -5073,6 +5357,9 @@
5073
5357
 
5074
5358
  #codex-overleaf-panel .codex-model-config {
5075
5359
  position: relative;
5360
+ display: flex;
5361
+ align-items: center;
5362
+ gap: 3px;
5076
5363
  grid-column: 2;
5077
5364
  justify-self: end;
5078
5365
  width: auto;
@@ -5080,7 +5367,141 @@
5080
5367
  min-width: 0;
5081
5368
  }
5082
5369
 
5370
+ #codex-overleaf-panel .codex-context-usage {
5371
+ flex: 0 0 auto;
5372
+ min-width: 0;
5373
+ }
5374
+
5375
+ #codex-overleaf-panel .codex-context-usage-button {
5376
+ padding: 0 4px;
5377
+ border: 1px solid transparent;
5378
+ background: transparent;
5379
+ color: var(--tl-fg-3);
5380
+ cursor: pointer;
5381
+ }
5382
+
5383
+ #codex-overleaf-panel .codex-context-usage-button:hover,
5384
+ #codex-overleaf-panel .codex-context-usage-button[aria-expanded="true"] {
5385
+ background: var(--tl-hover);
5386
+ color: var(--tl-fg-2);
5387
+ }
5388
+
5389
+ #codex-overleaf-panel .codex-context-usage-button:focus-visible,
5390
+ #codex-overleaf-panel .codex-context-usage-popover:focus-visible {
5391
+ outline: 2px solid var(--tl-accent);
5392
+ outline-offset: 2px;
5393
+ }
5394
+
5395
+ /* Pie indicator: a hairline outline plus a solid wedge. A stroke as wide as
5396
+ twice the inner radius turns the dash length into a filled sector. */
5397
+ #codex-overleaf-panel .codex-context-usage {
5398
+ --context-usage-level: var(--tl-fg-2);
5399
+ --context-usage-seg-input: var(--tl-accent);
5400
+ --context-usage-seg-output: var(--tl-run);
5401
+ --context-usage-seg-cached: repeating-linear-gradient(135deg, var(--tl-accent) 0 1.6px,
5402
+ color-mix(in srgb, var(--tl-accent) 38%, transparent) 1.6px 3.4px);
5403
+ }
5404
+ #codex-overleaf-panel .codex-context-usage[data-level="high"] { --context-usage-level: var(--tl-review); }
5405
+ #codex-overleaf-panel .codex-context-usage[data-level="near-limit"] { --context-usage-level: var(--tl-fail); }
5406
+ #codex-overleaf-panel .codex-context-usage-ring {
5407
+ width: 15px;
5408
+ height: 15px;
5409
+ flex: 0 0 15px;
5410
+ overflow: visible;
5411
+ fill: none;
5412
+ transform: rotate(-90deg);
5413
+ }
5414
+ #codex-overleaf-panel .codex-context-usage-track { stroke: var(--tl-fg-3); stroke-width: 1.1; }
5415
+ #codex-overleaf-panel .codex-context-usage-fill {
5416
+ stroke: var(--context-usage-level);
5417
+ stroke-width: 5.1;
5418
+ stroke-dasharray: var(--context-usage-percent, 0) 100;
5419
+ transition: stroke-dasharray var(--tl-m-slow) var(--tl-m-ease), stroke var(--tl-m-base) var(--tl-m-ease);
5420
+ }
5421
+ #codex-overleaf-panel .codex-context-usage[data-level="normal"] .codex-context-usage-button:is(:hover, [aria-expanded="true"]) .codex-context-usage-fill { stroke: var(--tl-fg-1); }
5422
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-fill { visibility: hidden; }
5423
+ /* Track dashes use pathLength units (100 per circumference). */
5424
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-track { stroke: var(--tl-border-strong); stroke-dasharray: none; opacity: .7; }
5425
+ #codex-overleaf-panel .codex-context-usage[data-pending="true"] .codex-context-usage-track { stroke: var(--tl-fg-3); stroke-width: 1.3; stroke-dasharray: 3.5 4.3; opacity: 1; }
5426
+ /* Compaction keeps the reading still and dimmed; only an accent arc circles the
5427
+ outline. Rotating the whole ring would replace its -90deg start offset. */
5428
+ #codex-overleaf-panel .codex-context-usage-orbit { visibility: hidden; stroke: var(--tl-accent); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 26 74; transform-box: fill-box; transform-origin: center; }
5429
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-orbit { visibility: visible; animation: codex-context-usage-orbit 1s linear infinite; }
5430
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-track { stroke: var(--tl-fg-4); stroke-dasharray: none; opacity: 1; }
5431
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-fill { stroke: var(--tl-fg-3); }
5432
+ @keyframes codex-context-usage-orbit { to { transform: rotate(360deg); } }
5433
+
5434
+ #codex-overleaf-panel .codex-context-usage-popover {
5435
+ box-sizing: border-box;
5436
+ position: fixed;
5437
+ z-index: 2147483647;
5438
+ overflow: auto;
5439
+ overscroll-behavior: contain;
5440
+ padding: 12px 12px 10px;
5441
+ border: 1px solid var(--tl-border-strong);
5442
+ border-radius: 10px;
5443
+ background: var(--tl-surface-2);
5444
+ color: var(--tl-fg-2);
5445
+ box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48), 0 2px 6px rgba(0, 0, 0, 0.24);
5446
+ font-size: var(--tl-text-sm, 12px);
5447
+ line-height: 1.45;
5448
+ overflow-wrap: anywhere;
5449
+ animation: tl-slide-in 160ms var(--tl-m-ease);
5450
+ }
5451
+ #codex-overleaf-panel[data-theme="light"] .codex-context-usage-popover { box-shadow: 0 16px 40px rgba(15, 23, 42, 0.16), 0 2px 6px rgba(15, 23, 42, 0.06); }
5452
+ #codex-overleaf-panel .codex-context-usage-popover[hidden],
5453
+ #codex-overleaf-panel .codex-context-usage-popover [hidden] { display: none; }
5454
+ #codex-overleaf-panel .codex-context-usage-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
5455
+ #codex-overleaf-panel .codex-context-usage-head-text { min-width: 0; }
5456
+ /* Empty state: a dashed ring echoing the toolbar indicator replaces the figure and bar. */
5457
+ #codex-overleaf-panel .codex-context-usage-empty-ring { display: none; flex: 0 0 26px; width: 26px; height: 26px; }
5458
+ #codex-overleaf-panel .codex-context-usage-empty-ring circle { fill: none; stroke: var(--tl-border-strong); stroke-width: 2; stroke-dasharray: 4 3.5; }
5459
+ #codex-overleaf-panel .codex-context-usage-empty-ring .codex-context-usage-empty-dot { fill: var(--tl-fg-4); stroke: none; }
5460
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] .codex-context-usage-empty-ring { display: block; }
5461
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] .codex-context-usage-head { justify-content: flex-start; align-items: center; gap: 10px; }
5462
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] :is(.codex-context-usage-figure, .codex-context-usage-bar) { display: none; }
5463
+ #codex-overleaf-panel .codex-context-usage-title { color: var(--tl-fg-1); font-size: var(--tl-text-sm, 12px); font-weight: 600; }
5464
+ #codex-overleaf-panel .codex-context-usage-amount { margin-top: 2px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
5465
+ #codex-overleaf-panel .codex-context-usage-figure { flex: 0 0 auto; text-align: right; }
5466
+ #codex-overleaf-panel .codex-context-usage-percent { display: block; color: var(--tl-fg-1); font-size: 22px; font-weight: 600; line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
5467
+ #codex-overleaf-panel .codex-context-usage-percent small { margin-left: 1px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); font-weight: 500; letter-spacing: 0; }
5468
+ #codex-overleaf-panel .codex-context-usage:is([data-level="high"], [data-level="near-limit"]) .codex-context-usage-percent { color: var(--context-usage-level); }
5469
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-percent { color: var(--tl-fg-4); }
5470
+ #codex-overleaf-panel .codex-context-usage-spinner { display: inline-grid; color: var(--tl-accent); }
5471
+ #codex-overleaf-panel .codex-context-usage-spinner .codex-glyph { width: 18px; height: 18px; stroke-width: 1.5; animation: tl-spin 900ms linear infinite; }
5472
+ #codex-overleaf-panel .codex-context-usage-chip { display: inline-block; padding: 2px 7px; border-radius: 999px; background: var(--tl-accent-wash); color: var(--tl-accent); font-size: var(--tl-text-xs, 11px); font-weight: 500; }
5473
+ #codex-overleaf-panel .codex-context-usage-level { display: block; margin-top: 5px; color: var(--context-usage-level); font-size: var(--tl-text-xs, 11px); font-weight: 500; }
5474
+ #codex-overleaf-panel .codex-context-usage-note { margin-top: 10px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
5475
+ #codex-overleaf-panel .codex-context-usage-note .codex-glyph { display: none; }
5476
+ #codex-overleaf-panel .codex-context-usage-note[data-kind="compacting"]:not([hidden]) { display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 6px; background: var(--tl-accent-wash); color: var(--tl-fg-2); }
5477
+ #codex-overleaf-panel .codex-context-usage-note[data-kind="compacting"] .codex-glyph { display: block; flex: 0 0 13px; width: 13px; height: 13px; stroke-width: 1.5; color: var(--tl-accent); }
5478
+ #codex-overleaf-panel .codex-context-usage-bar { display: flex; height: 6px; margin: 12px 0 10px; overflow: hidden; border-radius: 3px; background: var(--tl-border); }
5479
+ #codex-overleaf-panel .codex-context-usage-bar > i { display: block; flex: 0 0 auto; height: 100%; box-shadow: 1px 0 0 var(--tl-surface-2); transition: width var(--tl-m-slow) var(--tl-m-ease); }
5480
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"]:not([data-compacting="true"]) .codex-context-usage-bar { height: 4px; border: 1px dashed var(--tl-border-strong); background: none; }
5481
+ /* Without a sample, compaction sweeps an empty bar; a sample keeps its segments. */
5482
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"][data-unknown="true"] .codex-context-usage-bar { background: linear-gradient(90deg, var(--tl-border) 0%, var(--tl-accent) 50%, var(--tl-border) 100%); background-size: 200% 100%; animation: codex-context-usage-sweep 1.6s linear infinite; }
5483
+ #codex-overleaf-panel .codex-context-usage [data-seg="input"] { background: var(--context-usage-seg-input); }
5484
+ #codex-overleaf-panel .codex-context-usage [data-seg="output"] { background: var(--context-usage-seg-output); }
5485
+ #codex-overleaf-panel .codex-context-usage [data-seg="cached"] { background: var(--context-usage-seg-cached); }
5486
+ #codex-overleaf-panel .codex-context-usage-legend { display: grid; gap: 5px; }
5487
+ #codex-overleaf-panel .codex-context-usage-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto 34px; align-items: center; gap: 8px; color: var(--tl-fg-2); }
5488
+ #codex-overleaf-panel .codex-context-usage-row[data-sub] { margin-left: 16px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
5489
+ #codex-overleaf-panel .codex-context-usage-row b { color: var(--tl-fg-1); font-weight: 500; font-variant-numeric: tabular-nums; }
5490
+ #codex-overleaf-panel .codex-context-usage-row[data-sub] b { color: var(--tl-fg-2); font-weight: 400; }
5491
+ #codex-overleaf-panel .codex-context-usage-row em { color: var(--tl-fg-3); font-style: normal; text-align: right; font-variant-numeric: tabular-nums; }
5492
+ #codex-overleaf-panel .codex-context-usage-swatch { width: 8px; height: 8px; border-radius: 2px; }
5493
+ #codex-overleaf-panel .codex-context-usage-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 11px; padding-top: 9px; border-top: 1px solid var(--tl-border); color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
5494
+ #codex-overleaf-panel .codex-context-usage-compact { display: inline-flex; align-items: center; gap: 5px; height: 24px; margin-left: auto; padding: 0 8px; border: 1px solid var(--tl-border-strong); border-radius: 6px; color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); }
5495
+ #codex-overleaf-panel .codex-context-usage-compact:hover:not(:disabled) { background: var(--tl-hover); color: var(--tl-fg-1); }
5496
+ #codex-overleaf-panel .codex-context-usage-compact:disabled { opacity: 0.45; cursor: not-allowed; background: transparent; }
5497
+ #codex-overleaf-panel .codex-context-usage-compact .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
5498
+ @keyframes codex-context-usage-sweep { from { background-position: 200% 0; } to { background-position: -200% 0; } }
5499
+ @media (prefers-reduced-motion: reduce) {
5500
+ #codex-overleaf-panel .codex-context-usage *, #codex-overleaf-panel .codex-context-usage-popover { animation: none !important; transition: none !important; }
5501
+ }
5502
+
5083
5503
  #codex-overleaf-panel .codex-model-config-button {
5504
+ flex: 1 1 auto;
5084
5505
  width: 100%;
5085
5506
  min-width: 0;
5086
5507
  border: 1px solid transparent;
@@ -5130,7 +5551,7 @@
5130
5551
  max-width: 96px;
5131
5552
  overflow: hidden;
5132
5553
  color: var(--tl-fg-1);
5133
- font-size: 13px;
5554
+ font-size: var(--tl-text-md, 13px);
5134
5555
  text-overflow: ellipsis;
5135
5556
  white-space: nowrap;
5136
5557
  }
@@ -5142,7 +5563,7 @@
5142
5563
  max-width: 56px;
5143
5564
  overflow: hidden;
5144
5565
  color: var(--tl-fg-3);
5145
- font-size: 12px;
5566
+ font-size: var(--tl-text-sm, 12px);
5146
5567
  text-overflow: ellipsis;
5147
5568
  white-space: nowrap;
5148
5569
  }
@@ -5257,39 +5678,20 @@
5257
5678
  transition: background 120ms ease, filter 120ms ease;
5258
5679
  }
5259
5680
 
5260
- #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"] {
5261
- color: transparent;
5262
- }
5263
-
5264
5681
  #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"]:hover {
5265
5682
  background: var(--tl-fail);
5266
5683
  filter: none;
5267
5684
  }
5268
5685
 
5269
- #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"]::after {
5270
- content: "";
5271
- position: absolute;
5272
- top: 50%;
5273
- left: 50%;
5274
- box-sizing: border-box;
5275
- width: 13px;
5276
- height: 13px;
5277
- border: 2px solid rgba(255, 255, 255, 0.35);
5278
- border-top-color: #ffffff;
5279
- border-radius: 50%;
5280
- transform: translate(-50%, -50%);
5281
- animation: codex-run-spin var(--tl-m-spin, 800ms) linear infinite;
5282
- }
5283
-
5284
5686
  #codex-overleaf-panel .codex-composer-toolbar [data-run]:hover {
5285
5687
  filter: brightness(1.1);
5286
5688
  }
5287
5689
 
5288
- @keyframes codex-run-spin {
5289
- to {
5290
- transform: translate(-50%, -50%) rotate(360deg);
5291
- }
5292
- }
5690
+ /* Send and Stop share one button; data-action selects the visible glyph. */
5691
+ #codex-overleaf-panel .codex-composer-toolbar [data-run] .codex-run-glyph { display: none; }
5692
+ #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="send"] [data-run-glyph="send"],
5693
+ #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"] [data-run-glyph="cancel"] { display: grid; place-items: center; }
5694
+ #codex-overleaf-panel .codex-composer-toolbar [data-run] .codex-glyph { width: 14px; height: 14px; stroke-width: 1.9; }
5293
5695
 
5294
5696
  /* Queued follow-ups: one card docked on top of the composer (shares its border). */
5295
5697
  #codex-overleaf-panel .codex-pending-inputs {
@@ -5304,12 +5706,12 @@
5304
5706
  }
5305
5707
  #codex-overleaf-panel .codex-pending-inputs[hidden] { display: none; }
5306
5708
  #codex-overleaf-panel .codex-pending-inputs:not([hidden]) + .codex-composer { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
5307
- #codex-overleaf-panel .codex-pending-head { display: flex; align-items: center; gap: 6px; min-height: 18px; color: var(--tl-fg-3); font-size: 11px; font-weight: 560; }
5709
+ #codex-overleaf-panel .codex-pending-head { display: flex; align-items: center; gap: 6px; min-height: 18px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-weight: 560; }
5308
5710
  #codex-overleaf-panel .codex-pending-head svg,
5309
5711
  #codex-overleaf-panel .codex-pending-steer svg,
5310
5712
  #codex-overleaf-panel .codex-pending-input-remove svg { width: 12px; height: 12px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
5311
5713
  #codex-overleaf-panel .codex-pending-count { margin-left: auto; color: var(--tl-fg-4); font-weight: 500; font-variant-numeric: tabular-nums; }
5312
- #codex-overleaf-panel .codex-pending-resume { margin-left: 6px; min-height: 20px; padding: 0 8px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 10.5px; box-shadow: none; cursor: pointer; }
5714
+ #codex-overleaf-panel .codex-pending-resume { margin-left: 6px; min-height: 20px; padding: 0 8px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: var(--tl-text-xs, 11px); box-shadow: none; cursor: pointer; }
5313
5715
  #codex-overleaf-panel .codex-pending-inputs[data-state="paused"] .codex-pending-head { color: var(--tl-review); }
5314
5716
  #codex-overleaf-panel .codex-pending-inputs[data-state="steering"] .codex-pending-head,
5315
5717
  #codex-overleaf-panel .codex-pending-inputs[data-state="executing"] .codex-pending-head { color: var(--tl-accent); }
@@ -5317,12 +5719,12 @@
5317
5719
  #codex-overleaf-panel .codex-pending-list { display: grid; margin: 5px 0 0; padding: 0; list-style: none; }
5318
5720
  #codex-overleaf-panel .codex-pending-input { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; align-items: start; gap: 6px; min-width: 0; padding: 4px 0; border-top: 1px solid var(--tl-border); }
5319
5721
  #codex-overleaf-panel .codex-pending-input:first-child { border-top: 0; }
5320
- #codex-overleaf-panel .codex-pending-number { padding-top: 1px; color: var(--tl-fg-4); font-size: 10.5px; font-variant-numeric: tabular-nums; text-align: right; }
5321
- #codex-overleaf-panel .codex-pending-input-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-width: 0; min-height: 0; height: auto; padding: 0 2px; border: 0; border-radius: 4px; background: none; box-shadow: none; color: var(--tl-fg-2); font: inherit; font-size: 12.5px; line-height: 1.5; text-align: left; white-space: pre-wrap; overflow-wrap: anywhere; cursor: text; }
5722
+ #codex-overleaf-panel .codex-pending-number { padding-top: 1px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; text-align: right; }
5723
+ #codex-overleaf-panel .codex-pending-input-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-width: 0; min-height: 0; height: auto; padding: 0 2px; border: 0; border-radius: 4px; background: none; box-shadow: none; color: var(--tl-fg-2); font: inherit; font-size: var(--tl-text-sm, 12px); line-height: 1.5; text-align: left; white-space: pre-wrap; overflow-wrap: anywhere; cursor: text; }
5322
5724
  #codex-overleaf-panel .codex-pending-input-text:hover:not(:disabled) { color: var(--tl-fg-1); background: var(--tl-hover); }
5323
5725
  #codex-overleaf-panel .codex-pending-input-text:disabled { cursor: default; opacity: 1; }
5324
5726
  #codex-overleaf-panel .codex-pending-input-actions { display: inline-flex; align-items: center; gap: 2px; }
5325
- #codex-overleaf-panel .codex-pending-steer { display: inline-flex; align-items: center; gap: 4px; min-height: 22px; height: auto; padding: 0 8px; border: 1px solid var(--tl-border-strong); border-radius: 999px; background: var(--tl-surface-1); box-shadow: none; color: var(--tl-accent); font-size: 11px; font-weight: 560; white-space: nowrap; cursor: pointer; transition: border-color var(--tl-m-fast), background var(--tl-m-fast); }
5727
+ #codex-overleaf-panel .codex-pending-steer { display: inline-flex; align-items: center; gap: 4px; min-height: 22px; height: auto; padding: 0 8px; border: 1px solid var(--tl-border-strong); border-radius: 999px; background: var(--tl-surface-1); box-shadow: none; color: var(--tl-accent); font-size: var(--tl-text-xs, 11px); font-weight: 560; white-space: nowrap; cursor: pointer; transition: border-color var(--tl-m-fast), background var(--tl-m-fast); }
5326
5728
  #codex-overleaf-panel .codex-pending-steer:hover:not(:disabled) { border-color: var(--tl-accent); background: var(--tl-surface-0); }
5327
5729
  #codex-overleaf-panel .codex-pending-steer:disabled { color: var(--tl-fg-4); cursor: not-allowed; }
5328
5730
  #codex-overleaf-panel .codex-pending-input-remove { display: inline-grid; place-items: center; width: 22px; min-width: 22px; height: 22px; min-height: 22px; padding: 0; border: 0; border-radius: 5px; background: transparent; box-shadow: none; color: var(--tl-fg-4); opacity: 0; cursor: pointer; transition: opacity var(--tl-m-fast); }
@@ -5331,9 +5733,9 @@
5331
5733
  #codex-overleaf-panel .codex-pending-input-remove:focus-visible { opacity: 1; }
5332
5734
  #codex-overleaf-panel .codex-pending-input-remove:hover:not(:disabled) { color: var(--tl-fail); background: var(--tl-hover); }
5333
5735
  #codex-overleaf-panel .codex-pending-input-remove:disabled { opacity: 0 !important; }
5334
- #codex-overleaf-panel .codex-pending-more { display: block; width: 100%; min-height: 0; height: auto; margin-top: 2px; padding: 3px 0 1px 20px; border: 0; background: none; box-shadow: none; color: var(--tl-fg-3); font: inherit; font-size: 11.5px; text-align: left; cursor: pointer; }
5736
+ #codex-overleaf-panel .codex-pending-more { display: block; width: 100%; min-height: 0; height: auto; margin-top: 2px; padding: 3px 0 1px 20px; border: 0; background: none; box-shadow: none; color: var(--tl-fg-3); font: inherit; font-size: var(--tl-text-xs, 11px); text-align: left; cursor: pointer; }
5335
5737
  #codex-overleaf-panel .codex-pending-more:hover { color: var(--tl-fg-1); }
5336
- #codex-overleaf-panel .codex-pending-hint { margin: 3px 0 0 20px; color: var(--tl-fg-4); font-size: 11px; }
5738
+ #codex-overleaf-panel .codex-pending-hint { margin: 3px 0 0 20px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); }
5337
5739
  #codex-overleaf-panel :is(.codex-pending-input-text, .codex-pending-steer, .codex-pending-more, .codex-pending-resume):focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
5338
5740
  @media (pointer: coarse) { #codex-overleaf-panel .codex-pending-input-remove { opacity: 1; } }
5339
5741
  @media (prefers-reduced-motion: reduce) {
@@ -5373,7 +5775,7 @@
5373
5775
  justify-content: space-between;
5374
5776
  gap: 8px;
5375
5777
  color: var(--tl-fg-2);
5376
- font-size: 12px;
5778
+ font-size: var(--tl-text-sm, 12px);
5377
5779
  }
5378
5780
 
5379
5781
  #codex-overleaf-panel .codex-context-actions {
@@ -5481,6 +5883,8 @@
5481
5883
  color: var(--tl-fg-3);
5482
5884
  }
5483
5885
 
5886
+ #codex-overleaf-panel .codex-context-head button .codex-glyph { width: 14px; height: 14px; stroke-width: 1.5; }
5887
+
5484
5888
  #codex-overleaf-panel .codex-context-selection {
5485
5889
  margin-top: 6px;
5486
5890
  }
@@ -5495,7 +5899,7 @@
5495
5899
  background: var(--tl-surface-2);
5496
5900
  color: var(--tl-fg-2);
5497
5901
  padding: 3px 7px;
5498
- font-size: 11px;
5902
+ font-size: var(--tl-text-xs, 11px);
5499
5903
  }
5500
5904
 
5501
5905
  #codex-overleaf-panel .codex-context-chip span:last-of-type {
@@ -5525,7 +5929,7 @@
5525
5929
  #codex-overleaf-panel .codex-context-status {
5526
5930
  margin-top: 6px;
5527
5931
  color: var(--tl-fg-3);
5528
- font-size: 11px;
5932
+ font-size: var(--tl-text-xs, 11px);
5529
5933
  }
5530
5934
 
5531
5935
  #codex-overleaf-panel .codex-context-files {
@@ -5551,7 +5955,7 @@
5551
5955
  min-height: 20px;
5552
5956
  color: var(--tl-fg-3);
5553
5957
  cursor: pointer;
5554
- font-size: 11px;
5958
+ font-size: var(--tl-text-xs, 11px);
5555
5959
  line-height: 20px;
5556
5960
  list-style: none;
5557
5961
  }
@@ -5605,7 +6009,7 @@
5605
6009
  #codex-overleaf-panel .codex-context-file-name {
5606
6010
  min-width: 0;
5607
6011
  overflow: hidden;
5608
- font-size: 12px;
6012
+ font-size: var(--tl-text-sm, 12px);
5609
6013
  text-overflow: ellipsis;
5610
6014
  white-space: nowrap;
5611
6015
  }
@@ -5613,7 +6017,7 @@
5613
6017
  #codex-overleaf-panel .codex-context-file-meta {
5614
6018
  flex: 0 0 auto;
5615
6019
  color: var(--tl-fg-3);
5616
- font-size: 10px;
6020
+ font-size: var(--tl-text-xs, 11px);
5617
6021
  }
5618
6022
 
5619
6023
  #codex-overleaf-panel .codex-diff-review {
@@ -5650,7 +6054,7 @@
5650
6054
  min-width: 0;
5651
6055
  overflow: hidden;
5652
6056
  color: var(--tl-fg-1);
5653
- font-size: 12px;
6057
+ font-size: var(--tl-text-sm, 12px);
5654
6058
  text-overflow: ellipsis;
5655
6059
  white-space: nowrap;
5656
6060
  }
@@ -5668,17 +6072,17 @@
5668
6072
  background: var(--tl-surface-2);
5669
6073
  color: var(--tl-fg-2);
5670
6074
  padding: 1px 7px;
5671
- font-size: 11px;
6075
+ font-size: var(--tl-text-xs, 11px);
5672
6076
  }
5673
6077
 
5674
6078
  #codex-overleaf-panel .codex-diff-readonly-label {
5675
6079
  color: var(--tl-ok);
5676
- font-size: 11px;
6080
+ font-size: var(--tl-text-xs, 11px);
5677
6081
  }
5678
6082
 
5679
6083
  #codex-overleaf-panel .codex-diff-decision-label {
5680
6084
  color: var(--tl-ok);
5681
- font-size: 11px;
6085
+ font-size: var(--tl-text-xs, 11px);
5682
6086
  }
5683
6087
 
5684
6088
  #codex-overleaf-panel .codex-diff-file-actions [data-diff-accept] {
@@ -5709,7 +6113,7 @@
5709
6113
  #codex-overleaf-panel .codex-diff-body {
5710
6114
  max-height: 200px;
5711
6115
  overflow-y: auto;
5712
- font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
6116
+ font: var(--tl-text-xs, 11px)/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
5713
6117
  }
5714
6118
 
5715
6119
  #codex-overleaf-panel .codex-diff-hunk {
@@ -5720,7 +6124,7 @@
5720
6124
  #codex-overleaf-panel .codex-diff-hunk-location {
5721
6125
  padding: 2px 8px 0;
5722
6126
  color: var(--tl-fg-4);
5723
- font-size: 10px;
6127
+ font-size: var(--tl-text-xs, 11px);
5724
6128
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
5725
6129
  }
5726
6130
 
@@ -5761,7 +6165,7 @@
5761
6165
  background: var(--tl-surface-2);
5762
6166
  color: var(--tl-fg-2);
5763
6167
  padding: 0 6px;
5764
- font-size: 11px;
6168
+ font-size: var(--tl-text-xs, 11px);
5765
6169
  }
5766
6170
 
5767
6171
  #codex-overleaf-panel .codex-diff-hunk-actions [data-diff-hunk-accept] {
@@ -5778,7 +6182,7 @@
5778
6182
  #codex-overleaf-panel .codex-diff-hunk-jump-status,
5779
6183
  #codex-overleaf-panel .codex-diff-fallback-label {
5780
6184
  color: var(--tl-fg-3);
5781
- font-size: 11px;
6185
+ font-size: var(--tl-text-xs, 11px);
5782
6186
  }
5783
6187
 
5784
6188
  #codex-overleaf-panel .codex-diff-hunk[data-jump-status="failed"] .codex-diff-hunk-jump-status {
@@ -5806,7 +6210,7 @@
5806
6210
  border-radius: 4px;
5807
6211
  background: var(--tl-surface-1);
5808
6212
  color: var(--tl-accent);
5809
- font-size: 11px;
6213
+ font-size: var(--tl-text-xs, 11px);
5810
6214
  }
5811
6215
 
5812
6216
  #codex-overleaf-panel .codex-diff-line {
@@ -5865,7 +6269,7 @@
5865
6269
  margin-right: auto;
5866
6270
  overflow: hidden;
5867
6271
  color: var(--tl-fg-3);
5868
- font-size: 11px;
6272
+ font-size: var(--tl-text-xs, 11px);
5869
6273
  text-overflow: ellipsis;
5870
6274
  white-space: nowrap;
5871
6275
  }
@@ -5877,7 +6281,7 @@
5877
6281
  background: var(--tl-surface-2);
5878
6282
  color: var(--tl-fg-2);
5879
6283
  padding: 2px 10px;
5880
- font-size: 12px;
6284
+ font-size: var(--tl-text-sm, 12px);
5881
6285
  }
5882
6286
 
5883
6287
  #codex-overleaf-panel .codex-diff-toolbar [data-diff-accept-all],
@@ -5923,22 +6327,22 @@
5923
6327
  #codex-overleaf-panel .recent-projects-welcome { display: grid; gap: 5px; padding: 0 4px; }
5924
6328
  #codex-overleaf-panel .recent-projects-eyebrow {
5925
6329
  color: var(--tl-fg-3);
5926
- font-size: 10px;
6330
+ font-size: var(--tl-text-xs, 11px);
5927
6331
  font-weight: 550;
5928
6332
  letter-spacing: 0.09em;
5929
6333
  margin-bottom: 3px;
5930
6334
  }
5931
6335
  #codex-overleaf-panel .recent-projects-welcome-title { color: var(--tl-fg-1); font-size: 16px; font-weight: 600; line-height: 1.4; }
5932
- #codex-overleaf-panel .recent-projects-welcome-subtitle { color: var(--tl-fg-3); font-size: 11.5px; line-height: 1.5; }
6336
+ #codex-overleaf-panel .recent-projects-welcome-subtitle { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
5933
6337
  #codex-overleaf-panel [data-recent-projects-list] { min-width: 0; }
5934
6338
  #codex-overleaf-panel .recent-projects-empty,
5935
6339
  #codex-overleaf-panel .recent-projects-degraded {
5936
6340
  padding: 12px 4px;
5937
6341
  color: var(--tl-fg-2);
5938
- font-size: 13px;
6342
+ font-size: var(--tl-text-md, 13px);
5939
6343
  line-height: 1.6;
5940
6344
  }
5941
- #codex-overleaf-panel .recent-projects-loading { display: block; padding: 10px 4px; color: var(--tl-fg-3); font-size: 12px; }
6345
+ #codex-overleaf-panel .recent-projects-loading { display: block; padding: 10px 4px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); }
5942
6346
  #codex-overleaf-panel .recent-projects-filter { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 0 4px; }
5943
6347
  #codex-overleaf-panel .recent-projects-filter > button {
5944
6348
  flex: 0 0 auto;
@@ -5946,11 +6350,11 @@
5946
6350
  border: 0;
5947
6351
  background: transparent;
5948
6352
  color: var(--tl-ok);
5949
- font-size: 12px;
6353
+ font-size: var(--tl-text-sm, 12px);
5950
6354
  cursor: pointer;
5951
6355
  }
5952
6356
  #codex-overleaf-panel .recent-projects-filter > button::before { content: "\2190"; margin-inline-end: 5px; }
5953
- #codex-overleaf-panel .recent-projects-filter > span { min-width: 0; color: var(--tl-fg-3); font-size: 11px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
6357
+ #codex-overleaf-panel .recent-projects-filter > span { min-width: 0; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
5954
6358
  #codex-overleaf-panel .recent-projects-session-row {
5955
6359
  position: relative;
5956
6360
  display: grid;
@@ -5967,17 +6371,17 @@
5967
6371
  min-width: 0;
5968
6372
  overflow: hidden;
5969
6373
  color: var(--tl-fg-1);
5970
- font-size: 13px;
6374
+ font-size: var(--tl-text-md, 13px);
5971
6375
  font-weight: 500;
5972
6376
  line-height: 1.6;
5973
6377
  text-overflow: ellipsis;
5974
6378
  white-space: nowrap;
5975
6379
  }
5976
6380
  #codex-overleaf-panel .recent-projects-session-title[hidden] { display: none; }
5977
- #codex-overleaf-panel .recent-projects-session-meta { display: flex; align-items: baseline; gap: 7px; min-width: 0; color: var(--tl-fg-3); font-size: 11px; line-height: 1.5; }
6381
+ #codex-overleaf-panel .recent-projects-session-meta { display: flex; align-items: baseline; gap: 7px; min-width: 0; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
5978
6382
  #codex-overleaf-panel .recent-projects-row-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 400; }
5979
- #codex-overleaf-panel .recent-projects-session-time { flex: 0 0 auto; margin-inline-start: auto; color: var(--tl-fg-3); font-size: 10.5px; white-space: nowrap; }
5980
- #codex-overleaf-panel .recent-projects-session-attention { flex: 0 0 auto; color: var(--tl-review); font-size: 10.5px; }
6383
+ #codex-overleaf-panel .recent-projects-session-time { flex: 0 0 auto; margin-inline-start: auto; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); white-space: nowrap; }
6384
+ #codex-overleaf-panel .recent-projects-session-attention { flex: 0 0 auto; color: var(--tl-review); font-size: var(--tl-text-xs, 11px); }
5981
6385
  #codex-overleaf-panel .recent-projects-session-attention::before { content: "\00b7"; margin-inline-end: 4px; }
5982
6386
  #codex-overleaf-panel .recent-projects-session-row[aria-busy="true"] { cursor: progress; }
5983
6387
  #codex-overleaf-panel .recent-projects-session-row[data-running="true"]:not(.recent-projects-focus) .recent-projects-session-title::before {
@@ -6000,10 +6404,10 @@
6000
6404
  background: var(--tl-ok-wash);
6001
6405
  background: color-mix(in srgb, var(--tl-ok-wash) 65%, var(--tl-surface-0));
6002
6406
  }
6003
- #codex-overleaf-panel .recent-projects-focus-eyebrow { flex: 0 0 auto; color: var(--tl-fg-3); font-size: 10.5px; font-weight: 400; line-height: 1.5; }
6407
+ #codex-overleaf-panel .recent-projects-focus-eyebrow { flex: 0 0 auto; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-weight: 400; line-height: 1.5; }
6004
6408
  #codex-overleaf-panel .recent-projects-focus-eyebrow::after { content: "\00b7"; margin-inline-start: 6px; }
6005
6409
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-copy { gap: 6px; }
6006
- #codex-overleaf-panel .recent-projects-focus .recent-projects-session-meta { justify-content: flex-start; gap: 6px; padding-inline-end: 18px; font-size: 11px; }
6410
+ #codex-overleaf-panel .recent-projects-focus .recent-projects-session-meta { justify-content: flex-start; gap: 6px; padding-inline-end: 18px; font-size: var(--tl-text-xs, 11px); }
6007
6411
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-time { margin-inline-start: 0; font-size: inherit; }
6008
6412
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-time:not(:empty)::before { content: "\00b7"; margin-inline-end: 7px; }
6009
6413
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-title {
@@ -6012,12 +6416,12 @@
6012
6416
  -webkit-box-orient: vertical;
6013
6417
  white-space: normal;
6014
6418
  overflow-wrap: anywhere;
6015
- font-size: 14.5px;
6419
+ font-size: var(--tl-text-base, 14px);
6016
6420
  font-weight: 500;
6017
6421
  line-height: 1.5;
6018
6422
  }
6019
6423
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-title[hidden] { display: none; }
6020
- #codex-overleaf-panel .recent-projects-focus .recent-projects-row-badge { flex: 1 1 auto; min-width: 0; font-size: 11.5px; line-height: 1.45; }
6424
+ #codex-overleaf-panel .recent-projects-focus .recent-projects-row-badge { flex: 1 1 auto; min-width: 0; font-size: var(--tl-text-xs, 11px); line-height: 1.45; }
6021
6425
  #codex-overleaf-panel .recent-projects-focus-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
6022
6426
  #codex-overleaf-panel .recent-projects-focus > .recent-projects-menu { position: absolute; top: 6px; inset-inline-end: 6px; }
6023
6427
  #codex-overleaf-panel .recent-projects-continue {
@@ -6032,7 +6436,7 @@
6032
6436
  border-radius: 6px;
6033
6437
  background: #357347;
6034
6438
  color: #fff;
6035
- font-size: 12px;
6439
+ font-size: var(--tl-text-sm, 12px);
6036
6440
  font-weight: 400;
6037
6441
  line-height: 1.4;
6038
6442
  cursor: pointer;
@@ -6049,7 +6453,7 @@
6049
6453
  border: 0;
6050
6454
  background: transparent;
6051
6455
  color: var(--tl-fg-3);
6052
- font-size: 11px;
6456
+ font-size: var(--tl-text-xs, 11px);
6053
6457
  font-weight: 400;
6054
6458
  line-height: 1.6;
6055
6459
  overflow-wrap: anywhere;
@@ -6061,17 +6465,17 @@
6061
6465
  #codex-overleaf-panel .recent-projects-row-badge:is(.badge-failed, .badge-abandoned-after-navigation)::before { content: "!"; color: var(--tl-fail); }
6062
6466
  #codex-overleaf-panel .recent-projects-row-badge:is(.badge-stale, .badge-interrupted, .badge-needs-review, .badge-needs-review-after-navigation)::before { content: "!"; color: var(--tl-review); }
6063
6467
  #codex-overleaf-panel .recent-projects-row-badge.badge-running::before { color: var(--tl-run); }
6064
- #codex-overleaf-panel .recent-projects-history-heading { display: flex; justify-content: space-between; gap: 10px; margin: 0 5px 7px; color: var(--tl-fg-3); font-size: 11px; line-height: 1.5; }
6065
- #codex-overleaf-panel .recent-projects-history-heading > :last-child { font-size: 10px; }
6468
+ #codex-overleaf-panel .recent-projects-history-heading { display: flex; justify-content: space-between; gap: 10px; margin: 0 5px 7px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6469
+ #codex-overleaf-panel .recent-projects-history-heading > :last-child { font-size: var(--tl-text-xs, 11px); }
6066
6470
  #codex-overleaf-panel .recent-projects-history-list { display: grid; gap: 1px; min-width: 0; }
6067
6471
  #codex-overleaf-panel .recent-projects-drafts { margin: 18px 5px 0; min-width: 0; }
6068
- #codex-overleaf-panel .recent-projects-drafts > summary { padding: 5px 0; color: var(--tl-fg-3); font-size: 11px; line-height: 1.5; cursor: pointer; list-style: none; }
6472
+ #codex-overleaf-panel .recent-projects-drafts > summary { padding: 5px 0; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; cursor: pointer; list-style: none; }
6069
6473
  #codex-overleaf-panel .recent-projects-drafts > summary::-webkit-details-marker { display: none; }
6070
- #codex-overleaf-panel .recent-projects-drafts > summary::before { content: "\203a"; display: inline-block; margin-inline-end: 6px; font-size: 13px; }
6474
+ #codex-overleaf-panel .recent-projects-drafts > summary::before { content: "\203a"; display: inline-block; margin-inline-end: 6px; font-size: var(--tl-text-md, 13px); }
6071
6475
  #codex-overleaf-panel .recent-projects-drafts[open] > summary::before { transform: rotate(90deg); }
6072
- #codex-overleaf-panel .recent-projects-drafts-hint { display: block; margin: 3px 0 7px; color: var(--tl-fg-3); font-size: 10.5px; line-height: 1.6; }
6476
+ #codex-overleaf-panel .recent-projects-drafts-hint { display: block; margin: 3px 0 7px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.6; }
6073
6477
  #codex-overleaf-panel .recent-projects-unavailable-row { display: grid; grid-template-columns: minmax(0, 1fr) 24px; align-items: center; gap: 8px; margin: 10px 5px 0; }
6074
- #codex-overleaf-panel .recent-projects-unavailable-row .recent-projects-row { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--tl-fg-3); font-size: 12px; text-align: start; }
6478
+ #codex-overleaf-panel .recent-projects-unavailable-row .recent-projects-row { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); text-align: start; }
6075
6479
  #codex-overleaf-panel .recent-projects-menu { position: relative; justify-self: end; flex: 0 0 auto; }
6076
6480
  #codex-overleaf-panel .recent-projects-menu > summary {
6077
6481
  display: flex;
@@ -6113,7 +6517,7 @@
6113
6517
  border-radius: 4px;
6114
6518
  background: transparent;
6115
6519
  color: var(--tl-fg-2);
6116
- font-size: 12px;
6520
+ font-size: var(--tl-text-sm, 12px);
6117
6521
  line-height: 1.4;
6118
6522
  text-align: start;
6119
6523
  white-space: normal;
@@ -6132,7 +6536,7 @@
6132
6536
  border-radius: 4px;
6133
6537
  background: var(--tl-surface-0);
6134
6538
  color: var(--tl-fg-1);
6135
- font-size: 13px;
6539
+ font-size: var(--tl-text-md, 13px);
6136
6540
  }
6137
6541
  #codex-overleaf-panel .recent-projects-settings-entry {
6138
6542
  display: inline-flex;
@@ -6143,7 +6547,7 @@
6143
6547
  border: 0;
6144
6548
  background: transparent;
6145
6549
  color: var(--tl-fg-3);
6146
- font-size: 11px;
6550
+ font-size: var(--tl-text-xs, 11px);
6147
6551
  line-height: 1.5;
6148
6552
  cursor: pointer;
6149
6553
  }
@@ -6167,7 +6571,7 @@
6167
6571
  border: 0;
6168
6572
  background: transparent;
6169
6573
  color: var(--tl-fg-3);
6170
- font-size: 12px;
6574
+ font-size: var(--tl-text-sm, 12px);
6171
6575
  cursor: pointer;
6172
6576
  }
6173
6577
 
@@ -6186,56 +6590,69 @@
6186
6590
  border: 1px solid var(--tl-border, #2a2a2a);
6187
6591
  border-radius: 6px;
6188
6592
  color: var(--tl-fg-3, #8a8a8a);
6189
- font-size: 11.5px;
6593
+ font-size: var(--tl-text-xs, 11px);
6190
6594
  }
6191
6595
 
6192
6596
  /* File changes: readable records over privacy-preserving audit metadata. */
6193
- #codex-overleaf-panel .codex-history-count { margin-left: 8px; color: var(--tl-fg-3); font-size: 12px; font-weight: 400; font-variant-numeric: tabular-nums; }
6597
+ #codex-overleaf-panel .codex-history-count { margin-left: 8px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); font-weight: 400; font-variant-numeric: tabular-nums; }
6194
6598
  #codex-overleaf-panel .codex-history-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 142px; gap: 10px; margin: 14px 0 9px; }
6195
6599
  #codex-overleaf-panel .codex-history-search { display: flex; align-items: center; gap: 9px; min-width: 0; margin: 0; padding: 0 11px; border: 1px solid var(--tl-border); border-radius: 7px; background: var(--tl-surface-1); }
6196
6600
  #codex-overleaf-panel .codex-history-search-mark { position: relative; display: inline-block; flex: 0 0 11px; width: 11px; height: 11px; margin-right: 3px; border: 1.3px solid var(--tl-fg-3); border-radius: 50%; }
6197
6601
  #codex-overleaf-panel .codex-history-search-mark::after { position: absolute; content: ""; width: 5px; height: 1.3px; background: var(--tl-fg-3); right: -4px; bottom: -2px; transform: rotate(45deg); }
6198
- #codex-overleaf-panel .codex-history-toolbar .codex-history-filter { width: 100%; min-width: 0; min-height: 36px; margin: 0; padding: 6px 0; border: 0; border-radius: 0; background: transparent; color: var(--tl-fg-1); font-size: 12px; }
6199
- #codex-overleaf-panel .codex-history-toolbar .codex-history-status-filter { width: 100%; min-width: 0; min-height: 36px; margin: 0; padding: 6px 9px; border: 1px solid var(--tl-border); border-radius: 7px; background: var(--tl-surface-1); color: var(--tl-fg-2); font-size: 12px; }
6602
+ #codex-overleaf-panel .codex-history-toolbar .codex-history-filter { width: 100%; min-width: 0; min-height: 36px; margin: 0; padding: 6px 0; border: 0; border-radius: 0; background: transparent; color: var(--tl-fg-1); font-size: var(--tl-text-sm, 12px); }
6603
+ #codex-overleaf-panel .codex-history-toolbar .codex-history-status-filter { width: 100%; min-width: 0; min-height: 36px; margin: 0; padding: 6px 9px; border: 1px solid var(--tl-border); border-radius: 7px; background: var(--tl-surface-1); color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); }
6200
6604
  #codex-overleaf-panel .codex-history-list { max-height: none; overflow: visible; min-width: 0; }
6201
- #codex-overleaf-panel .codex-history-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 10px; min-width: 0; padding: 12px 8px; margin: 1px 0; border: 0; border-radius: 8px; font-size: 13px; }
6605
+ #codex-overleaf-panel .codex-history-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 10px; min-width: 0; padding: 12px 8px; margin: 1px 0; border: 0; border-radius: 8px; font-size: var(--tl-text-md, 13px); }
6202
6606
  #codex-overleaf-panel .codex-history-row:hover { background: var(--tl-hover); }
6203
6607
  #codex-overleaf-panel .codex-history-mark { display: grid; place-items: center; width: 29px; height: 31px; margin-top: 1px; border-radius: 7px; color: var(--tl-fg-3); background: var(--tl-surface-2); }
6204
6608
  #codex-overleaf-panel .codex-history-icon { display: inline-flex; align-items: center; }
6205
6609
  #codex-overleaf-panel .codex-history-icon svg { display: block; width: 16px; height: 16px; }
6206
6610
  #codex-overleaf-panel .codex-history-copy { min-width: 0; }
6207
6611
  #codex-overleaf-panel .codex-history-top { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 5px 12px; }
6208
- #codex-overleaf-panel .codex-history-task { color: var(--tl-fg-1); margin: 0; font-size: 14px; font-weight: 500; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
6209
- #codex-overleaf-panel .codex-history-status { display: inline-flex; align-items: center; padding: 1px 0; color: var(--tl-fg-3); font-size: 11px; line-height: 1.5; white-space: nowrap; }
6612
+ #codex-overleaf-panel .codex-history-task { color: var(--tl-fg-1); margin: 0; font-size: var(--tl-text-base, 14px); font-weight: 500; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
6613
+ #codex-overleaf-panel .codex-history-status { display: inline-flex; align-items: center; padding: 1px 0; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; white-space: nowrap; }
6210
6614
  #codex-overleaf-panel .codex-history-status[data-state="accepted"] { color: var(--tl-ok); }
6211
6615
  #codex-overleaf-panel .codex-history-status[data-state="pending"] { color: var(--tl-review); }
6212
6616
  #codex-overleaf-panel .codex-history-status[data-state="attention"] { padding: 1px 6px; border-radius: 4px; color: var(--tl-review); background: var(--tl-review-wash); }
6213
- #codex-overleaf-panel .codex-history-files { color: var(--tl-fg-3); font-size: 12px; line-height: 1.6; margin: 3px 0 5px; overflow-wrap: anywhere; word-break: normal; }
6617
+ #codex-overleaf-panel .codex-history-files { color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.6; margin: 3px 0 5px; overflow-wrap: anywhere; word-break: normal; }
6214
6618
  #codex-overleaf-panel .codex-history-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
6215
- #codex-overleaf-panel .codex-history-when { color: var(--tl-fg-3); font-size: 11px; font-variant-numeric: tabular-nums; }
6216
- #codex-overleaf-panel .codex-history-jump { display: inline-flex; align-items: center; gap: 4px; min-height: 26px; padding: 1px 0; margin: 0; border: 0; border-radius: 3px; background: transparent; box-shadow: none; color: var(--wb-accent, var(--tl-ok)); font: inherit; font-size: 12px; cursor: pointer; }
6619
+ #codex-overleaf-panel .codex-history-when { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
6620
+ #codex-overleaf-panel .codex-history-jump { display: inline-flex; align-items: center; gap: 4px; min-height: 26px; padding: 1px 0; margin: 0; border: 0; border-radius: 3px; background: transparent; box-shadow: none; color: var(--wb-accent, var(--tl-ok)); font: inherit; font-size: var(--tl-text-sm, 12px); cursor: pointer; }
6217
6621
  #codex-overleaf-panel .codex-history-jump:hover { background: transparent; text-decoration: underline; text-underline-offset: 3px; }
6218
6622
  #codex-overleaf-panel .codex-history-jump:disabled { color: var(--tl-fg-3); opacity: 1; cursor: default; text-decoration: none; }
6219
6623
  #codex-overleaf-panel .codex-history-jump .codex-history-icon svg { width: 12px; height: 12px; }
6220
- #codex-overleaf-panel .codex-history-empty { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 26px 12px; color: var(--tl-fg-3); font-size: 12px; line-height: 1.7; text-align: center; }
6221
- #codex-overleaf-panel .codex-history-include { display: flex; align-items: center; gap: 8px; margin: 13px 0 0; color: var(--tl-fg-3); font-size: 12px; line-height: 1.6; cursor: pointer; }
6624
+ #codex-overleaf-panel .codex-history-empty { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 26px 12px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.7; text-align: center; }
6625
+ #codex-overleaf-panel .codex-history-include { display: flex; align-items: center; gap: 8px; margin: 13px 0 0; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.6; cursor: pointer; }
6222
6626
  #codex-overleaf-panel .codex-history-include input { appearance: auto; display: inline-block; position: static; width: 14px; height: 14px; min-width: 14px; min-height: 14px; margin: 0; padding: 0; opacity: 1; accent-color: var(--wb-accent, var(--tl-ok)); }
6223
6627
  #codex-overleaf-panel .codex-history-more { margin: 8px 0 0 48px; }
6224
6628
  #codex-overleaf-panel :is(.codex-history-more, .codex-history-include)[hidden] { display: none !important; }
6225
- #codex-overleaf-panel .codex-settings-workbench [data-storage-card] { margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--tl-border); }
6629
+ #codex-overleaf-panel .codex-settings-workbench [data-storage-card] { margin-top: 0; }
6226
6630
  #codex-overleaf-panel .codex-storage-data-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
6227
6631
  #codex-overleaf-panel .codex-storage-data-copy { min-width: 0; }
6228
- #codex-overleaf-panel .codex-storage-data-label { font-size: 13px; line-height: 1.5; font-weight: 500; color: var(--tl-fg-1); }
6229
- #codex-overleaf-panel .codex-storage-data-row [data-storage-usage] { margin: 4px 0 0; font-size: 12px; color: var(--tl-fg-3); }
6230
- #codex-overleaf-panel .codex-storage-data-row .codex-set-btn { padding: 6px 9px; min-height: 32px; margin: 0; border-color: transparent; background: transparent; color: var(--tl-fail); font-size: 12px; box-shadow: none; }
6632
+ #codex-overleaf-panel .codex-storage-data-label { font-size: var(--tl-text-md, 13px); line-height: 1.5; font-weight: 500; color: var(--tl-fg-1); }
6633
+ #codex-overleaf-panel .codex-storage-data-row [data-storage-usage] { margin: 4px 0 0; font-size: var(--tl-text-sm, 12px); color: var(--tl-fg-3); }
6634
+ #codex-overleaf-panel .codex-storage-data-row .codex-set-btn { padding: 6px 9px; min-height: 32px; margin: 0; border-color: color-mix(in srgb, var(--tl-fail) 45%, transparent); background: transparent; color: var(--tl-fail); font-size: var(--tl-text-sm, 12px); box-shadow: none; }
6231
6635
  #codex-overleaf-panel .codex-storage-data-row .codex-set-btn:hover { border-color: var(--tl-border); background: var(--tl-fail-wash); }
6232
- #codex-overleaf-panel .codex-storage-clear-help { max-width: 66ch; margin: 12px 0 0; font-size: 12px; line-height: 1.65; }
6233
- #codex-overleaf-panel .codex-storage-estimate { margin: 8px 0 0; color: var(--tl-fg-3); font-size: 11px; line-height: 1.6; }
6636
+ #codex-overleaf-panel .codex-storage-clear-help { max-width: 66ch; margin: 12px 0 0; font-size: var(--tl-text-sm, 12px); line-height: 1.65; }
6637
+ #codex-overleaf-panel .codex-storage-estimate { margin: 8px 0 0; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.6; }
6638
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-row { padding: 13px 0 4px; }
6639
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-label { font-size: var(--tl-text-md, 13px); font-weight: 500; }
6640
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-row .codex-set-btn { min-height: 28px; padding: 3px 11px; background: var(--wb-surface); }
6641
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-clear-help { margin: 0 0 4px; }
6642
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-estimate { margin: 0; padding-bottom: 13px; }
6643
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-toolbar { margin: 0 0 6px; }
6644
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-search { min-height: 30px; border-color: var(--wb-line); background: var(--wb-surface); }
6645
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-search input { min-height: 28px; border: 0; background: transparent; }
6646
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-toolbar .codex-history-status-filter { min-height: 30px; border-color: var(--wb-line); background: var(--wb-surface); color: var(--wb-fg); }
6647
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry { margin: 0; padding: 13px 0; border: 0; border-radius: 0; background: transparent; color: var(--wb-fg); font-size: var(--tl-text-md, 13px); }
6648
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry:hover { background: transparent; }
6649
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry-label { font-weight: 500; }
6650
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry:hover .codex-skills-entry-chevron { color: var(--wb-fg); }
6234
6651
  @media (max-width: 620px) {
6235
6652
  #codex-overleaf-panel .codex-history-toolbar { grid-template-columns: minmax(0, 1fr) 116px; gap: 7px; }
6236
6653
  #codex-overleaf-panel .codex-history-row { grid-template-columns: 25px minmax(0, 1fr); column-gap: 8px; padding: 11px 0; }
6237
6654
  #codex-overleaf-panel .codex-history-mark { width: 25px; }
6238
- #codex-overleaf-panel .codex-history-task { font-size: 13px; }
6655
+ #codex-overleaf-panel .codex-history-task { font-size: var(--tl-text-md, 13px); }
6239
6656
  }
6240
6657
  @media (pointer: coarse) {
6241
6658
  #codex-overleaf-panel :is(.codex-history-jump, .codex-history-include, .codex-history-status-filter) { min-height: 44px; }
@@ -6258,7 +6675,7 @@
6258
6675
  border: 1px solid var(--tl-border, #2a2a2a);
6259
6676
  border-radius: 6px;
6260
6677
  color: var(--tl-fg-1, #e4e4e4);
6261
- font-size: 11.5px;
6678
+ font-size: var(--tl-text-xs, 11px);
6262
6679
  }
6263
6680
  #codex-overleaf-panel .run-card--flash {
6264
6681
  animation: codex-jump-flash 1.6s ease-out;
@@ -6278,7 +6695,7 @@
6278
6695
  #codex-overleaf-panel .codex-undo-file-item {
6279
6696
  display: block;
6280
6697
  padding: 3px 0;
6281
- font-size: 11.5px;
6698
+ font-size: var(--tl-text-xs, 11px);
6282
6699
  color: var(--tl-fg-1, #e4e4e4);
6283
6700
  word-break: break-all;
6284
6701
  cursor: pointer;
@@ -6340,7 +6757,7 @@
6340
6757
 
6341
6758
  #codex-overleaf-panel .codex-update-notice-eyebrow {
6342
6759
  color: #7fb5e9;
6343
- font-size: 10px;
6760
+ font-size: var(--tl-text-xs, 11px);
6344
6761
  font-weight: 750;
6345
6762
  letter-spacing: 0.07em;
6346
6763
  text-transform: uppercase;
@@ -6348,13 +6765,13 @@
6348
6765
 
6349
6766
  #codex-overleaf-panel .codex-update-notice strong {
6350
6767
  color: var(--tl-fg-1, #eceeec);
6351
- font-size: 12.5px;
6768
+ font-size: var(--tl-text-sm, 12px);
6352
6769
  }
6353
6770
 
6354
6771
  #codex-overleaf-panel .codex-update-notice-detail {
6355
6772
  overflow: hidden;
6356
6773
  color: var(--tl-fg-3, #9da39e);
6357
- font-size: 11px;
6774
+ font-size: var(--tl-text-xs, 11px);
6358
6775
  line-height: 1.35;
6359
6776
  text-overflow: ellipsis;
6360
6777
  }
@@ -6362,7 +6779,7 @@
6362
6779
  #codex-overleaf-panel .codex-update-notice-recovery {
6363
6780
  margin-top: 5px;
6364
6781
  color: var(--tl-fg-2, #d5dad6);
6365
- font-size: 10.5px;
6782
+ font-size: var(--tl-text-xs, 11px);
6366
6783
  font-weight: 700;
6367
6784
  }
6368
6785
 
@@ -6371,12 +6788,12 @@
6371
6788
  max-width: 100%;
6372
6789
  overflow-wrap: anywhere;
6373
6790
  color: #c5d9ec;
6374
- font: 10px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
6791
+ font: var(--tl-text-xs, 11px)/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
6375
6792
  user-select: text;
6376
6793
  }
6377
6794
 
6378
6795
  /* Reinstall notice: numbered steps with the command inline, in the waiting tone. */
6379
- #codex-overleaf-panel .codex-update-notice-steps { margin: 6px 0 0; padding-left: 16px; color: var(--tl-fg-2, #d5dad6); font-size: 11px; line-height: 1.5; }
6796
+ #codex-overleaf-panel .codex-update-notice-steps { margin: 6px 0 0; padding-left: 16px; color: var(--tl-fg-2, #d5dad6); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6380
6797
  #codex-overleaf-panel .codex-update-notice-steps .codex-update-notice-command { margin: 2px 0 4px; }
6381
6798
  #codex-overleaf-panel .codex-update-notice[data-state="manual_install_required"] {
6382
6799
  background: linear-gradient(100deg, rgba(199, 160, 83, 0.13), transparent 58%), var(--tl-surface-1, #181a19);
@@ -6398,7 +6815,7 @@
6398
6815
  border-radius: 5px;
6399
6816
  background: transparent;
6400
6817
  color: var(--tl-fg-2, #d5dad6);
6401
- font-size: 10.5px;
6818
+ font-size: var(--tl-text-xs, 11px);
6402
6819
  font-weight: 700;
6403
6820
  cursor: pointer;
6404
6821
  }
@@ -6499,7 +6916,7 @@
6499
6916
  padding: 5px 6px;
6500
6917
  border-radius: 6px;
6501
6918
  color: var(--provider-field-label);
6502
- font-size: 13px;
6919
+ font-size: var(--tl-text-md, 13px);
6503
6920
  font-weight: 500;
6504
6921
  line-height: 1.35;
6505
6922
  cursor: pointer;
@@ -6619,7 +7036,7 @@
6619
7036
  border: 0;
6620
7037
  background: transparent;
6621
7038
  color: var(--tl-fg-2);
6622
- font-size: 12px;
7039
+ font-size: var(--tl-text-sm, 12px);
6623
7040
  line-height: 1.5;
6624
7041
  }
6625
7042
  #codex-overleaf-panel [data-composer-selection][hidden] { display: none; }
@@ -6642,7 +7059,7 @@
6642
7059
  border-radius: 7px;
6643
7060
  background: var(--tl-surface-1);
6644
7061
  color: var(--tl-fg-2);
6645
- font-size: 12px;
7062
+ font-size: var(--tl-text-sm, 12px);
6646
7063
  font-weight: 400;
6647
7064
  line-height: 18px;
6648
7065
  list-style: none;
@@ -6679,7 +7096,7 @@
6679
7096
  border-radius: 7px;
6680
7097
  background: var(--tl-surface-1);
6681
7098
  color: var(--tl-fg-2);
6682
- font-size: 11px;
7099
+ font-size: var(--tl-text-xs, 11px);
6683
7100
  line-height: 1.6;
6684
7101
  }
6685
7102
  #codex-overleaf-panel [data-composer-selection] button {
@@ -6695,7 +7112,7 @@
6695
7112
  border-radius: 6px;
6696
7113
  background: transparent;
6697
7114
  color: var(--tl-fg-3);
6698
- font-size: 15px;
7115
+ font-size: var(--tl-text-lg, 15px);
6699
7116
  line-height: 1;
6700
7117
  }
6701
7118
  #codex-overleaf-panel [data-composer-selection] button:hover {
@@ -6714,7 +7131,7 @@
6714
7131
  padding-left: 5px;
6715
7132
  border-left: 1px solid var(--tl-border-strong);
6716
7133
  color: var(--tl-fg-2);
6717
- font-size: 10px;
7134
+ font-size: var(--tl-text-xs, 11px);
6718
7135
  white-space: nowrap;
6719
7136
  }
6720
7137
  .codex-selection-actions[data-codex-selection-actions] {
@@ -6733,7 +7150,7 @@
6733
7150
  background: var(--tl-surface-0);
6734
7151
  color: var(--tl-fg-1);
6735
7152
  box-shadow: 0 4px 16px rgba(0, 0, 0, .16);
6736
- font-size: 13px;
7153
+ font-size: var(--tl-text-md, 13px);
6737
7154
  font-weight: 500;
6738
7155
  line-height: 20px;
6739
7156
  }
@@ -6774,7 +7191,7 @@
6774
7191
  --ws-line: var(--tl-border-strong, #d7dcdf);
6775
7192
  --ws-muted: var(--tl-fg-3, #737b84);
6776
7193
  --ws-soft: color-mix(in srgb, var(--ws-accent) 8%, transparent);
6777
- padding: 18px !important;
7194
+ padding: 18px;
6778
7195
  min-width: 0;
6779
7196
  color: var(--tl-fg-1);
6780
7197
  background: linear-gradient(135deg, color-mix(in srgb, var(--ws-accent) 2%, transparent), transparent 60%);
@@ -6783,9 +7200,9 @@
6783
7200
  #codex-overleaf-panel .ws2 svg { display: block; width: 16px; height: 16px; flex: 0 0 auto; }
6784
7201
  #codex-overleaf-panel .ws2-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
6785
7202
  #codex-overleaf-panel .ws2-heading-copy { flex: 1; min-width: 0; }
6786
- #codex-overleaf-panel .ws2-title { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 14px; line-height: 1.5; font-weight: 600; cursor: pointer; }
6787
- #codex-overleaf-panel .ws2-beta { padding: 1px 6px; border-radius: 4px; color: var(--ws-muted); background: var(--tl-hover); font-size: 10px; line-height: 1.7; font-weight: 400; }
6788
- #codex-overleaf-panel .ws2-description { margin: 5px 0 0; max-width: 64ch; color: var(--tl-fg-2); font-size: 12px; line-height: 1.65; }
7203
+ #codex-overleaf-panel .ws2-title { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: var(--tl-text-base, 14px); line-height: 1.5; font-weight: 600; cursor: pointer; }
7204
+ #codex-overleaf-panel .ws2-beta { padding: 1px 6px; border-radius: 4px; color: var(--ws-muted); background: var(--tl-hover); font-size: var(--tl-text-xs, 11px); line-height: 1.7; font-weight: 400; }
7205
+ #codex-overleaf-panel .ws2-description { margin: 5px 0 0; max-width: 64ch; color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); line-height: 1.65; }
6789
7206
  #codex-overleaf-panel .ws2-heading > .codex-switch { flex: 0 0 auto; margin-top: 2px; }
6790
7207
  #codex-overleaf-panel .ws2-button,
6791
7208
  #codex-overleaf-panel .ws2-icon-button,
@@ -6795,7 +7212,7 @@
6795
7212
  gap: 6px; min-height: 30px; padding: 5px 10px; margin: 0;
6796
7213
  border: 1px solid var(--ws-line); border-radius: 7px; box-shadow: none;
6797
7214
  background: var(--tl-surface-1, transparent); color: var(--tl-fg-1);
6798
- font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.4; cursor: pointer;
7215
+ font-family: inherit; font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.4; cursor: pointer;
6799
7216
  }
6800
7217
  #codex-overleaf-panel .ws2-button:hover,
6801
7218
  #codex-overleaf-panel .ws2-icon-button:hover,
@@ -6813,85 +7230,92 @@
6813
7230
  #codex-overleaf-panel .ws2 input:focus-visible { outline: 2px solid var(--ws-accent); outline-offset: 3px; }
6814
7231
  #codex-overleaf-panel .ws2-manage { padding: 4px 0; min-height: 26px; border: 0; border-radius: 4px; margin-top: 12px; color: var(--ws-accent); background: transparent; }
6815
7232
  #codex-overleaf-panel .ws2-manage svg { width: 13px; height: 13px; }
7233
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card.ws2 { padding: 13px 0 14px; background: none; }
7234
+ #codex-overleaf-panel .codex-settings-workbench .ws2-title { font-size: var(--tl-text-md, 13px); font-weight: 500; }
7235
+ #codex-overleaf-panel .codex-settings-workbench .ws2-description { margin-top: 2px; color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); }
7236
+ #codex-overleaf-panel .codex-settings-workbench .ws2-status { margin-top: 10px; color: var(--wb-muted); }
7237
+ #codex-overleaf-panel .codex-settings-workbench .ws2-manage { justify-self: start; min-height: 28px; margin-top: 12px; padding: 3px 11px; border: 1px solid var(--wb-line); border-radius: 7px; background: var(--wb-surface); color: var(--wb-fg); font-size: var(--tl-text-sm, 12px); text-decoration: none; box-shadow: 0 1px 0 color-mix(in srgb, var(--wb-fg) 5%, transparent); }
7238
+ #codex-overleaf-panel .codex-settings-workbench .ws2-manage:hover { background: var(--wb-hover); text-decoration: none; }
7239
+ #codex-overleaf-panel .codex-settings-workbench .ws2-manage svg { width: 12px; height: 12px; }
6816
7240
  #codex-overleaf-panel .ws2-manage:hover { text-decoration: underline; text-underline-offset: 3px; }
6817
7241
  #codex-overleaf-panel .ws2-profile { display: flex; align-items: center; gap: 10px; padding: 12px; margin-top: 14px; background: var(--ws-soft); border-radius: 9px; }
6818
7242
  #codex-overleaf-panel .ws2-profile-icon { color: var(--ws-accent); }
6819
7243
  #codex-overleaf-panel .ws2-profile-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
6820
- #codex-overleaf-panel .ws2-profile-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; }
6821
- #codex-overleaf-panel .ws2-profile-copy small { color: var(--tl-fg-2); font-size: 11px; line-height: 1.5; }
7244
+ #codex-overleaf-panel .ws2-profile-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
7245
+ #codex-overleaf-panel .ws2-profile-copy small { color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6822
7246
  #codex-overleaf-panel .ws2-library { margin-top: 12px; border-top: 1px solid var(--ws-line); padding-top: 12px; }
6823
7247
  #codex-overleaf-panel .ws2-library-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
6824
- #codex-overleaf-panel .ws2-label { display: inline-flex; align-items: baseline; gap: 8px; font-size: 12px; font-weight: 600; }
6825
- #codex-overleaf-panel .ws2-count { color: var(--ws-muted); font-size: 10px; font-weight: 400; font-variant-numeric: tabular-nums; }
7248
+ #codex-overleaf-panel .ws2-label { display: inline-flex; align-items: baseline; gap: 8px; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
7249
+ #codex-overleaf-panel .ws2-count { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); font-weight: 400; font-variant-numeric: tabular-nums; }
6826
7250
  #codex-overleaf-panel .ws2-library-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; }
6827
7251
  #codex-overleaf-panel .ws2 [hidden] { display: none !important; }
6828
7252
  #codex-overleaf-panel .ws2-empty { display: flex; align-items: center; gap: 13px; margin-top: 8px; padding: 17px 12px; border: 1px dashed var(--ws-line); border-radius: 9px; }
6829
7253
  #codex-overleaf-panel .ws2-empty-icon { padding: 8px; border-radius: 9px; color: var(--ws-accent); background: var(--ws-soft); flex: 0 0 auto; }
6830
7254
  #codex-overleaf-panel .ws2-empty-icon svg { width: 20px; height: 20px; }
6831
- #codex-overleaf-panel .ws2-empty strong { font-size: 12px; font-weight: 500; }
6832
- #codex-overleaf-panel .ws2-empty p { margin: 4px 0 0; font-size: 11px; line-height: 1.55; color: var(--ws-muted); }
7255
+ #codex-overleaf-panel .ws2-empty strong { font-size: var(--tl-text-sm, 12px); font-weight: 500; }
7256
+ #codex-overleaf-panel .ws2-empty p { margin: 4px 0 0; font-size: var(--tl-text-xs, 11px); line-height: 1.55; color: var(--ws-muted); }
6833
7257
  #codex-overleaf-panel .ws2-source { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--ws-line); }
6834
7258
  #codex-overleaf-panel .ws2-source:last-child { border-bottom: 0; }
6835
7259
  #codex-overleaf-panel .ws2-source-icon { display: grid; place-items: center; width: 32px; height: 36px; border: 1px solid var(--ws-line); border-radius: 7px; background: var(--tl-surface-1); color: var(--tl-fg-2); flex: 0 0 auto; }
6836
7260
  #codex-overleaf-panel .ws2-source-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
6837
- #codex-overleaf-panel .ws2-source-copy strong { font-size: 12px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
6838
- #codex-overleaf-panel .ws2-source-copy small { color: var(--ws-muted); font-size: 11px; line-height: 1.45; }
6839
- #codex-overleaf-panel .ws2-caption { margin: 8px 0 0; color: var(--ws-muted); font-size: 10px; line-height: 1.6; }
7261
+ #codex-overleaf-panel .ws2-source-copy strong { font-size: var(--tl-text-sm, 12px); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
7262
+ #codex-overleaf-panel .ws2-source-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.45; }
7263
+ #codex-overleaf-panel .ws2-caption { margin: 8px 0 0; color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.6; }
6840
7264
  #codex-overleaf-panel .ws2-picker { margin: 8px 0 12px; overflow: hidden; border: 1px solid var(--ws-line); border-radius: 10px; background: var(--tl-surface-1); box-shadow: 0 6px 20px #00000008; animation: ws2-enter 150ms ease-out; }
6841
7265
  #codex-overleaf-panel .ws2-picker-heading { display: flex; align-items: center; gap: 3px; padding: 9px 10px 4px 14px; }
6842
- #codex-overleaf-panel .ws2-picker-heading strong { flex: 1; font-size: 12px; font-weight: 600; }
7266
+ #codex-overleaf-panel .ws2-picker-heading strong { flex: 1; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
6843
7267
  #codex-overleaf-panel .ws2-search { display: flex; align-items: center; gap: 8px; padding: 8px 10px; margin: 7px 12px 8px; border: 1px solid var(--ws-line); border-radius: 7px; color: var(--ws-muted); }
6844
7268
  #codex-overleaf-panel .ws2-search:focus-within { border-color: var(--ws-accent); box-shadow: 0 0 0 2px var(--ws-soft); }
6845
- #codex-overleaf-panel .ws2-search input { appearance: none; min-width: 0; width: 100%; border: 0; border-radius: 0; padding: 0; margin: 0; background: transparent; box-shadow: none; color: var(--tl-fg-1); font-family: inherit; font-size: 12px; line-height: 1.5; outline: none; }
7269
+ #codex-overleaf-panel .ws2-search input { appearance: none; min-width: 0; width: 100%; border: 0; border-radius: 0; padding: 0; margin: 0; background: transparent; box-shadow: none; color: var(--tl-fg-1); font-family: inherit; font-size: var(--tl-text-sm, 12px); line-height: 1.5; outline: none; }
6846
7270
  #codex-overleaf-panel .ws2-search input:focus-visible { outline: none; }
6847
7271
  #codex-overleaf-panel .ws2-search input::placeholder { color: var(--ws-muted); }
6848
7272
  #codex-overleaf-panel .ws2-filters { display: flex; align-items: center; gap: 3px; padding: 0 12px 8px; }
6849
- #codex-overleaf-panel .ws2-filter { min-height: 26px; padding: 4px 8px; border-color: transparent; background: transparent; color: var(--ws-muted); font-size: 11px; font-weight: 400; }
7273
+ #codex-overleaf-panel .ws2-filter { min-height: 26px; padding: 4px 8px; border-color: transparent; background: transparent; color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); font-weight: 400; }
6850
7274
  #codex-overleaf-panel .ws2-filter[aria-pressed="true"] { background: var(--ws-soft); color: var(--ws-accent); font-weight: 500; }
6851
7275
  #codex-overleaf-panel .ws2-projects { max-height: 238px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 0 6px 5px; }
6852
7276
  #codex-overleaf-panel .ws2-project { display: flex; align-items: center; gap: 11px; padding: 9px 10px; margin: 1px 0; min-height: 44px; border: 1px solid transparent; border-radius: 7px; cursor: pointer; }
6853
7277
  #codex-overleaf-panel .ws2-project:hover { background: var(--tl-hover); }
6854
7278
  #codex-overleaf-panel .ws2-project[data-selected="true"] { background: var(--ws-soft); }
6855
7279
  #codex-overleaf-panel .ws2-project-copy { display: grid; min-width: 0; gap: 3px; }
6856
- #codex-overleaf-panel .ws2-project-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; line-height: 1.45; font-weight: 500; }
6857
- #codex-overleaf-panel .ws2-project-copy small { color: var(--ws-muted); font-size: 10px; line-height: 1.4; }
7280
+ #codex-overleaf-panel .ws2-project-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--tl-text-sm, 12px); line-height: 1.45; font-weight: 500; }
7281
+ #codex-overleaf-panel .ws2-project-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
6858
7282
  #codex-overleaf-panel .ws2-check { appearance: none !important; -webkit-appearance: none !important; position: relative; width: 16px !important; height: 16px !important; min-width: 16px; padding: 0 !important; margin: 0 !important; flex: 0 0 auto; border: 1.5px solid var(--ws-muted) !important; border-radius: 4px !important; background: var(--tl-surface-1) !important; opacity: 1; cursor: pointer; }
6859
7283
  #codex-overleaf-panel .ws2-check:checked { background: var(--ws-accent) !important; border-color: var(--ws-accent) !important; }
6860
7284
  #codex-overleaf-panel .ws2-check:checked::after { content: ""; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px; border: solid #fff; border-width: 0 1.7px 1.7px 0; transform: rotate(45deg); }
6861
7285
  #codex-overleaf-panel[data-theme="dark"] .ws2-check:checked::after { border-color: #14271b; }
6862
7286
  #codex-overleaf-panel .ws2-check:disabled { cursor: default; opacity: .5; }
6863
- #codex-overleaf-panel .ws2-picker-state { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 84px; padding: 20px 14px; color: var(--ws-muted); font-size: 12px; text-align: center; }
7287
+ #codex-overleaf-panel .ws2-picker-state { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 84px; padding: 20px 14px; color: var(--ws-muted); font-size: var(--tl-text-sm, 12px); text-align: center; }
6864
7288
  #codex-overleaf-panel .ws2-picker-error { flex-direction: column; align-items: flex-start; text-align: left; }
6865
- #codex-overleaf-panel .ws2-picker-error strong { color: var(--tl-fg-1); font-size: 12px; font-weight: 500; }
7289
+ #codex-overleaf-panel .ws2-picker-error strong { color: var(--tl-fg-1); font-size: var(--tl-text-sm, 12px); font-weight: 500; }
6866
7290
  #codex-overleaf-panel .ws2-picker-error p { margin: 0; line-height: 1.6; }
6867
7291
  #codex-overleaf-panel .ws2-picker-footer { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--ws-line); }
6868
- #codex-overleaf-panel .ws2-picker-footer > span { font-size: 11px; color: var(--ws-muted); }
7292
+ #codex-overleaf-panel .ws2-picker-footer > span { font-size: var(--tl-text-xs, 11px); color: var(--ws-muted); }
6869
7293
  #codex-overleaf-panel .ws2-actions { display: flex; align-items: center; gap: 8px; padding-top: 16px; margin-top: 12px; border-top: 1px solid var(--ws-line); }
6870
7294
  #codex-overleaf-panel .ws2-action-copy { display: grid; gap: 4px; min-width: 0; flex: 1; }
6871
- #codex-overleaf-panel .ws2-action-copy > span { color: var(--tl-fg-2); font-size: 11px; line-height: 1.5; }
6872
- #codex-overleaf-panel .ws2-action-copy small { color: var(--ws-muted); font-size: 10px; line-height: 1.5; }
7295
+ #codex-overleaf-panel .ws2-action-copy > span { color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
7296
+ #codex-overleaf-panel .ws2-action-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6873
7297
  #codex-overleaf-panel .ws2-actions > button { flex: 0 0 auto; }
6874
7298
  #codex-overleaf-panel .ws2-progress { position: relative; margin-top: 14px; padding: 14px; border: 1px solid var(--ws-line); border-radius: 9px; background: var(--ws-soft); }
6875
7299
  #codex-overleaf-panel .ws2-progress-title { display: flex; align-items: center; gap: 8px; }
6876
- #codex-overleaf-panel .ws2-progress-title strong { font-size: 12px; font-weight: 500; }
6877
- #codex-overleaf-panel .ws2-progress > p { margin: 6px 0 12px 15px; color: var(--tl-fg-2); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
7300
+ #codex-overleaf-panel .ws2-progress-title strong { font-size: var(--tl-text-sm, 12px); font-weight: 500; }
7301
+ #codex-overleaf-panel .ws2-progress > p { margin: 6px 0 12px 15px; color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; overflow-wrap: anywhere; }
6878
7302
  #codex-overleaf-panel .ws2-pulse { display: inline-block; width: 6px; height: 6px; border-radius: 50%; flex: 0 0 auto; background: var(--ws-accent); animation: ws2-breathe 1.6s ease-in-out infinite; }
6879
7303
  #codex-overleaf-panel .ws2-steps { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px; }
6880
- #codex-overleaf-panel .ws2-steps > span { min-width: 80px; flex: 1; padding-top: 6px; border-top: 2px solid var(--ws-line); color: var(--ws-muted); font-size: 10px; }
7304
+ #codex-overleaf-panel .ws2-steps > span { min-width: 80px; flex: 1; padding-top: 6px; border-top: 2px solid var(--ws-line); color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); }
6881
7305
  #codex-overleaf-panel .ws2-steps > span[data-active="true"] { border-color: var(--ws-accent); color: var(--ws-accent); }
6882
- #codex-overleaf-panel .ws2-status { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; font-size: 11px; color: var(--tl-fg-2); line-height: 1.6; overflow-wrap: anywhere; }
7306
+ #codex-overleaf-panel .ws2-status { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; font-size: var(--tl-text-xs, 11px); color: var(--tl-fg-2); line-height: 1.6; overflow-wrap: anywhere; }
6883
7307
  #codex-overleaf-panel .ws2-status[data-tone="error"] { color: var(--ws-danger); }
6884
7308
  #codex-overleaf-panel .ws2-status[data-tone="success"] { color: var(--ws-accent); }
6885
7309
  #codex-overleaf-panel .ws2-preview { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ws-line); animation: ws2-enter 150ms ease-out; }
6886
7310
  #codex-overleaf-panel .ws2-preview-tabs { display: flex; flex-wrap: wrap; gap: 3px; margin-bottom: 12px; }
6887
- #codex-overleaf-panel .ws2-guide-body { max-height: 310px; overflow: auto; overscroll-behavior: contain; padding-right: 8px; color: var(--tl-fg-2); font-size: 12px; line-height: 1.8; }
6888
- #codex-overleaf-panel .ws2-guide-body h4 { font-size: 12px; font-weight: 600; color: var(--tl-fg-1); margin: 15px 0 6px; }
7311
+ #codex-overleaf-panel .ws2-guide-body { max-height: 310px; overflow: auto; overscroll-behavior: contain; padding-right: 8px; color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); line-height: 1.8; }
7312
+ #codex-overleaf-panel .ws2-guide-body h4 { font-size: var(--tl-text-sm, 12px); font-weight: 600; color: var(--tl-fg-1); margin: 15px 0 6px; }
6889
7313
  #codex-overleaf-panel .ws2-guide-body h4:first-child { margin-top: 0; }
6890
7314
  #codex-overleaf-panel .ws2-guide-body p { margin: 0 0 10px; white-space: pre-wrap; overflow-wrap: anywhere; }
6891
7315
  #codex-overleaf-panel .ws2-guide-body ul { padding-left: 18px; margin: 0 0 10px; }
6892
- #codex-overleaf-panel .ws2-skill-source { margin-top: 12px; color: var(--ws-muted); font-size: 11px; }
7316
+ #codex-overleaf-panel .ws2-skill-source { margin-top: 12px; color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); }
6893
7317
  #codex-overleaf-panel .ws2-skill-source summary { cursor: pointer; }
6894
- #codex-overleaf-panel .ws2-skill-source pre { margin: 10px 0 0; padding: 12px; max-height: 200px; overflow: auto; border-radius: 7px; background: var(--tl-hover); color: var(--tl-fg-2); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 10px; line-height: 1.7; }
7318
+ #codex-overleaf-panel .ws2-skill-source pre { margin: 10px 0 0; padding: 12px; max-height: 200px; overflow: auto; border-radius: 7px; background: var(--tl-hover); color: var(--tl-fg-2); white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--tl-text-xs, 11px); line-height: 1.7; }
6895
7319
  @keyframes ws2-enter { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
6896
7320
  @keyframes ws2-breathe { 50% { opacity: .35; } }
6897
7321
  @media (max-width: 600px) {
@@ -6908,19 +7332,29 @@
6908
7332
  /* Run presence: animated brand mark, rotating label, and the ∎ settled summary. */
6909
7333
  #codex-overleaf-panel .codex-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
6910
7334
  #codex-overleaf-panel .codex-glyph { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
6911
- #codex-overleaf-panel .run-status[data-presence] { display: flex; flex: 1 1 auto; align-items: center; gap: 7px; min-width: 0; white-space: nowrap; font-size: 12px !important; font-variant-numeric: tabular-nums; }
7335
+ /* Close buttons draw the shared line icon instead of a font × glyph. */
7336
+ #codex-overleaf-panel .codex-close-glyph { display: block; width: 12px; height: 12px; margin: auto; stroke-width: 1.6; }
7337
+ #codex-overleaf-panel :is(.codex-context-summary-remove, .codex-attachment-preview-dialog-close, .codex-toast-close) { display: inline-grid; place-items: center; padding: 0; }
7338
+ #codex-overleaf-panel .codex-context-summary-remove .codex-close-glyph,
7339
+ #codex-overleaf-panel .codex-context-chip [data-context-clear] .codex-close-glyph { width: 10px; height: 10px; }
7340
+ #codex-overleaf-panel .codex-attachment-preview-dialog-close .codex-close-glyph { width: 14px; height: 14px; }
7341
+ #codex-overleaf-panel .run-status[data-presence] { display: flex; flex: 1 1 auto; align-items: center; gap: 7px; min-width: 0; white-space: nowrap; font-size: var(--tl-text-sm, 12px) !important; font-variant-numeric: tabular-nums; }
6912
7342
  #codex-overleaf-panel .run-presentation-workflow .run-process summary:has(.run-status[data-presence])::before { display: none; }
6913
7343
  #codex-overleaf-panel .run-presentation-workflow .run-process summary:has(.run-status[data-presence]) { flex-wrap: nowrap; }
6914
7344
  #codex-overleaf-panel .run-status[data-presence="running"] { color: var(--tl-fg-2) !important; }
7345
+ /* Settled rows mix type sizes (the compile chip, the Q.E.D. note): text shares one baseline, the ∎ mark stays centred. */
6915
7346
  #codex-overleaf-panel .run-status[data-presence="done"],
6916
- #codex-overleaf-panel .run-status[data-presence="stopped"] { flex-wrap: wrap; row-gap: 2px; color: var(--tl-fg-2) !important; }
7347
+ #codex-overleaf-panel .run-status[data-presence="stopped"] { flex-wrap: wrap; row-gap: 2px; align-items: baseline; color: var(--tl-fg-2) !important; }
7348
+ #codex-overleaf-panel .run-status:is([data-presence="done"], [data-presence="stopped"]) > .run-qed { align-self: center; }
6917
7349
  #codex-overleaf-panel .run-status[data-presence="failed"] { color: var(--tl-fail) !important; }
7350
+ #codex-overleaf-panel .transcript-turn .run-status[data-presence="not-started"] { color: var(--tl-review) !important; }
7351
+ #codex-overleaf-panel .transcript-turn .run-status[data-presence="not-started-cancelled"] { color: var(--tl-fg-2) !important; }
6918
7352
  #codex-overleaf-panel .run-presence-label { display: grid; flex: 0 1 auto; min-width: 0; overflow: hidden; font-weight: 560; }
6919
7353
  #codex-overleaf-panel .run-presence-label > span { grid-area: 1 / 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: opacity var(--tl-m-base) var(--tl-m-ease), transform var(--tl-m-base) var(--tl-m-ease); }
6920
7354
  #codex-overleaf-panel .run-presence-label > .is-in { animation: tl-rise var(--tl-m-slow) var(--tl-m-ease); }
6921
7355
  #codex-overleaf-panel .run-presence-label > .is-out { opacity: 0; transform: translateY(-4px); }
6922
7356
  #codex-overleaf-panel .run-presence-label code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
6923
- #codex-overleaf-panel .run-presence-timer { margin-left: auto; padding-left: 8px; color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
7357
+ #codex-overleaf-panel .run-presence-timer { margin-left: auto; padding-left: 8px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
6924
7358
  #codex-overleaf-panel .run-shimmer { background: linear-gradient(90deg, var(--tl-fg-3) 0 38%, var(--tl-fg-1) 50%, var(--tl-fg-3) 62% 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: tl-shimmer 2.2s linear infinite; }
6925
7359
  #codex-overleaf-panel .run-shimmer.is-egg { background-image: linear-gradient(90deg, var(--tl-review) 0 38%, var(--tl-fg-1) 50%, var(--tl-review) 62% 100%); }
6926
7360
  #codex-overleaf-panel .run-mark { position: relative; display: inline-block; flex: none; width: 18px; height: 18px; }
@@ -6938,8 +7372,8 @@
6938
7372
  #codex-overleaf-panel .run-summary-sep { color: var(--tl-fg-4); }
6939
7373
  #codex-overleaf-panel .run-summary-add { color: var(--tl-ok); }
6940
7374
  #codex-overleaf-panel .run-summary-del { color: var(--tl-fail); }
6941
- #codex-overleaf-panel .run-summary-stopped { color: var(--tl-fg-3); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; }
6942
- #codex-overleaf-panel .run-summary-qed { color: var(--tl-ok); font-family: KaTeX_Main, "Times New Roman", serif; font-style: italic; font-size: 13px; }
7375
+ #codex-overleaf-panel .run-summary-stopped { color: var(--tl-fg-3); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--tl-text-xs, 11px); }
7376
+ #codex-overleaf-panel .run-summary-qed { color: var(--tl-ok); font-family: KaTeX_Main, "Times New Roman", serif; font-style: italic; font-size: var(--tl-text-md, 13px); }
6943
7377
  #codex-overleaf-panel .run-status[data-presence] > span:not(.codex-sr-only) { animation: tl-rise var(--tl-m-slow) var(--tl-m-ease) both; }
6944
7378
  #codex-overleaf-panel .run-status[data-presence="done"]:not(:has(.is-settling)) > span,
6945
7379
  #codex-overleaf-panel .run-status[data-presence="stopped"]:not(:has(.is-settling)) > span { animation: none; }
@@ -6973,11 +7407,11 @@
6973
7407
  #codex-overleaf-panel .run-empty-mark .run-mark { width: 60px; height: 60px; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.24)); }
6974
7408
  #codex-overleaf-panel .run-empty-mark .run-mark-leaf { animation: tl-sway 1.3s ease-in-out 2 alternate; }
6975
7409
  #codex-overleaf-panel .run-empty-mark:hover .run-mark-leaf { animation: tl-sway 1.3s ease-in-out infinite alternate; }
6976
- #codex-overleaf-panel .empty-runs-title { color: var(--tl-fg-1); font-size: 14px; font-weight: 600; }
6977
- #codex-overleaf-panel .run-empty-project { display: inline-flex; align-items: center; justify-self: center; gap: 5px; max-width: 100%; padding: 1px 9px; border-radius: 999px; background: var(--tl-ok-wash); color: var(--tl-ok); font-size: 11.5px; font-weight: 550; }
7410
+ #codex-overleaf-panel .empty-runs-title { color: var(--tl-fg-1); font-size: var(--tl-text-base, 14px); font-weight: 600; }
7411
+ #codex-overleaf-panel .run-empty-project { display: inline-flex; align-items: center; justify-self: center; gap: 5px; max-width: 100%; padding: 1px 9px; border-radius: 999px; background: var(--tl-ok-wash); color: var(--tl-ok); font-size: var(--tl-text-xs, 11px); font-weight: 550; }
6978
7412
  #codex-overleaf-panel .run-empty-project span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
6979
7413
  #codex-overleaf-panel .run-empty-project .codex-glyph { width: 12px; height: 12px; }
6980
- #codex-overleaf-panel .run-empty-tip { display: flex; align-items: flex-start; gap: 8px; width: min(320px, 100%); margin: 6px auto 0; padding: 8px 10px; border: 1px solid var(--tl-border); border-radius: var(--tl-r-md); background: var(--tl-surface-2); color: var(--tl-fg-2); font-size: 11.5px; line-height: 1.5; text-align: left; }
7414
+ #codex-overleaf-panel .run-empty-tip { display: flex; align-items: flex-start; gap: 8px; width: min(320px, 100%); margin: 6px auto 0; padding: 8px 10px; border: 1px solid var(--tl-border); border-radius: var(--tl-r-md); background: var(--tl-surface-2); color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; text-align: left; }
6981
7415
  #codex-overleaf-panel .run-empty-pilcrow { color: var(--tl-accent); font-family: KaTeX_Main, "Times New Roman", serif; font-size: 16px; line-height: 1.1; }
6982
7416
  #codex-overleaf-panel .run-empty-tip-text { flex: 1; min-width: 0; animation: tl-rise var(--tl-m-base) var(--tl-m-ease); }
6983
7417
  #codex-overleaf-panel .run-empty-tip-next { display: inline-grid; place-items: center; flex: none; width: 20px; height: 20px; min-height: 0; padding: 0; border: 0; border-radius: var(--tl-r-sm); background: transparent; color: var(--tl-fg-4); box-shadow: none; cursor: pointer; }
@@ -6997,7 +7431,7 @@
6997
7431
 
6998
7432
  /* Written-changes receipt: one folded row per file; inside, only changed lines
6999
7433
  with word-level marks. Prose font, faint washes, no status labels. */
7000
- #codex-overleaf-panel .run-written-changes { display: grid; gap: 2px; margin: 4px 0 6px; font-size: 12px; line-height: 1.6; }
7434
+ #codex-overleaf-panel .run-written-changes { display: grid; gap: 2px; margin: 4px 0 6px; font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
7001
7435
  #codex-overleaf-panel .run-written-file { min-width: 0; border-radius: 6px; }
7002
7436
  #codex-overleaf-panel .run-written-file[open] { background: var(--tl-surface-1); }
7003
7437
  #codex-overleaf-panel .run-written-file-sum { display: flex; align-items: baseline; gap: 6px; min-width: 0; padding: 3px 6px; border-radius: 6px; list-style: none; color: var(--tl-fg-2); cursor: pointer; }
@@ -7007,17 +7441,213 @@
7007
7441
  #codex-overleaf-panel .run-written-file-sum:hover { background: var(--tl-hover); }
7008
7442
  #codex-overleaf-panel .run-written-file-sum:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
7009
7443
  #codex-overleaf-panel .run-written-file-name { flex: none; max-width: 60%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tl-fg-1); font-weight: 560; }
7010
- #codex-overleaf-panel .run-written-file-dir { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tl-fg-4); font-size: 11px; }
7011
- #codex-overleaf-panel .run-written-file-counts { display: inline-flex; gap: 6px; flex: none; margin-left: auto; font-size: 11px; font-variant-numeric: tabular-nums; }
7444
+ #codex-overleaf-panel .run-written-file-dir { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); }
7445
+ #codex-overleaf-panel .run-written-file-counts { display: inline-flex; gap: 6px; flex: none; margin-left: auto; font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
7012
7446
  #codex-overleaf-panel .run-written-add { color: var(--tl-ok); }
7013
7447
  #codex-overleaf-panel .run-written-del { color: var(--tl-fail); }
7014
7448
  #codex-overleaf-panel .run-written-body { max-height: 320px; overflow: auto; padding: 2px 8px 8px 20px; scrollbar-width: thin; animation: tl-rise var(--tl-m-base, 180ms) var(--tl-m-ease, ease); }
7015
- #codex-overleaf-panel .run-written-hunk { margin: 6px 0 2px; color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
7449
+ #codex-overleaf-panel .run-written-hunk { margin: 6px 0 2px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
7016
7450
  #codex-overleaf-panel .run-written-row { min-height: 1.6em; color: var(--tl-fg-3); white-space: pre-wrap; overflow-wrap: anywhere; }
7017
7451
  #codex-overleaf-panel .run-written-row.is-changed { color: var(--tl-fg-1); }
7018
- #codex-overleaf-panel .run-written-gap, #codex-overleaf-panel .run-written-note { color: var(--tl-fg-4); font-size: 11px; font-style: italic; }
7452
+ #codex-overleaf-panel .run-written-gap, #codex-overleaf-panel .run-written-note { color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-style: italic; }
7019
7453
  #codex-overleaf-panel .run-written-row ins { padding: 0 1px; border-radius: 2px; background: color-mix(in srgb, var(--tl-ok) 22%, transparent); color: inherit; text-decoration: none; }
7020
7454
  #codex-overleaf-panel .run-written-row del { padding: 0 1px; border-radius: 2px; background: color-mix(in srgb, var(--tl-fail) 16%, transparent); color: var(--tl-fg-3); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--tl-fail) 70%, transparent); }
7021
7455
  @media (prefers-reduced-motion: reduce) {
7022
7456
  #codex-overleaf-panel .run-written-body, #codex-overleaf-panel .run-written-file-sum::before { animation: none; transition: none; }
7023
7457
  }
7458
+
7459
+ /* Context compaction marks. A manual /compact run renders as a command tag and
7460
+ a divider; an automatic compaction leaves a divider above that turn's answer.
7461
+ Neither occupies the three-row activity window. */
7462
+ #codex-overleaf-panel .run-compaction { margin: 12px 0 6px; }
7463
+ #codex-overleaf-panel .run-compaction[hidden] { display: none; }
7464
+ #codex-overleaf-panel .run-compaction[data-kind="auto"] { margin: 10px 0 12px; }
7465
+ #codex-overleaf-panel .run-compaction-line { display: grid; grid-template-columns: minmax(12px, 1fr) auto minmax(12px, 1fr); align-items: center; gap: 10px; color: var(--tl-fg-2); font-size: var(--tl-text-sm, 12px); }
7466
+ #codex-overleaf-panel .run-compaction-line::before,
7467
+ #codex-overleaf-panel .run-compaction-line::after { content: ""; height: 1px; background: var(--tl-border-strong); }
7468
+ #codex-overleaf-panel .run-compaction-label { display: inline-flex; align-items: center; gap: 6px; min-width: 0; white-space: nowrap; }
7469
+ #codex-overleaf-panel .run-compaction-title { overflow: hidden; text-overflow: ellipsis; }
7470
+ #codex-overleaf-panel .run-compaction-glyph { display: inline-grid; place-items: center; color: var(--tl-accent); }
7471
+ #codex-overleaf-panel .run-compaction-glyph .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
7472
+ #codex-overleaf-panel .run-compaction[data-state="running"] .run-compaction-glyph::before { content: ""; box-sizing: border-box; width: 11px; height: 11px; border: 2px solid var(--tl-border-strong); border-top-color: var(--tl-accent); border-radius: 50%; animation: tl-spin var(--tl-m-spin) linear infinite; }
7473
+ #codex-overleaf-panel .run-compaction-time { color: var(--tl-fg-4); font-variant-numeric: tabular-nums; }
7474
+ #codex-overleaf-panel .run-compaction-time:empty { display: none; }
7475
+ #codex-overleaf-panel .run-compaction-sub { margin-top: 6px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; text-align: center; text-wrap: balance; }
7476
+ #codex-overleaf-panel .run-compaction-sub[hidden] { display: none; }
7477
+ #codex-overleaf-panel .run-compaction[data-state="running"] .run-compaction-line::before,
7478
+ #codex-overleaf-panel .run-compaction[data-state="running"] .run-compaction-line::after { background: linear-gradient(90deg, var(--tl-border-strong) 0%, var(--tl-accent) 50%, var(--tl-border-strong) 100%); background-size: 200% 100%; animation: codex-context-usage-sweep 1.8s linear infinite; }
7479
+ #codex-overleaf-panel .run-compaction:is([data-state="failed"], [data-state="interrupted"]) :is(.run-compaction-label, .run-compaction-glyph) { color: var(--tl-fail); }
7480
+ #codex-overleaf-panel .run-compaction:is([data-state="failed"], [data-state="interrupted"]) .run-compaction-line::before,
7481
+ #codex-overleaf-panel .run-compaction:is([data-state="failed"], [data-state="interrupted"]) .run-compaction-line::after { background: color-mix(in srgb, var(--tl-fail) 40%, transparent); }
7482
+ #codex-overleaf-panel .run-compaction[data-state="cancelled"] :is(.run-compaction-label, .run-compaction-glyph) { color: var(--tl-fg-3); }
7483
+
7484
+ #codex-overleaf-panel .run-card[data-operation="compact"] .run-prompt { padding: 3px 8px; border-color: var(--tl-border); border-radius: 6px; color: var(--tl-fg-2); font: var(--tl-text-xs, 11px)/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
7485
+ #codex-overleaf-panel .run-card[data-operation="compact"] :is(.run-turn-meta, .run-result-actions, .run-final-answer__facts) { display: none; }
7486
+ /* Running and completed compactions are fully described by the divider; other
7487
+ outcomes keep the status row and report so technical details stay reachable. */
7488
+ #codex-overleaf-panel .run-card[data-operation="compact"]:is([data-status="running"], [data-status="completed"]) :is(.run-process, .run-activity-list, .run-workflow-busy, .run-peek, .run-peek-more, .run-setup, .run-workflow-attention, .run-report) { display: none; }
7489
+ @media (prefers-reduced-motion: reduce) {
7490
+ #codex-overleaf-panel .run-compaction *, #codex-overleaf-panel .run-compaction-line::before, #codex-overleaf-panel .run-compaction-line::after,
7491
+ #codex-overleaf-panel .run-compaction-glyph::before { animation: none !important; }
7492
+ }
7493
+
7494
+ /* Native selects draw their option list with the surrounding surface where the
7495
+ browser supports customizable selects. The element keeps its value, change
7496
+ events, keyboard and accessibility behavior; other browsers keep the system
7497
+ popup. Each surface maps its own tokens onto the --codex-select-* set. */
7498
+ #codex-overleaf-panel select.codex-set-select,
7499
+ .codex-provider-dialog-root select {
7500
+ --codex-select-surface: var(--tl-surface-2, #232323);
7501
+ --codex-select-line: var(--tl-border-strong, #3a3a3a);
7502
+ --codex-select-fg: var(--tl-fg-1, #e4e4e4);
7503
+ --codex-select-muted: var(--tl-fg-3, #8a8a8a);
7504
+ --codex-select-hover: var(--tl-hover, #2a2d2e);
7505
+ --codex-select-accent: var(--tl-accent, #6f9fd8);
7506
+ }
7507
+ #codex-overleaf-panel .codex-settings-workbench select.codex-set-select,
7508
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] select {
7509
+ --codex-select-surface: var(--wb-surface);
7510
+ --codex-select-line: var(--wb-line);
7511
+ --codex-select-fg: var(--wb-fg);
7512
+ --codex-select-muted: var(--wb-muted);
7513
+ --codex-select-hover: var(--wb-input);
7514
+ --codex-select-accent: var(--wb-green);
7515
+ }
7516
+ .codex-provider-dialog-root:not([data-embedded="true"]) select {
7517
+ --codex-select-surface: var(--provider-surface-raised);
7518
+ --codex-select-line: var(--provider-line);
7519
+ --codex-select-fg: var(--provider-text);
7520
+ --codex-select-muted: var(--provider-muted);
7521
+ --codex-select-hover: var(--provider-hover);
7522
+ --codex-select-accent: var(--provider-accent);
7523
+ }
7524
+ @supports (appearance: base-select) {
7525
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select),
7526
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker(select) { appearance: base-select; }
7527
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) {
7528
+ display: inline-flex;
7529
+ align-items: center;
7530
+ justify-content: space-between;
7531
+ gap: 8px;
7532
+ }
7533
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker-icon {
7534
+ content: "";
7535
+ flex: 0 0 auto;
7536
+ width: 10px;
7537
+ height: 10px;
7538
+ background: var(--codex-select-muted);
7539
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
7540
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
7541
+ transition: rotate 140ms ease;
7542
+ }
7543
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select):open::picker-icon { rotate: 180deg; }
7544
+ /* This shell already draws its own chevron. */
7545
+ .codex-provider-test-select-shell select::picker-icon { display: none; }
7546
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker(select) {
7547
+ box-sizing: border-box;
7548
+ margin: 4px 0;
7549
+ padding: 4px;
7550
+ border: 1px solid var(--codex-select-line);
7551
+ border-radius: 8px;
7552
+ background: var(--codex-select-surface);
7553
+ color: var(--codex-select-fg);
7554
+ box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.14);
7555
+ }
7556
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option {
7557
+ display: flex;
7558
+ align-items: center;
7559
+ gap: 10px;
7560
+ min-height: 30px;
7561
+ padding: 0 10px 0 9px;
7562
+ border-radius: 6px;
7563
+ background: transparent;
7564
+ color: var(--codex-select-fg);
7565
+ font: inherit;
7566
+ font-size: var(--tl-text-sm, 12px);
7567
+ line-height: 1.3;
7568
+ white-space: nowrap;
7569
+ cursor: pointer;
7570
+ }
7571
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option:is(:hover, :focus-visible) { background: var(--codex-select-hover); outline: none; }
7572
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option:checked { font-weight: 500; }
7573
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option:disabled { opacity: 0.5; cursor: default; }
7574
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option::checkmark {
7575
+ order: 1;
7576
+ display: block;
7577
+ width: 12px;
7578
+ height: 12px;
7579
+ margin-left: auto;
7580
+ content: "";
7581
+ background: var(--codex-select-accent);
7582
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
7583
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
7584
+ }
7585
+ }
7586
+
7587
+ /* Finished outcomes share the not-started projection; archived status is unchanged. */
7588
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-status:not([data-presence="done"]),
7589
+ #codex-overleaf-panel .run-status[data-presence="didnt-finish"],
7590
+ #codex-overleaf-panel .run-status[data-presence="partly-written"],
7591
+ #codex-overleaf-panel .run-status[data-presence="not-written"] { color: var(--tl-review) !important; }
7592
+ #codex-overleaf-panel .run-status[data-presence="check-overleaf"] { color: var(--tl-fail) !important; }
7593
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-status { color: var(--tl-fg-2) !important; }
7594
+ #codex-overleaf-panel .run-card:has(.run-outcome [data-recovery-action="edit-resend"]) [data-run-edit] { display: none; }
7595
+ #codex-overleaf-panel .run-outcome { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--tl-border); border-radius: 8px; display: grid; gap: 6px; }
7596
+ #codex-overleaf-panel .run-outcome > * { min-width: 0; }
7597
+ /* A finished run shows its report right under the collapsed process row, so
7598
+ header-to-content matches the prompt-to-header rhythm. An expanded process
7599
+ keeps the usual gap between its activity rows and the report. */
7600
+ #codex-overleaf-panel .run-process:not([open]) ~ .run-activity-list:empty { margin-top: 0; }
7601
+ #codex-overleaf-panel .run-process:not([open]) ~ .run-report > .run-completion-report { margin-top: 0; }
7602
+ #codex-overleaf-panel .run-completion-report > .run-outcome:first-child { margin-top: 0; }
7603
+ #codex-overleaf-panel .run-outcome .run-final-answer { margin: 0; display: grid; gap: 6px; line-height: 1.45; }
7604
+ #codex-overleaf-panel .run-outcome .run-final-heading { margin: 0; font-size: var(--tl-text-base, 14px); font-weight: 600; line-height: 1.4; color: var(--tl-fg-1); }
7605
+ #codex-overleaf-panel .run-outcome .run-outcome-body { margin: 0; font-size: var(--tl-text-md, 13px); font-weight: 400; line-height: 1.45; color: var(--tl-fg-3); }
7606
+ #codex-overleaf-panel .run-outcome-next { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; font-size: var(--tl-text-md, 13px); line-height: 1.45; }
7607
+ #codex-overleaf-panel .run-outcome-next dt { margin: 0; font-weight: 600; color: var(--tl-fg-1); }
7608
+ #codex-overleaf-panel .run-outcome-next dd { margin: 0; color: var(--tl-fg-3); }
7609
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action {
7610
+ justify-self: start; margin: 2px 0 0; font: inherit; font-size: var(--tl-text-sm, 12px); font-weight: 600; line-height: 1.4;
7611
+ padding: 4px 10px; border-radius: 6px; cursor: pointer;
7612
+ background: color-mix(in srgb, var(--tl-action) 13%, transparent); color: var(--tl-action);
7613
+ border: 1px solid transparent;
7614
+ }
7615
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action:hover { background: color-mix(in srgb, var(--tl-action) 20%, transparent); }
7616
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action:focus-visible { outline: 2px solid var(--tl-action); outline-offset: 2px; }
7617
+ #codex-overleaf-panel .run-outcome .run-outcome-files { list-style: none; padding: 0; margin: 0; display: grid; gap: 3px; font-size: var(--tl-text-md, 13px); }
7618
+ #codex-overleaf-panel .run-outcome .run-outcome-files li { margin: 0; display: grid; grid-template-columns: 12px 1fr; column-gap: 6px; align-items: center; }
7619
+ #codex-overleaf-panel .run-outcome-file-icon,
7620
+ #codex-overleaf-panel .run-outcome-file-icon .codex-glyph { width: 12px; height: 12px; display: block; }
7621
+ #codex-overleaf-panel .run-outcome-file-icon .codex-glyph { stroke-width: 1.5; }
7622
+ #codex-overleaf-panel .run-outcome-files [data-written="true"] { color: var(--tl-ok); }
7623
+ #codex-overleaf-panel .run-outcome-files [data-written="false"] { color: var(--tl-review); }
7624
+ #codex-overleaf-panel .run-outcome-file-name { color: var(--tl-fg-1); }
7625
+ #codex-overleaf-panel .run-outcome-file-reason { grid-column: 2; font-size: var(--tl-text-sm, 12px); line-height: 1.4; color: var(--tl-fg-3); }
7626
+ #codex-overleaf-panel .run-status[data-presence="partly-written"] > .codex-glyph { width: 12px; height: 12px; }
7627
+ #codex-overleaf-panel .run-outcome-compile > .run-final-heading { color: var(--tl-review); }
7628
+ #codex-overleaf-panel .run-outcome-details { margin: 0; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.45; }
7629
+ /* Outside a card (after the compile box in a successful report) the grid gap does not apply. */
7630
+ #codex-overleaf-panel .run-outcome-compile + .run-outcome-details { margin-top: 8px; }
7631
+ /* A report without a facts summary keeps its Details toggle and the actions on one row. */
7632
+ #codex-overleaf-panel .run-outcome-footer { display: flex; align-items: flex-start; gap: 2px 8px; }
7633
+ #codex-overleaf-panel .run-outcome-compile + .run-outcome-footer { margin-top: 8px; }
7634
+ #codex-overleaf-panel .run-outcome-footer > .run-outcome-details { flex: 1 1 auto; min-width: 0; }
7635
+ #codex-overleaf-panel .run-outcome-footer > .run-outcome-details > summary { min-height: 26px; margin: 0 -4px; padding: 0 4px; }
7636
+ #codex-overleaf-panel .run-outcome-footer > .run-result-actions { flex: 0 0 auto; margin: 0 0 0 auto; }
7637
+ #codex-overleaf-panel .run-outcome-details > summary { list-style: none; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; margin: -2px -4px; padding: 2px 4px; border-radius: 6px; }
7638
+ #codex-overleaf-panel .run-outcome-details > summary:hover { background: var(--tl-surface-1); color: var(--tl-fg-2); }
7639
+ #codex-overleaf-panel .run-outcome-details > summary::-webkit-details-marker { display: none; }
7640
+ #codex-overleaf-panel .run-outcome-details > summary::after { content: "›"; transition: transform .15s; }
7641
+ #codex-overleaf-panel .run-outcome-details[open] > summary::after { transform: rotate(90deg); }
7642
+ #codex-overleaf-panel .run-outcome-details > summary:focus-visible { outline: 2px solid var(--tl-action); outline-offset: 2px; }
7643
+ #codex-overleaf-panel .run-outcome-details-content { display: grid; gap: 3px; margin-top: 6px; padding: 2px 0 2px 10px; border-left: 2px solid var(--tl-border); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--tl-text-xs, 11px); }
7644
+ #codex-overleaf-panel .run-outcome-details .run-final-answer__meta { margin: 0; row-gap: 3px; font: inherit; }
7645
+ #codex-overleaf-panel .run-outcome-details .run-final-answer__meta :is(dt, dd) { margin: 0; color: inherit; font: inherit; letter-spacing: normal; }
7646
+ #codex-overleaf-panel .run-summary-compile-chip { font-size: var(--tl-text-xs, 11px); font-weight: 500; border-radius: 999px; padding: 1px 7px; background: var(--tl-review-wash); color: var(--tl-review); }
7647
+ @media (prefers-reduced-motion: reduce) {
7648
+ #codex-overleaf-panel .run-outcome-details > summary::after { transition: none; }
7649
+ }
7650
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-workflow-tool[data-state="failed"] > summary :is(.run-workflow-tool-state, .run-workflow-icon),
7651
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-process summary::before { color: var(--tl-review); }
7652
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-workflow-tool[data-state="failed"] > summary :is(.run-workflow-tool-state, .run-workflow-icon),
7653
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-process summary::before { color: var(--tl-fg-3); }