codex-overleaf-link 2.5.1 → 2.6.0

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