zerochat 7.3.0__py3-none-any.whl

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 (130) hide show
  1. zerochat-7.3.0.dist-info/METADATA +70 -0
  2. zerochat-7.3.0.dist-info/RECORD +130 -0
  3. zerochat-7.3.0.dist-info/WHEEL +5 -0
  4. zerochat-7.3.0.dist-info/entry_points.txt +2 -0
  5. zerochat-7.3.0.dist-info/licenses/LICENSE +34 -0
  6. zerochat-7.3.0.dist-info/top_level.txt +2 -0
  7. zerochat.py +2004 -0
  8. zerochat_runtime/__init__.py +1 -0
  9. zerochat_runtime/assets/css/base.css +199 -0
  10. zerochat_runtime/assets/css/components/composer.css +1258 -0
  11. zerochat_runtime/assets/css/components/debug.css +777 -0
  12. zerochat_runtime/assets/css/components/header.css +97 -0
  13. zerochat_runtime/assets/css/components/icons.css +39 -0
  14. zerochat_runtime/assets/css/components/markdown.css +685 -0
  15. zerochat_runtime/assets/css/components/messages.css +473 -0
  16. zerochat_runtime/assets/css/components/modals.css +1319 -0
  17. zerochat_runtime/assets/css/components/sidebar.css +622 -0
  18. zerochat_runtime/assets/css/components/tools.css +1223 -0
  19. zerochat_runtime/assets/css/layout.css +171 -0
  20. zerochat_runtime/assets/css/print.css +120 -0
  21. zerochat_runtime/assets/css/styles.css +18 -0
  22. zerochat_runtime/assets/css/theme-overrides.css +555 -0
  23. zerochat_runtime/assets/css/tokens.css +165 -0
  24. zerochat_runtime/assets/help/architecture.html +247 -0
  25. zerochat_runtime/assets/help/composer.html +134 -0
  26. zerochat_runtime/assets/help/conversations.html +105 -0
  27. zerochat_runtime/assets/help/debug.html +108 -0
  28. zerochat_runtime/assets/help/en/architecture.html +247 -0
  29. zerochat_runtime/assets/help/en/composer.html +134 -0
  30. zerochat_runtime/assets/help/en/conversations.html +104 -0
  31. zerochat_runtime/assets/help/en/debug.html +105 -0
  32. zerochat_runtime/assets/help/en/gemini-free.html +39 -0
  33. zerochat_runtime/assets/help/en/index.html +191 -0
  34. zerochat_runtime/assets/help/en/learning.html +71 -0
  35. zerochat_runtime/assets/help/en/mcp.html +143 -0
  36. zerochat_runtime/assets/help/en/openrouter-free.html +39 -0
  37. zerochat_runtime/assets/help/en/profiles.html +173 -0
  38. zerochat_runtime/assets/help/en/rag.html +130 -0
  39. zerochat_runtime/assets/help/en/reasoning-telemetry.html +108 -0
  40. zerochat_runtime/assets/help/en/tools-agent.html +133 -0
  41. zerochat_runtime/assets/help/en/webllm.html +355 -0
  42. zerochat_runtime/assets/help/gemini-free.html +39 -0
  43. zerochat_runtime/assets/help/help.css +604 -0
  44. zerochat_runtime/assets/help/help.js +51 -0
  45. zerochat_runtime/assets/help/index.html +194 -0
  46. zerochat_runtime/assets/help/learning.html +71 -0
  47. zerochat_runtime/assets/help/mcp.html +143 -0
  48. zerochat_runtime/assets/help/openrouter-free.html +39 -0
  49. zerochat_runtime/assets/help/profiles.html +174 -0
  50. zerochat_runtime/assets/help/rag.html +130 -0
  51. zerochat_runtime/assets/help/reasoning-telemetry.html +111 -0
  52. zerochat_runtime/assets/help/tools-agent.html +133 -0
  53. zerochat_runtime/assets/help/webllm.html +359 -0
  54. zerochat_runtime/assets/js/agent-core.js +1553 -0
  55. zerochat_runtime/assets/js/api.js +844 -0
  56. zerochat_runtime/assets/js/app.js +2558 -0
  57. zerochat_runtime/assets/js/attachments.js +220 -0
  58. zerochat_runtime/assets/js/charts.js +338 -0
  59. zerochat_runtime/assets/js/chat-engine.js +566 -0
  60. zerochat_runtime/assets/js/config-store.js +207 -0
  61. zerochat_runtime/assets/js/context-manager.js +584 -0
  62. zerochat_runtime/assets/js/conversation-service.js +484 -0
  63. zerochat_runtime/assets/js/cookies.js +688 -0
  64. zerochat_runtime/assets/js/data-reset-service.js +136 -0
  65. zerochat_runtime/assets/js/debug.js +508 -0
  66. zerochat_runtime/assets/js/defaults.js +16 -0
  67. zerochat_runtime/assets/js/export.js +179 -0
  68. zerochat_runtime/assets/js/file-parser.js +2088 -0
  69. zerochat_runtime/assets/js/generation-controller.js +417 -0
  70. zerochat_runtime/assets/js/i18n.js +1483 -0
  71. zerochat_runtime/assets/js/icons.js +156 -0
  72. zerochat_runtime/assets/js/ingestionEngine.js +436 -0
  73. zerochat_runtime/assets/js/markdown.js +588 -0
  74. zerochat_runtime/assets/js/mcp.js +1271 -0
  75. zerochat_runtime/assets/js/message-turns.js +62 -0
  76. zerochat_runtime/assets/js/profile-backup.js +118 -0
  77. zerochat_runtime/assets/js/profile-export-bundle.js +481 -0
  78. zerochat_runtime/assets/js/profile-repository.js +213 -0
  79. zerochat_runtime/assets/js/providers-webllm.js +486 -0
  80. zerochat_runtime/assets/js/providers.js +1560 -0
  81. zerochat_runtime/assets/js/rag-index.js +295 -0
  82. zerochat_runtime/assets/js/rag-service.js +530 -0
  83. zerochat_runtime/assets/js/rag-ui.js +997 -0
  84. zerochat_runtime/assets/js/ragStorage.js +676 -0
  85. zerochat_runtime/assets/js/sandbox.js +449 -0
  86. zerochat_runtime/assets/js/state.js +704 -0
  87. zerochat_runtime/assets/js/storage-db.js +144 -0
  88. zerochat_runtime/assets/js/tool-cards.js +330 -0
  89. zerochat_runtime/assets/js/tool-security.js +653 -0
  90. zerochat_runtime/assets/js/tools/README.md +50 -0
  91. zerochat_runtime/assets/js/tools/builtin/agent-checkpoint.tool.js +212 -0
  92. zerochat_runtime/assets/js/tools/builtin/download-pdf.tool.js +111 -0
  93. zerochat_runtime/assets/js/tools/builtin/execute-javascript.tool.js +219 -0
  94. zerochat_runtime/assets/js/tools/builtin/fetch-web-page.tool.js +112 -0
  95. zerochat_runtime/assets/js/tools/builtin/list-documents.tool.js +117 -0
  96. zerochat_runtime/assets/js/tools/builtin/read-knowledge-chunk.tool.js +129 -0
  97. zerochat_runtime/assets/js/tools/builtin/read-knowledge-image.tool.js +95 -0
  98. zerochat_runtime/assets/js/tools/builtin/render-chart.tool.js +90 -0
  99. zerochat_runtime/assets/js/tools/builtin/search-knowledge-base.tool.js +124 -0
  100. zerochat_runtime/assets/js/tools/builtin/search-web.tool.js +125 -0
  101. zerochat_runtime/assets/js/tools/tool-manifest.js +53 -0
  102. zerochat_runtime/assets/js/tools/tool-runtime.js +77 -0
  103. zerochat_runtime/assets/js/ui-composer.js +319 -0
  104. zerochat_runtime/assets/js/ui-conversation.js +655 -0
  105. zerochat_runtime/assets/js/ui-dialogs.js +132 -0
  106. zerochat_runtime/assets/js/ui-generation-status.js +119 -0
  107. zerochat_runtime/assets/js/ui-inspector.js +804 -0
  108. zerochat_runtime/assets/js/ui-mcp.js +604 -0
  109. zerochat_runtime/assets/js/ui-profiles.js +824 -0
  110. zerochat_runtime/assets/js/ui-reasoning.js +146 -0
  111. zerochat_runtime/assets/js/ui-settings.js +825 -0
  112. zerochat_runtime/assets/js/ui-shell.js +215 -0
  113. zerochat_runtime/assets/js/ui-sidebar.js +429 -0
  114. zerochat_runtime/assets/js/ui-telemetry.js +404 -0
  115. zerochat_runtime/assets/js/ui-transfer.js +262 -0
  116. zerochat_runtime/assets/js/utils.js +216 -0
  117. zerochat_runtime/assets/js/vendor/orama.browser.js +11 -0
  118. zerochat_runtime/assets/js/web-browser.js +569 -0
  119. zerochat_runtime/assets/js/web-search.js +519 -0
  120. zerochat_runtime/assets/manifest.webmanifest +20 -0
  121. zerochat_runtime/assets/services/dummy_mcp/dummy_mcp_server.py +47 -0
  122. zerochat_runtime/assets/services/dummy_mcp/service.json +22 -0
  123. zerochat_runtime/assets/services/lsp/installer.json +9 -0
  124. zerochat_runtime/assets/services/lsp/service.json +22 -0
  125. zerochat_runtime/assets/services/memory/installer.json +9 -0
  126. zerochat_runtime/assets/services/memory/service.json +24 -0
  127. zerochat_runtime/assets/services/playwright/installer.json +10 -0
  128. zerochat_runtime/assets/services/playwright/service.json +39 -0
  129. zerochat_runtime/assets/sw.js +164 -0
  130. zerochat_runtime/assets/zerochat.html +671 -0
@@ -0,0 +1,1319 @@
1
+ /* ==========================================================================
2
+ Diálogos de configuración (<dialog>) con secciones y footer fijo
3
+ ========================================================================== */
4
+ .settings-modal {
5
+ margin: auto;
6
+ padding: 0;
7
+ border: 1px solid var(--border-color);
8
+ border-radius: var(--radius-xl, 1.25rem);
9
+ background-color: var(--bg-surface);
10
+ color: var(--text-main);
11
+ max-width: 680px;
12
+ width: 94vw;
13
+ max-height: calc(var(--app-height, 100dvh) * 0.88);
14
+ box-shadow: var(--shadow-xl);
15
+ }
16
+
17
+ .settings-modal:not([open]),
18
+ .debug-interceptor-modal:not([open]) {
19
+ display: none !important;
20
+ }
21
+
22
+ .settings-modal[open],
23
+ .debug-interceptor-modal[open] {
24
+ display: flex;
25
+ flex-direction: column;
26
+ overflow: hidden;
27
+ }
28
+
29
+ .settings-modal::backdrop {
30
+ background: rgba(15, 23, 42, 0.55);
31
+ backdrop-filter: blur(8px);
32
+ -webkit-backdrop-filter: blur(8px);
33
+ }
34
+
35
+ .modal-header {
36
+ flex-shrink: 0;
37
+ display: flex;
38
+ justify-content: space-between;
39
+ align-items: center;
40
+ padding: 0.85rem 1.25rem;
41
+ border-bottom: 1px solid var(--border-color);
42
+ background-color: var(--bg-surface);
43
+ }
44
+
45
+ .modal-title {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: 0.5rem;
49
+ color: var(--text-main);
50
+ }
51
+
52
+ .modal-title h3 {
53
+ font-size: 1.05rem;
54
+ font-weight: 600;
55
+ margin: 0;
56
+ }
57
+
58
+ .btn-close {
59
+ background-color: var(--bg-surface-subtle);
60
+ border: 1px solid var(--border-color);
61
+ color: var(--text-main);
62
+ width: 36px;
63
+ height: 36px;
64
+ min-width: 36px;
65
+ border-radius: var(--radius-sm, 6px);
66
+ display: inline-flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ box-sizing: border-box;
70
+ cursor: pointer;
71
+ transition: all var(--transition-fast, 150ms ease);
72
+ }
73
+
74
+ .btn-close:hover {
75
+ background-color: var(--bg-hover);
76
+ color: var(--text-main);
77
+ border-color: var(--border-hover);
78
+ }
79
+
80
+ /* Cabecera de sección en Configuración */
81
+ .settings-section-header {
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: space-between;
85
+ gap: 0.75rem;
86
+ padding: 0.75rem 1rem;
87
+ }
88
+
89
+ .settings-section-header .modal-title {
90
+ flex: 1;
91
+ display: flex;
92
+ align-items: center;
93
+ min-width: 0;
94
+ }
95
+
96
+ .settings-section-header .modal-title h3 {
97
+ font-size: 1.15rem;
98
+ font-weight: 600;
99
+ margin: 0;
100
+ color: var(--text-main);
101
+ line-height: 1.3;
102
+ }
103
+
104
+ .settings-header-actions {
105
+ display: flex;
106
+ align-items: center;
107
+ gap: 0.5rem;
108
+ flex-shrink: 0;
109
+ }
110
+
111
+ .btn-save-header {
112
+ height: 36px;
113
+ min-height: 36px;
114
+ padding: 0 0.85rem;
115
+ display: inline-flex;
116
+ align-items: center;
117
+ justify-content: center;
118
+ gap: 0.45rem;
119
+ font-size: 0.95rem;
120
+ font-weight: 500;
121
+ border-radius: var(--radius-sm, 6px);
122
+ cursor: pointer;
123
+ white-space: nowrap;
124
+ line-height: 1;
125
+ box-sizing: border-box;
126
+ }
127
+
128
+ .settings-form-wrapper {
129
+ display: flex;
130
+ flex-direction: column;
131
+ flex: 1;
132
+ min-height: 0;
133
+ overflow: hidden;
134
+ }
135
+
136
+ .modal-body {
137
+ flex: 1;
138
+ min-height: 0;
139
+ overflow-y: auto;
140
+ padding: 1rem 1.1rem;
141
+ display: flex;
142
+ flex-direction: column;
143
+ }
144
+
145
+ .settings-section-pane {
146
+ display: none;
147
+ }
148
+
149
+ .settings-section-pane.active {
150
+ display: flex;
151
+ flex-direction: column;
152
+ gap: 0.85rem;
153
+ }
154
+
155
+
156
+
157
+ .settings-section-intro {
158
+ font-size: 0.825rem;
159
+ color: var(--text-muted);
160
+ line-height: 1.45;
161
+ margin-bottom: 0.2rem;
162
+ }
163
+
164
+ .setting-toggle-card {
165
+ display: flex;
166
+ align-items: center;
167
+ justify-content: space-between;
168
+ gap: 0.85rem;
169
+ padding: 0.65rem 0.85rem;
170
+ box-shadow: var(--shadow-sm);
171
+ transition: border-color 0.15s ease;
172
+ }
173
+
174
+ .setting-toggle-card:hover {
175
+ border-color: #cbd5e1;
176
+ }
177
+
178
+ .toggle-card-info {
179
+ flex: 1;
180
+ }
181
+
182
+ .toggle-card-title {
183
+ font-size: 0.82rem;
184
+ font-weight: 600;
185
+ color: var(--text-main);
186
+ display: flex;
187
+ align-items: center;
188
+ gap: 0.35rem;
189
+ margin-bottom: 0.15rem;
190
+ }
191
+
192
+ .toggle-card-desc {
193
+ font-size: 0.725rem;
194
+ color: var(--text-muted);
195
+ line-height: 1.35;
196
+ margin: 0;
197
+ }
198
+
199
+ .toggle-card-desc code {
200
+ background: #f1f5f9;
201
+ padding: 0.1rem 0.25rem;
202
+ border-radius: 3px;
203
+ font-size: 0.7rem;
204
+ }
205
+
206
+ /* Switch Toggle */
207
+ .switch {
208
+ position: relative;
209
+ display: inline-block;
210
+ width: 44px;
211
+ height: 24px;
212
+ flex-shrink: 0;
213
+ }
214
+
215
+ .switch input {
216
+ opacity: 0;
217
+ width: 0;
218
+ height: 0;
219
+ }
220
+
221
+ .slider {
222
+ position: absolute;
223
+ cursor: pointer;
224
+ top: 0;
225
+ left: 0;
226
+ right: 0;
227
+ bottom: 0;
228
+ background-color: #cbd5e1;
229
+ transition: .2s ease;
230
+ border-radius: 24px;
231
+ }
232
+
233
+ .slider:before {
234
+ position: absolute;
235
+ content: "";
236
+ height: 18px;
237
+ width: 18px;
238
+ left: 3px;
239
+ bottom: 3px;
240
+ background-color: white;
241
+ transition: .2s ease;
242
+ border-radius: 50%;
243
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
244
+ }
245
+
246
+ input:checked + .slider {
247
+ background-color: var(--primary);
248
+ }
249
+
250
+ input:checked + .slider:before {
251
+ transform: translateX(20px);
252
+ }
253
+
254
+ .form-field {
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 0.28rem;
258
+ }
259
+
260
+ .form-field label {
261
+ font-size: 0.83rem;
262
+ display: flex;
263
+ flex-direction: column;
264
+ }
265
+
266
+ .label-hint {
267
+ font-size: 0.725rem;
268
+ color: var(--text-muted);
269
+ font-weight: normal;
270
+ margin-top: 0.05rem;
271
+ }
272
+
273
+ .label-hint code {
274
+ background-color: #f1f5f9;
275
+ padding: 0.1rem 0.3rem;
276
+ border-radius: 3px;
277
+ }
278
+
279
+ .input-with-button-wrapper {
280
+ display: flex;
281
+ gap: 0.5rem;
282
+ align-items: stretch;
283
+ }
284
+
285
+ .input-with-button-wrapper input {
286
+ flex: 1;
287
+ }
288
+
289
+ .btn-query-server,
290
+ .btn-profile-action {
291
+ gap: 0.35rem;
292
+ font-weight: 600;
293
+ white-space: nowrap;
294
+ flex-shrink: 0;
295
+ }
296
+
297
+ .btn-query-server {
298
+ background-color: var(--primary-light);
299
+ color: var(--primary);
300
+ border: 1px solid #bfdbfe;
301
+ padding: 0.5rem 0.85rem;
302
+ font-size: 0.8rem;
303
+ }
304
+
305
+ .btn-query-server:hover {
306
+ background-color: var(--primary);
307
+ color: white;
308
+ border-color: var(--primary);
309
+ box-shadow: var(--shadow-sm);
310
+ }
311
+
312
+ .btn-query-server:disabled,
313
+ .btn-query-server.loading {
314
+ opacity: 0.7;
315
+ cursor: wait;
316
+ }
317
+
318
+ .btn-query-server.loading .query-icon {
319
+ animation: spin 1s linear infinite;
320
+ }
321
+
322
+ .server-query-status {
323
+ padding: 0.4rem 0.65rem;
324
+ border-radius: var(--radius-sm);
325
+ font-size: 0.75rem;
326
+ line-height: 1.35;
327
+ margin-top: 0.15rem;
328
+ animation: fadeIn 0.15s ease-out;
329
+ }
330
+
331
+ .server-query-status.status-loading {
332
+ background-color: #f0f9ff;
333
+ border: 1px solid #bae6fd;
334
+ color: #0369a1;
335
+ }
336
+
337
+ .server-query-status.status-success {
338
+ background-color: #f0fdf4;
339
+ border: 1px solid #bbf7d0;
340
+ color: #166534;
341
+ }
342
+
343
+ .server-query-status.status-error {
344
+ background-color: #fef2f2;
345
+ border: 1px solid #fecaca;
346
+ color: #991b1b;
347
+ }
348
+
349
+ .webllm-info-bar {
350
+ display: flex;
351
+ align-items: center;
352
+ justify-content: space-between;
353
+ gap: 0.75rem;
354
+ flex-wrap: wrap;
355
+ margin-top: 0.35rem;
356
+ }
357
+
358
+ .webllm-help-link {
359
+ display: inline-flex;
360
+ align-items: center;
361
+ gap: 0.35rem;
362
+ font-size: 0.78rem;
363
+ color: var(--primary);
364
+ text-decoration: none;
365
+ font-weight: 500;
366
+ transition: color 0.15s ease, opacity 0.15s ease;
367
+ }
368
+
369
+ .webllm-help-link[hidden] {
370
+ display: none !important;
371
+ }
372
+
373
+ .profile-lock-control,
374
+ .profile-lock-status {
375
+ align-items: center;
376
+ display: inline-flex;
377
+ flex-shrink: 0;
378
+ font-size: 0.84rem;
379
+ font-weight: 500;
380
+ gap: 0.35rem;
381
+ cursor: pointer;
382
+ user-select: none;
383
+ margin-right: 0.25rem;
384
+ }
385
+
386
+ .profile-lock-status {
387
+ color: #dc2626;
388
+ font-weight: 600;
389
+ }
390
+
391
+ .profile-lock-control[hidden],
392
+ .profile-lock-status[hidden] {
393
+ display: none !important;
394
+ }
395
+
396
+ .webllm-help-link:hover {
397
+ text-decoration: underline;
398
+ color: var(--primary-hover, var(--primary));
399
+ }
400
+
401
+ .webllm-help-link .ui-icon {
402
+ flex-shrink: 0;
403
+ }
404
+
405
+ .webllm-model-list {
406
+ display: grid;
407
+ gap: 0.35rem;
408
+ margin-top: 0.6rem;
409
+ max-height: 13rem;
410
+ overflow: auto;
411
+ }
412
+
413
+ .webllm-model-row {
414
+ display: grid;
415
+ grid-template-columns: minmax(0, 1fr) auto;
416
+ align-items: center;
417
+ justify-content: space-between;
418
+ gap: 0.5rem;
419
+ }
420
+
421
+ .webllm-model-row span {
422
+ min-width: 0;
423
+ overflow-wrap: anywhere;
424
+ }
425
+
426
+ .webllm-model-progress {
427
+ grid-column: 1;
428
+ width: 100%;
429
+ height: 0.32rem;
430
+ accent-color: var(--primary);
431
+ }
432
+
433
+ .webllm-model-actions {
434
+ grid-column: 2;
435
+ grid-row: 1 / span 2;
436
+ display: flex;
437
+ gap: 0.25rem;
438
+ }
439
+
440
+ .webllm-model-action {
441
+ display: inline-grid;
442
+ place-items: center;
443
+ width: 1.7rem;
444
+ height: 1.7rem;
445
+ padding: 0;
446
+ flex: 0 0 auto;
447
+ color: var(--text-muted);
448
+ border: 1px solid var(--border-color);
449
+ border-radius: var(--radius-sm);
450
+ background: transparent;
451
+ cursor: pointer;
452
+ }
453
+
454
+ .webllm-model-action:hover:not(:disabled) {
455
+ color: var(--primary);
456
+ border-color: var(--primary);
457
+ }
458
+
459
+ .webllm-model-action[data-loading="true"] .ui-icon {
460
+ animation: spin 1s linear infinite;
461
+ }
462
+
463
+ .api-key-field[hidden] {
464
+ display: none !important;
465
+ }
466
+
467
+ .btn-webllm-params {
468
+ display: inline-flex;
469
+ align-items: center;
470
+ justify-content: center;
471
+ min-height: 2.375rem;
472
+ padding: 0 0.65rem;
473
+ border: 1px solid var(--input-border);
474
+ border-radius: var(--radius-md);
475
+ background-color: var(--input-bg-subtle);
476
+ color: var(--text-muted);
477
+ cursor: pointer;
478
+ transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);
479
+ }
480
+
481
+ .btn-webllm-params:hover {
482
+ border-color: var(--input-border-hover);
483
+ color: var(--text-main);
484
+ }
485
+
486
+ .btn-webllm-params.active {
487
+ border-color: var(--primary);
488
+ color: var(--primary);
489
+ background-color: var(--primary-subtle, rgba(59, 130, 246, 0.08));
490
+ }
491
+
492
+ .btn-webllm-params[hidden] {
493
+ display: none !important;
494
+ }
495
+
496
+ .webllm-params-panel {
497
+ margin-top: 0.6rem;
498
+ padding: 0.75rem;
499
+ background-color: var(--bg-subtle, rgba(0, 0, 0, 0.02));
500
+ border: 1px solid var(--input-border);
501
+ border-radius: var(--radius-md);
502
+ }
503
+
504
+ .webllm-params-panel[hidden] {
505
+ display: none !important;
506
+ }
507
+
508
+ .webllm-params-title {
509
+ display: flex;
510
+ align-items: center;
511
+ gap: 0.4rem;
512
+ margin-bottom: 0.6rem;
513
+ font-size: 0.8125rem;
514
+ font-weight: 600;
515
+ color: var(--text-main);
516
+ }
517
+
518
+ .webllm-params-grid {
519
+ display: grid;
520
+ grid-template-columns: 1fr 1fr;
521
+ gap: 0.6rem;
522
+ }
523
+
524
+ @media (max-width: 560px) {
525
+ .webllm-params-grid {
526
+ grid-template-columns: 1fr;
527
+ }
528
+ }
529
+
530
+ .webllm-param-item label {
531
+ display: flex;
532
+ flex-direction: column;
533
+ gap: 0.2rem;
534
+ font-size: 0.78rem;
535
+ font-weight: 500;
536
+ color: var(--text-main);
537
+ }
538
+
539
+ .webllm-param-item input,
540
+ .webllm-param-item select {
541
+ width: 100%;
542
+ font-size: 0.8125rem;
543
+ padding: 0.4rem 0.55rem;
544
+ }
545
+
546
+ .combobox-wrapper {
547
+ display: flex;
548
+ gap: 0.4rem;
549
+ position: relative;
550
+ align-items: stretch;
551
+ }
552
+
553
+ .combobox-wrapper input {
554
+ flex: 1;
555
+ }
556
+
557
+ .combobox-select-helper,
558
+ .form-field select,
559
+ select.form-input {
560
+ max-width: 200px;
561
+ width: auto;
562
+ min-height: 2.375rem;
563
+ padding: 0.55rem 2rem 0.55rem 0.75rem;
564
+ border: 1px solid var(--input-border);
565
+ border-radius: var(--radius-md);
566
+ font-family: inherit;
567
+ font-size: 0.875rem;
568
+ line-height: 1.4;
569
+ outline: none;
570
+ background-color: var(--input-bg-subtle);
571
+ color: var(--text-main);
572
+ cursor: pointer;
573
+ appearance: none;
574
+ -webkit-appearance: none;
575
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
576
+ background-repeat: no-repeat;
577
+ background-position: right 0.65rem center;
578
+ background-size: 14px 14px;
579
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
580
+ }
581
+
582
+ .combobox-select-helper:hover,
583
+ .form-field select:hover,
584
+ select.form-input:hover {
585
+ border-color: var(--input-border-hover);
586
+ }
587
+
588
+ .combobox-select-helper:focus,
589
+ .combobox-select-helper:focus-visible,
590
+ .form-field select:focus,
591
+ .form-field select:focus-visible,
592
+ select.form-input:focus,
593
+ select.form-input:focus-visible {
594
+ border-color: var(--border-color);
595
+ outline: none;
596
+ box-shadow: none;
597
+ }
598
+
599
+ .profile-combobox-wrapper {
600
+ display: flex;
601
+ gap: 0.4rem;
602
+ align-items: center;
603
+ }
604
+
605
+ .connection-active-card {
606
+ display: flex;
607
+ flex-direction: column;
608
+ align-items: flex-start;
609
+ gap: 0.65rem;
610
+ padding: 1rem;
611
+ border: 1px solid var(--border-color);
612
+ border-radius: var(--radius-lg);
613
+ background: var(--bg-surface-subtle);
614
+ }
615
+
616
+ .connection-active-card strong {
617
+ font-size: 1.05rem;
618
+ color: var(--text-main);
619
+ }
620
+
621
+ .connection-active-label {
622
+ font-size: 0.8rem;
623
+ color: var(--text-muted);
624
+ font-weight: 600;
625
+ text-transform: uppercase;
626
+ letter-spacing: 0.04em;
627
+ }
628
+
629
+ .connection-active-card p {
630
+ color: var(--text-secondary);
631
+ font-size: 0.875rem;
632
+ }
633
+
634
+ #profiles-dialog .modal-body {
635
+ gap: 0.85rem;
636
+ }
637
+
638
+ .profile-backup-card {
639
+ display: flex;
640
+ align-items: center;
641
+ justify-content: space-between;
642
+ gap: 1rem;
643
+ margin-top: 1rem;
644
+ }
645
+
646
+ .profile-backup-copy {
647
+ display: flex;
648
+ flex-direction: column;
649
+ gap: 0.25rem;
650
+ }
651
+
652
+ .profile-backup-copy span {
653
+ color: var(--text-muted);
654
+ font-size: 0.8rem;
655
+ line-height: 1.35;
656
+ }
657
+
658
+ .profile-backup-actions {
659
+ display: flex;
660
+ flex-wrap: wrap;
661
+ gap: 0.5rem;
662
+ flex-shrink: 0;
663
+ }
664
+
665
+ @media (max-width: 600px) {
666
+ .profile-backup-card {
667
+ align-items: stretch;
668
+ flex-direction: column;
669
+ }
670
+ }
671
+
672
+
673
+
674
+ .profile-combobox-wrapper input {
675
+ flex: 1;
676
+ min-width: 140px;
677
+ }
678
+
679
+ .profile-actions-footer {
680
+ gap: 0.75rem;
681
+ }
682
+
683
+ .btn-profile-action:disabled {
684
+ cursor: not-allowed;
685
+ opacity: 0.5;
686
+ }
687
+
688
+ .profile-actions-footer .footer-actions-left,
689
+ .profile-actions-footer .footer-actions-right {
690
+ display: flex;
691
+ align-items: center;
692
+ gap: 0.5rem;
693
+ }
694
+
695
+ .btn-profile-action {
696
+ padding: 0.65rem 0.85rem;
697
+ font-size: 0.825rem;
698
+ }
699
+
700
+ .btn-save-profile {
701
+ background-color: var(--bg-surface);
702
+ color: var(--primary);
703
+ border: 1px solid var(--primary);
704
+ }
705
+
706
+ .btn-save-profile:hover {
707
+ background-color: var(--primary);
708
+ color: white;
709
+ box-shadow: var(--shadow-sm);
710
+ }
711
+
712
+ .btn-delete-profile {
713
+ background-color: var(--bg-surface);
714
+ color: var(--danger, #ef4444);
715
+ border: 1px solid #fca5a5;
716
+ }
717
+
718
+ .btn-delete-profile:hover {
719
+ background-color: #fee2e2;
720
+ border-color: var(--danger, #ef4444);
721
+ color: #b91c1c;
722
+ }
723
+
724
+ @media (max-width: 640px) {
725
+ .profile-actions-footer .footer-actions-left,
726
+ .profile-actions-footer .footer-actions-right {
727
+ width: 100%;
728
+ }
729
+
730
+ .profile-actions-footer .btn-profile-action {
731
+ justify-content: center;
732
+ }
733
+ }
734
+
735
+ [data-theme="dark"] .btn-save-profile {
736
+ background-color: var(--bg-surface);
737
+ }
738
+
739
+ [data-theme="dark"] .btn-save-profile:hover {
740
+ background-color: #2563eb;
741
+ color: white;
742
+ }
743
+
744
+ [data-theme="dark"] .btn-delete-profile {
745
+ background-color: var(--bg-surface);
746
+ color: #f87171;
747
+ border-color: #7f1d1d;
748
+ }
749
+
750
+ [data-theme="dark"] .btn-delete-profile:hover {
751
+ background-color: #450a0a;
752
+ border-color: #ef4444;
753
+ color: #fca5a5;
754
+ }
755
+
756
+
757
+ .form-field input[type="text"],
758
+ .form-field input[type="url"],
759
+ .form-field input[type="password"],
760
+ .form-field input[type="number"],
761
+ .form-field input[type="search"],
762
+ .form-field textarea,
763
+ input.form-input,
764
+ #notice-input {
765
+ width: 100%;
766
+ box-sizing: border-box;
767
+ min-height: 2.375rem;
768
+ padding: 0.55rem 0.75rem;
769
+ border: 1px solid var(--input-border);
770
+ border-radius: var(--radius-md);
771
+ font-family: inherit;
772
+ font-size: 0.875rem;
773
+ line-height: 1.4;
774
+ outline: none;
775
+ background-color: var(--input-bg);
776
+ color: var(--text-main);
777
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
778
+ }
779
+
780
+ .form-field textarea {
781
+ min-height: auto;
782
+ }
783
+
784
+ .form-field input[type="text"]:hover,
785
+ .form-field input[type="url"]:hover,
786
+ .form-field input[type="password"]:hover,
787
+ .form-field input[type="number"]:hover,
788
+ .form-field input[type="search"]:hover,
789
+ .form-field textarea:hover,
790
+ input.form-input:hover,
791
+ #notice-input:hover {
792
+ border-color: var(--input-border-hover);
793
+ }
794
+
795
+ .form-field input[type="text"]:focus,
796
+ .form-field input[type="url"]:focus,
797
+ .form-field input[type="password"]:focus,
798
+ .form-field input[type="number"]:focus,
799
+ .form-field input[type="search"]:focus,
800
+ .form-field textarea:focus,
801
+ input.form-input:focus,
802
+ #notice-input:focus,
803
+ .form-field input[type="text"]:focus-visible,
804
+ .form-field input[type="url"]:focus-visible,
805
+ .form-field input[type="password"]:focus-visible,
806
+ .form-field input[type="number"]:focus-visible,
807
+ .form-field input[type="search"]:focus-visible,
808
+ .form-field textarea:focus-visible,
809
+ input.form-input:focus-visible,
810
+ #notice-input:focus-visible {
811
+ border-color: var(--input-border-focus);
812
+ box-shadow: var(--input-focus-ring);
813
+ outline: none;
814
+ }
815
+
816
+ #mcp-setup-dialog input.form-input:focus,
817
+ #mcp-setup-dialog input.form-input:focus-visible {
818
+ border-color: var(--border-color);
819
+ box-shadow: none;
820
+ }
821
+
822
+ /* Evita que Chromium sustituya los colores de la aplicación al autocompletar. */
823
+ #profiles-dialog input:-webkit-autofill,
824
+ #profiles-dialog input:-webkit-autofill:hover,
825
+ #profiles-dialog input:-webkit-autofill:focus,
826
+ #profiles-dialog input:-webkit-autofill:focus-visible {
827
+ -webkit-text-fill-color: var(--text-main);
828
+ -webkit-box-shadow: 0 0 0 1000px var(--input-bg) inset;
829
+ box-shadow: 0 0 0 1000px var(--input-bg) inset;
830
+ caret-color: var(--text-main);
831
+ }
832
+
833
+ .input-password-wrapper {
834
+ display: flex;
835
+ position: relative;
836
+ }
837
+
838
+ .input-password-wrapper input {
839
+ padding-right: 2.5rem;
840
+ }
841
+
842
+ .btn-toggle-visibility {
843
+ position: absolute;
844
+ right: 0.5rem;
845
+ top: 50%;
846
+ transform: translateY(-50%);
847
+ background: transparent;
848
+ border: none;
849
+ cursor: pointer;
850
+ padding: 0.25rem;
851
+ font-size: 1rem;
852
+ }
853
+
854
+ .form-field input[type="range"] {
855
+ accent-color: var(--primary);
856
+ cursor: pointer;
857
+ }
858
+
859
+ .cookie-notice {
860
+ display: flex;
861
+ gap: 0.6rem;
862
+ align-items: flex-start;
863
+ background-color: var(--primary-light);
864
+ border: 1px solid #bfdbfe;
865
+ padding: 0.75rem 1rem;
866
+ border-radius: var(--radius-md);
867
+ font-size: 0.8rem;
868
+ color: #1e40af;
869
+ }
870
+
871
+ .cookie-notice svg {
872
+ flex-shrink: 0;
873
+ margin-top: 1px;
874
+ }
875
+
876
+ /* Pie del Modal FIJO con botones siempre visibles */
877
+ .modal-footer {
878
+ flex-shrink: 0;
879
+ display: flex;
880
+ justify-content: space-between;
881
+ align-items: center;
882
+ padding: 0.85rem 1.4rem;
883
+ border-top: 1px solid var(--border-color);
884
+ background-color: var(--bg-surface);
885
+ gap: 0.5rem;
886
+ z-index: 10;
887
+ }
888
+
889
+ .footer-actions-left,
890
+ .footer-actions-right {
891
+ display: flex;
892
+ gap: 0.5rem;
893
+ align-items: center;
894
+ }
895
+
896
+ .btn-primary,
897
+ .btn-secondary {
898
+ font-size: 0.9rem;
899
+ }
900
+
901
+ .btn-primary {
902
+ background-color: var(--primary);
903
+ color: white;
904
+ border: none;
905
+ padding: 0.6rem 1.15rem;
906
+ }
907
+
908
+ .btn-primary:hover {
909
+ background-color: var(--primary-hover);
910
+ }
911
+
912
+ .btn-secondary {
913
+ background-color: #f1f5f9;
914
+ color: var(--text-main);
915
+ border: 1px solid var(--border-color);
916
+ padding: 0.6rem 1rem;
917
+ }
918
+
919
+ .btn-secondary:hover {
920
+ background-color: #e2e8f0;
921
+ }
922
+
923
+ .btn-danger-outline {
924
+ background-color: transparent;
925
+ color: #ef4444;
926
+ border: 1px solid rgba(239, 68, 68, 0.4);
927
+ padding: 0.6rem 0.95rem;
928
+ font-size: 0.88rem;
929
+ gap: 0.35rem;
930
+ }
931
+
932
+ .btn-danger-outline:hover {
933
+ background-color: #fef2f2;
934
+ border-color: #ef4444;
935
+ color: #dc2626;
936
+ }
937
+
938
+ [data-theme="dark"] .btn-danger-outline {
939
+ color: #f87171;
940
+ border-color: rgba(239, 68, 68, 0.3);
941
+ background-color: rgba(239, 68, 68, 0.06);
942
+ }
943
+
944
+ [data-theme="dark"] .btn-danger-outline:hover {
945
+ background-color: rgba(239, 68, 68, 0.18);
946
+ border-color: #ef4444;
947
+ color: #fca5a5;
948
+ }
949
+
950
+
951
+
952
+ /* ==========================================================================
953
+ Modal de Opciones de Exportación
954
+ ========================================================================== */
955
+ .export-options-grid {
956
+ display: flex;
957
+ flex-direction: column;
958
+ gap: 0.75rem;
959
+ padding: 0.5rem 0;
960
+ }
961
+
962
+ .export-card-btn {
963
+ display: flex;
964
+ align-items: center;
965
+ gap: 0.85rem;
966
+ padding: 0.85rem 1rem;
967
+ text-align: left;
968
+ width: 100%;
969
+ }
970
+
971
+ .export-card-btn:hover {
972
+ background-color: var(--bg-hover);
973
+ border-color: var(--border-focus);
974
+ transform: translateY(-1px);
975
+ }
976
+
977
+ .export-card-icon {
978
+ font-size: 1.5rem;
979
+ display: flex;
980
+ align-items: center;
981
+ justify-content: center;
982
+ color: var(--primary);
983
+ flex-shrink: 0;
984
+ }
985
+
986
+ .export-card-info {
987
+ display: flex;
988
+ flex-direction: column;
989
+ gap: 0.2rem;
990
+ }
991
+
992
+ .export-card-info strong {
993
+ font-size: 0.875rem;
994
+ color: var(--text-main);
995
+ }
996
+
997
+ .export-card-info span {
998
+ font-size: 0.775rem;
999
+ color: var(--text-muted);
1000
+ line-height: 1.35;
1001
+ }
1002
+
1003
+
1004
+
1005
+ /* ==========================================================================
1006
+ Conocimiento local (IndexedDB + Orama)
1007
+ ========================================================================== */
1008
+
1009
+ .btn-rag-mini.active {
1010
+ border-color: var(--primary-color);
1011
+ color: var(--primary-color);
1012
+ background: var(--primary-light);
1013
+ }
1014
+
1015
+ .rag-modal {
1016
+ width: min(900px, 96vw);
1017
+ max-width: 900px;
1018
+ max-height: 90vh;
1019
+ }
1020
+
1021
+ .rag-modal-body { min-height: 420px; }
1022
+ .rag-active-branch-list, .rag-documents-list { display: grid; gap: 0.65rem; }
1023
+ .rag-master-toggle-card { margin-bottom: 1rem; }
1024
+ .rag-activation-header-actions {
1025
+ display: flex;
1026
+ align-items: center;
1027
+ gap: 0.4rem;
1028
+ }
1029
+ .rag-manage-header-actions {
1030
+ display: flex;
1031
+ align-items: center;
1032
+ gap: 0.4rem;
1033
+ }
1034
+ .rag-activation-header-actions .btn-secondary,
1035
+ .rag-manage-header-actions .btn-secondary,
1036
+ .rag-manage-header-actions .btn-primary {
1037
+ padding: 0.4rem 0.65rem;
1038
+ font-size: 0.78rem;
1039
+ }
1040
+ .rag-master-storage {
1041
+ flex-shrink: 0;
1042
+ padding: 0.35rem 0.5rem;
1043
+ border: 1px solid var(--border-color);
1044
+ border-radius: var(--radius-sm);
1045
+ background: var(--bg-surface-subtle);
1046
+ }
1047
+
1048
+ .rag-branch-select-card {
1049
+ width: 100%;
1050
+ cursor: pointer;
1051
+ text-align: left;
1052
+ color: var(--text-main);
1053
+ }
1054
+ .rag-branch-select-card.active { border-color: var(--primary-color); background: var(--primary-light); }
1055
+ .rag-branch-select-card .toggle-card-info { display: grid; gap: 0.2rem; }
1056
+ .rag-branch-metrics { color: var(--text-muted); font-size: 0.78rem; }
1057
+
1058
+ .rag-active-tip-card {
1059
+ margin-top: 1.1rem;
1060
+ padding: 0.75rem 0.9rem;
1061
+ font-size: 0.82rem;
1062
+ color: var(--text-secondary);
1063
+ display: flex;
1064
+ gap: 0.65rem;
1065
+ align-items: flex-start;
1066
+ line-height: 1.45;
1067
+ }
1068
+ .rag-active-tip-icon {
1069
+ font-size: 1.1rem;
1070
+ line-height: 1;
1071
+ flex-shrink: 0;
1072
+ margin-top: 0.1rem;
1073
+ }
1074
+ .rag-active-tip-content {
1075
+ display: flex;
1076
+ flex-direction: column;
1077
+ gap: 0.2rem;
1078
+ }
1079
+ .rag-active-tip-content strong {
1080
+ color: var(--text-main);
1081
+ font-size: 0.82rem;
1082
+ }
1083
+
1084
+ .rag-help-link-card {
1085
+ display: flex;
1086
+ align-items: center;
1087
+ gap: 0.5rem;
1088
+ padding: 0.6rem 0.75rem;
1089
+ margin-top: 1rem;
1090
+ font-size: 0.82rem;
1091
+ color: var(--text-secondary);
1092
+ background: var(--bg-secondary, #f6f8fa);
1093
+ border-radius: 6px;
1094
+ }
1095
+ .rag-help-link-card .ui-icon {
1096
+ flex-shrink: 0;
1097
+ color: var(--color-primary, #2563eb);
1098
+ }
1099
+ .rag-help-external-link {
1100
+ color: var(--color-primary, #2563eb);
1101
+ text-decoration: none;
1102
+ font-weight: 500;
1103
+ margin-left: auto;
1104
+ }
1105
+ .rag-help-external-link:hover {
1106
+ text-decoration: underline;
1107
+ }
1108
+ [data-theme="dark"] .rag-help-link-card {
1109
+ background: var(--bg-tertiary, #1c1e21);
1110
+ }
1111
+
1112
+ .rag-manage-toolbar {
1113
+ display: flex;
1114
+ align-items: end;
1115
+ justify-content: space-between;
1116
+ gap: 1rem;
1117
+ margin-bottom: 1rem;
1118
+ }
1119
+ .rag-manage-branch-field { flex: 1; min-width: 0; margin: 0; }
1120
+ .rag-manage-branch-field .combobox-select-helper { width: 100%; max-width: none; }
1121
+ .rag-manage-toolbar-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
1122
+
1123
+ .rag-branch-details-card {
1124
+ display: grid;
1125
+ gap: 0.75rem;
1126
+ padding: 0.85rem;
1127
+ margin-bottom: 1rem;
1128
+ }
1129
+ .rag-branch-fields-grid {
1130
+ display: grid;
1131
+ grid-template-columns: 1.2fr 200px 1.6fr;
1132
+ gap: 0.75rem;
1133
+ }
1134
+ @media (max-width: 768px) {
1135
+ .rag-branch-fields-grid {
1136
+ grid-template-columns: 1fr;
1137
+ }
1138
+ }
1139
+
1140
+ .rag-manage-workspace { display: grid; gap: 1rem; }
1141
+
1142
+ .rag-dropzone {
1143
+ display: grid;
1144
+ gap: 0.35rem;
1145
+ place-items: center;
1146
+ padding: 2rem;
1147
+ border: 2px dashed var(--border-color);
1148
+ border-radius: var(--radius-md);
1149
+ color: var(--text-muted);
1150
+ cursor: pointer;
1151
+ }
1152
+ .rag-dropzone:hover, .rag-dropzone.drag-over { border-color: var(--primary-color); background: var(--primary-light); }
1153
+
1154
+ .rag-ingestion-progress-item, .rag-document-card {
1155
+ display: flex;
1156
+ align-items: center;
1157
+ justify-content: space-between;
1158
+ gap: 0.75rem;
1159
+ padding: 0.75rem;
1160
+ border: 1px solid var(--border-color);
1161
+ border-radius: var(--radius-sm);
1162
+ }
1163
+ .rag-ingestion-progress-item { display: grid; grid-template-columns: minmax(120px, 0.5fr) 1fr minmax(100px, 0.4fr); }
1164
+ .rag-ingestion-progress-item.error { border-color: var(--danger-color, #dc2626); }
1165
+ .rag-ingestion-progress-item progress { width: 100%; }
1166
+ .rag-ingestion-global-progress { display: grid; grid-template-columns: 1fr minmax(140px, 0.6fr) auto; align-items: center; gap: 0.65rem; padding: 0.75rem 0.8rem; margin-bottom: 0.65rem; border: 1px solid var(--primary-color); border-radius: var(--radius-sm); background: var(--primary-light); }
1167
+ .rag-ingestion-global-progress > div { display: grid; gap: 0.1rem; }
1168
+ .rag-ingestion-global-progress span { color: var(--text-muted); font-size: 0.78rem; }
1169
+ .rag-ingestion-global-progress progress { width: 100%; }
1170
+ .rag-ingestion-progress-recent { display: grid; gap: 0.5rem; }
1171
+ .rag-empty-state { padding: 2rem; text-align: center; color: var(--text-muted); }
1172
+ .modal-footer-info { display: flex; align-items: center; gap: 0.55rem; flex-wrap: wrap; font-size: 0.75rem; color: var(--text-muted); }
1173
+ .rag-branch-summary-footer { font-size: 0.75rem; color: var(--text-muted); }
1174
+ .rag-branch-summary-footer strong { color: var(--text-main, currentColor); font-weight: 600; }
1175
+ .rag-footer-separator { color: var(--text-muted); opacity: 0.6; }
1176
+ .rag-storage-quota-info { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.75rem; color: var(--text-muted); }
1177
+ .rag-help-container { display: grid; gap: 1rem; }
1178
+
1179
+ /* Mantener Documentos y Ayuda en la misma escala tipográfica que Activar. */
1180
+ .rag-manage-workspace,
1181
+ .rag-help-container { font-size: 0.82rem; }
1182
+ .rag-manage-workspace .rag-dropzone strong,
1183
+ .rag-manage-workspace .rag-document-card strong,
1184
+ .rag-help-container .setting-card-title { font-size: 0.82rem; }
1185
+ .rag-manage-workspace .rag-dropzone span,
1186
+ .rag-manage-workspace .rag-document-card .toggle-card-desc,
1187
+ .rag-help-container .setting-card-desc {
1188
+ font-size: 0.725rem;
1189
+ line-height: 1.35;
1190
+ }
1191
+
1192
+ @media (max-width: 768px) {
1193
+ .rag-modal .modal-header { align-items: flex-start; gap: 0.5rem; }
1194
+ .rag-activation-header-actions,
1195
+ .rag-manage-header-actions { justify-content: flex-end; flex-wrap: wrap; }
1196
+ .rag-activation-header-actions .btn-secondary,
1197
+ .rag-manage-header-actions .btn-secondary,
1198
+ .rag-manage-header-actions .btn-primary { padding: 0.35rem 0.5rem; }
1199
+ .rag-manage-toolbar { align-items: stretch; flex-direction: column; }
1200
+ .rag-ingestion-progress-item { grid-template-columns: 1fr; }
1201
+ .rag-ingestion-global-progress { grid-template-columns: 1fr; }
1202
+ }
1203
+
1204
+ .notice-dialog {
1205
+ width: min(460px, calc(100vw - 32px));
1206
+ max-height: calc(100dvh - 32px);
1207
+ }
1208
+ .notice-dialog #notice-message {
1209
+ white-space: pre-wrap;
1210
+ overflow-wrap: anywhere;
1211
+ overflow-y: auto;
1212
+ }
1213
+
1214
+ /* Al cerrar, no mantener visible el diálogo sin los estilos de [open]. */
1215
+ .notice-dialog:not([open]) {
1216
+ transition: none;
1217
+ }
1218
+
1219
+ #notice-input {
1220
+ margin-top: 1rem;
1221
+ }
1222
+
1223
+ .notice-checkbox-wrapper {
1224
+ margin-top: 1rem;
1225
+ font-size: 0.85rem;
1226
+ color: var(--text-muted);
1227
+ }
1228
+
1229
+ .notice-checkbox-label {
1230
+ display: inline-flex;
1231
+ align-items: center;
1232
+ gap: 0.5rem;
1233
+ cursor: pointer;
1234
+ user-select: none;
1235
+ }
1236
+
1237
+ .notice-checkbox-label input[type="checkbox"] {
1238
+ cursor: pointer;
1239
+ }
1240
+
1241
+ .rag-stop-ingestion-btn {
1242
+ display: inline-flex;
1243
+ align-items: center;
1244
+ gap: 0.35rem;
1245
+ padding: 0.25rem 0.55rem;
1246
+ font-size: 0.75rem;
1247
+ font-weight: 500;
1248
+ cursor: pointer;
1249
+ white-space: nowrap;
1250
+ }
1251
+
1252
+ /* ==========================================================================
1253
+ Modales en Dispositivos Móviles (Ancho Completo de Pantalla)
1254
+ ========================================================================== */
1255
+ @media (max-width: 768px) {
1256
+ .settings-modal {
1257
+ position: fixed;
1258
+ inset: 0;
1259
+ width: 100vw;
1260
+ width: 100dvw;
1261
+ max-width: 100vw;
1262
+ max-width: 100dvw;
1263
+ height: 100vh;
1264
+ height: 100dvh;
1265
+ max-height: 100vh;
1266
+ max-height: 100dvh;
1267
+ margin: 0;
1268
+ border: none;
1269
+ border-radius: 0;
1270
+ box-shadow: none;
1271
+ padding-left: env(safe-area-inset-left, 0px);
1272
+ padding-right: env(safe-area-inset-right, 0px);
1273
+ }
1274
+
1275
+ .settings-modal .modal-header {
1276
+ position: sticky;
1277
+ top: 0;
1278
+ z-index: 10;
1279
+ padding-top: max(0.75rem, env(safe-area-inset-top, 0.75rem));
1280
+ }
1281
+
1282
+ .debug-interceptor-modal {
1283
+ width: 100vw;
1284
+ width: 100dvw;
1285
+ max-width: 100vw;
1286
+ max-width: 100dvw;
1287
+ left: 0;
1288
+ right: 0;
1289
+ margin-left: 0;
1290
+ margin-right: 0;
1291
+ border-left: none;
1292
+ border-right: none;
1293
+ border-radius: 0;
1294
+ padding-left: env(safe-area-inset-left, 0px);
1295
+ padding-right: env(safe-area-inset-right, 0px);
1296
+ }
1297
+
1298
+ .rag-modal {
1299
+ width: 100vw;
1300
+ width: 100dvw;
1301
+ max-width: 100vw;
1302
+ max-width: 100dvw;
1303
+ height: 94vh;
1304
+ }
1305
+
1306
+ .notice-dialog {
1307
+ width: 100vw;
1308
+ width: 100dvw;
1309
+ max-width: 100vw;
1310
+ max-width: 100dvw;
1311
+ left: 0;
1312
+ right: 0;
1313
+ margin-left: 0;
1314
+ margin-right: 0;
1315
+ border-left: none;
1316
+ border-right: none;
1317
+ border-radius: 0;
1318
+ }
1319
+ }