codex-overleaf-link 2.5.1 → 2.6.5

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 (111) hide show
  1. package/README.md +149 -398
  2. package/README.zh-CN.md +153 -404
  3. package/extension/bootstrap/manifest.template.json +1 -1
  4. package/extension/src/background.js +148 -3
  5. package/extension/src/backgroundSharedSessions.js +55 -2
  6. package/extension/src/backgroundUpdateCoordinator.js +128 -12
  7. package/extension/src/content/activeTurnControl.js +164 -7
  8. package/extension/src/content/composerAttachments.js +46 -10
  9. package/extension/src/content/composerPanel.js +92 -12
  10. package/extension/src/content/contentRuntime.js +1114 -321
  11. package/extension/src/content/contextTray.js +8 -2
  12. package/extension/src/content/contextUsageView.js +267 -0
  13. package/extension/src/content/diagnosticsController.js +77 -34
  14. package/extension/src/content/diagnosticsExport.js +1 -1
  15. package/extension/src/content/diagnosticsPanel.js +147 -42
  16. package/extension/src/content/generated/content.bundle.js +5761 -1237
  17. package/extension/src/content/generated/content.bundle.meta.json +6 -3
  18. package/extension/src/content/legacyGlobalRegistry.js +4 -0
  19. package/extension/src/content/localSkillsPanel.js +6 -4
  20. package/extension/src/content/markdownDomRenderer.js +5 -3
  21. package/extension/src/content/markdownText.js +53 -14
  22. package/extension/src/content/modelPicker.js +29 -19
  23. package/extension/src/content/nativeCompatibilityController.js +52 -19
  24. package/extension/src/content/otWarmMirror.js +1 -1
  25. package/extension/src/content/pageBridgeClient.js +7 -7
  26. package/extension/src/content/panelMaintenance.js +10 -2
  27. package/extension/src/content/panelRenderer.js +55 -28
  28. package/extension/src/content/pendingInputView.js +1 -1
  29. package/extension/src/content/projectSettingsCoordinator.js +30 -6
  30. package/extension/src/content/providerSettingsDialog.js +28 -19
  31. package/extension/src/content/recentProjects.js +30 -19
  32. package/extension/src/content/runActivitySummary.js +122 -14
  33. package/extension/src/content/runCompletionMeta.js +194 -6
  34. package/extension/src/content/runController.js +2 -1
  35. package/extension/src/content/runFailureNotice.js +8 -1
  36. package/extension/src/content/runPresence.js +18 -8
  37. package/extension/src/content/runQueueScheduler.js +27 -13
  38. package/extension/src/content/runRecoveryActions.js +2 -1
  39. package/extension/src/content/runResultActions.js +73 -24
  40. package/extension/src/content/runReviewController.js +102 -37
  41. package/extension/src/content/runTimelineView.js +224 -25
  42. package/extension/src/content/scopedPersistencePanelState.js +124 -46
  43. package/extension/src/content/selectionContextView.js +30 -3
  44. package/extension/src/content/sensitivePreflight.js +14 -1
  45. package/extension/src/content/sessionManager.js +49 -3
  46. package/extension/src/content/sessionMenuView.js +54 -18
  47. package/extension/src/content/sessionPersistence.js +25 -5
  48. package/extension/src/content/settingsPanel.js +15 -2
  49. package/extension/src/content/settingsWorkbench.js +127 -89
  50. package/extension/src/content/sharedSessionViewSync.js +13 -4
  51. package/extension/src/content/subagentActivityView.js +23 -7
  52. package/extension/src/content/updateNotice.js +60 -6
  53. package/extension/src/content/writebackOrchestrator.js +301 -72
  54. package/extension/src/content/writingStyleSettings.js +70 -17
  55. package/extension/src/page/compileBridge.js +193 -180
  56. package/extension/src/page/overleafCapabilities.js +4 -1
  57. package/extension/src/page/overleafEditor.js +12 -3
  58. package/extension/src/page/overleafProjectSnapshot.js +56 -3
  59. package/extension/src/page/snapshotRouter.js +75 -66
  60. package/extension/src/page/textCoordinates.js +17 -1
  61. package/extension/src/page/textFileCreator.js +9 -1
  62. package/extension/src/page/treeOperations.js +200 -19
  63. package/extension/src/page/writebackRouter.js +172 -113
  64. package/extension/src/pageBridge.js +124 -73
  65. package/extension/src/popup.js +1 -1
  66. package/extension/src/shared/agentTranscript.js +372 -18
  67. package/extension/src/shared/auditRecords.js +3 -0
  68. package/extension/src/shared/compatibility.js +1 -1
  69. package/extension/src/shared/compileAdapter.js +58 -17
  70. package/extension/src/shared/composerAttachmentDraft.js +27 -7
  71. package/extension/src/shared/contextUsage.js +125 -0
  72. package/extension/src/shared/failureReasons.js +57 -3
  73. package/extension/src/shared/i18n.js +315 -29
  74. package/extension/src/shared/lineReferences.js +38 -31
  75. package/extension/src/shared/pageRpcContract.js +1 -1
  76. package/extension/src/shared/panelIcons.js +39 -0
  77. package/extension/src/shared/projectFiles.js +2 -1
  78. package/extension/src/shared/reviewing.js +130 -1
  79. package/extension/src/shared/runActivityModel.js +70 -4
  80. package/extension/src/shared/runExecutionSnapshot.js +13 -0
  81. package/extension/src/shared/scopedPersistenceBrowserAdapter.js +34 -0
  82. package/extension/src/shared/sessionState.js +63 -4
  83. package/extension/src/shared/sessionTitle.js +14 -1
  84. package/extension/src/shared/sharedSessionBridge.js +81 -13
  85. package/extension/src/shared/staleGuard.js +130 -63
  86. package/extension/src/shared/storageDb.js +35 -3
  87. package/extension/src/shared/storageMigration.js +111 -2
  88. package/extension/src/shared/storageRunActions.js +62 -8
  89. package/extension/src/shared/undoOperations.js +126 -28
  90. package/extension/src/shared/updateRuntimeIdentity.js +16 -2
  91. package/extension/src/shared/writebackSettlement.js +21 -3
  92. package/extension/styles/panel.css +1293 -549
  93. package/native-host/src/bootstrapUpdate.js +52 -16
  94. package/native-host/src/chatBridgeRequest.js +60 -6
  95. package/native-host/src/chatBridgeResponse.js +10 -1
  96. package/native-host/src/chatCompletionsBridge.js +29 -2
  97. package/native-host/src/codexPromptAssembly.js +86 -118
  98. package/native-host/src/codexSessionRunner.js +127 -17
  99. package/native-host/src/debugLog.js +27 -3
  100. package/native-host/src/index.js +42 -11
  101. package/native-host/src/localSkills.js +1 -1
  102. package/native-host/src/mirrorWorkspace.js +47 -3
  103. package/native-host/src/nativeEnvironment.js +27 -5
  104. package/native-host/src/providerContextError.js +20 -0
  105. package/native-host/src/providerRuntime.js +1 -0
  106. package/native-host/src/skills/reviewer-response/SKILL.md +65 -0
  107. package/native-host/src/taskRunnerRuntime.js +28 -8
  108. package/native-host/src/textPatch.js +473 -377
  109. package/native-host/src/updateManager.js +144 -21
  110. package/native-host/src/writingStyleRuntime.js +1 -1
  111. package/package.json +5 -8
@@ -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;
@@ -370,6 +403,16 @@
370
403
  vertical-align: top;
371
404
  }
372
405
 
406
+ #codex-overleaf-panel :is(.run-stream-text, .run-final-answer) .run-markdown-table :is(th, td) {
407
+ overflow-wrap: break-word;
408
+ min-width: 4em;
409
+ }
410
+
411
+ #codex-overleaf-panel :is(.run-stream-text, .run-final-answer) .run-markdown-table .codex-line-reference {
412
+ overflow-wrap: normal;
413
+ white-space: nowrap;
414
+ }
415
+
373
416
  #codex-overleaf-panel :is(.run-stream-text, .run-final-answer) .run-markdown-table th {
374
417
  background: var(--tl-surface-2);
375
418
  color: var(--tl-fg-1);
@@ -457,7 +500,7 @@
457
500
  background: var(--wb-surface);
458
501
  color: var(--wb-fg);
459
502
  font: inherit;
460
- font-size: 14px;
503
+ font-size: var(--tl-text-base, 14px);
461
504
  line-height: 1.5;
462
505
  box-shadow: 0 22px 80px #00000040;
463
506
  }
@@ -477,74 +520,112 @@
477
520
  #codex-overleaf-panel .codex-settings-workbench[open] { display: flex; flex-direction: column; animation: codexSettingsEnter 140ms ease-out; }
478
521
  #codex-overleaf-panel .codex-settings-workbench::backdrop { background: #15201966; }
479
522
  #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; }
523
+ /* Quiet-list workbench: the title sits on the rail, sections are plain headings over
524
+ hairline-separated rows, and scope lives in the sidebar sections and page lines. */
525
+ #codex-overleaf-panel .codex-settings-workbench {
526
+ --wb-hairline: color-mix(in srgb, var(--wb-line) 72%, transparent);
527
+ --wb-selected: color-mix(in srgb, var(--wb-fg) 7%, transparent);
528
+ --wb-hover: color-mix(in srgb, var(--wb-fg) 4%, transparent);
529
+ --wb-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
530
+ }
531
+ #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; }
532
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-close:hover { color: var(--wb-fg); background: var(--wb-hover); }
533
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-close .codex-icon { width: 16px; height: 16px; }
534
+ #codex-overleaf-panel .codex-provider-dialog-root .codex-provider-back-button { display: inline-flex; align-items: center; gap: 4px; padding: 0 10px 0 6px; }
535
+ #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; }
536
+ #codex-overleaf-panel .codex-wb-layout { display: grid; grid-template-columns: 216px minmax(0, 1fr); min-height: 0; flex: 1; }
537
+ #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; }
538
+ #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; }
539
+ #codex-overleaf-panel .codex-wb-nav { display: flex; flex-direction: column; gap: 1px; }
540
+ #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; }
541
+ #codex-overleaf-panel .codex-wb-nav-section:first-child { padding-top: 4px; }
542
+ #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; }
543
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button:hover { background: var(--wb-hover); color: var(--wb-fg); }
544
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-nav-button[aria-selected="true"] { background: var(--wb-selected); color: var(--wb-fg); font-weight: 500; }
545
+ #codex-overleaf-panel .codex-wb-nav-icon { display: flex; align-items: center; width: 15px; flex-shrink: 0; }
546
+ #codex-overleaf-panel .codex-wb-nav-icon .codex-icon { width: 15px; height: 15px; }
498
547
  #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; }
548
+ #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
549
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-panel,
501
550
  #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); }
551
+ #codex-overleaf-panel .codex-wb-page { max-width: 600px; }
552
+ #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); }
553
+ #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; }
554
+ #codex-overleaf-panel .codex-wb-page-scope b { color: var(--wb-fg); font-weight: 500; }
555
+ /* Sections: always open, not focusable, no chevron, no scope chip. */
503
556
  #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; }
557
+ #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; }
558
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group { overflow: visible; }
505
559
  #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); }
560
+ #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; }
561
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head::-webkit-details-marker { display: none; }
562
+ /* Headings are not controls: cancel the panel-wide summary hover band. */
563
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head:hover { background: transparent; }
564
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group-head::after { content: none; display: none; }
565
+ #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
566
  #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; }
567
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-saved { margin-left: auto; color: var(--wb-green); font-size: var(--tl-text-xs, 11px); }
568
+ /* A sole section repeats the page title: drop the title, keep the Saved mark above the first hairline. */
569
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group[data-sole-section="true"] > .codex-set-group-head { position: relative; height: 0; margin: 0; }
570
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-group[data-sole-section="true"] > .codex-set-group-head .codex-set-group-title { display: none; }
571
+ #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; }
572
+ /* Rows hang from one hairline and are separated by hairlines. */
511
573
  #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); }
574
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card:not(.codex-provider-settings-entry) { gap: 0; border-top: 1px solid var(--wb-hairline); }
575
+ #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); }
576
+ #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); }
577
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row:has(+ .codex-set-row-help) { padding-bottom: 2px; }
578
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row + .codex-set-row-help { margin: 0; padding: 0 72px 13px 0; }
579
+ #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); }
580
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-set-row-help:first-child { margin: 12px 0 10px; }
513
581
  #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; }
582
+ #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); }
583
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row { padding: 13px 0; border: 0; }
516
584
  #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; }
585
+ #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; }
586
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-row-sub { display: block; margin: 3px 0 0; }
587
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-note { font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
588
+ /* Fields */
520
589
  #codex-overleaf-panel .codex-settings-workbench .codex-set-select,
521
590
  #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; }
591
+ #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
592
  #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; }
593
+ #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; }
594
+ #codex-overleaf-panel .codex-settings-workbench .codex-custom-instructions-input { min-height: 150px; }
595
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-custom-instructions-input { margin-bottom: 14px; }
596
+ /* Glob rules read as code. */
597
+ #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
598
  #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%; }
599
+ #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
600
  #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
601
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch::before { content: none; }
530
602
  #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
603
  #codex-overleaf-panel .codex-settings-workbench input.codex-switch:checked { background: var(--wb-switch); border-color: var(--wb-switch); }
532
604
  #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; }
605
+ /* One quiet button for every secondary action; danger only tints text and border. */
606
+ #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; }
607
+ #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); }
608
+ #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; }
609
+ #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
610
  #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; }
611
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-row { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
612
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-row-help { margin: 0; }
613
+ #codex-overleaf-panel .codex-settings-workbench [data-update-settings] .codex-set-note { align-self: stretch; margin: 0; padding: 0; border: 0; background: none; }
614
+ #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); }
615
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary { color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); }
616
+ /* The workbench rule above outranks the base tone rules; keep warnings and failures visible. */
617
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary[data-tone="warning"] { color: var(--tl-review); }
618
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-summary[data-tone="failed"] { color: var(--tl-fail); }
619
+ #codex-overleaf-panel .codex-settings-workbench .codex-provider-experimental-badge { font-size: var(--tl-text-xs, 11px); white-space: normal; }
620
+ /* Theme: three compact swatches. */
621
+ #codex-overleaf-panel .codex-wb-themes { display: grid; grid-template-columns: repeat(3, 128px); gap: 10px; margin: 0 0 4px; }
622
+ #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row:has(+ .codex-wb-themes) { padding-bottom: 10px; }
623
+ #codex-overleaf-panel .codex-settings-workbench .codex-wb-themes + .codex-set-row-help { margin: 4px 0 0; padding-bottom: 13px; }
624
+ #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; }
625
+ #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); }
626
+ #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
627
  #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; }
628
+ #codex-overleaf-panel .codex-wb-theme-lines { display: block; flex: 1; padding: 11px 10px; }
548
629
  #codex-overleaf-panel .codex-wb-theme-lines b { display: block; height: 4px; max-width: 76%; margin-bottom: 7px; border-radius: 2px; background: #becfc2; }
549
630
  #codex-overleaf-panel .codex-wb-theme-lines b:nth-child(2) { width: 50%; background: #87ab91; }
550
631
  #codex-overleaf-panel .codex-wb-theme-lines b:last-child { width: 62%; }
@@ -552,34 +633,39 @@
552
633
  #codex-overleaf-panel .codex-wb-theme-preview[data-preview-theme="dark"]::before { background: #18211b; }
553
634
  #codex-overleaf-panel .codex-wb-theme-preview[data-preview-theme="dark"] b { background: #526b59; }
554
635
  #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; }
636
+ #codex-overleaf-panel .codex-wb-theme-caption { display: block; padding: 0 2px; font-size: var(--tl-text-sm, 12px); line-height: 1.6; }
637
+ /* Footer status shares the content column. */
638
+ #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); }
639
+ #codex-overleaf-panel .codex-wb-footer > * { max-width: 600px; }
640
+ #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
641
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-status:empty { display: none; }
642
+ #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
643
  #codex-overleaf-panel .codex-wb-footer:not(:has([data-project-settings-status]:not(:empty):not([hidden]))) { display: none; }
560
644
  #codex-overleaf-panel[data-settings-workbench="true"][data-settings-workbench-open="true"] [data-settings-slot] { display: contents; }
561
645
  #codex-overleaf-panel[data-settings-workbench="true"][data-settings-workbench-open="true"] [data-main] { display: flex; }
562
646
  #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; }
647
+ #codex-overleaf-panel .codex-settings-workbench :is(button, input, select, textarea):focus-visible { outline: 2px solid var(--wb-green); outline-offset: 3px; }
564
648
  @keyframes codexSettingsEnter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
565
649
  @media (max-width: 640px) {
566
650
  #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
651
  #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; }
652
+ #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); }
653
+ #codex-overleaf-panel .codex-wb-title { padding: 4px 4px 0; }
654
+ #codex-overleaf-panel .codex-wb-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 4px; }
655
+ #codex-overleaf-panel .codex-wb-nav-section { grid-column: 1 / -1; padding: 8px 4px 2px; }
656
+ #codex-overleaf-panel .codex-wb-nav-section:first-child { padding-top: 0; }
657
+ #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; }
658
+ #codex-overleaf-panel .codex-wb-nav-icon { display: none; }
575
659
  #codex-overleaf-panel .codex-wb-main { flex: 1; }
576
660
  #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; }
661
+ #codex-overleaf-panel .codex-wb-footer { padding: 0 18px 12px; }
662
+ #codex-overleaf-panel .codex-wb-page-title { font-size: 18px; }
663
+ #codex-overleaf-panel .codex-wb-page-scope { margin-bottom: 18px; }
664
+ #codex-overleaf-panel .codex-wb-themes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
580
665
  #codex-overleaf-panel .codex-wb-theme-preview { height: 44px; }
581
- #codex-overleaf-panel .codex-wb-theme-caption { font-size: 11px; }
666
+ #codex-overleaf-panel .codex-wb-theme-caption { font-size: var(--tl-text-xs, 11px); }
582
667
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row { gap: 14px; }
668
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card > .codex-project-settings-row + .codex-set-row-help { padding-right: 0; }
583
669
  #codex-overleaf-panel .codex-settings-workbench .codex-project-settings-row .codex-set-select { min-width: 112px; }
584
670
  #codex-overleaf-panel .codex-settings-workbench .codex-provider-settings-entry { grid-template-columns: minmax(0, 1fr); }
585
671
  }
@@ -639,17 +725,18 @@
639
725
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-dialog-close { display: none; }
640
726
  #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
727
  #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); }
728
+ #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
729
  #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
730
  #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
731
  #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; }
732
+ #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); }
733
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-add:hover { background: var(--wb-hover); }
647
734
  #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
735
  #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); }
736
+ #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); }
737
+ #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); }
738
+ #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; }
739
+ #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
740
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-row-status[data-tone="active"] { color: var(--wb-green); }
654
741
  #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
742
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-detail-titleline { margin: 0 0 18px; }
@@ -657,16 +744,16 @@
657
744
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-head h3,
658
745
  #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
746
  #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); }
747
+ #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
748
  #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); }
749
+ #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
750
  #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; }
751
+ #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
752
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-field :is(input:not([type="checkbox"]), select, textarea),
666
753
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-search input { width: 100%; }
667
754
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] input::placeholder,
668
755
  #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); }
756
+ #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
757
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] input[type="checkbox"] { flex-shrink: 0; accent-color: var(--wb-green); }
671
758
  #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
759
  #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 +761,48 @@
674
761
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template:hover { background: var(--wb-input); }
675
762
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-template-mark { width: 30px; height: 30px; min-width: 30px; }
676
763
  #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); }
764
+ #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; }
765
+ #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); }
766
+ #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; }
767
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin > * { margin: 0; }
768
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin-mark { grid-row: 1 / 3; }
769
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin :is(h3, p) { grid-column: 2; }
770
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-builtin h3 { font-size: var(--tl-text-base, 14px); }
771
+ #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
772
  #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; }
773
+ #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; }
774
+ /* Only Save/Cancel actions need to stay in view; a lone status line flows after the content instead of covering it. */
775
+ #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
776
  #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
777
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-footer-actions:empty,
684
778
  #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; }
779
+ #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; }
780
+ #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); }
781
+ #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); }
782
+ #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
783
  #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); }
784
+ #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
785
  #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-inline-button { color: var(--wb-muted); background: transparent; border-color: transparent; }
690
786
  #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); }
787
+ #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); }
788
+ /* Embedded, these buttons sit under the panel-wide reset (#codex-overleaf-panel button), which outranks the
789
+ provider base rules: restate the border, and keep danger actions red. */
790
+ #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; }
791
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-secondary-button:hover { background: var(--wb-hover); }
792
+ #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); }
793
+ #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)); }
794
+ /* In a confirmation the destructive answer is the primary action. */
795
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] .codex-provider-confirmation footer button { min-height: 32px; padding: 5px 14px; font-weight: 500; }
796
+ #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); }
797
+ #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
798
 
692
799
  /* 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
800
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel {
699
801
  box-sizing: border-box;
700
802
  width: 100%;
701
- max-width: 500px;
803
+ max-width: 600px;
702
804
  margin: 0;
703
- padding: 0 8px;
704
- font-family: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
805
+ padding: 0;
705
806
  }
706
807
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-head {
707
808
  position: relative;
@@ -713,10 +814,10 @@
713
814
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-title {
714
815
  margin: 0;
715
816
  color: var(--wb-fg);
716
- font-size: 18px;
717
- font-weight: 500;
718
- line-height: 1.45;
719
- letter-spacing: -.28px;
817
+ font-size: 20px;
818
+ font-weight: 600;
819
+ line-height: 1.4;
820
+ letter-spacing: -.3px;
720
821
  }
721
822
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel [data-skills-back] {
722
823
  position: absolute;
@@ -764,16 +865,16 @@
764
865
  background: transparent;
765
866
  }
766
867
  #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; }
868
+ #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
869
  #codex-overleaf-panel .codex-settings-workbench .codex-wb-skills-help {
769
870
  display: block;
770
871
  margin: 3px 0 0;
771
872
  color: var(--wb-muted);
772
- font-size: 12px;
873
+ font-size: var(--tl-text-sm, 12px);
773
874
  font-weight: 400;
774
875
  line-height: 1.6;
775
876
  }
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; }
877
+ #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
878
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-divider { display: none; }
778
879
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-list {
779
880
  display: flex;
@@ -817,7 +918,7 @@
817
918
  display: block;
818
919
  overflow: hidden;
819
920
  color: var(--wb-fg);
820
- font-size: 14px;
921
+ font-size: var(--tl-text-base, 14px);
821
922
  font-weight: 500;
822
923
  line-height: 1.45;
823
924
  letter-spacing: -.1px;
@@ -829,7 +930,7 @@
829
930
  margin-top: 2px;
830
931
  overflow: hidden;
831
932
  color: var(--wb-muted);
832
- font-size: 12px;
933
+ font-size: var(--tl-text-sm, 12px);
833
934
  font-weight: 400;
834
935
  line-height: 1.5;
835
936
  white-space: nowrap;
@@ -837,7 +938,7 @@
837
938
  }
838
939
  #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
940
  #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; }
941
+ #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
942
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel input.codex-switch {
842
943
  position: relative;
843
944
  display: block;
@@ -887,16 +988,15 @@
887
988
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-row[data-disabled="true"] { opacity: 1; }
888
989
  #codex-overleaf-panel .codex-settings-workbench .codex-local-skill-row[data-disabled="true"] .codex-local-skill-copy,
889
990
  #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; }
991
+ #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
992
  @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
993
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-custom-instructions-title { font-size: 17px; }
894
994
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel [data-skills-back] { inset-inline-start: -21px; width: 23px; min-width: 23px; }
895
995
  }
896
996
  @media (max-width: 520px) {
897
997
  #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-row { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; }
898
998
  #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; }
999
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-panel .codex-local-skill-name { font-size: var(--tl-text-md, 13px); }
900
1000
  #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
1001
  }
902
1002
  @media (pointer: coarse) {
@@ -934,12 +1034,12 @@
934
1034
 
935
1035
  .codex-provider-settings-summary {
936
1036
  margin: 5px 0 0;
937
- color: #92d99a;
938
- font-size: 12px;
1037
+ color: var(--tl-ok, #92d99a);
1038
+ font-size: var(--tl-text-sm, 12px);
939
1039
  }
940
1040
 
941
- .codex-provider-settings-summary[data-tone="warning"] { color: #d9bd78; }
942
- .codex-provider-settings-summary[data-tone="failed"] { color: #ef8f84; }
1041
+ .codex-provider-settings-summary[data-tone="warning"] { color: var(--tl-review, #d9bd78); }
1042
+ .codex-provider-settings-summary[data-tone="failed"] { color: var(--tl-fail, #ef8f84); }
943
1043
 
944
1044
  .codex-provider-experimental-badge {
945
1045
  display: inline-flex;
@@ -950,7 +1050,7 @@
950
1050
  border-radius: 999px;
951
1051
  background: rgba(217, 189, 120, 0.08);
952
1052
  color: #d9bd78;
953
- font-size: 9px;
1053
+ font-size: var(--tl-text-xs, 11px);
954
1054
  font-weight: 700;
955
1055
  line-height: 1;
956
1056
  letter-spacing: 0.035em;
@@ -1080,7 +1180,7 @@
1080
1180
  .codex-provider-builtin p {
1081
1181
  margin: 6px 0 0;
1082
1182
  color: var(--provider-muted);
1083
- font-size: 12px;
1183
+ font-size: var(--tl-text-sm, 12px);
1084
1184
  }
1085
1185
 
1086
1186
  .codex-provider-dialog-close {
@@ -1134,8 +1234,8 @@
1134
1234
  .codex-provider-row:hover,
1135
1235
  .codex-provider-row[aria-current="true"] { background: var(--provider-hover); }
1136
1236
  .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; }
1237
+ .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; }
1238
+ .codex-provider-row-status { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
1139
1239
  .codex-provider-row-status[data-tone="active"] { color: var(--provider-accent); }
1140
1240
  .codex-provider-add { margin-top: 8px; color: var(--provider-accent); }
1141
1241
 
@@ -1161,7 +1261,7 @@
1161
1261
  border: 1px solid rgba(121, 213, 138, 0.42);
1162
1262
  border-radius: 999px;
1163
1263
  color: var(--provider-accent);
1164
- font-size: 11px;
1264
+ font-size: var(--tl-text-xs, 11px);
1165
1265
  font-weight: 700;
1166
1266
  }
1167
1267
 
@@ -1177,7 +1277,7 @@
1177
1277
  flex-direction: column;
1178
1278
  gap: 7px;
1179
1279
  color: var(--provider-field-label);
1180
- font-size: 12px;
1280
+ font-size: var(--tl-text-sm, 12px);
1181
1281
  font-weight: 650;
1182
1282
  }
1183
1283
 
@@ -1203,7 +1303,7 @@
1203
1303
  .codex-provider-field input:focus,
1204
1304
  .codex-provider-field textarea:focus,
1205
1305
  .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; }
1306
+ .codex-provider-field small { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); font-weight: 450; }
1207
1307
  .codex-provider-secret-row { display: flex; gap: 8px; }
1208
1308
 
1209
1309
  .codex-provider-advanced {
@@ -1213,7 +1313,7 @@
1213
1313
  border-bottom: 1px solid var(--provider-line);
1214
1314
  }
1215
1315
 
1216
- .codex-provider-advanced summary { color: var(--provider-muted); cursor: pointer; font-size: 12px; font-weight: 650; }
1316
+ .codex-provider-advanced summary { color: var(--provider-muted); cursor: pointer; font-size: var(--tl-text-sm, 12px); font-weight: 650; }
1217
1317
  .codex-provider-advanced[open] summary { margin-bottom: 14px; color: inherit; }
1218
1318
 
1219
1319
  .codex-provider-disclosure {
@@ -1224,7 +1324,7 @@
1224
1324
  border-radius: 9px;
1225
1325
  background: rgba(217, 189, 120, 0.09);
1226
1326
  color: #d8c892;
1227
- font-size: 11px;
1327
+ font-size: var(--tl-text-xs, 11px);
1228
1328
  line-height: 1.45;
1229
1329
  }
1230
1330
 
@@ -1243,8 +1343,8 @@
1243
1343
  }
1244
1344
 
1245
1345
  .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; }
1346
+ .codex-provider-test-copy strong { color: var(--provider-text); font-size: var(--tl-text-sm, 12px); font-weight: 750; letter-spacing: 0.01em; }
1347
+ .codex-provider-test-copy > span { color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
1248
1348
 
1249
1349
  .codex-provider-test-controls {
1250
1350
  display: grid;
@@ -1257,7 +1357,7 @@
1257
1357
  .codex-provider-test-model { display: grid; gap: 6px; min-width: 0; }
1258
1358
  .codex-provider-test-model-label {
1259
1359
  color: var(--provider-muted);
1260
- font-size: 10px;
1360
+ font-size: var(--tl-text-xs, 11px);
1261
1361
  font-weight: 750;
1262
1362
  letter-spacing: 0.08em;
1263
1363
  text-transform: uppercase;
@@ -1277,7 +1377,7 @@
1277
1377
  color: var(--provider-text);
1278
1378
  color-scheme: dark;
1279
1379
  font: inherit;
1280
- font-size: 12px;
1380
+ font-size: var(--tl-text-sm, 12px);
1281
1381
  font-weight: 650;
1282
1382
  line-height: 1;
1283
1383
  outline: none;
@@ -1314,7 +1414,7 @@
1314
1414
  color: #b8edc2;
1315
1415
  box-shadow: 0 5px 15px rgba(6, 19, 10, 0.16);
1316
1416
  font: inherit;
1317
- font-size: 12px;
1417
+ font-size: var(--tl-text-sm, 12px);
1318
1418
  font-weight: 750;
1319
1419
  white-space: nowrap;
1320
1420
  cursor: pointer;
@@ -1330,7 +1430,7 @@
1330
1430
  .codex-provider-test-button:not(:disabled):active { transform: translateY(0); }
1331
1431
  .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
1432
 
1333
- .codex-provider-test-state { min-height: 16px; color: var(--provider-muted); font-size: 11px; line-height: 1.4; }
1433
+ .codex-provider-test-state { min-height: 16px; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
1334
1434
  .codex-provider-test-state:empty { display: none; }
1335
1435
  .codex-provider-test-state[data-tone="success"] { color: var(--provider-accent); }
1336
1436
  .codex-provider-test-state[data-tone="failed"] { color: var(--provider-danger); }
@@ -1344,7 +1444,7 @@
1344
1444
  background: var(--provider-footer-bg);
1345
1445
  }
1346
1446
 
1347
- .codex-provider-operation-status { min-width: 0; color: var(--provider-muted); font-size: 11px; }
1447
+ .codex-provider-operation-status { min-width: 0; color: var(--provider-muted); font-size: var(--tl-text-xs, 11px); }
1348
1448
  .codex-provider-operation-status[data-tone="success"] { color: var(--provider-accent); }
1349
1449
  .codex-provider-operation-status[data-tone="failed"] { color: var(--provider-danger); }
1350
1450
  .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 +1462,7 @@
1362
1462
  background: var(--provider-control-bg);
1363
1463
  color: inherit;
1364
1464
  font: inherit;
1365
- font-size: 12px;
1465
+ font-size: var(--tl-text-sm, 12px);
1366
1466
  font-weight: 700;
1367
1467
  cursor: pointer;
1368
1468
  }
@@ -1449,7 +1549,7 @@
1449
1549
  border-left: 1px solid var(--tl-border);
1450
1550
  background: var(--tl-surface-0);
1451
1551
  color: var(--tl-fg-2);
1452
- font: 13px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
1552
+ font: var(--tl-text-md, 13px)/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
1453
1553
  overflow: hidden;
1454
1554
  }
1455
1555
 
@@ -1624,7 +1724,7 @@
1624
1724
  align-items: center;
1625
1725
  border-bottom: 1px solid var(--tl-accent);
1626
1726
  color: var(--tl-fg-2);
1627
- font-size: 11px;
1727
+ font-size: var(--tl-text-xs, 11px);
1628
1728
  letter-spacing: 0;
1629
1729
  text-transform: uppercase;
1630
1730
  }
@@ -1682,7 +1782,7 @@
1682
1782
  color: var(--tl-fg-1);
1683
1783
  }
1684
1784
 
1685
- #codex-overleaf-panel .codex-vscode-head-actions [data-refresh][data-loading="true"] {
1785
+ #codex-overleaf-panel .codex-diagnostics-menu [data-refresh][data-loading="true"] .codex-glyph {
1686
1786
  animation: codex-refresh-spin var(--tl-m-spin, 800ms) linear infinite;
1687
1787
  color: var(--tl-fg-1);
1688
1788
  }
@@ -1723,7 +1823,6 @@
1723
1823
  #codex-overleaf-panel .codex-diagnostics-checks {
1724
1824
  display: grid;
1725
1825
  gap: 0;
1726
- margin-top: 4px;
1727
1826
  }
1728
1827
 
1729
1828
  #codex-overleaf-panel .codex-diagnostics-check {
@@ -1737,7 +1836,7 @@
1737
1836
 
1738
1837
  #codex-overleaf-panel .codex-diagnostics-check > summary {
1739
1838
  display: grid;
1740
- grid-template-columns: 16px minmax(0, 1fr) 10px;
1839
+ grid-template-columns: 8px minmax(0, 1fr) 10px;
1741
1840
  gap: 8px;
1742
1841
  align-items: center;
1743
1842
  padding: 10px 0;
@@ -1762,37 +1861,39 @@
1762
1861
  transform: rotate(45deg);
1763
1862
  }
1764
1863
 
1765
- #codex-overleaf-panel .codex-diagnostics-check-text {
1766
- margin: 0 0 10px 24px;
1864
+ #codex-overleaf-panel .codex-diagnostics-check-dot {
1865
+ width: 8px;
1866
+ height: 8px;
1867
+ border-radius: 50%;
1868
+ background: var(--tl-fg-4);
1767
1869
  }
1768
1870
 
1769
- #codex-overleaf-panel .codex-diagnostics-check-glyph::before {
1770
- content: "·";
1771
- color: var(--tl-fg-4);
1772
- font-weight: 700;
1773
- }
1871
+ #codex-overleaf-panel .codex-diagnostics-check[data-status="ok"] .codex-diagnostics-check-dot { background: var(--tl-ok); }
1872
+ #codex-overleaf-panel .codex-diagnostics-check[data-status="warn"] .codex-diagnostics-check-dot { background: var(--tl-review); }
1873
+ #codex-overleaf-panel .codex-diagnostics-check[data-status="fail"] .codex-diagnostics-check-dot { background: var(--tl-fail); }
1774
1874
 
1775
- #codex-overleaf-panel .codex-diagnostics-check[data-status="ok"] .codex-diagnostics-check-glyph::before { content: "✓"; color: var(--tl-ok); }
1776
- #codex-overleaf-panel .codex-diagnostics-check[data-status="warn"] .codex-diagnostics-check-glyph::before { content: "!"; color: var(--tl-review); }
1777
- #codex-overleaf-panel .codex-diagnostics-check[data-status="fail"] .codex-diagnostics-check-glyph::before { content: "✕"; color: var(--tl-fail); }
1875
+ #codex-overleaf-panel .codex-diagnostics-check-text {
1876
+ display: grid;
1877
+ gap: 6px;
1878
+ margin: 0 0 10px 16px;
1879
+ }
1778
1880
 
1779
1881
  #codex-overleaf-panel .codex-diagnostics-check-title {
1780
1882
  color: var(--tl-fg-1);
1781
- font-size: 12px;
1782
- font-weight: 600;
1883
+ font-size: var(--tl-text-sm, 12px);
1884
+ font-weight: 500;
1783
1885
  }
1784
1886
 
1785
1887
  #codex-overleaf-panel .codex-diagnostics-check-summary {
1786
- color: var(--tl-fg-3);
1787
- font-size: 11px;
1788
- line-height: 1.4;
1888
+ color: var(--tl-fg-2);
1889
+ font-size: var(--tl-text-sm, 12px);
1890
+ line-height: 1.5;
1789
1891
  }
1790
1892
 
1791
1893
  #codex-overleaf-panel .codex-diagnostics-check-next {
1792
- color: var(--tl-accent);
1793
- font-size: 11px;
1794
- line-height: 1.4;
1795
- margin-top: 2px;
1894
+ color: var(--tl-fg-2);
1895
+ font-size: var(--tl-text-sm, 12px);
1896
+ line-height: 1.5;
1796
1897
  }
1797
1898
 
1798
1899
  #codex-overleaf-panel .codex-toast-region {
@@ -1837,11 +1938,22 @@
1837
1938
 
1838
1939
  #codex-overleaf-panel .codex-toast-body {
1839
1940
  color: var(--tl-fg-2);
1840
- font-size: 12px;
1941
+ font-size: var(--tl-text-sm, 12px);
1841
1942
  line-height: 1.45;
1842
1943
  word-break: break-word;
1843
1944
  }
1844
1945
 
1946
+ #codex-overleaf-panel .codex-toast-title {
1947
+ color: var(--tl-fg-1);
1948
+ font-weight: 600;
1949
+ margin-bottom: 3px;
1950
+ }
1951
+
1952
+ #codex-overleaf-panel .codex-toast-group { margin-top: 5px; }
1953
+ #codex-overleaf-panel .codex-toast-group summary { cursor: pointer; color: var(--tl-fg-3); }
1954
+ #codex-overleaf-panel .codex-toast-group ul { margin: 5px 0 0; padding-left: 18px; }
1955
+ #codex-overleaf-panel .codex-toast-group code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--tl-text-xs, 11px); }
1956
+
1845
1957
  #codex-overleaf-panel .codex-toast-close {
1846
1958
  width: 22px;
1847
1959
  height: 22px;
@@ -1874,7 +1986,7 @@
1874
1986
  border: 1px solid var(--tl-border-strong);
1875
1987
  border-radius: 6px;
1876
1988
  background: var(--tl-surface-2);
1877
- box-shadow: 0 8px 22px rgba(0, 0, 0, 0.38);
1989
+ box-shadow: var(--tl-shadow-pop);
1878
1990
  padding: 6px;
1879
1991
  }
1880
1992
 
@@ -1886,7 +1998,7 @@
1886
1998
  padding: 6px 8px 8px;
1887
1999
  border-bottom: 1px solid var(--tl-border-strong);
1888
2000
  color: var(--tl-fg-3);
1889
- font-size: 11px;
2001
+ font-size: var(--tl-text-xs, 11px);
1890
2002
  line-height: 1.35;
1891
2003
  }
1892
2004
 
@@ -1905,17 +2017,20 @@
1905
2017
 
1906
2018
  #codex-overleaf-panel .codex-diagnostics-menu button span {
1907
2019
  color: var(--tl-fg-1);
1908
- font-size: 12px;
2020
+ font-size: var(--tl-text-sm, 12px);
1909
2021
  line-height: 1.3;
1910
2022
  }
1911
2023
 
1912
2024
  #codex-overleaf-panel .codex-diagnostics-menu button small {
1913
2025
  margin-top: 2px;
1914
2026
  color: var(--tl-fg-3);
1915
- font-size: 11px;
2027
+ font-size: var(--tl-text-xs, 11px);
1916
2028
  line-height: 1.3;
1917
2029
  }
1918
2030
 
2031
+ #codex-overleaf-panel .codex-diagnostics-refresh-title { display: inline-flex; align-items: center; gap: 6px; }
2032
+ #codex-overleaf-panel .codex-diagnostics-refresh-title .codex-glyph { width: 14px; height: 14px; flex: 0 0 14px; }
2033
+
1919
2034
  #codex-overleaf-panel .codex-diagnostics-result {
1920
2035
  position: fixed;
1921
2036
  display: flex;
@@ -1938,7 +2053,7 @@
1938
2053
  border: 1px solid var(--tl-border-strong);
1939
2054
  border-radius: 8px;
1940
2055
  background: var(--tl-surface-1);
1941
- box-shadow: 0 14px 34px rgba(0, 0, 0, 0.48);
2056
+ box-shadow: var(--tl-shadow-pop);
1942
2057
  }
1943
2058
 
1944
2059
  #codex-overleaf-panel .codex-diagnostics-menu::backdrop,
@@ -1955,14 +2070,6 @@
1955
2070
  border-color: var(--tl-border-strong);
1956
2071
  }
1957
2072
 
1958
- #codex-overleaf-panel .codex-diagnostics-result[data-status="warning"] {
1959
- border-color: var(--tl-review);
1960
- }
1961
-
1962
- #codex-overleaf-panel .codex-diagnostics-result[data-status="failed"] {
1963
- border-color: var(--tl-fail);
1964
- }
1965
-
1966
2073
  /* Only embedded settings replace the session view. The modal workbench keeps
1967
2074
  the complete sidebar behind its backdrop, without reflowing the conversation. */
1968
2075
  #codex-overleaf-panel:not([data-settings-workbench="true"])[data-view="settings"] .codex-vscode-head,
@@ -2016,7 +2123,7 @@
2016
2123
 
2017
2124
  #codex-overleaf-panel .codex-custom-instructions-title {
2018
2125
  color: var(--tl-fg-1);
2019
- font-size: 14px;
2126
+ font-size: var(--tl-text-base, 14px);
2020
2127
  font-weight: 650;
2021
2128
  line-height: 1.35;
2022
2129
  }
@@ -2024,7 +2131,7 @@
2024
2131
  #codex-overleaf-panel .codex-custom-instructions-subtitle {
2025
2132
  margin-top: 3px;
2026
2133
  color: var(--tl-fg-3);
2027
- font-size: 12px;
2134
+ font-size: var(--tl-text-sm, 12px);
2028
2135
  line-height: 1.4;
2029
2136
  }
2030
2137
 
@@ -2049,7 +2156,7 @@
2049
2156
  color: var(--tl-fg-1);
2050
2157
  padding: 9px;
2051
2158
  outline: none;
2052
- font-size: 12px;
2159
+ font-size: var(--tl-text-sm, 12px);
2053
2160
  line-height: 1.45;
2054
2161
  }
2055
2162
 
@@ -2074,7 +2181,7 @@
2074
2181
 
2075
2182
  #codex-overleaf-panel .codex-project-settings-scope-title {
2076
2183
  color: var(--tl-fg-1);
2077
- font-size: 13px;
2184
+ font-size: var(--tl-text-md, 13px);
2078
2185
  font-weight: 650;
2079
2186
  line-height: 1.35;
2080
2187
  }
@@ -2089,7 +2196,7 @@
2089
2196
  background: var(--tl-surface-0);
2090
2197
  color: var(--tl-fg-1);
2091
2198
  padding: 8px;
2092
- font-size: 12px;
2199
+ font-size: var(--tl-text-sm, 12px);
2093
2200
  line-height: 1.4;
2094
2201
  }
2095
2202
 
@@ -2109,7 +2216,7 @@
2109
2216
  gap: 8px;
2110
2217
  align-items: center;
2111
2218
  color: var(--tl-fg-1);
2112
- font-size: 12px;
2219
+ font-size: var(--tl-text-sm, 12px);
2113
2220
  }
2114
2221
 
2115
2222
  /* Skill name fills the row; actions and the enable switch stay on the right. */
@@ -2140,7 +2247,7 @@
2140
2247
  #codex-overleaf-panel .codex-project-settings-empty,
2141
2248
  #codex-overleaf-panel .codex-project-settings-status {
2142
2249
  color: var(--tl-fg-3);
2143
- font-size: 12px;
2250
+ font-size: var(--tl-text-sm, 12px);
2144
2251
  line-height: 1.35;
2145
2252
  }
2146
2253
 
@@ -2210,7 +2317,7 @@
2210
2317
  justify-content: space-between;
2211
2318
  gap: 10px;
2212
2319
  color: var(--tl-fg-1);
2213
- font-size: 12px;
2320
+ font-size: var(--tl-text-sm, 12px);
2214
2321
  line-height: 1.35;
2215
2322
  cursor: pointer;
2216
2323
  }
@@ -2232,7 +2339,7 @@
2232
2339
  color: var(--tl-fg-1);
2233
2340
  padding: 9px 10px;
2234
2341
  text-align: left;
2235
- font-size: 12px;
2342
+ font-size: var(--tl-text-sm, 12px);
2236
2343
  line-height: 1.35;
2237
2344
  }
2238
2345
 
@@ -2248,13 +2355,13 @@
2248
2355
  #codex-overleaf-panel .codex-skills-entry-summary {
2249
2356
  flex: 0 0 auto;
2250
2357
  color: var(--tl-fg-3);
2251
- font-size: 11px;
2358
+ font-size: var(--tl-text-xs, 11px);
2252
2359
  }
2253
2360
 
2254
2361
  #codex-overleaf-panel .codex-skills-entry-chevron {
2255
2362
  flex: 0 0 auto;
2256
2363
  color: var(--tl-fg-3);
2257
- font-size: 14px;
2364
+ font-size: var(--tl-text-base, 14px);
2258
2365
  }
2259
2366
 
2260
2367
  /* ---------------------------------------------------------------------------
@@ -2300,7 +2407,7 @@
2300
2407
  align-items: center;
2301
2408
  gap: 3px;
2302
2409
  color: var(--tl-ok);
2303
- font-size: 10.5px;
2410
+ font-size: var(--tl-text-xs, 11px);
2304
2411
  white-space: nowrap;
2305
2412
  animation: tl-fade-in 120ms ease;
2306
2413
  }
@@ -2316,7 +2423,7 @@
2316
2423
  border: 1px solid var(--tl-border-strong);
2317
2424
  border-radius: var(--tl-r-sm);
2318
2425
  padding: 6px 9px;
2319
- font-size: 11px;
2426
+ font-size: var(--tl-text-xs, 11px);
2320
2427
  line-height: 1.45;
2321
2428
  }
2322
2429
 
@@ -2335,7 +2442,7 @@
2335
2442
  display: block;
2336
2443
  margin-top: 2px;
2337
2444
  color: var(--tl-fg-3);
2338
- font-size: 10.5px;
2445
+ font-size: var(--tl-text-xs, 11px);
2339
2446
  font-weight: 400;
2340
2447
  line-height: 1.4;
2341
2448
  }
@@ -2350,21 +2457,21 @@
2350
2457
  #codex-overleaf-panel .run-history-truncated {
2351
2458
  padding: 4px 10px;
2352
2459
  color: var(--tl-fg-4);
2353
- font-size: 10.5px;
2460
+ font-size: var(--tl-text-xs, 11px);
2354
2461
  text-align: center;
2355
2462
  }
2356
2463
 
2357
2464
  #codex-overleaf-panel .codex-diff-hunk-status + [data-diff-hunk-revert] {
2358
2465
  margin-left: 6px;
2359
2466
  color: var(--tl-fg-3);
2360
- font-size: 10.5px;
2467
+ font-size: var(--tl-text-xs, 11px);
2361
2468
  text-decoration: underline;
2362
2469
  }
2363
2470
 
2364
2471
  #codex-overleaf-panel .codex-set-eyebrow {
2365
2472
  text-transform: uppercase;
2366
2473
  letter-spacing: 0.06em;
2367
- font-size: 11px;
2474
+ font-size: var(--tl-text-xs, 11px);
2368
2475
  font-weight: 600;
2369
2476
  color: var(--tl-fg-4);
2370
2477
  }
@@ -2386,7 +2493,7 @@
2386
2493
  gap: 8px;
2387
2494
  padding: 10px 12px;
2388
2495
  color: var(--tl-fg-1);
2389
- font-size: 12px;
2496
+ font-size: var(--tl-text-sm, 12px);
2390
2497
  font-weight: 600;
2391
2498
  line-height: 1.35;
2392
2499
  cursor: pointer;
@@ -2403,7 +2510,7 @@
2403
2510
  content: "›";
2404
2511
  margin-left: auto;
2405
2512
  color: var(--tl-fg-4);
2406
- font-size: 15px;
2513
+ font-size: var(--tl-text-lg, 15px);
2407
2514
  line-height: 1;
2408
2515
  transition: transform 120ms ease;
2409
2516
  }
@@ -2438,7 +2545,7 @@
2438
2545
 
2439
2546
  #codex-overleaf-panel .codex-set-row-label {
2440
2547
  color: var(--tl-fg-2);
2441
- font-size: 11px;
2548
+ font-size: var(--tl-text-xs, 11px);
2442
2549
  font-weight: 600;
2443
2550
  letter-spacing: 0.01em;
2444
2551
  }
@@ -2446,7 +2553,7 @@
2446
2553
  #codex-overleaf-panel .codex-set-row-help {
2447
2554
  margin: 0;
2448
2555
  color: var(--tl-fg-3);
2449
- font-size: 11px;
2556
+ font-size: var(--tl-text-xs, 11px);
2450
2557
  line-height: 1.45;
2451
2558
  }
2452
2559
 
@@ -2463,7 +2570,7 @@
2463
2570
  background: var(--tl-surface-2);
2464
2571
  color: var(--tl-fg-1);
2465
2572
  padding: 3px 6px;
2466
- font-size: 12px;
2573
+ font-size: var(--tl-text-sm, 12px);
2467
2574
  cursor: pointer;
2468
2575
  }
2469
2576
 
@@ -2493,7 +2600,7 @@
2493
2600
  background: var(--tl-surface-2);
2494
2601
  color: var(--tl-fg-2);
2495
2602
  padding: 3px 10px;
2496
- font-size: 11px;
2603
+ font-size: var(--tl-text-xs, 11px);
2497
2604
  font-weight: 500;
2498
2605
  line-height: 1.4;
2499
2606
  cursor: pointer;
@@ -2559,16 +2666,47 @@
2559
2666
  }
2560
2667
 
2561
2668
  #codex-overleaf-panel .codex-diagnostics-result-title {
2669
+ display: flex;
2670
+ align-items: flex-start;
2671
+ gap: 8px;
2562
2672
  color: var(--tl-fg-1);
2563
- font-size: 14px;
2673
+ font-size: var(--tl-text-base, 14px);
2564
2674
  font-weight: 650;
2565
2675
  line-height: 1.35;
2566
2676
  }
2567
2677
 
2678
+ #codex-overleaf-panel .codex-diagnostics-status-dot {
2679
+ flex: 0 0 8px;
2680
+ width: 8px;
2681
+ height: 8px;
2682
+ margin-top: calc((1.35em - 8px) / 2);
2683
+ border-radius: 50%;
2684
+ background: var(--tl-fg-4);
2685
+ }
2686
+
2687
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="completed"] .codex-diagnostics-status-dot { background: var(--tl-ok); }
2688
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="warning"] .codex-diagnostics-status-dot { background: var(--tl-review); }
2689
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="failed"] .codex-diagnostics-status-dot { background: var(--tl-fail); }
2690
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="running"] .codex-diagnostics-status-dot { animation: codex-diagnostics-pulse 1.2s ease-in-out infinite; }
2691
+
2692
+ @keyframes codex-diagnostics-pulse {
2693
+ 50% {
2694
+ opacity: 0.3;
2695
+ }
2696
+ }
2697
+
2698
+ @media (prefers-reduced-motion: reduce) {
2699
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="running"] .codex-diagnostics-status-dot {
2700
+ animation: none;
2701
+ }
2702
+ }
2703
+
2568
2704
  #codex-overleaf-panel .codex-diagnostics-result-subtitle {
2705
+ text-wrap: pretty;
2706
+ margin-left: 16px;
2569
2707
  margin-top: 2px;
2570
2708
  color: var(--tl-fg-3);
2571
- font-size: 11px;
2709
+ font-size: var(--tl-text-xs, 11px);
2572
2710
  line-height: 1.35;
2573
2711
  }
2574
2712
 
@@ -2603,69 +2741,127 @@
2603
2741
  }
2604
2742
 
2605
2743
  #codex-overleaf-panel .codex-diagnostics-result-body {
2606
- padding: 10px 12px 12px;
2744
+ display: grid;
2745
+ gap: 12px;
2746
+ padding: 12px;
2607
2747
  color: var(--tl-fg-2);
2608
- font-size: 12px;
2609
- line-height: 1.45;
2748
+ font-size: var(--tl-text-sm, 12px);
2749
+ line-height: 1.5;
2750
+ text-wrap: pretty;
2610
2751
  }
2611
2752
 
2612
- #codex-overleaf-panel .codex-diagnostics-result-body p {
2613
- margin: 0 0 8px;
2753
+ #codex-overleaf-panel .codex-diagnostics-result-body > * {
2754
+ margin: 0;
2614
2755
  }
2615
2756
 
2616
- #codex-overleaf-panel .codex-diagnostics-result-body ul {
2617
- margin: 8px 0;
2618
- padding-left: 18px;
2757
+ #codex-overleaf-panel .codex-diagnostics-result[data-status="running"] .codex-diagnostics-summary { color: var(--tl-fg-3); }
2758
+
2759
+ #codex-overleaf-panel .codex-diagnostics-facts {
2760
+ display: grid;
2761
+ grid-template-columns: fit-content(40%) minmax(0, 1fr);
2762
+ column-gap: 16px;
2763
+ row-gap: 6px;
2619
2764
  }
2620
2765
 
2621
- #codex-overleaf-panel .codex-diagnostics-result-body li {
2622
- margin: 4px 0;
2766
+ #codex-overleaf-panel .codex-diagnostics-facts dt {
2767
+ color: var(--tl-fg-3);
2768
+ overflow-wrap: normal;
2769
+ }
2770
+
2771
+ #codex-overleaf-panel .codex-diagnostics-facts dd {
2772
+ margin: 0;
2773
+ min-width: 0;
2774
+ color: var(--tl-fg-1);
2775
+ }
2776
+
2777
+ #codex-overleaf-panel .codex-diagnostics-facts dd[data-tone="warn"] { color: var(--tl-review); }
2778
+ #codex-overleaf-panel .codex-diagnostics-facts dd[data-tone="fail"] { color: var(--tl-fail); }
2779
+
2780
+ #codex-overleaf-panel .codex-diagnostics-notes {
2781
+ display: grid;
2782
+ gap: 4px;
2783
+ padding: 0;
2784
+ list-style: none;
2785
+ }
2786
+
2787
+ #codex-overleaf-panel .codex-diagnostics-notes li {
2788
+ position: relative;
2789
+ padding-left: 12px;
2790
+ }
2791
+
2792
+ #codex-overleaf-panel .codex-diagnostics-notes li::before {
2793
+ content: "";
2794
+ position: absolute;
2795
+ left: 2px;
2796
+ top: calc(0.75em - 2px);
2797
+ width: 4px;
2798
+ height: 4px;
2799
+ border-radius: 50%;
2800
+ background: var(--tl-fg-4);
2623
2801
  }
2624
2802
 
2625
2803
  #codex-overleaf-panel .codex-diagnostics-next-step {
2626
- color: var(--tl-accent);
2804
+ color: var(--tl-fg-2);
2805
+ }
2806
+
2807
+ #codex-overleaf-panel .codex-diagnostics-next-label {
2808
+ color: var(--tl-fg-1);
2809
+ font-weight: 600;
2627
2810
  }
2628
2811
 
2629
2812
  #codex-overleaf-panel .codex-install-command {
2630
- margin-top: 10px;
2631
- padding: 9px;
2632
- border: 1px solid var(--tl-border-strong);
2633
- border-radius: 7px;
2634
- background: var(--tl-surface-0);
2813
+ display: grid;
2814
+ gap: 6px;
2635
2815
  }
2636
2816
 
2637
- #codex-overleaf-panel .codex-diagnostics-result[data-status="failed"] .codex-install-command {
2638
- border-color: var(--tl-review);
2817
+ #codex-overleaf-panel .codex-install-command-head {
2818
+ display: flex;
2819
+ align-items: center;
2820
+ justify-content: space-between;
2821
+ gap: 8px;
2639
2822
  }
2640
2823
 
2641
2824
  #codex-overleaf-panel .codex-install-command-label {
2642
- margin-bottom: 6px;
2643
2825
  color: var(--tl-fg-3);
2644
- font-size: 11px;
2826
+ font-size: var(--tl-text-xs, 11px);
2827
+ }
2828
+
2829
+ #codex-overleaf-panel .codex-install-command button {
2830
+ flex: 0 0 auto;
2831
+ width: auto;
2832
+ height: 22px;
2833
+ margin: 0;
2834
+ padding: 0 8px;
2835
+ border: 1px solid var(--tl-border-strong);
2836
+ border-radius: 5px;
2837
+ background: transparent;
2838
+ color: var(--tl-fg-1);
2839
+ font-size: var(--tl-text-xs, 11px);
2840
+ line-height: 20px;
2841
+ cursor: pointer;
2842
+ }
2843
+
2844
+ #codex-overleaf-panel .codex-install-command button:hover {
2845
+ background: var(--tl-hover);
2846
+ }
2847
+
2848
+ #codex-overleaf-panel .codex-install-command button:focus-visible {
2849
+ outline: 2px solid var(--tl-accent);
2850
+ outline-offset: 2px;
2645
2851
  }
2646
2852
 
2647
2853
  #codex-overleaf-panel .codex-install-command code {
2648
2854
  display: block;
2649
2855
  overflow: auto;
2650
2856
  max-height: 90px;
2651
- padding: 7px;
2857
+ padding: 8px 10px;
2652
2858
  border-radius: 6px;
2653
2859
  background: var(--tl-surface-2);
2654
- color: var(--tl-accent);
2860
+ color: var(--tl-fg-1);
2655
2861
  white-space: pre-wrap;
2656
- word-break: break-word;
2657
- font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2658
- }
2659
-
2660
- #codex-overleaf-panel .codex-install-command button {
2661
- width: 100%;
2662
- margin-top: 8px;
2663
- border: 1px solid var(--tl-ok);
2664
- border-radius: 6px;
2665
- background: var(--tl-ok-wash);
2666
- color: var(--tl-ok);
2667
- padding: 6px 8px;
2668
- font-size: 12px;
2862
+ word-break: normal;
2863
+ overflow-wrap: anywhere;
2864
+ font: var(--tl-text-xs, 11px)/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2669
2865
  }
2670
2866
 
2671
2867
  #codex-overleaf-panel .codex-diagnostics-technical {
@@ -2678,9 +2874,39 @@
2678
2874
  }
2679
2875
 
2680
2876
  #codex-overleaf-panel .codex-diagnostics-technical summary {
2877
+ display: inline-flex;
2878
+ align-items: center;
2879
+ gap: 6px;
2681
2880
  cursor: pointer;
2881
+ list-style: none;
2682
2882
  color: var(--tl-fg-3);
2683
- font-size: 11px;
2883
+ font-size: var(--tl-text-xs, 11px);
2884
+ }
2885
+
2886
+ #codex-overleaf-panel .codex-diagnostics-technical summary::-webkit-details-marker {
2887
+ display: none;
2888
+ }
2889
+
2890
+ #codex-overleaf-panel .codex-diagnostics-technical summary::after {
2891
+ content: "";
2892
+ width: 5px;
2893
+ height: 5px;
2894
+ border-right: 1px solid currentColor;
2895
+ border-bottom: 1px solid currentColor;
2896
+ transform: rotate(-45deg);
2897
+ }
2898
+
2899
+ #codex-overleaf-panel .codex-diagnostics-technical[open] summary::after {
2900
+ transform: rotate(45deg);
2901
+ }
2902
+
2903
+ #codex-overleaf-panel .codex-diagnostics-technical summary:hover {
2904
+ color: var(--tl-fg-1);
2905
+ }
2906
+
2907
+ #codex-overleaf-panel .codex-diagnostics-check .codex-diagnostics-technical {
2908
+ border-top: 0;
2909
+ padding: 0;
2684
2910
  }
2685
2911
 
2686
2912
  #codex-overleaf-panel .codex-diagnostics-technical pre {
@@ -2690,7 +2916,7 @@
2690
2916
  color: var(--tl-fg-2);
2691
2917
  white-space: pre-wrap;
2692
2918
  word-break: break-word;
2693
- font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2919
+ font: var(--tl-text-xs, 11px)/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2694
2920
  }
2695
2921
 
2696
2922
  #codex-overleaf-panel .codex-plugin-confirm {
@@ -2750,7 +2976,7 @@
2750
2976
 
2751
2977
  #codex-overleaf-panel .codex-plugin-confirm-brand {
2752
2978
  color: var(--tl-accent);
2753
- font-size: 11px;
2979
+ font-size: var(--tl-text-xs, 11px);
2754
2980
  font-weight: 650;
2755
2981
  line-height: 1.2;
2756
2982
  }
@@ -2758,7 +2984,7 @@
2758
2984
  #codex-overleaf-panel .codex-plugin-confirm-title {
2759
2985
  margin-top: 2px;
2760
2986
  color: var(--tl-fg-1);
2761
- font-size: 14px;
2987
+ font-size: var(--tl-text-base, 14px);
2762
2988
  font-weight: 650;
2763
2989
  line-height: 1.35;
2764
2990
  }
@@ -2770,12 +2996,27 @@
2770
2996
  overflow: auto;
2771
2997
  padding: 12px 14px;
2772
2998
  color: var(--tl-fg-1);
2773
- font-size: 12px;
2999
+ font-size: var(--tl-text-sm, 12px);
2774
3000
  line-height: 1.5;
2775
3001
  white-space: pre-wrap;
2776
3002
  word-break: break-word;
2777
3003
  }
2778
3004
 
3005
+ #codex-overleaf-panel .codex-native-guidance-command {
3006
+ display: block;
3007
+ margin-top: 12px;
3008
+ padding: 8px 10px;
3009
+ border: 1px solid var(--tl-border);
3010
+ border-radius: 6px;
3011
+ background: var(--tl-surface-2);
3012
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
3013
+ white-space: pre-wrap;
3014
+ word-break: break-all;
3015
+ }
3016
+
3017
+ #codex-overleaf-panel .codex-native-guidance-link { display: block; margin-top: 12px; color: var(--tl-accent); text-decoration: none; }
3018
+ #codex-overleaf-panel .codex-native-guidance-link::after { content: " ↗"; }
3019
+
2779
3020
  #codex-overleaf-panel .codex-plugin-confirm-actions {
2780
3021
  display: flex;
2781
3022
  flex: 0 0 auto;
@@ -2846,7 +3087,7 @@
2846
3087
  justify-content: space-between;
2847
3088
  min-height: 24px;
2848
3089
  color: var(--tl-fg-3);
2849
- font-size: 12px;
3090
+ font-size: var(--tl-text-sm, 12px);
2850
3091
  font-weight: 600;
2851
3092
  }
2852
3093
 
@@ -2909,7 +3150,7 @@
2909
3150
 
2910
3151
  #codex-overleaf-panel .codex-session-row time {
2911
3152
  color: var(--tl-fg-3);
2912
- font-size: 12px;
3153
+ font-size: var(--tl-text-sm, 12px);
2913
3154
  white-space: nowrap;
2914
3155
  }
2915
3156
 
@@ -2941,7 +3182,7 @@
2941
3182
  }
2942
3183
 
2943
3184
  #codex-overleaf-panel .codex-session-rename {
2944
- font-size: 12px;
3185
+ font-size: var(--tl-text-sm, 12px);
2945
3186
  }
2946
3187
 
2947
3188
  #codex-overleaf-panel .codex-session-row:hover .codex-session-rename,
@@ -2971,7 +3212,7 @@
2971
3212
  #codex-overleaf-panel .codex-session-empty-hint {
2972
3213
  padding: 6px 6px 8px;
2973
3214
  color: var(--tl-fg-4);
2974
- font-size: 12px;
3215
+ font-size: var(--tl-text-sm, 12px);
2975
3216
  line-height: 1.4;
2976
3217
  }
2977
3218
 
@@ -2993,6 +3234,7 @@
2993
3234
  dark/light/auto). The whole panel reads these tokens so a theme is just a
2994
3235
  value swap — no selector depends on the literals. */
2995
3236
  #codex-overleaf-panel {
3237
+ --tl-shadow-pop: 0 14px 34px rgba(0, 0, 0, 0.48);
2996
3238
  --tl-fg-1: #e4e4e4; /* primary prose / answer / strong labels */
2997
3239
  --tl-fg-2: #b7b7b7; /* body text / activity titles / controls */
2998
3240
  --tl-fg-3: #8a8a8a; /* meta / summaries / captions */
@@ -3004,6 +3246,7 @@
3004
3246
  --tl-border: #2a2a2a; /* dividers / resting control borders */
3005
3247
  --tl-border-strong: #3a3a3a; /* elevated popover / tray borders */
3006
3248
  --tl-accent: #6f9fd8;
3249
+ --tl-action: #8cc79c;
3007
3250
  --tl-accent-wash: rgba(111, 159, 216, 0.14); /* selected/active accent fill */
3008
3251
  --tl-ok-wash: rgba(137, 209, 133, 0.14);
3009
3252
  --tl-fail-wash: rgba(224, 121, 95, 0.16);
@@ -3017,6 +3260,12 @@
3017
3260
  --tl-diff-add-fg: #89d185; /* added-line code text; darkened in light */
3018
3261
  --tl-r-sm: 4px;
3019
3262
  --tl-r-md: 8px;
3263
+ /* Type scale: every panel text size at or below 15px maps to one of these. */
3264
+ --tl-text-xs: 11px;
3265
+ --tl-text-sm: 12px;
3266
+ --tl-text-md: 13px;
3267
+ --tl-text-base: 14px;
3268
+ --tl-text-lg: 15px;
3020
3269
  /* Motion tokens: one cadence for every spinner, fade and settle. */
3021
3270
  --tl-m-fast: 140ms;
3022
3271
  --tl-m-base: 240ms;
@@ -3031,6 +3280,7 @@
3031
3280
  light via prefers-color-scheme). Dark needs no override (it is the baseline
3032
3281
  above). State colors are darkened for AA contrast on light surfaces. */
3033
3282
  #codex-overleaf-panel[data-theme="light"] {
3283
+ --tl-shadow-pop: 0 12px 32px rgba(31, 35, 40, 0.14), 0 2px 6px rgba(31, 35, 40, 0.08);
3034
3284
  --tl-fg-1: #1f2328;
3035
3285
  --tl-fg-2: #3d4651;
3036
3286
  --tl-fg-3: #6a7280;
@@ -3042,14 +3292,15 @@
3042
3292
  --tl-border: #d7dbe0;
3043
3293
  --tl-border-strong: #c4c9d0;
3044
3294
  --tl-accent: #2f6fb0;
3295
+ --tl-action: #2c7044;
3045
3296
  --tl-accent-wash: rgba(47, 111, 176, 0.12);
3046
3297
  --tl-ok-wash: rgba(46, 158, 84, 0.12);
3047
3298
  --tl-fail-wash: rgba(192, 57, 43, 0.10);
3048
- --tl-review-wash: rgba(184, 134, 11, 0.12);
3299
+ --tl-review-wash: rgba(138, 101, 8, 0.12);
3049
3300
  --tl-run: #1f9c86;
3050
3301
  --tl-ok: #2e9e54;
3051
3302
  --tl-fail: #c0392b;
3052
- --tl-review: #b8860b;
3303
+ --tl-review: #8a6508; /* 5.3:1 on white; #b8860b was 3.3:1 */
3053
3304
  --tl-run-wash: rgba(31, 156, 134, 0.12);
3054
3305
  --tl-on-solid: #ffffff; /* semantic fills are dark/saturated in light */
3055
3306
  --tl-diff-add-fg: #1a7f37; /* AA-safe green for 11px mono on light wash */
@@ -3090,14 +3341,14 @@
3090
3341
  display: inline-flex;
3091
3342
  align-items: center;
3092
3343
  gap: 6px;
3093
- border: 1px solid var(--tl-border);
3344
+ border: 1px solid var(--tl-border-strong);
3094
3345
  border-radius: 14px;
3095
- background: var(--tl-surface-2);
3346
+ background: var(--tl-surface-1);
3096
3347
  color: var(--tl-fg-2);
3097
3348
  padding: 4px 10px;
3098
- font-size: 11px;
3349
+ font-size: var(--tl-text-xs, 11px);
3099
3350
  cursor: pointer;
3100
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
3351
+ box-shadow: 0 0 0 10px var(--tl-surface-0), 0 0 18px 14px var(--tl-surface-0);
3101
3352
  animation: tl-fade-in 120ms ease-out;
3102
3353
  }
3103
3354
 
@@ -3145,7 +3396,7 @@
3145
3396
  align-items: center;
3146
3397
  gap: 6px;
3147
3398
  min-height: 24px;
3148
- font-size: 12px;
3399
+ font-size: var(--tl-text-sm, 12px);
3149
3400
  }
3150
3401
 
3151
3402
  #codex-overleaf-panel .codex-thread-title-text {
@@ -3167,7 +3418,7 @@
3167
3418
  background: var(--tl-surface-1);
3168
3419
  color: var(--tl-fg-1);
3169
3420
  padding: 0 6px;
3170
- font-size: 12px;
3421
+ font-size: var(--tl-text-sm, 12px);
3171
3422
  outline: none;
3172
3423
  }
3173
3424
 
@@ -3190,7 +3441,7 @@
3190
3441
  height: 22px;
3191
3442
  border-radius: var(--tl-r-sm);
3192
3443
  color: var(--tl-fg-4);
3193
- font-size: 12px;
3444
+ font-size: var(--tl-text-sm, 12px);
3194
3445
  opacity: 0.8;
3195
3446
  }
3196
3447
 
@@ -3232,7 +3483,7 @@
3232
3483
  #codex-overleaf-panel .codex-thread-title-chevron {
3233
3484
  flex: 0 0 auto;
3234
3485
  color: var(--tl-fg-4);
3235
- font-size: 9px;
3486
+ font-size: var(--tl-text-xs, 11px);
3236
3487
  }
3237
3488
 
3238
3489
  #codex-overleaf-panel .codex-session-menu {
@@ -3258,15 +3509,29 @@
3258
3509
  }
3259
3510
 
3260
3511
  #codex-overleaf-panel .codex-session-menu-item {
3512
+ position: relative;
3261
3513
  display: flex;
3262
3514
  align-items: center;
3263
3515
  gap: 8px;
3264
3516
  min-width: 0;
3265
3517
  border-radius: var(--tl-r-sm);
3266
- padding: 5px 8px;
3518
+ padding: 0;
3267
3519
  text-align: left;
3268
3520
  }
3269
3521
 
3522
+ #codex-overleaf-panel .codex-session-menu-item:hover { background: var(--tl-hover); }
3523
+ #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; }
3524
+ #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; }
3525
+ #codex-overleaf-panel .codex-session-menu-item-delete .codex-glyph { width: 14px; height: 14px; }
3526
+ /* Icon-only action: its empty label would form a second grid row and lift the glyph. */
3527
+ #codex-overleaf-panel .codex-session-menu-item-delete > span { display: none; }
3528
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-delete { opacity: 1; pointer-events: auto; }
3529
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-time { visibility: hidden; }
3530
+ #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); }
3531
+ #codex-overleaf-panel .codex-session-menu-item-delete:disabled { opacity: 0; cursor: not-allowed; }
3532
+ #codex-overleaf-panel .codex-session-menu-item:is(:hover, :focus-within) .codex-session-menu-item-delete:disabled { opacity: 0.4; }
3533
+ #codex-overleaf-panel :is(.codex-session-menu-switch, .codex-session-menu-item-delete):focus-visible { outline: 2px solid var(--tl-accent); outline-offset: -2px; }
3534
+
3270
3535
  #codex-overleaf-panel .codex-session-menu-item[data-active="true"] {
3271
3536
  background: var(--tl-accent-wash);
3272
3537
  }
@@ -3289,15 +3554,18 @@
3289
3554
  min-width: 0;
3290
3555
  overflow: hidden;
3291
3556
  color: var(--tl-fg-1);
3292
- font-size: 12px;
3557
+ font-size: var(--tl-text-sm, 12px);
3293
3558
  text-overflow: ellipsis;
3294
3559
  white-space: nowrap;
3295
3560
  }
3296
3561
 
3297
3562
  #codex-overleaf-panel .codex-session-menu-item-time {
3298
3563
  flex: 0 0 auto;
3564
+ /* Reserve the delete control's width so a long title never runs under it. */
3565
+ min-width: 22px;
3566
+ text-align: right;
3299
3567
  color: var(--tl-fg-3);
3300
- font-size: 11px;
3568
+ font-size: var(--tl-text-xs, 11px);
3301
3569
  white-space: nowrap;
3302
3570
  }
3303
3571
 
@@ -3307,10 +3575,42 @@
3307
3575
  margin-top: 2px;
3308
3576
  padding: 6px 8px;
3309
3577
  color: var(--tl-accent);
3310
- font-size: 12px;
3578
+ font-size: var(--tl-text-sm, 12px);
3311
3579
  text-align: left;
3312
3580
  }
3313
3581
 
3582
+ /* Header session switcher: the active session title replaces the CODEX label
3583
+ and the always-open Sessions list. Rename/delete/new live in the menu footer. */
3584
+ #codex-overleaf-panel [data-session-slot] { display: none; }
3585
+ #codex-overleaf-panel .codex-head-session { display: flex; flex: 1 1 auto; align-items: center; min-width: 0; margin-right: 6px; }
3586
+ #codex-overleaf-panel[data-view="recent-projects"] .codex-head-session { display: none; }
3587
+ #codex-overleaf-panel:not([data-view="recent-projects"]) .codex-vscode-title { display: none; }
3588
+ #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; }
3589
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-text { flex: 0 1 auto; color: inherit; }
3590
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-chevron { display: inline-flex; color: var(--tl-fg-3); font-size: 0; }
3591
+ #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); }
3592
+ #codex-overleaf-panel .codex-head-session [aria-expanded="true"] .codex-thread-title-chevron .codex-icon { transform: rotate(180deg); }
3593
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-trigger:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
3594
+ #codex-overleaf-panel .codex-head-session .codex-thread-title-input { height: 26px; font-size: var(--tl-text-md, 13px); }
3595
+ #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)); }
3596
+ #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); }
3597
+ #codex-overleaf-panel .codex-session-menu-item-title { font-size: var(--tl-text-md, 13px); }
3598
+ #codex-overleaf-panel .codex-session-menu-footer { display: flex; gap: 2px; margin-top: 2px; padding-top: 4px; border-top: 1px solid var(--tl-border); }
3599
+ #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; }
3600
+ #codex-overleaf-panel .codex-session-menu-footer button span { overflow: hidden; text-overflow: ellipsis; }
3601
+ #codex-overleaf-panel .codex-session-menu-footer button:hover:not(:disabled) { background: var(--tl-hover); color: var(--tl-fg-1); }
3602
+ #codex-overleaf-panel .codex-session-menu-footer .codex-session-menu-new { color: var(--tl-accent); }
3603
+ #codex-overleaf-panel .codex-session-menu-footer .codex-session-menu-delete:hover:not(:disabled) { color: var(--tl-fail); }
3604
+ #codex-overleaf-panel .codex-session-menu-footer button:disabled { opacity: 0.4; }
3605
+ #codex-overleaf-panel .codex-session-menu-footer .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
3606
+
3607
+ /* Health pill: the diagnostics dot gains a short state label. */
3608
+ #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; }
3609
+ #codex-overleaf-panel .codex-vscode-head-actions .codex-diagnostics-trigger:hover { background: var(--tl-hover); color: var(--tl-fg-1); }
3610
+ #codex-overleaf-panel .codex-diagnostics-trigger .codex-diagnostics-dot { width: 6px; height: 6px; box-shadow: none; }
3611
+ #codex-overleaf-panel .codex-diagnostics-trigger[data-health="fail"] { color: var(--tl-fail); }
3612
+ #codex-overleaf-panel .codex-diagnostics-trigger[data-health="warn"] { color: var(--tl-review); }
3613
+
3314
3614
  #codex-overleaf-panel .col-log {
3315
3615
  flex: 1 1 auto;
3316
3616
  min-height: 0;
@@ -3353,7 +3653,7 @@
3353
3653
 
3354
3654
  #codex-overleaf-panel .empty-runs-hint {
3355
3655
  color: var(--tl-fg-4);
3356
- font-size: 11px;
3656
+ font-size: var(--tl-text-xs, 11px);
3357
3657
  }
3358
3658
 
3359
3659
  #codex-overleaf-panel .codex-empty-icon {
@@ -3434,7 +3734,7 @@
3434
3734
  #codex-overleaf-panel .run-guidance-label {
3435
3735
  margin-top: 3px;
3436
3736
  color: var(--tl-fg-3);
3437
- font-size: 10px;
3737
+ font-size: var(--tl-text-xs, 11px);
3438
3738
  line-height: 1.4;
3439
3739
  }
3440
3740
 
@@ -3449,26 +3749,38 @@
3449
3749
  min-height: 22px;
3450
3750
  margin: 6px 0 2px;
3451
3751
  color: var(--tl-fg-3);
3452
- font-size: 11px;
3752
+ font-size: var(--tl-text-xs, 11px);
3453
3753
  }
3454
3754
 
3755
+ #codex-overleaf-panel .run-turn-meta:not(:has(> :not([hidden]))) { display: none; }
3756
+ #codex-overleaf-panel .run-turn-meta:not(:has(> :not([hidden]))) + .run-process { margin-top: 10px; }
3757
+
3455
3758
  #codex-overleaf-panel .run-turn-meta .run-edit-action,
3456
3759
  #codex-overleaf-panel .run-turn-meta .run-sync-action {
3457
3760
  flex: 0 0 30px;
3458
3761
  padding: 0;
3459
3762
  }
3460
3763
 
3764
+ /* Finished-run actions (Copy, Fork) always sit bottom right. */
3461
3765
  #codex-overleaf-panel .run-result-actions {
3462
3766
  display: flex;
3463
- justify-content: flex-start;
3767
+ justify-content: flex-end;
3464
3768
  align-items: center;
3465
3769
  gap: 2px;
3466
- min-height: 30px;
3467
- margin: 10px 0 0;
3770
+ min-height: 26px;
3771
+ margin: 6px 0 0;
3468
3772
  }
3469
3773
 
3470
3774
  #codex-overleaf-panel .run-result-actions[hidden] { display: none; }
3471
3775
 
3776
+ /* One meta row: facts summary on the left, Copy/Fork fixed on the right.
3777
+ Long facts wrap inside their own column instead of pushing the actions to a new line. */
3778
+ #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; }
3779
+ #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; }
3780
+ #codex-overleaf-panel .run-final-answer__facts > .run-result-actions { min-height: 26px; margin: 0; }
3781
+ #codex-overleaf-panel .run-result-actions :is(.run-copy-action, .run-fork-action) { width: 26px; height: 26px; }
3782
+ #codex-overleaf-panel .run-final-answer__facts > .run-final-answer__meta { grid-column: 1 / -1; }
3783
+
3472
3784
  #codex-overleaf-panel .run-copy-action,
3473
3785
  #codex-overleaf-panel .run-fork-action {
3474
3786
  display: inline-grid;
@@ -3509,15 +3821,6 @@
3509
3821
  #codex-overleaf-panel .run-copy-action[hidden],
3510
3822
  #codex-overleaf-panel .run-fork-action[hidden] { display: none; }
3511
3823
 
3512
- #codex-overleaf-panel .run-completed-time {
3513
- margin-left: 5px;
3514
- color: var(--tl-fg-4);
3515
- font-size: 12px;
3516
- font-variant-numeric: tabular-nums;
3517
- line-height: 30px;
3518
- }
3519
-
3520
- #codex-overleaf-panel .run-completed-time[hidden] { display: none; }
3521
3824
 
3522
3825
  #codex-overleaf-panel .run-turn-meta [data-run-accept],
3523
3826
  #codex-overleaf-panel .run-turn-meta [data-run-accept-confirm],
@@ -3525,7 +3828,7 @@
3525
3828
  min-height: 30px;
3526
3829
  border-radius: 4px;
3527
3830
  padding: 3px 11px;
3528
- font-size: 12px;
3831
+ font-size: var(--tl-text-sm, 12px);
3529
3832
  font-weight: 700;
3530
3833
  }
3531
3834
 
@@ -3565,7 +3868,7 @@
3565
3868
  color: var(--tl-on-solid);
3566
3869
  padding: 3px 11px;
3567
3870
  box-shadow: 0 0 0 1px rgba(240, 136, 62, 0.34), 0 4px 12px rgba(0, 0, 0, 0.24);
3568
- font-size: 12px;
3871
+ font-size: var(--tl-text-sm, 12px);
3569
3872
  font-weight: 700;
3570
3873
  }
3571
3874
 
@@ -3580,7 +3883,7 @@
3580
3883
  #codex-overleaf-panel .run-status {
3581
3884
  flex: 0 0 auto;
3582
3885
  color: var(--tl-accent) !important;
3583
- font-size: 11px !important;
3886
+ font-size: var(--tl-text-xs, 11px) !important;
3584
3887
  white-space: nowrap;
3585
3888
  }
3586
3889
 
@@ -3642,7 +3945,7 @@
3642
3945
  justify-content: center;
3643
3946
  width: 14px;
3644
3947
  height: 14px;
3645
- font-size: 11px;
3948
+ font-size: var(--tl-text-xs, 11px);
3646
3949
  line-height: 1;
3647
3950
  background: transparent;
3648
3951
  }
@@ -3707,7 +4010,7 @@
3707
4010
  align-items: center;
3708
4011
  gap: 8px;
3709
4012
  color: var(--tl-fg-3);
3710
- font-size: 11px;
4013
+ font-size: var(--tl-text-xs, 11px);
3711
4014
  }
3712
4015
 
3713
4016
  #codex-overleaf-panel .run-activity[data-kind="checkpoint"] .run-activity-title::before,
@@ -3721,7 +4024,7 @@
3721
4024
  #codex-overleaf-panel .run-activity-title {
3722
4025
  min-width: 0;
3723
4026
  color: var(--tl-fg-2);
3724
- font-size: 12px;
4027
+ font-size: var(--tl-text-sm, 12px);
3725
4028
  line-height: 1.45;
3726
4029
  /* v1.7.7: activity narration must be readable in full — wrap instead of
3727
4030
  the old single-line ellipsis (which hid text at every panel width).
@@ -3778,7 +4081,7 @@
3778
4081
  white-space: pre-wrap;
3779
4082
  overflow-wrap: anywhere;
3780
4083
  word-break: normal;
3781
- font-size: 12px;
4084
+ font-size: var(--tl-text-sm, 12px);
3782
4085
  line-height: 1.48;
3783
4086
  }
3784
4087
 
@@ -3864,28 +4167,38 @@
3864
4167
  color: var(--tl-fg-3);
3865
4168
  }
3866
4169
 
4170
+ /* File-line references render as quiet monospace pills so several in one
4171
+ sentence don't drown the prose; the model's surrounding text is unchanged. */
3867
4172
  #codex-overleaf-panel .codex-line-reference {
4173
+ display: inline;
4174
+ margin: 0 1px;
3868
4175
  border: 0;
3869
- background: transparent;
4176
+ border-radius: 5px;
4177
+ background: var(--tl-accent-wash);
3870
4178
  color: var(--tl-accent);
3871
- padding: 0;
3872
- font: inherit;
4179
+ padding: 1px 5px 2px;
4180
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4181
+ font-size: 0.8em;
4182
+ font-weight: 500;
3873
4183
  line-height: inherit;
3874
- text-decoration: underline;
3875
- text-underline-offset: 2px;
4184
+ text-decoration: none;
4185
+ white-space: nowrap;
4186
+ vertical-align: 0.06em;
4187
+ -webkit-box-decoration-break: clone;
4188
+ box-decoration-break: clone;
3876
4189
  cursor: pointer;
4190
+ transition: background var(--tl-m-fast, 140ms) ease, color var(--tl-m-fast, 140ms) ease;
3877
4191
  }
3878
4192
 
3879
4193
  #codex-overleaf-panel .codex-line-reference:hover,
3880
4194
  #codex-overleaf-panel .codex-line-reference:focus-visible {
3881
- background: transparent;
3882
- color: var(--tl-accent);
4195
+ background: var(--tl-accent);
4196
+ color: var(--tl-on-solid, #ffffff);
3883
4197
  }
3884
4198
 
3885
4199
  #codex-overleaf-panel .codex-line-reference:focus-visible {
3886
- outline: 1px solid var(--tl-accent);
3887
- outline-offset: 2px;
3888
- border-radius: 2px;
4200
+ outline: 2px solid var(--tl-accent);
4201
+ outline-offset: 1px;
3889
4202
  }
3890
4203
 
3891
4204
  #codex-overleaf-panel .codex-line-reference:disabled {
@@ -3917,7 +4230,7 @@
3917
4230
  gap: 6px;
3918
4231
  cursor: pointer;
3919
4232
  color: var(--tl-fg-3);
3920
- font-size: 12px;
4233
+ font-size: var(--tl-text-sm, 12px);
3921
4234
  list-style: none;
3922
4235
  user-select: none;
3923
4236
  background: var(--tl-surface-1);
@@ -3933,7 +4246,7 @@
3933
4246
  #codex-overleaf-panel .run-process summary::before {
3934
4247
  content: "·";
3935
4248
  color: var(--tl-fg-4);
3936
- font-size: 11px;
4249
+ font-size: var(--tl-text-xs, 11px);
3937
4250
  line-height: 1;
3938
4251
  }
3939
4252
 
@@ -4029,7 +4342,7 @@
4029
4342
  min-height: 28px;
4030
4343
  padding: 3px 0;
4031
4344
  background: transparent;
4032
- font-size: 12px;
4345
+ font-size: var(--tl-text-sm, 12px);
4033
4346
  line-height: 1.5;
4034
4347
  flex-wrap: wrap;
4035
4348
  }
@@ -4047,7 +4360,7 @@
4047
4360
  #codex-overleaf-panel .run-presentation-workflow .run-guidance-list:empty { display: none; }
4048
4361
  #codex-overleaf-panel .run-workflow-message {
4049
4362
  color: var(--tl-fg-1);
4050
- font-size: 13px;
4363
+ font-size: var(--tl-text-md, 13px);
4051
4364
  line-height: 1.75;
4052
4365
  margin: 10px 0 13px;
4053
4366
  white-space: normal;
@@ -4062,7 +4375,7 @@
4062
4375
  #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); }
4063
4376
  #codex-overleaf-panel .run-peek[hidden], #codex-overleaf-panel .run-peek-more[hidden] { display: none !important; }
4064
4377
  #codex-overleaf-panel .run-peek-track { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; }
4065
- #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; }
4378
+ #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; }
4066
4379
  #codex-overleaf-panel .run-peek-row.is-entering { animation: tl-peek-in 420ms var(--tl-m-ease); }
4067
4380
  #codex-overleaf-panel .run-peek-glyph { display: inline-grid; place-items: center; flex: none; width: 14px; height: 14px; color: var(--tl-fg-4); }
4068
4381
  #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; }
@@ -4082,10 +4395,10 @@
4082
4395
  #codex-overleaf-panel .run-peek-row[data-kind="thought"] .run-peek-label { color: var(--tl-fg-3); }
4083
4396
  #codex-overleaf-panel .run-peek-lead { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
4084
4397
  #codex-overleaf-panel .run-peek-row[data-kind="thought"] .run-peek-lead { color: var(--tl-fg-4); }
4085
- #codex-overleaf-panel .run-peek-row[data-kind="tool"] .run-peek-lead { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; }
4398
+ #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); }
4086
4399
  #codex-overleaf-panel .run-peek-row[data-kind="setup"][data-state="running"] .run-peek-lead { color: var(--tl-fg-1); }
4087
- #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; }
4088
- #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; }
4400
+ #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; }
4401
+ #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; }
4089
4402
  #codex-overleaf-panel .run-peek-more:hover { color: var(--tl-fg-1); }
4090
4403
  #codex-overleaf-panel .run-peek-more:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
4091
4404
  @keyframes tl-peek-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@@ -4093,7 +4406,7 @@
4093
4406
  /* Start-up block: Send → project read → workspace → Codex → first model response. */
4094
4407
  #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); }
4095
4408
  #codex-overleaf-panel .run-setup[hidden] { display: none !important; }
4096
- #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; }
4409
+ #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; }
4097
4410
  #codex-overleaf-panel .run-setup-summary::-webkit-details-marker { display: none; }
4098
4411
  #codex-overleaf-panel .run-setup-summary:hover { color: var(--tl-fg-1); }
4099
4412
  #codex-overleaf-panel .run-setup-summary:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: -2px; }
@@ -4106,7 +4419,7 @@
4106
4419
  #codex-overleaf-panel .run-setup[data-folded="false"] > .run-setup-summary { display: none; }
4107
4420
  #codex-overleaf-panel .run-setup-steps { display: grid; gap: 1px; padding: 6px 10px 7px; }
4108
4421
  #codex-overleaf-panel .run-setup[data-folded="true"] .run-setup-steps { border-top: 1px solid var(--tl-border); }
4109
- #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); }
4422
+ #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); }
4110
4423
  #codex-overleaf-panel .run-setup-glyph { display: inline-grid; place-items: center; width: 14px; height: 18px; color: var(--tl-ok); }
4111
4424
  #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; }
4112
4425
  #codex-overleaf-panel .run-setup-step[data-state="running"] .run-setup-glyph { color: var(--tl-run); }
@@ -4114,12 +4427,12 @@
4114
4427
  #codex-overleaf-panel .run-setup-step[data-state="running"] .run-setup-text { color: var(--tl-fg-1); }
4115
4428
  #codex-overleaf-panel .run-setup-step[data-state="warning"] .run-setup-glyph { color: var(--tl-review); }
4116
4429
  #codex-overleaf-panel .run-setup-text { min-width: 0; overflow-wrap: anywhere; }
4117
- #codex-overleaf-panel .run-setup-note { display: block; color: var(--tl-review); font-size: 11.5px; }
4118
- #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); }
4119
- #codex-overleaf-panel .run-setup-time { color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
4430
+ #codex-overleaf-panel .run-setup-note { display: block; color: var(--tl-review); font-size: var(--tl-text-xs, 11px); }
4431
+ #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); }
4432
+ #codex-overleaf-panel .run-setup-time { color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
4120
4433
 
4121
4434
  /* Reasoning (CoT) rounds: live = last three lines streaming under a fade; settled = one quiet line. */
4122
- #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; }
4435
+ #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; }
4123
4436
  #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; }
4124
4437
  #codex-overleaf-panel .run-workflow-thought-line::-webkit-details-marker { display: none; }
4125
4438
  #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; }
@@ -4149,7 +4462,7 @@
4149
4462
  padding: 5px 3px;
4150
4463
  border-radius: 6px;
4151
4464
  color: var(--tl-fg-3);
4152
- font-size: 12px;
4465
+ font-size: var(--tl-text-sm, 12px);
4153
4466
  line-height: 1.6;
4154
4467
  list-style: none;
4155
4468
  cursor: pointer;
@@ -4173,7 +4486,7 @@
4173
4486
  -webkit-line-clamp: 2;
4174
4487
  overflow: hidden;
4175
4488
  }
4176
- #codex-overleaf-panel .run-workflow-tool-state { flex: 0 1 auto; margin-left: auto; font-size: 11px; text-align: right; }
4489
+ #codex-overleaf-panel .run-workflow-tool-state { flex: 0 1 auto; margin-left: auto; font-size: var(--tl-text-xs, 11px); text-align: right; }
4177
4490
  #codex-overleaf-panel .run-workflow-chevron {
4178
4491
  width: 5px; height: 5px;
4179
4492
  flex: 0 0 5px;
@@ -4196,7 +4509,7 @@
4196
4509
  margin: 4px 0 9px 26px;
4197
4510
  min-width: 0;
4198
4511
  color: var(--tl-fg-3);
4199
- font-size: 12px;
4512
+ font-size: var(--tl-text-sm, 12px);
4200
4513
  line-height: 1.65;
4201
4514
  }
4202
4515
  #codex-overleaf-panel .run-workflow-tool-body > .run-workflow-tool { margin: 1px 0; }
@@ -4211,15 +4524,15 @@
4211
4524
  color: var(--tl-fg-2);
4212
4525
  white-space: pre-wrap;
4213
4526
  overflow-wrap: anywhere;
4214
- font-size: 11px;
4527
+ font-size: var(--tl-text-xs, 11px);
4215
4528
  line-height: 1.65;
4216
4529
  }
4217
- #codex-overleaf-panel .run-workflow-diff-count { display: inline-flex; gap: 5px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
4530
+ #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; }
4218
4531
  #codex-overleaf-panel .run-workflow-added,
4219
4532
  #codex-overleaf-panel .run-workflow-patch .is-added { color: var(--tl-ok); }
4220
4533
  #codex-overleaf-panel .run-workflow-removed,
4221
4534
  #codex-overleaf-panel .run-workflow-patch .is-removed { color: var(--tl-fail); }
4222
- #codex-overleaf-panel .run-workflow-metrics { color: var(--tl-fg-3); font-size: 11px; }
4535
+ #codex-overleaf-panel .run-workflow-metrics { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
4223
4536
  #codex-overleaf-panel .run-workflow-attention {
4224
4537
  display: block;
4225
4538
  width: 100%;
@@ -4227,13 +4540,13 @@
4227
4540
  border: 0;
4228
4541
  padding: 6px 0;
4229
4542
  color: var(--tl-review);
4230
- font-size: 12px;
4543
+ font-size: var(--tl-text-sm, 12px);
4231
4544
  text-align: left;
4232
4545
  line-height: 1.6;
4233
4546
  overflow-wrap: anywhere;
4234
4547
  cursor: pointer;
4235
4548
  }
4236
- #codex-overleaf-panel .run-workflow-busy { color: var(--tl-fg-3); padding: 5px 0; font-size: 12px; }
4549
+ #codex-overleaf-panel .run-workflow-busy { color: var(--tl-fg-3); padding: 5px 0; font-size: var(--tl-text-sm, 12px); }
4237
4550
  #codex-overleaf-panel .run-presentation-workflow [hidden] { display: none !important; }
4238
4551
  @media (pointer: coarse) {
4239
4552
  #codex-overleaf-panel .run-workflow-tool-summary { min-height: 40px; align-items: center; }
@@ -4250,7 +4563,7 @@
4250
4563
  margin: 0;
4251
4564
  color: var(--tl-fg-1);
4252
4565
  word-break: break-word;
4253
- font-size: 13px;
4566
+ font-size: var(--tl-text-md, 13px);
4254
4567
  line-height: 1.52;
4255
4568
  }
4256
4569
 
@@ -4275,7 +4588,7 @@
4275
4588
  gap: 6px;
4276
4589
  margin: 7px 0 8px;
4277
4590
  color: var(--tl-ok);
4278
- font-size: 12px;
4591
+ font-size: var(--tl-text-sm, 12px);
4279
4592
  }
4280
4593
 
4281
4594
  #codex-overleaf-panel .run-final-answer .run-change-summary__check {
@@ -4351,7 +4664,7 @@
4351
4664
  background: var(--tl-surface-2);
4352
4665
  color: var(--tl-review);
4353
4666
  padding: 1px 4px;
4354
- font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4667
+ font: var(--tl-text-sm, 12px)/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4355
4668
  }
4356
4669
 
4357
4670
  /* Completion facts: one muted summary line; the meta rows sit behind it. */
@@ -4360,11 +4673,12 @@
4360
4673
  display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px;
4361
4674
  box-sizing: border-box; width: calc(100% + 8px); min-height: 0; margin: 0 -4px; padding: 3px 4px;
4362
4675
  border: 0; border-radius: 6px; background: none; color: var(--tl-fg-3);
4363
- font: inherit; font-size: 12px; line-height: 1.5; text-align: left; font-variant-numeric: tabular-nums; cursor: pointer;
4676
+ font: inherit; font-size: var(--tl-text-sm, 12px); line-height: 1.5; text-align: left; font-variant-numeric: tabular-nums; cursor: pointer;
4364
4677
  }
4365
4678
  #codex-overleaf-panel .run-final-answer__facts-sum:hover { background: var(--tl-surface-1); color: var(--tl-fg-2); }
4366
4679
  #codex-overleaf-panel .run-final-answer__facts-sum:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
4367
4680
  #codex-overleaf-panel .run-final-answer__facts-sep { color: var(--tl-fg-4); }
4681
+ #codex-overleaf-panel .run-final-answer__facts-tail { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
4368
4682
  #codex-overleaf-panel .run-final-answer__fact[data-tone="warn"] { color: var(--tl-review); }
4369
4683
  #codex-overleaf-panel .run-final-answer__fact[data-tone="warn"][data-fact="skip"]::before { content: "\26A0\FE0E "; }
4370
4684
  #codex-overleaf-panel .run-final-answer__fact[data-tone="fail"] { color: var(--tl-fail); }
@@ -4382,7 +4696,7 @@
4382
4696
  grid-template-columns: max-content 1fr;
4383
4697
  column-gap: 12px;
4384
4698
  row-gap: 4px;
4385
- font-size: 12px; /* 11.5 -> 12: clears WCAG-AA at the muted color */
4699
+ font-size: var(--tl-text-sm, 12px); /* 11.5 -> 12: clears WCAG-AA at the muted color */
4386
4700
  line-height: 1.5;
4387
4701
  color: var(--tl-fg-3);
4388
4702
  }
@@ -4432,7 +4746,7 @@
4432
4746
  border-radius: 3px;
4433
4747
  color: var(--tl-fg-1);
4434
4748
  font: inherit;
4435
- font-size: 12px;
4749
+ font-size: var(--tl-text-sm, 12px);
4436
4750
  cursor: pointer;
4437
4751
  transition: background 0.12s ease, border-color 0.12s ease;
4438
4752
  }
@@ -4455,7 +4769,7 @@
4455
4769
  border-radius: 8px;
4456
4770
  background: var(--tl-surface-2);
4457
4771
  color: var(--tl-fg-2);
4458
- font-size: 12px;
4772
+ font-size: var(--tl-text-sm, 12px);
4459
4773
  line-height: 1.5;
4460
4774
  overflow-wrap: anywhere;
4461
4775
  }
@@ -4484,21 +4798,28 @@
4484
4798
  }
4485
4799
  }
4486
4800
 
4801
+ /* Quiet scope line above the composer: icon + what Codex will read. Only a
4802
+ condition that needs the user (a failed refresh) changes its tone. */
4487
4803
  #codex-overleaf-panel .codex-probe-line {
4488
4804
  flex: 0 0 auto;
4489
- min-height: 18px;
4490
- border-top: 1px solid var(--tl-border);
4805
+ display: flex;
4806
+ align-items: center;
4807
+ flex-wrap: wrap;
4808
+ gap: 2px 6px;
4809
+ min-height: 16px;
4810
+ padding: 8px 18px 0;
4491
4811
  color: var(--tl-fg-3);
4492
- padding: 4px 12px 0;
4493
- font-size: 11px;
4494
- /* Narrative status text (v1.7.7) — wrap instead of hiding the tail. */
4812
+ font-size: var(--tl-text-xs, 11px);
4813
+ line-height: 16px;
4495
4814
  white-space: normal;
4496
4815
  overflow-wrap: anywhere;
4497
4816
  }
4498
-
4499
- #codex-overleaf-panel .codex-probe-line[data-ok="true"] {
4500
- color: var(--tl-ok);
4501
- }
4817
+ #codex-overleaf-panel .codex-probe-scope { display: inline-flex; align-items: center; gap: 5px; }
4818
+ #codex-overleaf-panel .codex-probe-scope .codex-glyph { flex: 0 0 12px; width: 12px; height: 12px; }
4819
+ #codex-overleaf-panel .codex-probe-sep { opacity: .7; }
4820
+ #codex-overleaf-panel .codex-probe-line [data-tone="warn"],
4821
+ #codex-overleaf-panel .codex-probe-line[data-tone="warn"] { color: var(--tl-review); }
4822
+ #codex-overleaf-panel .codex-probe-line[data-tone="warn"]::before { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
4502
4823
 
4503
4824
  #codex-overleaf-panel .codex-composer {
4504
4825
  position: relative;
@@ -4529,7 +4850,7 @@
4529
4850
  border-radius: var(--tl-r-md);
4530
4851
  padding: 8px 10px;
4531
4852
  color: var(--tl-fg-2);
4532
- font-size: 12px;
4853
+ font-size: var(--tl-text-sm, 12px);
4533
4854
  line-height: 1.4;
4534
4855
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
4535
4856
  animation: tl-fade-in 160ms ease-out;
@@ -4537,40 +4858,47 @@
4537
4858
 
4538
4859
  #codex-overleaf-panel .codex-slash-menu {
4539
4860
  position: absolute;
4540
- left: 8px;
4541
- right: 8px;
4861
+ left: 6px;
4862
+ right: 6px;
4542
4863
  bottom: calc(100% + 6px);
4543
4864
  z-index: 2147483647;
4544
4865
  display: grid;
4545
4866
  grid-auto-rows: max-content;
4546
4867
  align-content: start;
4547
- gap: 2px;
4868
+ gap: 1px;
4548
4869
  box-sizing: border-box;
4549
- max-height: min(360px, var(--codex-slash-menu-space, 50vh));
4870
+ max-height: min(390px, var(--codex-slash-menu-space, 50vh));
4550
4871
  overflow-y: auto;
4551
4872
  overflow-x: hidden;
4552
4873
  overscroll-behavior: contain;
4553
4874
  border: 1px solid var(--tl-border-strong);
4554
- border-radius: 8px;
4875
+ border-radius: 10px;
4555
4876
  background: var(--tl-surface-2);
4556
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
4557
- padding: 5px;
4877
+ box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48), 0 2px 6px rgba(0, 0, 0, 0.24);
4878
+ padding: 4px 4px 0;
4558
4879
  }
4559
4880
 
4881
+ #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); }
4882
+
4560
4883
  #codex-overleaf-panel .codex-slash-menu[hidden] {
4561
4884
  display: none;
4562
4885
  }
4563
4886
 
4887
+ #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; }
4888
+ #codex-overleaf-panel .codex-slash-menu-group:first-child { padding-top: 5px; }
4889
+
4564
4890
  #codex-overleaf-panel .codex-slash-menu button {
4565
4891
  display: grid;
4566
- gap: 2px;
4892
+ grid-template-columns: 26px minmax(0, 1fr) auto;
4893
+ align-items: center;
4894
+ column-gap: 10px;
4567
4895
  width: 100%;
4568
4896
  min-width: 0;
4569
4897
  border: 0;
4570
- border-radius: 6px;
4898
+ border-radius: 7px;
4571
4899
  background: transparent;
4572
4900
  color: var(--tl-fg-1);
4573
- padding: 7px 8px;
4901
+ padding: 5px 8px 5px 5px;
4574
4902
  text-align: left;
4575
4903
  white-space: normal;
4576
4904
  overflow-wrap: anywhere;
@@ -4578,20 +4906,81 @@
4578
4906
 
4579
4907
  #codex-overleaf-panel .codex-slash-menu button[data-active="true"],
4580
4908
  #codex-overleaf-panel .codex-slash-menu button:hover {
4581
- background: var(--tl-accent-wash);
4909
+ background: var(--tl-hover);
4582
4910
  color: var(--tl-fg-1);
4583
4911
  }
4584
4912
 
4913
+ #codex-overleaf-panel .codex-slash-menu-icon {
4914
+ display: grid;
4915
+ place-items: center;
4916
+ width: 26px;
4917
+ height: 26px;
4918
+ border-radius: 7px;
4919
+ background: var(--tl-surface-1);
4920
+ box-shadow: inset 0 0 0 1px var(--tl-border);
4921
+ color: var(--tl-fg-2);
4922
+ transition: background-color var(--tl-m-fast), color var(--tl-m-fast);
4923
+ }
4924
+ #codex-overleaf-panel .codex-slash-menu-icon .codex-glyph { width: 14px; height: 14px; stroke-width: 1.5; }
4925
+ #codex-overleaf-panel .codex-slash-menu button[data-active="true"] .codex-slash-menu-icon {
4926
+ background: var(--tl-accent-wash);
4927
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tl-accent) 32%, transparent);
4928
+ color: var(--tl-accent);
4929
+ }
4930
+ #codex-overleaf-panel .codex-slash-menu-text { display: grid; gap: 1px; min-width: 0; }
4931
+ #codex-overleaf-panel .codex-slash-menu-title { font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.35; }
4932
+ #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; }
4933
+ #codex-overleaf-panel .codex-slash-menu mark { background: none; color: var(--tl-accent); font-weight: 600; }
4934
+ #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; }
4935
+ #codex-overleaf-panel .codex-slash-menu-meta[data-level="high"] { color: var(--tl-review); }
4936
+ #codex-overleaf-panel .codex-slash-menu-meta[data-level="near-limit"] { color: var(--tl-fail); }
4937
+
4938
+ /* The hint row stays visible while the list scrolls; keyboard reveal subtracts its height. */
4939
+ #codex-overleaf-panel .codex-slash-menu-foot {
4940
+ position: sticky;
4941
+ bottom: 0;
4942
+ display: flex;
4943
+ flex-wrap: wrap;
4944
+ gap: 4px 14px;
4945
+ margin: 3px -4px 0;
4946
+ padding: 7px 12px;
4947
+ border-top: 1px solid var(--tl-border);
4948
+ background: var(--tl-surface-2);
4949
+ color: var(--tl-fg-3);
4950
+ font-size: var(--tl-text-xs, 11px);
4951
+ }
4952
+ /* Overleaf's Bootstrap styles every kbd (dark fill, white text, inset shadow); own each property. */
4953
+ #codex-overleaf-panel .codex-slash-menu-foot kbd {
4954
+ display: inline-block;
4955
+ min-width: 18px;
4956
+ margin-right: 4px;
4957
+ padding: 0 5px;
4958
+ border: 1px solid var(--tl-border-strong);
4959
+ border-bottom-width: 2px;
4960
+ border-radius: 4px;
4961
+ background: var(--tl-surface-1);
4962
+ box-shadow: none;
4963
+ color: var(--tl-fg-2);
4964
+ font: 500 var(--tl-text-xs, 11px)/14px ui-monospace, SFMono-Regular, Menlo, monospace;
4965
+ text-align: center;
4966
+ vertical-align: baseline;
4967
+ }
4968
+ #codex-overleaf-panel .codex-slash-menu-foot kbd + kbd { margin-left: -2px; }
4969
+
4585
4970
  #codex-overleaf-panel .codex-slash-menu-note {
4586
- padding: 8px 10px;
4971
+ padding: 8px 10px 12px;
4587
4972
  color: var(--tl-fg-3);
4588
- font-size: 12px;
4973
+ font-size: var(--tl-text-sm, 12px);
4589
4974
  }
4590
4975
 
4591
4976
  #codex-overleaf-panel .codex-slash-menu small {
4977
+ display: -webkit-box;
4978
+ overflow: hidden;
4979
+ -webkit-box-orient: vertical;
4980
+ -webkit-line-clamp: 2;
4592
4981
  color: var(--tl-fg-3);
4593
- font-size: 11px;
4594
- line-height: 1.3;
4982
+ font-size: var(--tl-text-xs, 11px);
4983
+ line-height: 1.35;
4595
4984
  }
4596
4985
 
4597
4986
  #codex-overleaf-panel .codex-composer-skill-context {
@@ -4606,7 +4995,7 @@
4606
4995
  background: var(--tl-surface-1);
4607
4996
  color: var(--tl-fg-1);
4608
4997
  padding: 5px 7px;
4609
- font-size: 12px;
4998
+ font-size: var(--tl-text-sm, 12px);
4610
4999
  line-height: 1.2;
4611
5000
  }
4612
5001
 
@@ -4615,10 +5004,13 @@
4615
5004
  }
4616
5005
 
4617
5006
  #codex-overleaf-panel .codex-composer-skill-icon {
5007
+ display: inline-grid;
4618
5008
  color: var(--tl-accent);
4619
- font-size: 13px;
4620
5009
  }
4621
5010
 
5011
+ #codex-overleaf-panel .codex-composer-skill-icon .codex-glyph { width: 13px; height: 13px; stroke-width: 1.4; }
5012
+ #codex-overleaf-panel .codex-composer-skill-context button .codex-glyph { width: 11px; height: 11px; stroke-width: 1.7; }
5013
+
4622
5014
  #codex-overleaf-panel .codex-composer-skill-context [data-composer-skill-label] {
4623
5015
  overflow: hidden;
4624
5016
  text-overflow: ellipsis;
@@ -4635,7 +5027,7 @@
4635
5027
  background: transparent;
4636
5028
  color: var(--tl-fg-3);
4637
5029
  padding: 0;
4638
- font-size: 14px;
5030
+ font-size: var(--tl-text-base, 14px);
4639
5031
  line-height: 1;
4640
5032
  }
4641
5033
 
@@ -4696,7 +5088,7 @@
4696
5088
  border-radius: 4px;
4697
5089
  color: var(--tl-fg-3);
4698
5090
  padding: 0 4px;
4699
- font-size: 11px;
5091
+ font-size: var(--tl-text-xs, 11px);
4700
5092
  text-overflow: ellipsis;
4701
5093
  white-space: nowrap;
4702
5094
  transition: background-color 120ms ease, color 120ms ease;
@@ -4730,7 +5122,7 @@
4730
5122
  #codex-overleaf-panel .codex-context-summary-label {
4731
5123
  flex: 0 0 auto;
4732
5124
  color: var(--tl-fg-3);
4733
- font-size: 11px;
5125
+ font-size: var(--tl-text-xs, 11px);
4734
5126
  }
4735
5127
 
4736
5128
  #codex-overleaf-panel .codex-context-summary-chip {
@@ -4745,7 +5137,7 @@
4745
5137
  background: var(--tl-surface-2);
4746
5138
  color: var(--tl-fg-2);
4747
5139
  padding: 2px 3px 2px 7px;
4748
- font-size: 11px;
5140
+ font-size: var(--tl-text-xs, 11px);
4749
5141
  }
4750
5142
 
4751
5143
  #codex-overleaf-panel .codex-context-summary-chip-label {
@@ -4780,7 +5172,7 @@
4780
5172
  background: var(--tl-surface-1);
4781
5173
  color: var(--tl-fg-1);
4782
5174
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.38);
4783
- font-size: 11px;
5175
+ font-size: var(--tl-text-xs, 11px);
4784
5176
  line-height: 1.35;
4785
5177
  overflow-wrap: anywhere;
4786
5178
  pointer-events: none;
@@ -4807,7 +5199,7 @@
4807
5199
  still scrolls from its first card. */
4808
5200
  #codex-overleaf-panel .run-attachments { margin: 0 0 6px; padding: 2px 0 4px; }
4809
5201
  #codex-overleaf-panel .run-attachments > :first-child { margin-left: auto; }
4810
- #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; }
5202
+ #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; }
4811
5203
  #codex-overleaf-panel .run-selection[hidden] { display: none; }
4812
5204
  #codex-overleaf-panel .run-selection[data-run-selection] details { min-width: 0; max-width: 100%; }
4813
5205
  #codex-overleaf-panel .run-selection details[open] { flex: 1 1 auto; }
@@ -4855,6 +5247,10 @@
4855
5247
  gap: 8px;
4856
5248
  padding: 10px 24px 10px 10px;
4857
5249
  }
5250
+ #codex-overleaf-panel .codex-attachment-preview-card[data-loading="true"] {
5251
+ border-style: dashed;
5252
+ background: var(--tl-surface-1);
5253
+ }
4858
5254
  #codex-overleaf-panel .codex-attachment-file-icon {
4859
5255
  display: grid;
4860
5256
  place-items: center;
@@ -4863,7 +5259,7 @@
4863
5259
  border-radius: 5px;
4864
5260
  background: var(--tl-surface-2);
4865
5261
  color: var(--tl-fg-2);
4866
- font-size: 9px;
5262
+ font-size: var(--tl-text-xs, 11px);
4867
5263
  font-weight: 600;
4868
5264
  }
4869
5265
  #codex-overleaf-panel .codex-attachment-preview-meta {
@@ -4877,12 +5273,12 @@
4877
5273
  overflow: hidden;
4878
5274
  text-overflow: ellipsis;
4879
5275
  white-space: nowrap;
4880
- font-size: 11px;
5276
+ font-size: var(--tl-text-xs, 11px);
4881
5277
  line-height: 16px;
4882
5278
  }
4883
5279
  #codex-overleaf-panel .codex-attachment-preview-card[data-kind="image"] .codex-attachment-preview-name {
4884
5280
  text-align: center;
4885
- font-size: 10px;
5281
+ font-size: var(--tl-text-xs, 11px);
4886
5282
  }
4887
5283
  #codex-overleaf-panel .codex-attachment-preview-size { color: var(--tl-fg-3); }
4888
5284
  #codex-overleaf-panel button.codex-attachment-preview-remove {
@@ -4957,7 +5353,7 @@
4957
5353
 
4958
5354
  #codex-overleaf-panel .codex-attachment-preview-dialog-caption {
4959
5355
  color: var(--tl-fg-1);
4960
- font-size: 12px;
5356
+ font-size: var(--tl-text-sm, 12px);
4961
5357
  text-align: center;
4962
5358
  }
4963
5359
 
@@ -4985,6 +5381,8 @@
4985
5381
  min-width: 26px;
4986
5382
  }
4987
5383
 
5384
+ #codex-overleaf-panel .codex-composer-toolbar [data-add-context] .codex-glyph { width: 15px; height: 15px; stroke-width: 1.6; }
5385
+
4988
5386
  /* Independent native checkbox preferences; the visual check is decorative. */
4989
5387
  #codex-overleaf-panel .codex-write-preferences {
4990
5388
  display: flex;
@@ -5023,7 +5421,7 @@
5023
5421
 
5024
5422
  #codex-overleaf-panel .codex-review-label,
5025
5423
  #codex-overleaf-panel .codex-recompile-label {
5026
- font-size: 12px;
5424
+ font-size: var(--tl-text-sm, 12px);
5027
5425
  line-height: 1.3;
5028
5426
  white-space: nowrap;
5029
5427
  }
@@ -5087,6 +5485,9 @@
5087
5485
 
5088
5486
  #codex-overleaf-panel .codex-model-config {
5089
5487
  position: relative;
5488
+ display: flex;
5489
+ align-items: center;
5490
+ gap: 3px;
5090
5491
  grid-column: 2;
5091
5492
  justify-self: end;
5092
5493
  width: auto;
@@ -5094,7 +5495,141 @@
5094
5495
  min-width: 0;
5095
5496
  }
5096
5497
 
5498
+ #codex-overleaf-panel .codex-context-usage {
5499
+ flex: 0 0 auto;
5500
+ min-width: 0;
5501
+ }
5502
+
5503
+ #codex-overleaf-panel .codex-context-usage-button {
5504
+ padding: 0 4px;
5505
+ border: 1px solid transparent;
5506
+ background: transparent;
5507
+ color: var(--tl-fg-3);
5508
+ cursor: pointer;
5509
+ }
5510
+
5511
+ #codex-overleaf-panel .codex-context-usage-button:hover,
5512
+ #codex-overleaf-panel .codex-context-usage-button[aria-expanded="true"] {
5513
+ background: var(--tl-hover);
5514
+ color: var(--tl-fg-2);
5515
+ }
5516
+
5517
+ #codex-overleaf-panel .codex-context-usage-button:focus-visible,
5518
+ #codex-overleaf-panel .codex-context-usage-popover:focus-visible {
5519
+ outline: 2px solid var(--tl-accent);
5520
+ outline-offset: 2px;
5521
+ }
5522
+
5523
+ /* Pie indicator: a hairline outline plus a solid wedge. A stroke as wide as
5524
+ twice the inner radius turns the dash length into a filled sector. */
5525
+ #codex-overleaf-panel .codex-context-usage {
5526
+ --context-usage-level: var(--tl-fg-2);
5527
+ --context-usage-seg-input: var(--tl-accent);
5528
+ --context-usage-seg-output: var(--tl-run);
5529
+ --context-usage-seg-cached: repeating-linear-gradient(135deg, var(--tl-accent) 0 1.6px,
5530
+ color-mix(in srgb, var(--tl-accent) 38%, transparent) 1.6px 3.4px);
5531
+ }
5532
+ #codex-overleaf-panel .codex-context-usage[data-level="high"] { --context-usage-level: var(--tl-review); }
5533
+ #codex-overleaf-panel .codex-context-usage[data-level="near-limit"] { --context-usage-level: var(--tl-fail); }
5534
+ #codex-overleaf-panel .codex-context-usage-ring {
5535
+ width: 15px;
5536
+ height: 15px;
5537
+ flex: 0 0 15px;
5538
+ overflow: visible;
5539
+ fill: none;
5540
+ transform: rotate(-90deg);
5541
+ }
5542
+ #codex-overleaf-panel .codex-context-usage-track { stroke: var(--tl-fg-3); stroke-width: 1.1; }
5543
+ #codex-overleaf-panel .codex-context-usage-fill {
5544
+ stroke: var(--context-usage-level);
5545
+ stroke-width: 5.1;
5546
+ stroke-dasharray: var(--context-usage-percent, 0) 100;
5547
+ transition: stroke-dasharray var(--tl-m-slow) var(--tl-m-ease), stroke var(--tl-m-base) var(--tl-m-ease);
5548
+ }
5549
+ #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); }
5550
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-fill { visibility: hidden; }
5551
+ /* Track dashes use pathLength units (100 per circumference). */
5552
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-track { stroke: var(--tl-border-strong); stroke-dasharray: none; opacity: .7; }
5553
+ #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; }
5554
+ /* Compaction keeps the reading still and dimmed; only an accent arc circles the
5555
+ outline. Rotating the whole ring would replace its -90deg start offset. */
5556
+ #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; }
5557
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-orbit { visibility: visible; animation: codex-context-usage-orbit 1s linear infinite; }
5558
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-track { stroke: var(--tl-fg-4); stroke-dasharray: none; opacity: 1; }
5559
+ #codex-overleaf-panel .codex-context-usage[data-compacting="true"] .codex-context-usage-fill { stroke: var(--tl-fg-3); }
5560
+ @keyframes codex-context-usage-orbit { to { transform: rotate(360deg); } }
5561
+
5562
+ #codex-overleaf-panel .codex-context-usage-popover {
5563
+ box-sizing: border-box;
5564
+ position: fixed;
5565
+ z-index: 2147483647;
5566
+ overflow: auto;
5567
+ overscroll-behavior: contain;
5568
+ padding: 12px 12px 10px;
5569
+ border: 1px solid var(--tl-border-strong);
5570
+ border-radius: 10px;
5571
+ background: var(--tl-surface-2);
5572
+ color: var(--tl-fg-2);
5573
+ box-shadow: 0 18px 44px rgba(0, 0, 0, 0.48), 0 2px 6px rgba(0, 0, 0, 0.24);
5574
+ font-size: var(--tl-text-sm, 12px);
5575
+ line-height: 1.45;
5576
+ overflow-wrap: anywhere;
5577
+ animation: tl-slide-in 160ms var(--tl-m-ease);
5578
+ }
5579
+ #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); }
5580
+ #codex-overleaf-panel .codex-context-usage-popover[hidden],
5581
+ #codex-overleaf-panel .codex-context-usage-popover [hidden] { display: none; }
5582
+ #codex-overleaf-panel .codex-context-usage-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
5583
+ #codex-overleaf-panel .codex-context-usage-head-text { min-width: 0; }
5584
+ /* Empty state: a dashed ring echoing the toolbar indicator replaces the figure and bar. */
5585
+ #codex-overleaf-panel .codex-context-usage-empty-ring { display: none; flex: 0 0 26px; width: 26px; height: 26px; }
5586
+ #codex-overleaf-panel .codex-context-usage-empty-ring circle { fill: none; stroke: var(--tl-border-strong); stroke-width: 2; stroke-dasharray: 4 3.5; }
5587
+ #codex-overleaf-panel .codex-context-usage-empty-ring .codex-context-usage-empty-dot { fill: var(--tl-fg-4); stroke: none; }
5588
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] .codex-context-usage-empty-ring { display: block; }
5589
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] .codex-context-usage-head { justify-content: flex-start; align-items: center; gap: 10px; }
5590
+ #codex-overleaf-panel .codex-context-usage[data-empty="true"] :is(.codex-context-usage-figure, .codex-context-usage-bar) { display: none; }
5591
+ #codex-overleaf-panel .codex-context-usage-title { color: var(--tl-fg-1); font-size: var(--tl-text-sm, 12px); font-weight: 600; }
5592
+ #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; }
5593
+ #codex-overleaf-panel .codex-context-usage-figure { flex: 0 0 auto; text-align: right; }
5594
+ #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; }
5595
+ #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; }
5596
+ #codex-overleaf-panel .codex-context-usage:is([data-level="high"], [data-level="near-limit"]) .codex-context-usage-percent { color: var(--context-usage-level); }
5597
+ #codex-overleaf-panel .codex-context-usage[data-unknown="true"] .codex-context-usage-percent { color: var(--tl-fg-4); }
5598
+ #codex-overleaf-panel .codex-context-usage-spinner { display: inline-grid; color: var(--tl-accent); }
5599
+ #codex-overleaf-panel .codex-context-usage-spinner .codex-glyph { width: 18px; height: 18px; stroke-width: 1.5; animation: tl-spin 900ms linear infinite; }
5600
+ #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; }
5601
+ #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; }
5602
+ #codex-overleaf-panel .codex-context-usage-note { margin-top: 10px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
5603
+ #codex-overleaf-panel .codex-context-usage-note .codex-glyph { display: none; }
5604
+ #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); }
5605
+ #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); }
5606
+ #codex-overleaf-panel .codex-context-usage-bar { display: flex; height: 6px; margin: 12px 0 10px; overflow: hidden; border-radius: 3px; background: var(--tl-border); }
5607
+ #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); }
5608
+ #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; }
5609
+ /* Without a sample, compaction sweeps an empty bar; a sample keeps its segments. */
5610
+ #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; }
5611
+ #codex-overleaf-panel .codex-context-usage [data-seg="input"] { background: var(--context-usage-seg-input); }
5612
+ #codex-overleaf-panel .codex-context-usage [data-seg="output"] { background: var(--context-usage-seg-output); }
5613
+ #codex-overleaf-panel .codex-context-usage [data-seg="cached"] { background: var(--context-usage-seg-cached); }
5614
+ #codex-overleaf-panel .codex-context-usage-legend { display: grid; gap: 5px; }
5615
+ #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); }
5616
+ #codex-overleaf-panel .codex-context-usage-row[data-sub] { margin-left: 16px; color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); }
5617
+ #codex-overleaf-panel .codex-context-usage-row b { color: var(--tl-fg-1); font-weight: 500; font-variant-numeric: tabular-nums; }
5618
+ #codex-overleaf-panel .codex-context-usage-row[data-sub] b { color: var(--tl-fg-2); font-weight: 400; }
5619
+ #codex-overleaf-panel .codex-context-usage-row em { color: var(--tl-fg-3); font-style: normal; text-align: right; font-variant-numeric: tabular-nums; }
5620
+ #codex-overleaf-panel .codex-context-usage-swatch { width: 8px; height: 8px; border-radius: 2px; }
5621
+ #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); }
5622
+ #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); }
5623
+ #codex-overleaf-panel .codex-context-usage-compact:hover:not(:disabled) { background: var(--tl-hover); color: var(--tl-fg-1); }
5624
+ #codex-overleaf-panel .codex-context-usage-compact:disabled { opacity: 0.45; cursor: not-allowed; background: transparent; }
5625
+ #codex-overleaf-panel .codex-context-usage-compact .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
5626
+ @keyframes codex-context-usage-sweep { from { background-position: 200% 0; } to { background-position: -200% 0; } }
5627
+ @media (prefers-reduced-motion: reduce) {
5628
+ #codex-overleaf-panel .codex-context-usage *, #codex-overleaf-panel .codex-context-usage-popover { animation: none !important; transition: none !important; }
5629
+ }
5630
+
5097
5631
  #codex-overleaf-panel .codex-model-config-button {
5632
+ flex: 1 1 auto;
5098
5633
  width: 100%;
5099
5634
  min-width: 0;
5100
5635
  border: 1px solid transparent;
@@ -5144,7 +5679,7 @@
5144
5679
  max-width: 96px;
5145
5680
  overflow: hidden;
5146
5681
  color: var(--tl-fg-1);
5147
- font-size: 13px;
5682
+ font-size: var(--tl-text-md, 13px);
5148
5683
  text-overflow: ellipsis;
5149
5684
  white-space: nowrap;
5150
5685
  }
@@ -5156,7 +5691,7 @@
5156
5691
  max-width: 56px;
5157
5692
  overflow: hidden;
5158
5693
  color: var(--tl-fg-3);
5159
- font-size: 12px;
5694
+ font-size: var(--tl-text-sm, 12px);
5160
5695
  text-overflow: ellipsis;
5161
5696
  white-space: nowrap;
5162
5697
  }
@@ -5271,39 +5806,20 @@
5271
5806
  transition: background 120ms ease, filter 120ms ease;
5272
5807
  }
5273
5808
 
5274
- #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"] {
5275
- color: transparent;
5276
- }
5277
-
5278
5809
  #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"]:hover {
5279
5810
  background: var(--tl-fail);
5280
5811
  filter: none;
5281
5812
  }
5282
5813
 
5283
- #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"]::after {
5284
- content: "";
5285
- position: absolute;
5286
- top: 50%;
5287
- left: 50%;
5288
- box-sizing: border-box;
5289
- width: 13px;
5290
- height: 13px;
5291
- border: 2px solid rgba(255, 255, 255, 0.35);
5292
- border-top-color: #ffffff;
5293
- border-radius: 50%;
5294
- transform: translate(-50%, -50%);
5295
- animation: codex-run-spin var(--tl-m-spin, 800ms) linear infinite;
5296
- }
5297
-
5298
5814
  #codex-overleaf-panel .codex-composer-toolbar [data-run]:hover {
5299
5815
  filter: brightness(1.1);
5300
5816
  }
5301
5817
 
5302
- @keyframes codex-run-spin {
5303
- to {
5304
- transform: translate(-50%, -50%) rotate(360deg);
5305
- }
5306
- }
5818
+ /* Send and Stop share one button; data-action selects the visible glyph. */
5819
+ #codex-overleaf-panel .codex-composer-toolbar [data-run] .codex-run-glyph { display: none; }
5820
+ #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="send"] [data-run-glyph="send"],
5821
+ #codex-overleaf-panel .codex-composer-toolbar [data-run][data-action="cancel"] [data-run-glyph="cancel"] { display: grid; place-items: center; }
5822
+ #codex-overleaf-panel .codex-composer-toolbar [data-run] .codex-glyph { width: 14px; height: 14px; stroke-width: 1.9; }
5307
5823
 
5308
5824
  /* Queued follow-ups: one card docked on top of the composer (shares its border). */
5309
5825
  #codex-overleaf-panel .codex-pending-inputs {
@@ -5318,12 +5834,12 @@
5318
5834
  }
5319
5835
  #codex-overleaf-panel .codex-pending-inputs[hidden] { display: none; }
5320
5836
  #codex-overleaf-panel .codex-pending-inputs:not([hidden]) + .codex-composer { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
5321
- #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; }
5837
+ #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; }
5322
5838
  #codex-overleaf-panel .codex-pending-head svg,
5323
5839
  #codex-overleaf-panel .codex-pending-steer svg,
5324
5840
  #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; }
5325
5841
  #codex-overleaf-panel .codex-pending-count { margin-left: auto; color: var(--tl-fg-4); font-weight: 500; font-variant-numeric: tabular-nums; }
5326
- #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; }
5842
+ #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; }
5327
5843
  #codex-overleaf-panel .codex-pending-inputs[data-state="paused"] .codex-pending-head { color: var(--tl-review); }
5328
5844
  #codex-overleaf-panel .codex-pending-inputs[data-state="steering"] .codex-pending-head,
5329
5845
  #codex-overleaf-panel .codex-pending-inputs[data-state="executing"] .codex-pending-head { color: var(--tl-accent); }
@@ -5331,12 +5847,12 @@
5331
5847
  #codex-overleaf-panel .codex-pending-list { display: grid; margin: 5px 0 0; padding: 0; list-style: none; }
5332
5848
  #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); }
5333
5849
  #codex-overleaf-panel .codex-pending-input:first-child { border-top: 0; }
5334
- #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; }
5335
- #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; }
5850
+ #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; }
5851
+ #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; }
5336
5852
  #codex-overleaf-panel .codex-pending-input-text:hover:not(:disabled) { color: var(--tl-fg-1); background: var(--tl-hover); }
5337
5853
  #codex-overleaf-panel .codex-pending-input-text:disabled { cursor: default; opacity: 1; }
5338
5854
  #codex-overleaf-panel .codex-pending-input-actions { display: inline-flex; align-items: center; gap: 2px; }
5339
- #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); }
5855
+ #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); }
5340
5856
  #codex-overleaf-panel .codex-pending-steer:hover:not(:disabled) { border-color: var(--tl-accent); background: var(--tl-surface-0); }
5341
5857
  #codex-overleaf-panel .codex-pending-steer:disabled { color: var(--tl-fg-4); cursor: not-allowed; }
5342
5858
  #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); }
@@ -5345,9 +5861,9 @@
5345
5861
  #codex-overleaf-panel .codex-pending-input-remove:focus-visible { opacity: 1; }
5346
5862
  #codex-overleaf-panel .codex-pending-input-remove:hover:not(:disabled) { color: var(--tl-fail); background: var(--tl-hover); }
5347
5863
  #codex-overleaf-panel .codex-pending-input-remove:disabled { opacity: 0 !important; }
5348
- #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; }
5864
+ #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; }
5349
5865
  #codex-overleaf-panel .codex-pending-more:hover { color: var(--tl-fg-1); }
5350
- #codex-overleaf-panel .codex-pending-hint { margin: 3px 0 0 20px; color: var(--tl-fg-4); font-size: 11px; }
5866
+ #codex-overleaf-panel .codex-pending-hint { margin: 3px 0 0 20px; color: var(--tl-fg-4); font-size: var(--tl-text-xs, 11px); }
5351
5867
  #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; }
5352
5868
  @media (pointer: coarse) { #codex-overleaf-panel .codex-pending-input-remove { opacity: 1; } }
5353
5869
  @media (prefers-reduced-motion: reduce) {
@@ -5387,7 +5903,7 @@
5387
5903
  justify-content: space-between;
5388
5904
  gap: 8px;
5389
5905
  color: var(--tl-fg-2);
5390
- font-size: 12px;
5906
+ font-size: var(--tl-text-sm, 12px);
5391
5907
  }
5392
5908
 
5393
5909
  #codex-overleaf-panel .codex-context-actions {
@@ -5495,6 +6011,8 @@
5495
6011
  color: var(--tl-fg-3);
5496
6012
  }
5497
6013
 
6014
+ #codex-overleaf-panel .codex-context-head button .codex-glyph { width: 14px; height: 14px; stroke-width: 1.5; }
6015
+
5498
6016
  #codex-overleaf-panel .codex-context-selection {
5499
6017
  margin-top: 6px;
5500
6018
  }
@@ -5509,7 +6027,7 @@
5509
6027
  background: var(--tl-surface-2);
5510
6028
  color: var(--tl-fg-2);
5511
6029
  padding: 3px 7px;
5512
- font-size: 11px;
6030
+ font-size: var(--tl-text-xs, 11px);
5513
6031
  }
5514
6032
 
5515
6033
  #codex-overleaf-panel .codex-context-chip span:last-of-type {
@@ -5539,7 +6057,7 @@
5539
6057
  #codex-overleaf-panel .codex-context-status {
5540
6058
  margin-top: 6px;
5541
6059
  color: var(--tl-fg-3);
5542
- font-size: 11px;
6060
+ font-size: var(--tl-text-xs, 11px);
5543
6061
  }
5544
6062
 
5545
6063
  #codex-overleaf-panel .codex-context-files {
@@ -5565,7 +6083,7 @@
5565
6083
  min-height: 20px;
5566
6084
  color: var(--tl-fg-3);
5567
6085
  cursor: pointer;
5568
- font-size: 11px;
6086
+ font-size: var(--tl-text-xs, 11px);
5569
6087
  line-height: 20px;
5570
6088
  list-style: none;
5571
6089
  }
@@ -5619,7 +6137,7 @@
5619
6137
  #codex-overleaf-panel .codex-context-file-name {
5620
6138
  min-width: 0;
5621
6139
  overflow: hidden;
5622
- font-size: 12px;
6140
+ font-size: var(--tl-text-sm, 12px);
5623
6141
  text-overflow: ellipsis;
5624
6142
  white-space: nowrap;
5625
6143
  }
@@ -5627,7 +6145,7 @@
5627
6145
  #codex-overleaf-panel .codex-context-file-meta {
5628
6146
  flex: 0 0 auto;
5629
6147
  color: var(--tl-fg-3);
5630
- font-size: 10px;
6148
+ font-size: var(--tl-text-xs, 11px);
5631
6149
  }
5632
6150
 
5633
6151
  #codex-overleaf-panel .codex-diff-review {
@@ -5664,7 +6182,7 @@
5664
6182
  min-width: 0;
5665
6183
  overflow: hidden;
5666
6184
  color: var(--tl-fg-1);
5667
- font-size: 12px;
6185
+ font-size: var(--tl-text-sm, 12px);
5668
6186
  text-overflow: ellipsis;
5669
6187
  white-space: nowrap;
5670
6188
  }
@@ -5682,17 +6200,17 @@
5682
6200
  background: var(--tl-surface-2);
5683
6201
  color: var(--tl-fg-2);
5684
6202
  padding: 1px 7px;
5685
- font-size: 11px;
6203
+ font-size: var(--tl-text-xs, 11px);
5686
6204
  }
5687
6205
 
5688
6206
  #codex-overleaf-panel .codex-diff-readonly-label {
5689
6207
  color: var(--tl-ok);
5690
- font-size: 11px;
6208
+ font-size: var(--tl-text-xs, 11px);
5691
6209
  }
5692
6210
 
5693
6211
  #codex-overleaf-panel .codex-diff-decision-label {
5694
6212
  color: var(--tl-ok);
5695
- font-size: 11px;
6213
+ font-size: var(--tl-text-xs, 11px);
5696
6214
  }
5697
6215
 
5698
6216
  #codex-overleaf-panel .codex-diff-file-actions [data-diff-accept] {
@@ -5723,7 +6241,7 @@
5723
6241
  #codex-overleaf-panel .codex-diff-body {
5724
6242
  max-height: 200px;
5725
6243
  overflow-y: auto;
5726
- font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
6244
+ font: var(--tl-text-xs, 11px)/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
5727
6245
  }
5728
6246
 
5729
6247
  #codex-overleaf-panel .codex-diff-hunk {
@@ -5734,7 +6252,7 @@
5734
6252
  #codex-overleaf-panel .codex-diff-hunk-location {
5735
6253
  padding: 2px 8px 0;
5736
6254
  color: var(--tl-fg-4);
5737
- font-size: 10px;
6255
+ font-size: var(--tl-text-xs, 11px);
5738
6256
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
5739
6257
  }
5740
6258
 
@@ -5775,7 +6293,7 @@
5775
6293
  background: var(--tl-surface-2);
5776
6294
  color: var(--tl-fg-2);
5777
6295
  padding: 0 6px;
5778
- font-size: 11px;
6296
+ font-size: var(--tl-text-xs, 11px);
5779
6297
  }
5780
6298
 
5781
6299
  #codex-overleaf-panel .codex-diff-hunk-actions [data-diff-hunk-accept] {
@@ -5792,7 +6310,7 @@
5792
6310
  #codex-overleaf-panel .codex-diff-hunk-jump-status,
5793
6311
  #codex-overleaf-panel .codex-diff-fallback-label {
5794
6312
  color: var(--tl-fg-3);
5795
- font-size: 11px;
6313
+ font-size: var(--tl-text-xs, 11px);
5796
6314
  }
5797
6315
 
5798
6316
  #codex-overleaf-panel .codex-diff-hunk[data-jump-status="failed"] .codex-diff-hunk-jump-status {
@@ -5820,7 +6338,7 @@
5820
6338
  border-radius: 4px;
5821
6339
  background: var(--tl-surface-1);
5822
6340
  color: var(--tl-accent);
5823
- font-size: 11px;
6341
+ font-size: var(--tl-text-xs, 11px);
5824
6342
  }
5825
6343
 
5826
6344
  #codex-overleaf-panel .codex-diff-line {
@@ -5879,7 +6397,7 @@
5879
6397
  margin-right: auto;
5880
6398
  overflow: hidden;
5881
6399
  color: var(--tl-fg-3);
5882
- font-size: 11px;
6400
+ font-size: var(--tl-text-xs, 11px);
5883
6401
  text-overflow: ellipsis;
5884
6402
  white-space: nowrap;
5885
6403
  }
@@ -5891,7 +6409,7 @@
5891
6409
  background: var(--tl-surface-2);
5892
6410
  color: var(--tl-fg-2);
5893
6411
  padding: 2px 10px;
5894
- font-size: 12px;
6412
+ font-size: var(--tl-text-sm, 12px);
5895
6413
  }
5896
6414
 
5897
6415
  #codex-overleaf-panel .codex-diff-toolbar [data-diff-accept-all],
@@ -5937,22 +6455,22 @@
5937
6455
  #codex-overleaf-panel .recent-projects-welcome { display: grid; gap: 5px; padding: 0 4px; }
5938
6456
  #codex-overleaf-panel .recent-projects-eyebrow {
5939
6457
  color: var(--tl-fg-3);
5940
- font-size: 10px;
6458
+ font-size: var(--tl-text-xs, 11px);
5941
6459
  font-weight: 550;
5942
6460
  letter-spacing: 0.09em;
5943
6461
  margin-bottom: 3px;
5944
6462
  }
5945
6463
  #codex-overleaf-panel .recent-projects-welcome-title { color: var(--tl-fg-1); font-size: 16px; font-weight: 600; line-height: 1.4; }
5946
- #codex-overleaf-panel .recent-projects-welcome-subtitle { color: var(--tl-fg-3); font-size: 11.5px; line-height: 1.5; }
6464
+ #codex-overleaf-panel .recent-projects-welcome-subtitle { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
5947
6465
  #codex-overleaf-panel [data-recent-projects-list] { min-width: 0; }
5948
6466
  #codex-overleaf-panel .recent-projects-empty,
5949
6467
  #codex-overleaf-panel .recent-projects-degraded {
5950
6468
  padding: 12px 4px;
5951
6469
  color: var(--tl-fg-2);
5952
- font-size: 13px;
6470
+ font-size: var(--tl-text-md, 13px);
5953
6471
  line-height: 1.6;
5954
6472
  }
5955
- #codex-overleaf-panel .recent-projects-loading { display: block; padding: 10px 4px; color: var(--tl-fg-3); font-size: 12px; }
6473
+ #codex-overleaf-panel .recent-projects-loading { display: block; padding: 10px 4px; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); }
5956
6474
  #codex-overleaf-panel .recent-projects-filter { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 0 4px; }
5957
6475
  #codex-overleaf-panel .recent-projects-filter > button {
5958
6476
  flex: 0 0 auto;
@@ -5960,11 +6478,11 @@
5960
6478
  border: 0;
5961
6479
  background: transparent;
5962
6480
  color: var(--tl-ok);
5963
- font-size: 12px;
6481
+ font-size: var(--tl-text-sm, 12px);
5964
6482
  cursor: pointer;
5965
6483
  }
5966
6484
  #codex-overleaf-panel .recent-projects-filter > button::before { content: "\2190"; margin-inline-end: 5px; }
5967
- #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; }
6485
+ #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; }
5968
6486
  #codex-overleaf-panel .recent-projects-session-row {
5969
6487
  position: relative;
5970
6488
  display: grid;
@@ -5981,17 +6499,17 @@
5981
6499
  min-width: 0;
5982
6500
  overflow: hidden;
5983
6501
  color: var(--tl-fg-1);
5984
- font-size: 13px;
6502
+ font-size: var(--tl-text-md, 13px);
5985
6503
  font-weight: 500;
5986
6504
  line-height: 1.6;
5987
6505
  text-overflow: ellipsis;
5988
6506
  white-space: nowrap;
5989
6507
  }
5990
6508
  #codex-overleaf-panel .recent-projects-session-title[hidden] { display: none; }
5991
- #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; }
6509
+ #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; }
5992
6510
  #codex-overleaf-panel .recent-projects-row-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 400; }
5993
- #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; }
5994
- #codex-overleaf-panel .recent-projects-session-attention { flex: 0 0 auto; color: var(--tl-review); font-size: 10.5px; }
6511
+ #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; }
6512
+ #codex-overleaf-panel .recent-projects-session-attention { flex: 0 0 auto; color: var(--tl-review); font-size: var(--tl-text-xs, 11px); }
5995
6513
  #codex-overleaf-panel .recent-projects-session-attention::before { content: "\00b7"; margin-inline-end: 4px; }
5996
6514
  #codex-overleaf-panel .recent-projects-session-row[aria-busy="true"] { cursor: progress; }
5997
6515
  #codex-overleaf-panel .recent-projects-session-row[data-running="true"]:not(.recent-projects-focus) .recent-projects-session-title::before {
@@ -6014,10 +6532,10 @@
6014
6532
  background: var(--tl-ok-wash);
6015
6533
  background: color-mix(in srgb, var(--tl-ok-wash) 65%, var(--tl-surface-0));
6016
6534
  }
6017
- #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; }
6535
+ #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; }
6018
6536
  #codex-overleaf-panel .recent-projects-focus-eyebrow::after { content: "\00b7"; margin-inline-start: 6px; }
6019
6537
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-copy { gap: 6px; }
6020
- #codex-overleaf-panel .recent-projects-focus .recent-projects-session-meta { justify-content: flex-start; gap: 6px; padding-inline-end: 18px; font-size: 11px; }
6538
+ #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); }
6021
6539
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-time { margin-inline-start: 0; font-size: inherit; }
6022
6540
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-time:not(:empty)::before { content: "\00b7"; margin-inline-end: 7px; }
6023
6541
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-title {
@@ -6026,12 +6544,12 @@
6026
6544
  -webkit-box-orient: vertical;
6027
6545
  white-space: normal;
6028
6546
  overflow-wrap: anywhere;
6029
- font-size: 14.5px;
6547
+ font-size: var(--tl-text-base, 14px);
6030
6548
  font-weight: 500;
6031
6549
  line-height: 1.5;
6032
6550
  }
6033
6551
  #codex-overleaf-panel .recent-projects-focus .recent-projects-session-title[hidden] { display: none; }
6034
- #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; }
6552
+ #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; }
6035
6553
  #codex-overleaf-panel .recent-projects-focus-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
6036
6554
  #codex-overleaf-panel .recent-projects-focus > .recent-projects-menu { position: absolute; top: 6px; inset-inline-end: 6px; }
6037
6555
  #codex-overleaf-panel .recent-projects-continue {
@@ -6046,7 +6564,7 @@
6046
6564
  border-radius: 6px;
6047
6565
  background: #357347;
6048
6566
  color: #fff;
6049
- font-size: 12px;
6567
+ font-size: var(--tl-text-sm, 12px);
6050
6568
  font-weight: 400;
6051
6569
  line-height: 1.4;
6052
6570
  cursor: pointer;
@@ -6063,7 +6581,7 @@
6063
6581
  border: 0;
6064
6582
  background: transparent;
6065
6583
  color: var(--tl-fg-3);
6066
- font-size: 11px;
6584
+ font-size: var(--tl-text-xs, 11px);
6067
6585
  font-weight: 400;
6068
6586
  line-height: 1.6;
6069
6587
  overflow-wrap: anywhere;
@@ -6075,17 +6593,17 @@
6075
6593
  #codex-overleaf-panel .recent-projects-row-badge:is(.badge-failed, .badge-abandoned-after-navigation)::before { content: "!"; color: var(--tl-fail); }
6076
6594
  #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); }
6077
6595
  #codex-overleaf-panel .recent-projects-row-badge.badge-running::before { color: var(--tl-run); }
6078
- #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; }
6079
- #codex-overleaf-panel .recent-projects-history-heading > :last-child { font-size: 10px; }
6596
+ #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; }
6597
+ #codex-overleaf-panel .recent-projects-history-heading > :last-child { font-size: var(--tl-text-xs, 11px); }
6080
6598
  #codex-overleaf-panel .recent-projects-history-list { display: grid; gap: 1px; min-width: 0; }
6081
6599
  #codex-overleaf-panel .recent-projects-drafts { margin: 18px 5px 0; min-width: 0; }
6082
- #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; }
6600
+ #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; }
6083
6601
  #codex-overleaf-panel .recent-projects-drafts > summary::-webkit-details-marker { display: none; }
6084
- #codex-overleaf-panel .recent-projects-drafts > summary::before { content: "\203a"; display: inline-block; margin-inline-end: 6px; font-size: 13px; }
6602
+ #codex-overleaf-panel .recent-projects-drafts > summary::before { content: "\203a"; display: inline-block; margin-inline-end: 6px; font-size: var(--tl-text-md, 13px); }
6085
6603
  #codex-overleaf-panel .recent-projects-drafts[open] > summary::before { transform: rotate(90deg); }
6086
- #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; }
6604
+ #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; }
6087
6605
  #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; }
6088
- #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; }
6606
+ #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; }
6089
6607
  #codex-overleaf-panel .recent-projects-menu { position: relative; justify-self: end; flex: 0 0 auto; }
6090
6608
  #codex-overleaf-panel .recent-projects-menu > summary {
6091
6609
  display: flex;
@@ -6127,7 +6645,7 @@
6127
6645
  border-radius: 4px;
6128
6646
  background: transparent;
6129
6647
  color: var(--tl-fg-2);
6130
- font-size: 12px;
6648
+ font-size: var(--tl-text-sm, 12px);
6131
6649
  line-height: 1.4;
6132
6650
  text-align: start;
6133
6651
  white-space: normal;
@@ -6146,7 +6664,7 @@
6146
6664
  border-radius: 4px;
6147
6665
  background: var(--tl-surface-0);
6148
6666
  color: var(--tl-fg-1);
6149
- font-size: 13px;
6667
+ font-size: var(--tl-text-md, 13px);
6150
6668
  }
6151
6669
  #codex-overleaf-panel .recent-projects-settings-entry {
6152
6670
  display: inline-flex;
@@ -6157,7 +6675,7 @@
6157
6675
  border: 0;
6158
6676
  background: transparent;
6159
6677
  color: var(--tl-fg-3);
6160
- font-size: 11px;
6678
+ font-size: var(--tl-text-xs, 11px);
6161
6679
  line-height: 1.5;
6162
6680
  cursor: pointer;
6163
6681
  }
@@ -6181,7 +6699,7 @@
6181
6699
  border: 0;
6182
6700
  background: transparent;
6183
6701
  color: var(--tl-fg-3);
6184
- font-size: 12px;
6702
+ font-size: var(--tl-text-sm, 12px);
6185
6703
  cursor: pointer;
6186
6704
  }
6187
6705
 
@@ -6200,56 +6718,69 @@
6200
6718
  border: 1px solid var(--tl-border, #2a2a2a);
6201
6719
  border-radius: 6px;
6202
6720
  color: var(--tl-fg-3, #8a8a8a);
6203
- font-size: 11.5px;
6721
+ font-size: var(--tl-text-xs, 11px);
6204
6722
  }
6205
6723
 
6206
6724
  /* File changes: readable records over privacy-preserving audit metadata. */
6207
- #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; }
6725
+ #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; }
6208
6726
  #codex-overleaf-panel .codex-history-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 142px; gap: 10px; margin: 14px 0 9px; }
6209
6727
  #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); }
6210
6728
  #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%; }
6211
6729
  #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); }
6212
- #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; }
6213
- #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; }
6730
+ #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); }
6731
+ #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); }
6214
6732
  #codex-overleaf-panel .codex-history-list { max-height: none; overflow: visible; min-width: 0; }
6215
- #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; }
6733
+ #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); }
6216
6734
  #codex-overleaf-panel .codex-history-row:hover { background: var(--tl-hover); }
6217
6735
  #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); }
6218
6736
  #codex-overleaf-panel .codex-history-icon { display: inline-flex; align-items: center; }
6219
6737
  #codex-overleaf-panel .codex-history-icon svg { display: block; width: 16px; height: 16px; }
6220
6738
  #codex-overleaf-panel .codex-history-copy { min-width: 0; }
6221
6739
  #codex-overleaf-panel .codex-history-top { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 5px 12px; }
6222
- #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; }
6223
- #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; }
6740
+ #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; }
6741
+ #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; }
6224
6742
  #codex-overleaf-panel .codex-history-status[data-state="accepted"] { color: var(--tl-ok); }
6225
6743
  #codex-overleaf-panel .codex-history-status[data-state="pending"] { color: var(--tl-review); }
6226
6744
  #codex-overleaf-panel .codex-history-status[data-state="attention"] { padding: 1px 6px; border-radius: 4px; color: var(--tl-review); background: var(--tl-review-wash); }
6227
- #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; }
6745
+ #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; }
6228
6746
  #codex-overleaf-panel .codex-history-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
6229
- #codex-overleaf-panel .codex-history-when { color: var(--tl-fg-3); font-size: 11px; font-variant-numeric: tabular-nums; }
6230
- #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; }
6747
+ #codex-overleaf-panel .codex-history-when { color: var(--tl-fg-3); font-size: var(--tl-text-xs, 11px); font-variant-numeric: tabular-nums; }
6748
+ #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; }
6231
6749
  #codex-overleaf-panel .codex-history-jump:hover { background: transparent; text-decoration: underline; text-underline-offset: 3px; }
6232
6750
  #codex-overleaf-panel .codex-history-jump:disabled { color: var(--tl-fg-3); opacity: 1; cursor: default; text-decoration: none; }
6233
6751
  #codex-overleaf-panel .codex-history-jump .codex-history-icon svg { width: 12px; height: 12px; }
6234
- #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; }
6235
- #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; }
6752
+ #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; }
6753
+ #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; }
6236
6754
  #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)); }
6237
6755
  #codex-overleaf-panel .codex-history-more { margin: 8px 0 0 48px; }
6238
6756
  #codex-overleaf-panel :is(.codex-history-more, .codex-history-include)[hidden] { display: none !important; }
6239
- #codex-overleaf-panel .codex-settings-workbench [data-storage-card] { margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--tl-border); }
6757
+ #codex-overleaf-panel .codex-settings-workbench [data-storage-card] { margin-top: 0; }
6240
6758
  #codex-overleaf-panel .codex-storage-data-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
6241
6759
  #codex-overleaf-panel .codex-storage-data-copy { min-width: 0; }
6242
- #codex-overleaf-panel .codex-storage-data-label { font-size: 13px; line-height: 1.5; font-weight: 500; color: var(--tl-fg-1); }
6243
- #codex-overleaf-panel .codex-storage-data-row [data-storage-usage] { margin: 4px 0 0; font-size: 12px; color: var(--tl-fg-3); }
6244
- #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; }
6760
+ #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); }
6761
+ #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); }
6762
+ #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; }
6245
6763
  #codex-overleaf-panel .codex-storage-data-row .codex-set-btn:hover { border-color: var(--tl-border); background: var(--tl-fail-wash); }
6246
- #codex-overleaf-panel .codex-storage-clear-help { max-width: 66ch; margin: 12px 0 0; font-size: 12px; line-height: 1.65; }
6247
- #codex-overleaf-panel .codex-storage-estimate { margin: 8px 0 0; color: var(--tl-fg-3); font-size: 11px; line-height: 1.6; }
6764
+ #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; }
6765
+ #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; }
6766
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-row { padding: 13px 0 4px; }
6767
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-label { font-size: var(--tl-text-md, 13px); font-weight: 500; }
6768
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-data-row .codex-set-btn { min-height: 28px; padding: 3px 11px; background: var(--wb-surface); }
6769
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-clear-help { margin: 0 0 4px; }
6770
+ #codex-overleaf-panel .codex-settings-workbench .codex-storage-estimate { margin: 0; padding-bottom: 13px; }
6771
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-toolbar { margin: 0 0 6px; }
6772
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-search { min-height: 30px; border-color: var(--wb-line); background: var(--wb-surface); }
6773
+ #codex-overleaf-panel .codex-settings-workbench .codex-history-search input { min-height: 28px; border: 0; background: transparent; }
6774
+ #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); }
6775
+ #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); }
6776
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry:hover { background: transparent; }
6777
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry-label { font-weight: 500; }
6778
+ #codex-overleaf-panel .codex-settings-workbench .codex-skills-entry:hover .codex-skills-entry-chevron { color: var(--wb-fg); }
6248
6779
  @media (max-width: 620px) {
6249
6780
  #codex-overleaf-panel .codex-history-toolbar { grid-template-columns: minmax(0, 1fr) 116px; gap: 7px; }
6250
6781
  #codex-overleaf-panel .codex-history-row { grid-template-columns: 25px minmax(0, 1fr); column-gap: 8px; padding: 11px 0; }
6251
6782
  #codex-overleaf-panel .codex-history-mark { width: 25px; }
6252
- #codex-overleaf-panel .codex-history-task { font-size: 13px; }
6783
+ #codex-overleaf-panel .codex-history-task { font-size: var(--tl-text-md, 13px); }
6253
6784
  }
6254
6785
  @media (pointer: coarse) {
6255
6786
  #codex-overleaf-panel :is(.codex-history-jump, .codex-history-include, .codex-history-status-filter) { min-height: 44px; }
@@ -6272,7 +6803,7 @@
6272
6803
  border: 1px solid var(--tl-border, #2a2a2a);
6273
6804
  border-radius: 6px;
6274
6805
  color: var(--tl-fg-1, #e4e4e4);
6275
- font-size: 11.5px;
6806
+ font-size: var(--tl-text-xs, 11px);
6276
6807
  }
6277
6808
  #codex-overleaf-panel .run-card--flash {
6278
6809
  animation: codex-jump-flash 1.6s ease-out;
@@ -6292,7 +6823,7 @@
6292
6823
  #codex-overleaf-panel .codex-undo-file-item {
6293
6824
  display: block;
6294
6825
  padding: 3px 0;
6295
- font-size: 11.5px;
6826
+ font-size: var(--tl-text-xs, 11px);
6296
6827
  color: var(--tl-fg-1, #e4e4e4);
6297
6828
  word-break: break-all;
6298
6829
  cursor: pointer;
@@ -6354,7 +6885,7 @@
6354
6885
 
6355
6886
  #codex-overleaf-panel .codex-update-notice-eyebrow {
6356
6887
  color: #7fb5e9;
6357
- font-size: 10px;
6888
+ font-size: var(--tl-text-xs, 11px);
6358
6889
  font-weight: 750;
6359
6890
  letter-spacing: 0.07em;
6360
6891
  text-transform: uppercase;
@@ -6362,13 +6893,13 @@
6362
6893
 
6363
6894
  #codex-overleaf-panel .codex-update-notice strong {
6364
6895
  color: var(--tl-fg-1, #eceeec);
6365
- font-size: 12.5px;
6896
+ font-size: var(--tl-text-sm, 12px);
6366
6897
  }
6367
6898
 
6368
6899
  #codex-overleaf-panel .codex-update-notice-detail {
6369
6900
  overflow: hidden;
6370
6901
  color: var(--tl-fg-3, #9da39e);
6371
- font-size: 11px;
6902
+ font-size: var(--tl-text-xs, 11px);
6372
6903
  line-height: 1.35;
6373
6904
  text-overflow: ellipsis;
6374
6905
  }
@@ -6376,7 +6907,7 @@
6376
6907
  #codex-overleaf-panel .codex-update-notice-recovery {
6377
6908
  margin-top: 5px;
6378
6909
  color: var(--tl-fg-2, #d5dad6);
6379
- font-size: 10.5px;
6910
+ font-size: var(--tl-text-xs, 11px);
6380
6911
  font-weight: 700;
6381
6912
  }
6382
6913
 
@@ -6385,12 +6916,12 @@
6385
6916
  max-width: 100%;
6386
6917
  overflow-wrap: anywhere;
6387
6918
  color: #c5d9ec;
6388
- font: 10px/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
6919
+ font: var(--tl-text-xs, 11px)/1.45 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
6389
6920
  user-select: text;
6390
6921
  }
6391
6922
 
6392
6923
  /* Reinstall notice: numbered steps with the command inline, in the waiting tone. */
6393
- #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; }
6924
+ #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; }
6394
6925
  #codex-overleaf-panel .codex-update-notice-steps .codex-update-notice-command { margin: 2px 0 4px; }
6395
6926
  #codex-overleaf-panel .codex-update-notice[data-state="manual_install_required"] {
6396
6927
  background: linear-gradient(100deg, rgba(199, 160, 83, 0.13), transparent 58%), var(--tl-surface-1, #181a19);
@@ -6412,7 +6943,7 @@
6412
6943
  border-radius: 5px;
6413
6944
  background: transparent;
6414
6945
  color: var(--tl-fg-2, #d5dad6);
6415
- font-size: 10.5px;
6946
+ font-size: var(--tl-text-xs, 11px);
6416
6947
  font-weight: 700;
6417
6948
  cursor: pointer;
6418
6949
  }
@@ -6513,7 +7044,7 @@
6513
7044
  padding: 5px 6px;
6514
7045
  border-radius: 6px;
6515
7046
  color: var(--provider-field-label);
6516
- font-size: 13px;
7047
+ font-size: var(--tl-text-md, 13px);
6517
7048
  font-weight: 500;
6518
7049
  line-height: 1.35;
6519
7050
  cursor: pointer;
@@ -6633,7 +7164,7 @@
6633
7164
  border: 0;
6634
7165
  background: transparent;
6635
7166
  color: var(--tl-fg-2);
6636
- font-size: 12px;
7167
+ font-size: var(--tl-text-sm, 12px);
6637
7168
  line-height: 1.5;
6638
7169
  }
6639
7170
  #codex-overleaf-panel [data-composer-selection][hidden] { display: none; }
@@ -6656,7 +7187,7 @@
6656
7187
  border-radius: 7px;
6657
7188
  background: var(--tl-surface-1);
6658
7189
  color: var(--tl-fg-2);
6659
- font-size: 12px;
7190
+ font-size: var(--tl-text-sm, 12px);
6660
7191
  font-weight: 400;
6661
7192
  line-height: 18px;
6662
7193
  list-style: none;
@@ -6693,7 +7224,7 @@
6693
7224
  border-radius: 7px;
6694
7225
  background: var(--tl-surface-1);
6695
7226
  color: var(--tl-fg-2);
6696
- font-size: 11px;
7227
+ font-size: var(--tl-text-xs, 11px);
6697
7228
  line-height: 1.6;
6698
7229
  }
6699
7230
  #codex-overleaf-panel [data-composer-selection] button {
@@ -6709,7 +7240,7 @@
6709
7240
  border-radius: 6px;
6710
7241
  background: transparent;
6711
7242
  color: var(--tl-fg-3);
6712
- font-size: 15px;
7243
+ font-size: var(--tl-text-lg, 15px);
6713
7244
  line-height: 1;
6714
7245
  }
6715
7246
  #codex-overleaf-panel [data-composer-selection] button:hover {
@@ -6728,7 +7259,7 @@
6728
7259
  padding-left: 5px;
6729
7260
  border-left: 1px solid var(--tl-border-strong);
6730
7261
  color: var(--tl-fg-2);
6731
- font-size: 10px;
7262
+ font-size: var(--tl-text-xs, 11px);
6732
7263
  white-space: nowrap;
6733
7264
  }
6734
7265
  .codex-selection-actions[data-codex-selection-actions] {
@@ -6747,7 +7278,7 @@
6747
7278
  background: var(--tl-surface-0);
6748
7279
  color: var(--tl-fg-1);
6749
7280
  box-shadow: 0 4px 16px rgba(0, 0, 0, .16);
6750
- font-size: 13px;
7281
+ font-size: var(--tl-text-md, 13px);
6751
7282
  font-weight: 500;
6752
7283
  line-height: 20px;
6753
7284
  }
@@ -6788,7 +7319,7 @@
6788
7319
  --ws-line: var(--tl-border-strong, #d7dcdf);
6789
7320
  --ws-muted: var(--tl-fg-3, #737b84);
6790
7321
  --ws-soft: color-mix(in srgb, var(--ws-accent) 8%, transparent);
6791
- padding: 18px !important;
7322
+ padding: 18px;
6792
7323
  min-width: 0;
6793
7324
  color: var(--tl-fg-1);
6794
7325
  background: linear-gradient(135deg, color-mix(in srgb, var(--ws-accent) 2%, transparent), transparent 60%);
@@ -6797,9 +7328,9 @@
6797
7328
  #codex-overleaf-panel .ws2 svg { display: block; width: 16px; height: 16px; flex: 0 0 auto; }
6798
7329
  #codex-overleaf-panel .ws2-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
6799
7330
  #codex-overleaf-panel .ws2-heading-copy { flex: 1; min-width: 0; }
6800
- #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; }
6801
- #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; }
6802
- #codex-overleaf-panel .ws2-description { margin: 5px 0 0; max-width: 64ch; color: var(--tl-fg-2); font-size: 12px; line-height: 1.65; }
7331
+ #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; }
7332
+ #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; }
7333
+ #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; }
6803
7334
  #codex-overleaf-panel .ws2-heading > .codex-switch { flex: 0 0 auto; margin-top: 2px; }
6804
7335
  #codex-overleaf-panel .ws2-button,
6805
7336
  #codex-overleaf-panel .ws2-icon-button,
@@ -6809,7 +7340,7 @@
6809
7340
  gap: 6px; min-height: 30px; padding: 5px 10px; margin: 0;
6810
7341
  border: 1px solid var(--ws-line); border-radius: 7px; box-shadow: none;
6811
7342
  background: var(--tl-surface-1, transparent); color: var(--tl-fg-1);
6812
- font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.4; cursor: pointer;
7343
+ font-family: inherit; font-size: var(--tl-text-sm, 12px); font-weight: 500; line-height: 1.4; cursor: pointer;
6813
7344
  }
6814
7345
  #codex-overleaf-panel .ws2-button:hover,
6815
7346
  #codex-overleaf-panel .ws2-icon-button:hover,
@@ -6827,85 +7358,92 @@
6827
7358
  #codex-overleaf-panel .ws2 input:focus-visible { outline: 2px solid var(--ws-accent); outline-offset: 3px; }
6828
7359
  #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; }
6829
7360
  #codex-overleaf-panel .ws2-manage svg { width: 13px; height: 13px; }
7361
+ #codex-overleaf-panel .codex-settings-workbench .codex-set-card.ws2 { padding: 13px 0 14px; background: none; }
7362
+ #codex-overleaf-panel .codex-settings-workbench .ws2-title { font-size: var(--tl-text-md, 13px); font-weight: 500; }
7363
+ #codex-overleaf-panel .codex-settings-workbench .ws2-description { margin-top: 2px; color: var(--wb-muted); font-size: var(--tl-text-sm, 12px); }
7364
+ #codex-overleaf-panel .codex-settings-workbench .ws2-status { margin-top: 10px; color: var(--wb-muted); }
7365
+ #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); }
7366
+ #codex-overleaf-panel .codex-settings-workbench .ws2-manage:hover { background: var(--wb-hover); text-decoration: none; }
7367
+ #codex-overleaf-panel .codex-settings-workbench .ws2-manage svg { width: 12px; height: 12px; }
6830
7368
  #codex-overleaf-panel .ws2-manage:hover { text-decoration: underline; text-underline-offset: 3px; }
6831
7369
  #codex-overleaf-panel .ws2-profile { display: flex; align-items: center; gap: 10px; padding: 12px; margin-top: 14px; background: var(--ws-soft); border-radius: 9px; }
6832
7370
  #codex-overleaf-panel .ws2-profile-icon { color: var(--ws-accent); }
6833
7371
  #codex-overleaf-panel .ws2-profile-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
6834
- #codex-overleaf-panel .ws2-profile-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; }
6835
- #codex-overleaf-panel .ws2-profile-copy small { color: var(--tl-fg-2); font-size: 11px; line-height: 1.5; }
7372
+ #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; }
7373
+ #codex-overleaf-panel .ws2-profile-copy small { color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6836
7374
  #codex-overleaf-panel .ws2-library { margin-top: 12px; border-top: 1px solid var(--ws-line); padding-top: 12px; }
6837
7375
  #codex-overleaf-panel .ws2-library-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
6838
- #codex-overleaf-panel .ws2-label { display: inline-flex; align-items: baseline; gap: 8px; font-size: 12px; font-weight: 600; }
6839
- #codex-overleaf-panel .ws2-count { color: var(--ws-muted); font-size: 10px; font-weight: 400; font-variant-numeric: tabular-nums; }
7376
+ #codex-overleaf-panel .ws2-label { display: inline-flex; align-items: baseline; gap: 8px; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
7377
+ #codex-overleaf-panel .ws2-count { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); font-weight: 400; font-variant-numeric: tabular-nums; }
6840
7378
  #codex-overleaf-panel .ws2-library-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; }
6841
7379
  #codex-overleaf-panel .ws2 [hidden] { display: none !important; }
6842
7380
  #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; }
6843
7381
  #codex-overleaf-panel .ws2-empty-icon { padding: 8px; border-radius: 9px; color: var(--ws-accent); background: var(--ws-soft); flex: 0 0 auto; }
6844
7382
  #codex-overleaf-panel .ws2-empty-icon svg { width: 20px; height: 20px; }
6845
- #codex-overleaf-panel .ws2-empty strong { font-size: 12px; font-weight: 500; }
6846
- #codex-overleaf-panel .ws2-empty p { margin: 4px 0 0; font-size: 11px; line-height: 1.55; color: var(--ws-muted); }
7383
+ #codex-overleaf-panel .ws2-empty strong { font-size: var(--tl-text-sm, 12px); font-weight: 500; }
7384
+ #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); }
6847
7385
  #codex-overleaf-panel .ws2-source { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--ws-line); }
6848
7386
  #codex-overleaf-panel .ws2-source:last-child { border-bottom: 0; }
6849
7387
  #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; }
6850
7388
  #codex-overleaf-panel .ws2-source-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
6851
- #codex-overleaf-panel .ws2-source-copy strong { font-size: 12px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
6852
- #codex-overleaf-panel .ws2-source-copy small { color: var(--ws-muted); font-size: 11px; line-height: 1.45; }
6853
- #codex-overleaf-panel .ws2-caption { margin: 8px 0 0; color: var(--ws-muted); font-size: 10px; line-height: 1.6; }
7389
+ #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; }
7390
+ #codex-overleaf-panel .ws2-source-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.45; }
7391
+ #codex-overleaf-panel .ws2-caption { margin: 8px 0 0; color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.6; }
6854
7392
  #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; }
6855
7393
  #codex-overleaf-panel .ws2-picker-heading { display: flex; align-items: center; gap: 3px; padding: 9px 10px 4px 14px; }
6856
- #codex-overleaf-panel .ws2-picker-heading strong { flex: 1; font-size: 12px; font-weight: 600; }
7394
+ #codex-overleaf-panel .ws2-picker-heading strong { flex: 1; font-size: var(--tl-text-sm, 12px); font-weight: 600; }
6857
7395
  #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); }
6858
7396
  #codex-overleaf-panel .ws2-search:focus-within { border-color: var(--ws-accent); box-shadow: 0 0 0 2px var(--ws-soft); }
6859
- #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; }
7397
+ #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; }
6860
7398
  #codex-overleaf-panel .ws2-search input:focus-visible { outline: none; }
6861
7399
  #codex-overleaf-panel .ws2-search input::placeholder { color: var(--ws-muted); }
6862
7400
  #codex-overleaf-panel .ws2-filters { display: flex; align-items: center; gap: 3px; padding: 0 12px 8px; }
6863
- #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; }
7401
+ #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; }
6864
7402
  #codex-overleaf-panel .ws2-filter[aria-pressed="true"] { background: var(--ws-soft); color: var(--ws-accent); font-weight: 500; }
6865
7403
  #codex-overleaf-panel .ws2-projects { max-height: 238px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 0 6px 5px; }
6866
7404
  #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; }
6867
7405
  #codex-overleaf-panel .ws2-project:hover { background: var(--tl-hover); }
6868
7406
  #codex-overleaf-panel .ws2-project[data-selected="true"] { background: var(--ws-soft); }
6869
7407
  #codex-overleaf-panel .ws2-project-copy { display: grid; min-width: 0; gap: 3px; }
6870
- #codex-overleaf-panel .ws2-project-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; line-height: 1.45; font-weight: 500; }
6871
- #codex-overleaf-panel .ws2-project-copy small { color: var(--ws-muted); font-size: 10px; line-height: 1.4; }
7408
+ #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; }
7409
+ #codex-overleaf-panel .ws2-project-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.4; }
6872
7410
  #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; }
6873
7411
  #codex-overleaf-panel .ws2-check:checked { background: var(--ws-accent) !important; border-color: var(--ws-accent) !important; }
6874
7412
  #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); }
6875
7413
  #codex-overleaf-panel[data-theme="dark"] .ws2-check:checked::after { border-color: #14271b; }
6876
7414
  #codex-overleaf-panel .ws2-check:disabled { cursor: default; opacity: .5; }
6877
- #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; }
7415
+ #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; }
6878
7416
  #codex-overleaf-panel .ws2-picker-error { flex-direction: column; align-items: flex-start; text-align: left; }
6879
- #codex-overleaf-panel .ws2-picker-error strong { color: var(--tl-fg-1); font-size: 12px; font-weight: 500; }
7417
+ #codex-overleaf-panel .ws2-picker-error strong { color: var(--tl-fg-1); font-size: var(--tl-text-sm, 12px); font-weight: 500; }
6880
7418
  #codex-overleaf-panel .ws2-picker-error p { margin: 0; line-height: 1.6; }
6881
7419
  #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); }
6882
- #codex-overleaf-panel .ws2-picker-footer > span { font-size: 11px; color: var(--ws-muted); }
7420
+ #codex-overleaf-panel .ws2-picker-footer > span { font-size: var(--tl-text-xs, 11px); color: var(--ws-muted); }
6883
7421
  #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); }
6884
7422
  #codex-overleaf-panel .ws2-action-copy { display: grid; gap: 4px; min-width: 0; flex: 1; }
6885
- #codex-overleaf-panel .ws2-action-copy > span { color: var(--tl-fg-2); font-size: 11px; line-height: 1.5; }
6886
- #codex-overleaf-panel .ws2-action-copy small { color: var(--ws-muted); font-size: 10px; line-height: 1.5; }
7423
+ #codex-overleaf-panel .ws2-action-copy > span { color: var(--tl-fg-2); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
7424
+ #codex-overleaf-panel .ws2-action-copy small { color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); line-height: 1.5; }
6887
7425
  #codex-overleaf-panel .ws2-actions > button { flex: 0 0 auto; }
6888
7426
  #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); }
6889
7427
  #codex-overleaf-panel .ws2-progress-title { display: flex; align-items: center; gap: 8px; }
6890
- #codex-overleaf-panel .ws2-progress-title strong { font-size: 12px; font-weight: 500; }
6891
- #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; }
7428
+ #codex-overleaf-panel .ws2-progress-title strong { font-size: var(--tl-text-sm, 12px); font-weight: 500; }
7429
+ #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; }
6892
7430
  #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; }
6893
7431
  #codex-overleaf-panel .ws2-steps { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px; }
6894
- #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; }
7432
+ #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); }
6895
7433
  #codex-overleaf-panel .ws2-steps > span[data-active="true"] { border-color: var(--ws-accent); color: var(--ws-accent); }
6896
- #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; }
7434
+ #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; }
6897
7435
  #codex-overleaf-panel .ws2-status[data-tone="error"] { color: var(--ws-danger); }
6898
7436
  #codex-overleaf-panel .ws2-status[data-tone="success"] { color: var(--ws-accent); }
6899
7437
  #codex-overleaf-panel .ws2-preview { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ws-line); animation: ws2-enter 150ms ease-out; }
6900
7438
  #codex-overleaf-panel .ws2-preview-tabs { display: flex; flex-wrap: wrap; gap: 3px; margin-bottom: 12px; }
6901
- #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; }
6902
- #codex-overleaf-panel .ws2-guide-body h4 { font-size: 12px; font-weight: 600; color: var(--tl-fg-1); margin: 15px 0 6px; }
7439
+ #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; }
7440
+ #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; }
6903
7441
  #codex-overleaf-panel .ws2-guide-body h4:first-child { margin-top: 0; }
6904
7442
  #codex-overleaf-panel .ws2-guide-body p { margin: 0 0 10px; white-space: pre-wrap; overflow-wrap: anywhere; }
6905
7443
  #codex-overleaf-panel .ws2-guide-body ul { padding-left: 18px; margin: 0 0 10px; }
6906
- #codex-overleaf-panel .ws2-skill-source { margin-top: 12px; color: var(--ws-muted); font-size: 11px; }
7444
+ #codex-overleaf-panel .ws2-skill-source { margin-top: 12px; color: var(--ws-muted); font-size: var(--tl-text-xs, 11px); }
6907
7445
  #codex-overleaf-panel .ws2-skill-source summary { cursor: pointer; }
6908
- #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; }
7446
+ #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; }
6909
7447
  @keyframes ws2-enter { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
6910
7448
  @keyframes ws2-breathe { 50% { opacity: .35; } }
6911
7449
  @media (max-width: 600px) {
@@ -6922,19 +7460,29 @@
6922
7460
  /* Run presence: animated brand mark, rotating label, and the ∎ settled summary. */
6923
7461
  #codex-overleaf-panel .codex-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
6924
7462
  #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; }
6925
- #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; }
7463
+ /* Close buttons draw the shared line icon instead of a font × glyph. */
7464
+ #codex-overleaf-panel .codex-close-glyph { display: block; width: 12px; height: 12px; margin: auto; stroke-width: 1.6; }
7465
+ #codex-overleaf-panel :is(.codex-context-summary-remove, .codex-attachment-preview-dialog-close, .codex-toast-close) { display: inline-grid; place-items: center; padding: 0; }
7466
+ #codex-overleaf-panel .codex-context-summary-remove .codex-close-glyph,
7467
+ #codex-overleaf-panel .codex-context-chip [data-context-clear] .codex-close-glyph { width: 10px; height: 10px; }
7468
+ #codex-overleaf-panel .codex-attachment-preview-dialog-close .codex-close-glyph { width: 14px; height: 14px; }
7469
+ #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; }
6926
7470
  #codex-overleaf-panel .run-presentation-workflow .run-process summary:has(.run-status[data-presence])::before { display: none; }
6927
7471
  #codex-overleaf-panel .run-presentation-workflow .run-process summary:has(.run-status[data-presence]) { flex-wrap: nowrap; }
6928
7472
  #codex-overleaf-panel .run-status[data-presence="running"] { color: var(--tl-fg-2) !important; }
7473
+ /* Settled rows mix type sizes (the compile chip, the Q.E.D. note): text shares one baseline, the ∎ mark stays centred. */
6929
7474
  #codex-overleaf-panel .run-status[data-presence="done"],
6930
- #codex-overleaf-panel .run-status[data-presence="stopped"] { flex-wrap: wrap; row-gap: 2px; color: var(--tl-fg-2) !important; }
7475
+ #codex-overleaf-panel .run-status[data-presence="stopped"] { flex-wrap: wrap; row-gap: 2px; align-items: baseline; color: var(--tl-fg-2) !important; }
7476
+ #codex-overleaf-panel .run-status:is([data-presence="done"], [data-presence="stopped"]) > .run-qed { align-self: center; }
6931
7477
  #codex-overleaf-panel .run-status[data-presence="failed"] { color: var(--tl-fail) !important; }
7478
+ #codex-overleaf-panel .transcript-turn .run-status[data-presence="not-started"] { color: var(--tl-review) !important; }
7479
+ #codex-overleaf-panel .transcript-turn .run-status[data-presence="not-started-cancelled"] { color: var(--tl-fg-2) !important; }
6932
7480
  #codex-overleaf-panel .run-presence-label { display: grid; flex: 0 1 auto; min-width: 0; overflow: hidden; font-weight: 560; }
6933
7481
  #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); }
6934
7482
  #codex-overleaf-panel .run-presence-label > .is-in { animation: tl-rise var(--tl-m-slow) var(--tl-m-ease); }
6935
7483
  #codex-overleaf-panel .run-presence-label > .is-out { opacity: 0; transform: translateY(-4px); }
6936
7484
  #codex-overleaf-panel .run-presence-label code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
6937
- #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; }
7485
+ #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; }
6938
7486
  #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; }
6939
7487
  #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%); }
6940
7488
  #codex-overleaf-panel .run-mark { position: relative; display: inline-block; flex: none; width: 18px; height: 18px; }
@@ -6952,8 +7500,8 @@
6952
7500
  #codex-overleaf-panel .run-summary-sep { color: var(--tl-fg-4); }
6953
7501
  #codex-overleaf-panel .run-summary-add { color: var(--tl-ok); }
6954
7502
  #codex-overleaf-panel .run-summary-del { color: var(--tl-fail); }
6955
- #codex-overleaf-panel .run-summary-stopped { color: var(--tl-fg-3); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; }
6956
- #codex-overleaf-panel .run-summary-qed { color: var(--tl-ok); font-family: KaTeX_Main, "Times New Roman", serif; font-style: italic; font-size: 13px; }
7503
+ #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); }
7504
+ #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); }
6957
7505
  #codex-overleaf-panel .run-status[data-presence] > span:not(.codex-sr-only) { animation: tl-rise var(--tl-m-slow) var(--tl-m-ease) both; }
6958
7506
  #codex-overleaf-panel .run-status[data-presence="done"]:not(:has(.is-settling)) > span,
6959
7507
  #codex-overleaf-panel .run-status[data-presence="stopped"]:not(:has(.is-settling)) > span { animation: none; }
@@ -6987,11 +7535,11 @@
6987
7535
  #codex-overleaf-panel .run-empty-mark .run-mark { width: 60px; height: 60px; filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.24)); }
6988
7536
  #codex-overleaf-panel .run-empty-mark .run-mark-leaf { animation: tl-sway 1.3s ease-in-out 2 alternate; }
6989
7537
  #codex-overleaf-panel .run-empty-mark:hover .run-mark-leaf { animation: tl-sway 1.3s ease-in-out infinite alternate; }
6990
- #codex-overleaf-panel .empty-runs-title { color: var(--tl-fg-1); font-size: 14px; font-weight: 600; }
6991
- #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; }
7538
+ #codex-overleaf-panel .empty-runs-title { color: var(--tl-fg-1); font-size: var(--tl-text-base, 14px); font-weight: 600; }
7539
+ #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; }
6992
7540
  #codex-overleaf-panel .run-empty-project span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
6993
7541
  #codex-overleaf-panel .run-empty-project .codex-glyph { width: 12px; height: 12px; }
6994
- #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; }
7542
+ #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; }
6995
7543
  #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; }
6996
7544
  #codex-overleaf-panel .run-empty-tip-text { flex: 1; min-width: 0; animation: tl-rise var(--tl-m-base) var(--tl-m-ease); }
6997
7545
  #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; }
@@ -7011,7 +7559,7 @@
7011
7559
 
7012
7560
  /* Written-changes receipt: one folded row per file; inside, only changed lines
7013
7561
  with word-level marks. Prose font, faint washes, no status labels. */
7014
- #codex-overleaf-panel .run-written-changes { display: grid; gap: 2px; margin: 4px 0 6px; font-size: 12px; line-height: 1.6; }
7562
+ #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; }
7015
7563
  #codex-overleaf-panel .run-written-file { min-width: 0; border-radius: 6px; }
7016
7564
  #codex-overleaf-panel .run-written-file[open] { background: var(--tl-surface-1); }
7017
7565
  #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; }
@@ -7021,17 +7569,213 @@
7021
7569
  #codex-overleaf-panel .run-written-file-sum:hover { background: var(--tl-hover); }
7022
7570
  #codex-overleaf-panel .run-written-file-sum:focus-visible { outline: 2px solid var(--tl-accent); outline-offset: 1px; }
7023
7571
  #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; }
7024
- #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; }
7025
- #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; }
7572
+ #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); }
7573
+ #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; }
7026
7574
  #codex-overleaf-panel .run-written-add { color: var(--tl-ok); }
7027
7575
  #codex-overleaf-panel .run-written-del { color: var(--tl-fail); }
7028
7576
  #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); }
7029
- #codex-overleaf-panel .run-written-hunk { margin: 6px 0 2px; color: var(--tl-fg-4); font-size: 11px; font-variant-numeric: tabular-nums; }
7577
+ #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; }
7030
7578
  #codex-overleaf-panel .run-written-row { min-height: 1.6em; color: var(--tl-fg-3); white-space: pre-wrap; overflow-wrap: anywhere; }
7031
7579
  #codex-overleaf-panel .run-written-row.is-changed { color: var(--tl-fg-1); }
7032
- #codex-overleaf-panel .run-written-gap, #codex-overleaf-panel .run-written-note { color: var(--tl-fg-4); font-size: 11px; font-style: italic; }
7580
+ #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; }
7033
7581
  #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; }
7034
7582
  #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); }
7035
7583
  @media (prefers-reduced-motion: reduce) {
7036
7584
  #codex-overleaf-panel .run-written-body, #codex-overleaf-panel .run-written-file-sum::before { animation: none; transition: none; }
7037
7585
  }
7586
+
7587
+ /* Context compaction marks. A manual /compact run renders as a command tag and
7588
+ a divider; an automatic compaction leaves a divider above that turn's answer.
7589
+ Neither occupies the three-row activity window. */
7590
+ #codex-overleaf-panel .run-compaction { margin: 12px 0 6px; }
7591
+ #codex-overleaf-panel .run-compaction[hidden] { display: none; }
7592
+ #codex-overleaf-panel .run-compaction[data-kind="auto"] { margin: 10px 0 12px; }
7593
+ #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); }
7594
+ #codex-overleaf-panel .run-compaction-line::before,
7595
+ #codex-overleaf-panel .run-compaction-line::after { content: ""; height: 1px; background: var(--tl-border-strong); }
7596
+ #codex-overleaf-panel .run-compaction-label { display: inline-flex; align-items: center; gap: 6px; min-width: 0; white-space: nowrap; }
7597
+ #codex-overleaf-panel .run-compaction-title { overflow: hidden; text-overflow: ellipsis; }
7598
+ #codex-overleaf-panel .run-compaction-glyph { display: inline-grid; place-items: center; color: var(--tl-accent); }
7599
+ #codex-overleaf-panel .run-compaction-glyph .codex-glyph { width: 13px; height: 13px; stroke-width: 1.5; }
7600
+ #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; }
7601
+ #codex-overleaf-panel .run-compaction-time { color: var(--tl-fg-4); font-variant-numeric: tabular-nums; }
7602
+ #codex-overleaf-panel .run-compaction-time:empty { display: none; }
7603
+ #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; }
7604
+ #codex-overleaf-panel .run-compaction-sub[hidden] { display: none; }
7605
+ #codex-overleaf-panel .run-compaction[data-state="running"] .run-compaction-line::before,
7606
+ #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; }
7607
+ #codex-overleaf-panel .run-compaction:is([data-state="failed"], [data-state="interrupted"]) :is(.run-compaction-label, .run-compaction-glyph) { color: var(--tl-fail); }
7608
+ #codex-overleaf-panel .run-compaction:is([data-state="failed"], [data-state="interrupted"]) .run-compaction-line::before,
7609
+ #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); }
7610
+ #codex-overleaf-panel .run-compaction[data-state="cancelled"] :is(.run-compaction-label, .run-compaction-glyph) { color: var(--tl-fg-3); }
7611
+
7612
+ #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; }
7613
+ #codex-overleaf-panel .run-card[data-operation="compact"] :is(.run-turn-meta, .run-result-actions, .run-final-answer__facts) { display: none; }
7614
+ /* Running and completed compactions are fully described by the divider; other
7615
+ outcomes keep the status row and report so technical details stay reachable. */
7616
+ #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; }
7617
+ @media (prefers-reduced-motion: reduce) {
7618
+ #codex-overleaf-panel .run-compaction *, #codex-overleaf-panel .run-compaction-line::before, #codex-overleaf-panel .run-compaction-line::after,
7619
+ #codex-overleaf-panel .run-compaction-glyph::before { animation: none !important; }
7620
+ }
7621
+
7622
+ /* Native selects draw their option list with the surrounding surface where the
7623
+ browser supports customizable selects. The element keeps its value, change
7624
+ events, keyboard and accessibility behavior; other browsers keep the system
7625
+ popup. Each surface maps its own tokens onto the --codex-select-* set. */
7626
+ #codex-overleaf-panel select.codex-set-select,
7627
+ .codex-provider-dialog-root select {
7628
+ --codex-select-surface: var(--tl-surface-2, #232323);
7629
+ --codex-select-line: var(--tl-border-strong, #3a3a3a);
7630
+ --codex-select-fg: var(--tl-fg-1, #e4e4e4);
7631
+ --codex-select-muted: var(--tl-fg-3, #8a8a8a);
7632
+ --codex-select-hover: var(--tl-hover, #2a2d2e);
7633
+ --codex-select-accent: var(--tl-accent, #6f9fd8);
7634
+ }
7635
+ #codex-overleaf-panel .codex-settings-workbench select.codex-set-select,
7636
+ #codex-overleaf-panel .codex-provider-dialog-root[data-embedded="true"] select {
7637
+ --codex-select-surface: var(--wb-surface);
7638
+ --codex-select-line: var(--wb-line);
7639
+ --codex-select-fg: var(--wb-fg);
7640
+ --codex-select-muted: var(--wb-muted);
7641
+ --codex-select-hover: var(--wb-input);
7642
+ --codex-select-accent: var(--wb-green);
7643
+ }
7644
+ .codex-provider-dialog-root:not([data-embedded="true"]) select {
7645
+ --codex-select-surface: var(--provider-surface-raised);
7646
+ --codex-select-line: var(--provider-line);
7647
+ --codex-select-fg: var(--provider-text);
7648
+ --codex-select-muted: var(--provider-muted);
7649
+ --codex-select-hover: var(--provider-hover);
7650
+ --codex-select-accent: var(--provider-accent);
7651
+ }
7652
+ @supports (appearance: base-select) {
7653
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select),
7654
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker(select) { appearance: base-select; }
7655
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) {
7656
+ display: inline-flex;
7657
+ align-items: center;
7658
+ justify-content: space-between;
7659
+ gap: 8px;
7660
+ }
7661
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker-icon {
7662
+ content: "";
7663
+ flex: 0 0 auto;
7664
+ width: 10px;
7665
+ height: 10px;
7666
+ background: var(--codex-select-muted);
7667
+ -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;
7668
+ 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;
7669
+ transition: rotate 140ms ease;
7670
+ }
7671
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select):open::picker-icon { rotate: 180deg; }
7672
+ /* This shell already draws its own chevron. */
7673
+ .codex-provider-test-select-shell select::picker-icon { display: none; }
7674
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select)::picker(select) {
7675
+ box-sizing: border-box;
7676
+ margin: 4px 0;
7677
+ padding: 4px;
7678
+ border: 1px solid var(--codex-select-line);
7679
+ border-radius: 8px;
7680
+ background: var(--codex-select-surface);
7681
+ color: var(--codex-select-fg);
7682
+ box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.14);
7683
+ }
7684
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option {
7685
+ display: flex;
7686
+ align-items: center;
7687
+ gap: 10px;
7688
+ min-height: 30px;
7689
+ padding: 0 10px 0 9px;
7690
+ border-radius: 6px;
7691
+ background: transparent;
7692
+ color: var(--codex-select-fg);
7693
+ font: inherit;
7694
+ font-size: var(--tl-text-sm, 12px);
7695
+ line-height: 1.3;
7696
+ white-space: nowrap;
7697
+ cursor: pointer;
7698
+ }
7699
+ :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; }
7700
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option:checked { font-weight: 500; }
7701
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option:disabled { opacity: 0.5; cursor: default; }
7702
+ :is(#codex-overleaf-panel select.codex-set-select, .codex-provider-dialog-root select) option::checkmark {
7703
+ order: 1;
7704
+ display: block;
7705
+ width: 12px;
7706
+ height: 12px;
7707
+ margin-left: auto;
7708
+ content: "";
7709
+ background: var(--codex-select-accent);
7710
+ -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;
7711
+ 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;
7712
+ }
7713
+ }
7714
+
7715
+ /* Finished outcomes share the not-started projection; archived status is unchanged. */
7716
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-status:not([data-presence="done"]),
7717
+ #codex-overleaf-panel .run-status[data-presence="didnt-finish"],
7718
+ #codex-overleaf-panel .run-status[data-presence="partly-written"],
7719
+ #codex-overleaf-panel .run-status[data-presence="not-written"] { color: var(--tl-review) !important; }
7720
+ #codex-overleaf-panel .run-status[data-presence="check-overleaf"] { color: var(--tl-fail) !important; }
7721
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-status { color: var(--tl-fg-2) !important; }
7722
+ #codex-overleaf-panel .run-card:has(.run-outcome [data-recovery-action="edit-resend"]) [data-run-edit] { display: none; }
7723
+ #codex-overleaf-panel .run-outcome { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--tl-border); border-radius: 8px; display: grid; gap: 6px; }
7724
+ #codex-overleaf-panel .run-outcome > * { min-width: 0; }
7725
+ /* A finished run shows its report right under the collapsed process row, so
7726
+ header-to-content matches the prompt-to-header rhythm. An expanded process
7727
+ keeps the usual gap between its activity rows and the report. */
7728
+ #codex-overleaf-panel .run-process:not([open]) ~ .run-activity-list:empty { margin-top: 0; }
7729
+ #codex-overleaf-panel .run-process:not([open]) ~ .run-report > .run-completion-report { margin-top: 0; }
7730
+ #codex-overleaf-panel .run-completion-report > .run-outcome:first-child { margin-top: 0; }
7731
+ #codex-overleaf-panel .run-outcome .run-final-answer { margin: 0; display: grid; gap: 6px; line-height: 1.45; }
7732
+ #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); }
7733
+ #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); }
7734
+ #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; }
7735
+ #codex-overleaf-panel .run-outcome-next dt { margin: 0; font-weight: 600; color: var(--tl-fg-1); }
7736
+ #codex-overleaf-panel .run-outcome-next dd { margin: 0; color: var(--tl-fg-3); }
7737
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action {
7738
+ justify-self: start; margin: 2px 0 0; font: inherit; font-size: var(--tl-text-sm, 12px); font-weight: 600; line-height: 1.4;
7739
+ padding: 4px 10px; border-radius: 6px; cursor: pointer;
7740
+ background: color-mix(in srgb, var(--tl-action) 13%, transparent); color: var(--tl-action);
7741
+ border: 1px solid transparent;
7742
+ }
7743
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action:hover { background: color-mix(in srgb, var(--tl-action) 20%, transparent); }
7744
+ #codex-overleaf-panel .run-outcome .run-final-answer__recovery-action:focus-visible { outline: 2px solid var(--tl-action); outline-offset: 2px; }
7745
+ #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); }
7746
+ #codex-overleaf-panel .run-outcome .run-outcome-files li { margin: 0; display: grid; grid-template-columns: 12px 1fr; column-gap: 6px; align-items: center; }
7747
+ #codex-overleaf-panel .run-outcome-file-icon,
7748
+ #codex-overleaf-panel .run-outcome-file-icon .codex-glyph { width: 12px; height: 12px; display: block; }
7749
+ #codex-overleaf-panel .run-outcome-file-icon .codex-glyph { stroke-width: 1.5; }
7750
+ #codex-overleaf-panel .run-outcome-files [data-written="true"] { color: var(--tl-ok); }
7751
+ #codex-overleaf-panel .run-outcome-files [data-written="false"] { color: var(--tl-review); }
7752
+ #codex-overleaf-panel .run-outcome-file-name { color: var(--tl-fg-1); }
7753
+ #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); }
7754
+ #codex-overleaf-panel .run-status[data-presence="partly-written"] > .codex-glyph { width: 12px; height: 12px; }
7755
+ #codex-overleaf-panel .run-outcome-compile > .run-final-heading { color: var(--tl-review); }
7756
+ #codex-overleaf-panel .run-outcome-details { margin: 0; color: var(--tl-fg-3); font-size: var(--tl-text-sm, 12px); line-height: 1.45; }
7757
+ /* Outside a card (after the compile box in a successful report) the grid gap does not apply. */
7758
+ #codex-overleaf-panel .run-outcome-compile + .run-outcome-details { margin-top: 8px; }
7759
+ /* A report without a facts summary keeps its Details toggle and the actions on one row. */
7760
+ #codex-overleaf-panel .run-outcome-footer { display: flex; align-items: flex-start; gap: 2px 8px; }
7761
+ #codex-overleaf-panel .run-outcome-compile + .run-outcome-footer { margin-top: 8px; }
7762
+ #codex-overleaf-panel .run-outcome-footer > .run-outcome-details { flex: 1 1 auto; min-width: 0; }
7763
+ #codex-overleaf-panel .run-outcome-footer > .run-outcome-details > summary { min-height: 26px; margin: 0 -4px; padding: 0 4px; }
7764
+ #codex-overleaf-panel .run-outcome-footer > .run-result-actions { flex: 0 0 auto; margin: 0 0 0 auto; }
7765
+ #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; }
7766
+ #codex-overleaf-panel .run-outcome-details > summary:hover { background: var(--tl-surface-1); color: var(--tl-fg-2); }
7767
+ #codex-overleaf-panel .run-outcome-details > summary::-webkit-details-marker { display: none; }
7768
+ #codex-overleaf-panel .run-outcome-details > summary::after { content: "›"; transition: transform .15s; }
7769
+ #codex-overleaf-panel .run-outcome-details[open] > summary::after { transform: rotate(90deg); }
7770
+ #codex-overleaf-panel .run-outcome-details > summary:focus-visible { outline: 2px solid var(--tl-action); outline-offset: 2px; }
7771
+ #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); }
7772
+ #codex-overleaf-panel .run-outcome-details .run-final-answer__meta { margin: 0; row-gap: 3px; font: inherit; }
7773
+ #codex-overleaf-panel .run-outcome-details .run-final-answer__meta :is(dt, dd) { margin: 0; color: inherit; font: inherit; letter-spacing: normal; }
7774
+ #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); }
7775
+ @media (prefers-reduced-motion: reduce) {
7776
+ #codex-overleaf-panel .run-outcome-details > summary::after { transition: none; }
7777
+ }
7778
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-workflow-tool[data-state="failed"] > summary :is(.run-workflow-tool-state, .run-workflow-icon),
7779
+ #codex-overleaf-panel .run-card[data-outcome-tone="warning"] .run-process summary::before { color: var(--tl-review); }
7780
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-workflow-tool[data-state="failed"] > summary :is(.run-workflow-tool-state, .run-workflow-icon),
7781
+ #codex-overleaf-panel .run-card[data-outcome-tone="neutral"] .run-process summary::before { color: var(--tl-fg-3); }