@hirohsu/user-web-feedback 2.8.21 → 2.8.23

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.
@@ -111,6 +111,13 @@ export function clearSubmissionInputs() {
111
111
  export async function generateAIReply() {
112
112
  const workSummary = getWorkSummary();
113
113
  if (!workSummary) {
114
+ showConversationPanel();
115
+ updateConversationTitle("AI 回覆");
116
+ addConversationEntry(ConversationEntryType.ERROR, "目前沒有活躍的 AI 工作匯報。\n\n可能原因:\n1. 尚未有 AI 代理透過 MCP 發送工作匯報\n2. 會話已過期或尚未建立\n3. 伺服器剛重啟,尚未收到任何匯報", {
117
+ title: "無法取得 AI 訊息",
118
+ collapsed: false,
119
+ timestamp: Date.now(),
120
+ });
114
121
  showToast("error", "錯誤", "無法取得 AI 訊息");
115
122
  return;
116
123
  }
@@ -814,6 +821,13 @@ function buildLocalPromptPreview(workSummary, userContext, toolResults) {
814
821
  export async function generateAIReplyWithTools() {
815
822
  const workSummary = getWorkSummary();
816
823
  if (!workSummary) {
824
+ showConversationPanel();
825
+ updateConversationTitle("AI 回覆");
826
+ addConversationEntry(ConversationEntryType.ERROR, "目前沒有活躍的 AI 工作匯報。\n\n可能原因:\n1. 尚未有 AI 代理透過 MCP 發送工作匯報\n2. 會話已過期或尚未建立\n3. 伺服器剛重啟,尚未收到任何匯報", {
827
+ title: "無法取得 AI 訊息",
828
+ collapsed: false,
829
+ timestamp: Date.now(),
830
+ });
817
831
  showToast("error", "錯誤", "無法取得 AI 訊息");
818
832
  return;
819
833
  }
@@ -1961,303 +1961,494 @@ textarea.form-control {
1961
1961
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
1962
1962
  }
1963
1963
 
1964
- /* ============ Conversation Panel Styles ============ */
1964
+ /* ============ AI Console ============ */
1965
1965
 
1966
- .ai-conversation-overlay {
1966
+ :root {
1967
+ --console-blue: #3b82f6;
1968
+ --console-green: #22c55e;
1969
+ --console-yellow: #eab308;
1970
+ --console-red: #ef4444;
1971
+ --console-purple: #a855f7;
1972
+ --console-cyan: #06b6d4;
1973
+ --console-orange: #f97316;
1974
+ }
1975
+
1976
+ .ai-console-overlay {
1967
1977
  position: fixed;
1968
- top: 0;
1969
- left: 0;
1970
- right: 0;
1971
- bottom: 0;
1972
- background: rgba(0, 0, 0, 0.85);
1978
+ inset: 0;
1979
+ background: rgba(0, 0, 0, 0.7);
1980
+ backdrop-filter: blur(4px);
1973
1981
  z-index: 2000;
1974
1982
  display: flex;
1975
1983
  align-items: center;
1976
1984
  justify-content: center;
1985
+ animation: fadeIn 0.15s ease;
1977
1986
  }
1978
1987
 
1979
- .conversation-panel {
1988
+ @keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } }
1989
+
1990
+ .ai-console {
1980
1991
  background: var(--bg-secondary);
1981
1992
  border: 1px solid var(--border-color);
1982
- border-radius: var(--radius-lg);
1983
- width: 90%;
1984
- max-width: 900px;
1985
- height: 85vh;
1986
- max-height: 85vh;
1993
+ border-radius: 16px;
1994
+ width: 92%;
1995
+ max-width: 960px;
1996
+ height: 88vh;
1997
+ max-height: 88vh;
1987
1998
  display: flex;
1988
1999
  flex-direction: column;
1989
- box-shadow: var(--shadow-lg);
2000
+ box-shadow: 0 24px 64px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05);
1990
2001
  overflow: hidden;
2002
+ animation: slideUp 0.2s ease;
1991
2003
  }
1992
2004
 
1993
- .conversation-header {
2005
+ @keyframes slideUp { from { transform: translateY(16px); opacity: 0 } to { transform: translateY(0); opacity: 1 } }
2006
+
2007
+ /* ── Header ── */
2008
+ .console-header {
1994
2009
  display: flex;
1995
2010
  justify-content: space-between;
1996
2011
  align-items: center;
1997
- padding: var(--spacing-md) var(--spacing-lg);
2012
+ padding: 12px 20px;
1998
2013
  border-bottom: 1px solid var(--border-color);
1999
2014
  background: var(--bg-tertiary);
2000
- border-radius: var(--radius-lg) var(--radius-lg) 0 0;
2015
+ border-radius: 16px 16px 0 0;
2016
+ gap: 12px;
2017
+ flex-wrap: wrap;
2001
2018
  }
2002
2019
 
2003
- .conversation-title {
2020
+ .console-title-group {
2004
2021
  display: flex;
2005
2022
  align-items: center;
2006
- gap: var(--spacing-sm);
2023
+ gap: 10px;
2024
+ min-width: 0;
2025
+ }
2026
+
2027
+ .console-logo {
2028
+ font-size: 20px;
2029
+ filter: drop-shadow(0 0 6px rgba(59,130,246,0.5));
2030
+ }
2031
+
2032
+ .console-title {
2033
+ margin: 0;
2007
2034
  font-size: 16px;
2008
- font-weight: 600;
2035
+ font-weight: 700;
2009
2036
  color: var(--text-primary);
2037
+ white-space: nowrap;
2038
+ overflow: hidden;
2039
+ text-overflow: ellipsis;
2010
2040
  }
2011
2041
 
2012
- .conversation-mode {
2042
+ .console-mode-badge {
2043
+ font-size: 11px;
2044
+ font-weight: 600;
2045
+ padding: 3px 10px;
2046
+ border-radius: 20px;
2047
+ background: var(--bg-hover);
2048
+ color: var(--text-secondary);
2049
+ white-space: nowrap;
2050
+ transition: background 0.2s, color 0.2s;
2051
+ }
2052
+
2053
+ .console-mode-badge.mode-api {
2054
+ background: rgba(59,130,246,0.15);
2055
+ color: var(--console-blue);
2056
+ }
2057
+
2058
+ .console-mode-badge.mode-cli {
2059
+ background: rgba(168,85,247,0.15);
2060
+ color: var(--console-purple);
2061
+ }
2062
+
2063
+ .console-actions {
2013
2064
  display: flex;
2014
2065
  align-items: center;
2015
- gap: var(--spacing-sm);
2066
+ gap: 12px;
2067
+ }
2068
+
2069
+ /* ── Tabs ── */
2070
+ .console-tabs {
2071
+ display: flex;
2072
+ background: var(--bg-primary);
2073
+ border-radius: 8px;
2074
+ padding: 2px;
2075
+ gap: 2px;
2076
+ }
2077
+
2078
+ .tab-btn {
2079
+ padding: 5px 14px;
2016
2080
  font-size: 12px;
2081
+ font-weight: 600;
2082
+ border: none;
2083
+ border-radius: 6px;
2084
+ background: transparent;
2017
2085
  color: var(--text-secondary);
2018
- padding: 4px 12px;
2086
+ cursor: pointer;
2087
+ transition: all 0.15s;
2088
+ display: flex;
2089
+ align-items: center;
2090
+ gap: 6px;
2091
+ }
2092
+
2093
+ .tab-btn:hover { background: var(--bg-hover); color: var(--text-primary); }
2094
+ .tab-btn.active { background: var(--bg-secondary); color: var(--text-primary); box-shadow: 0 1px 3px rgba(0,0,0,0.15); }
2095
+
2096
+ .history-count {
2097
+ font-size: 10px;
2098
+ min-width: 18px;
2099
+ height: 18px;
2100
+ display: inline-flex;
2101
+ align-items: center;
2102
+ justify-content: center;
2019
2103
  background: var(--bg-hover);
2020
- border-radius: 12px;
2104
+ border-radius: 9px;
2105
+ color: var(--text-secondary);
2021
2106
  }
2022
2107
 
2023
- .mode-indicator {
2024
- width: 8px;
2025
- height: 8px;
2026
- border-radius: 50%;
2027
- background: var(--text-muted);
2108
+ /* ── Debug Switch ── */
2109
+ .debug-switch {
2110
+ display: flex;
2111
+ align-items: center;
2112
+ gap: 6px;
2113
+ cursor: pointer;
2114
+ user-select: none;
2028
2115
  }
2029
2116
 
2030
- .mode-indicator.mode-api {
2031
- background: var(--accent-blue);
2117
+ .debug-switch input { display: none; }
2118
+
2119
+ .debug-switch-track {
2120
+ width: 32px;
2121
+ height: 18px;
2122
+ border-radius: 9px;
2123
+ background: var(--bg-hover);
2124
+ position: relative;
2125
+ transition: background 0.2s;
2032
2126
  }
2033
2127
 
2034
- .mode-indicator.mode-cli {
2035
- background: var(--accent-purple, #a855f7);
2128
+ .debug-switch input:checked + .debug-switch-track {
2129
+ background: var(--console-orange);
2036
2130
  }
2037
2131
 
2038
- .conversation-body {
2039
- flex: 1 1 0;
2040
- min-height: 0;
2041
- overflow-y: auto;
2042
- overflow-x: hidden;
2043
- padding: var(--spacing-md) var(--spacing-lg);
2132
+ .debug-switch-thumb {
2133
+ position: absolute;
2134
+ top: 2px;
2135
+ left: 2px;
2136
+ width: 14px;
2137
+ height: 14px;
2138
+ border-radius: 50%;
2139
+ background: white;
2140
+ transition: transform 0.2s;
2141
+ box-shadow: 0 1px 2px rgba(0,0,0,0.2);
2044
2142
  }
2045
2143
 
2046
- .conversation-entry {
2047
- border-left: 3px solid var(--border-color);
2048
- border-radius: var(--radius-sm);
2049
- background: var(--bg-tertiary);
2050
- overflow: hidden;
2051
- margin-bottom: var(--spacing-md);
2144
+ .debug-switch input:checked + .debug-switch-track .debug-switch-thumb {
2145
+ transform: translateX(14px);
2052
2146
  }
2053
2147
 
2054
- .conversation-entry.entry-prompt {
2055
- border-left-color: var(--accent-blue);
2148
+ .debug-switch-label {
2149
+ font-size: 12px;
2150
+ font-weight: 500;
2151
+ color: var(--text-secondary);
2056
2152
  }
2057
2153
 
2058
- .conversation-entry.entry-thinking {
2059
- border-left-color: var(--accent-yellow);
2154
+ /* ── Close Button ── */
2155
+ .console-close-btn {
2156
+ width: 28px;
2157
+ height: 28px;
2158
+ border: none;
2159
+ border-radius: 8px;
2160
+ background: transparent;
2161
+ color: var(--text-secondary);
2162
+ font-size: 18px;
2163
+ cursor: pointer;
2164
+ display: flex;
2165
+ align-items: center;
2166
+ justify-content: center;
2167
+ transition: all 0.15s;
2168
+ line-height: 1;
2060
2169
  }
2061
2170
 
2062
- .conversation-entry.entry-tool {
2063
- border-left-color: var(--accent-purple, #a855f7);
2171
+ .console-close-btn:hover {
2172
+ background: rgba(239,68,68,0.15);
2173
+ color: var(--console-red);
2064
2174
  }
2065
2175
 
2066
- .conversation-entry.entry-result {
2067
- border-left-color: var(--accent-cyan, #06b6d4);
2176
+ /* ── Body ── */
2177
+ .console-body {
2178
+ flex: 1 1 0;
2179
+ min-height: 0;
2180
+ overflow: hidden;
2181
+ position: relative;
2068
2182
  }
2069
2183
 
2070
- .conversation-entry.entry-ai {
2071
- border-left-color: var(--accent-green);
2184
+ .console-tab-content {
2185
+ display: none;
2186
+ height: 100%;
2187
+ overflow-y: auto;
2188
+ overflow-x: hidden;
2189
+ padding: 16px 20px;
2072
2190
  }
2073
2191
 
2074
- .conversation-entry.entry-error {
2075
- border-left-color: var(--accent-red);
2192
+ .console-tab-content.active { display: block; }
2193
+
2194
+ /* ── Entry ── */
2195
+ .console-entry {
2196
+ border-radius: 10px;
2197
+ background: var(--bg-tertiary);
2198
+ margin-bottom: 10px;
2199
+ border: 1px solid var(--border-color);
2200
+ overflow: hidden;
2201
+ position: relative;
2202
+ transition: border-color 0.2s;
2076
2203
  }
2077
2204
 
2078
- .conversation-entry.entry-debug {
2079
- border-left-color: var(--accent-orange, #f97316);
2205
+ .console-entry::before {
2206
+ content: '';
2207
+ position: absolute;
2208
+ left: 0;
2209
+ top: 0;
2210
+ bottom: 0;
2211
+ width: 3px;
2212
+ background: var(--entry-accent, var(--border-color));
2213
+ border-radius: 3px 0 0 3px;
2080
2214
  }
2081
2215
 
2082
- .conversation-header-right {
2216
+ .console-entry:hover { border-color: color-mix(in srgb, var(--entry-accent) 30%, var(--border-color)); }
2217
+
2218
+ .entry-row {
2219
+ padding: 10px 14px;
2220
+ cursor: pointer;
2083
2221
  display: flex;
2084
2222
  align-items: center;
2085
- gap: var(--spacing-sm);
2223
+ gap: 8px;
2224
+ user-select: none;
2225
+ list-style: none;
2226
+ background: transparent;
2227
+ transition: background 0.1s;
2086
2228
  }
2087
2229
 
2088
- .debug-toggle {
2230
+ .entry-row:hover { background: var(--bg-hover); }
2231
+ .entry-row::-webkit-details-marker { display: none; }
2232
+
2233
+ .entry-chevron {
2234
+ width: 16px;
2235
+ height: 16px;
2089
2236
  display: flex;
2090
2237
  align-items: center;
2091
- gap: 4px;
2092
- cursor: pointer;
2093
- font-size: 14px;
2094
- user-select: none;
2095
- opacity: 0.6;
2096
- transition: opacity 0.2s;
2238
+ justify-content: center;
2239
+ font-size: 10px;
2240
+ color: var(--text-muted);
2241
+ transition: transform 0.2s;
2097
2242
  }
2098
2243
 
2099
- .debug-toggle:hover {
2100
- opacity: 1;
2101
- }
2244
+ .entry-chevron::after { content: '▶'; }
2245
+ details[open] > .entry-row .entry-chevron { transform: rotate(90deg); }
2102
2246
 
2103
- .debug-toggle input[type="checkbox"] {
2104
- width: 14px;
2105
- height: 14px;
2106
- cursor: pointer;
2247
+ .entry-dot {
2248
+ width: 8px;
2249
+ height: 8px;
2250
+ border-radius: 50%;
2251
+ background: var(--entry-accent, var(--text-muted));
2252
+ flex-shrink: 0;
2107
2253
  }
2108
2254
 
2109
- .debug-info-grid {
2110
- display: grid;
2111
- grid-template-columns: 1fr 1fr;
2112
- gap: 4px 16px;
2113
- margin-bottom: 8px;
2114
- }
2255
+ .entry-icon { font-size: 14px; flex-shrink: 0; }
2115
2256
 
2116
- .debug-row {
2117
- display: flex;
2118
- justify-content: space-between;
2119
- padding: 3px 8px;
2120
- border-radius: 4px;
2121
- background: var(--bg-primary);
2122
- font-size: 12px;
2257
+ .entry-title {
2258
+ font-weight: 600;
2259
+ font-size: 13px;
2260
+ color: var(--text-primary);
2261
+ white-space: nowrap;
2262
+ overflow: hidden;
2263
+ text-overflow: ellipsis;
2123
2264
  }
2124
2265
 
2125
- .debug-label {
2266
+ .entry-spacer { flex: 1; }
2267
+
2268
+ .entry-badge {
2269
+ font-size: 11px;
2270
+ padding: 2px 8px;
2271
+ background: var(--bg-primary);
2272
+ border-radius: 10px;
2126
2273
  color: var(--text-secondary);
2127
2274
  font-weight: 500;
2275
+ white-space: nowrap;
2128
2276
  }
2129
2277
 
2130
- .debug-value {
2131
- color: var(--text-primary);
2278
+ .entry-time {
2279
+ font-size: 11px;
2280
+ color: var(--text-muted);
2132
2281
  font-family: "Consolas", "Monaco", monospace;
2282
+ white-space: nowrap;
2133
2283
  }
2134
2284
 
2135
- .debug-sections {
2136
- margin-top: 8px;
2285
+ .entry-body {
2286
+ padding: 12px 14px;
2287
+ border-top: 1px solid var(--border-color);
2137
2288
  }
2138
2289
 
2139
- .debug-section-title {
2290
+ .entry-code {
2291
+ margin: 0;
2292
+ padding: 10px 12px;
2293
+ background: var(--bg-primary);
2294
+ border: 1px solid var(--border-color);
2295
+ border-radius: 8px;
2296
+ font-family: "Consolas", "Monaco", "Courier New", monospace;
2297
+ font-size: 12px;
2298
+ line-height: 1.6;
2299
+ white-space: pre-wrap;
2300
+ word-break: break-word;
2301
+ max-height: 340px;
2302
+ overflow-y: auto;
2303
+ color: var(--text-primary);
2304
+ }
2305
+
2306
+ /* ── Debug Body ── */
2307
+ .dbg-body { font-size: 12px; }
2308
+
2309
+ .dbg-grid {
2310
+ display: grid;
2311
+ grid-template-columns: 1fr 1fr;
2312
+ gap: 4px;
2313
+ margin-bottom: 10px;
2314
+ }
2315
+
2316
+ .dbg-cell {
2317
+ display: flex;
2318
+ justify-content: space-between;
2319
+ padding: 4px 10px;
2320
+ border-radius: 6px;
2321
+ background: var(--bg-primary);
2322
+ }
2323
+
2324
+ .dbg-key { color: var(--text-secondary); font-weight: 500; }
2325
+ .dbg-val { color: var(--text-primary); font-family: "Consolas","Monaco",monospace; }
2326
+
2327
+ .dbg-section-title {
2140
2328
  font-size: 12px;
2141
2329
  font-weight: 600;
2142
2330
  color: var(--text-secondary);
2143
- margin-bottom: 4px;
2331
+ margin: 10px 0 4px;
2144
2332
  }
2145
2333
 
2146
- .debug-table {
2334
+ .dbg-table {
2147
2335
  width: 100%;
2148
2336
  border-collapse: collapse;
2149
2337
  font-size: 12px;
2150
- font-family: "Consolas", "Monaco", monospace;
2338
+ font-family: "Consolas","Monaco",monospace;
2339
+ margin-bottom: 8px;
2151
2340
  }
2152
2341
 
2153
- .debug-table th,
2154
- .debug-table td {
2342
+ .dbg-table th, .dbg-table td {
2155
2343
  padding: 4px 8px;
2156
2344
  border: 1px solid var(--border-color);
2157
2345
  text-align: left;
2158
2346
  }
2159
2347
 
2160
- .debug-table th {
2161
- background: var(--bg-hover);
2162
- color: var(--text-secondary);
2163
- font-weight: 600;
2164
- }
2165
-
2166
- .debug-table td {
2167
- color: var(--text-primary);
2168
- }
2348
+ .dbg-table th { background: var(--bg-hover); color: var(--text-secondary); font-weight: 600; }
2349
+ .dbg-table td { color: var(--text-primary); }
2169
2350
 
2170
- .debug-error {
2351
+ .dbg-error {
2171
2352
  margin-top: 8px;
2172
- padding: 6px 10px;
2173
- background: rgba(239, 68, 68, 0.1);
2174
- border: 1px solid rgba(239, 68, 68, 0.3);
2175
- border-radius: 4px;
2353
+ padding: 8px 12px;
2354
+ background: rgba(239,68,68,0.08);
2355
+ border: 1px solid rgba(239,68,68,0.25);
2356
+ border-radius: 8px;
2176
2357
  font-size: 12px;
2177
- color: var(--accent-red);
2358
+ color: var(--console-red);
2178
2359
  }
2179
2360
 
2180
- .debug-body {
2181
- font-size: 12px;
2361
+ /* ── History ── */
2362
+ .history-empty {
2363
+ text-align: center;
2364
+ padding: 48px 20px;
2365
+ color: var(--text-muted);
2366
+ font-size: 14px;
2182
2367
  }
2183
2368
 
2184
- .entry-summary {
2185
- padding: var(--spacing-sm) var(--spacing-md);
2186
- cursor: pointer;
2187
- display: flex;
2188
- align-items: center;
2189
- gap: var(--spacing-sm);
2190
- user-select: none;
2191
- list-style: none;
2192
- background: var(--bg-hover);
2369
+ .history-card {
2370
+ border: 1px solid var(--border-color);
2371
+ border-radius: 10px;
2372
+ background: var(--bg-tertiary);
2373
+ margin-bottom: 8px;
2374
+ overflow: hidden;
2375
+ transition: border-color 0.2s;
2193
2376
  }
2194
2377
 
2195
- .entry-summary::-webkit-details-marker {
2196
- display: none;
2197
- }
2378
+ .history-card:hover { border-color: var(--console-blue); }
2198
2379
 
2199
- .entry-summary::before {
2200
- content: "▶";
2201
- font-size: 10px;
2202
- transition: transform 0.2s ease;
2203
- color: var(--text-secondary);
2380
+ .history-card-header {
2381
+ display: flex;
2382
+ align-items: center;
2383
+ gap: 8px;
2384
+ padding: 10px 14px;
2385
+ cursor: pointer;
2386
+ transition: background 0.15s;
2204
2387
  }
2205
2388
 
2206
- details[open] > .entry-summary::before {
2207
- transform: rotate(90deg);
2208
- }
2389
+ .history-card-header:hover { background: var(--bg-hover); }
2209
2390
 
2210
- .entry-icon {
2211
- font-size: 14px;
2212
- }
2391
+ .history-status { font-size: 14px; }
2213
2392
 
2214
- .entry-title {
2393
+ .history-session-title {
2215
2394
  flex: 1;
2216
2395
  font-weight: 600;
2217
2396
  font-size: 13px;
2218
2397
  color: var(--text-primary);
2398
+ overflow: hidden;
2399
+ text-overflow: ellipsis;
2400
+ white-space: nowrap;
2219
2401
  }
2220
2402
 
2221
- .entry-timestamp {
2403
+ .history-time {
2222
2404
  font-size: 11px;
2223
2405
  color: var(--text-muted);
2224
- font-family: "Consolas", "Monaco", monospace;
2406
+ font-family: "Consolas","Monaco",monospace;
2225
2407
  }
2226
2408
 
2227
- .entry-badge {
2228
- font-size: 12px;
2229
- padding: 2px 8px;
2230
- background: var(--bg-secondary);
2231
- border-radius: 10px;
2409
+ .history-card-meta {
2410
+ display: flex;
2411
+ gap: 12px;
2412
+ padding: 0 14px 10px;
2413
+ }
2414
+
2415
+ .history-meta-item {
2416
+ font-size: 11px;
2232
2417
  color: var(--text-secondary);
2233
2418
  }
2234
2419
 
2235
- .entry-body {
2236
- padding: var(--spacing-md);
2420
+ .history-card-entries {
2421
+ padding: 8px 12px 12px;
2237
2422
  border-top: 1px solid var(--border-color);
2238
2423
  }
2239
2424
 
2240
- .entry-content {
2241
- margin: 0;
2242
- padding: var(--spacing-sm);
2243
- background: var(--bg-primary);
2244
- border: 1px solid var(--border-color);
2245
- border-radius: var(--radius-sm);
2246
- font-family: "Consolas", "Monaco", monospace;
2425
+ /* ── Footer ── */
2426
+ .console-footer {
2427
+ display: flex;
2428
+ justify-content: space-between;
2429
+ align-items: center;
2430
+ padding: 10px 20px;
2431
+ border-top: 1px solid var(--border-color);
2432
+ background: var(--bg-tertiary);
2433
+ border-radius: 0 0 16px 16px;
2434
+ }
2435
+
2436
+ .console-stats {
2247
2437
  font-size: 12px;
2248
- line-height: 1.5;
2249
- white-space: pre-wrap;
2250
- word-break: break-word;
2251
- max-height: 300px;
2252
- overflow-y: auto;
2438
+ color: var(--text-muted);
2439
+ font-family: "Consolas","Monaco",monospace;
2440
+ }
2441
+
2442
+ .console-btn-close {
2443
+ padding: 6px 20px;
2444
+ font-size: 13px;
2445
+ font-weight: 600;
2446
+ border: 1px solid var(--border-color);
2447
+ border-radius: 8px;
2448
+ background: var(--bg-primary);
2253
2449
  color: var(--text-primary);
2450
+ cursor: pointer;
2451
+ transition: all 0.15s;
2254
2452
  }
2255
2453
 
2256
- .conversation-footer {
2257
- display: flex;
2258
- justify-content: flex-end;
2259
- padding: var(--spacing-md) var(--spacing-lg);
2260
- border-top: 1px solid var(--border-color);
2261
- background: var(--bg-tertiary);
2262
- border-radius: 0 0 var(--radius-lg) var(--radius-lg);
2263
- }
2454
+ .console-btn-close:hover { background: var(--bg-hover); }