micro-models-agent 2.5.0 → 2.9.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.
- package/CHANGELOG.md +105 -0
- package/README.md +88 -38
- package/bin/mma.mjs +41 -41
- package/dist/assets/app.js +246 -3086
- package/dist/assets/hljs.js +1244 -0
- package/dist/assets/index.html +15 -1
- package/dist/assets/js/api.js +28 -0
- package/dist/assets/js/dialog.js +105 -0
- package/dist/assets/js/dom.js +157 -0
- package/dist/assets/js/feed.js +995 -0
- package/dist/assets/js/format.js +114 -0
- package/dist/assets/js/i18n.js +46 -0
- package/dist/assets/js/settings.js +1126 -0
- package/dist/assets/js/store.js +79 -0
- package/dist/assets/js/tabs.js +672 -0
- package/dist/assets/md.js +277 -0
- package/dist/assets/setup.js +557 -0
- package/dist/assets/smd.js +1665 -0
- package/dist/assets/styles.css +250 -16
- package/dist/i18n/en.json +174 -6
- package/dist/i18n/ru.json +174 -6
- package/dist/main.js +5198 -2651
- package/dist/modules/browser/bridge-server.mjs +3 -3
- package/package.json +10 -2
package/dist/assets/styles.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* ---- theme tokens (dark default; light override further below) ---- */
|
|
1
2
|
:root {
|
|
2
3
|
--bg: #12161d;
|
|
3
4
|
--fg: #e6edf3;
|
|
@@ -144,6 +145,7 @@ body {
|
|
|
144
145
|
font-size: 13px; display: flex; flex-direction: column; overflow: hidden;
|
|
145
146
|
}
|
|
146
147
|
|
|
148
|
+
/* ---- topbar: new chat, sessions dropdown, tabstrip, settings ---- */
|
|
147
149
|
.bar-top {
|
|
148
150
|
display: flex; gap: 14px; align-items: center;
|
|
149
151
|
padding: 8px 14px; background: var(--panel); border-bottom: 1px solid var(--border);
|
|
@@ -156,6 +158,7 @@ body {
|
|
|
156
158
|
.icon-btn:hover { background: var(--hover-bg); color: var(--fg); }
|
|
157
159
|
.icon-btn.primary { color: var(--accent); }
|
|
158
160
|
#openSettings { margin-left: auto; margin-right: 6px; }
|
|
161
|
+
#toggleSidebar { display: none; }
|
|
159
162
|
.conn { color: var(--dim-a); font-size: 11.5px; white-space: nowrap; }
|
|
160
163
|
.tabstrip {
|
|
161
164
|
display: flex; gap: 4px; align-items: center; overflow-x: auto;
|
|
@@ -176,7 +179,6 @@ body {
|
|
|
176
179
|
.stab:hover { color: var(--fg); }
|
|
177
180
|
.stab.on { background: var(--stab-on-bg); color: var(--fg); border-color: var(--border); }
|
|
178
181
|
.stab .name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
179
|
-
.stab .sid { flex: 0 0 auto; color: var(--dim-b); font-size: 11px; }
|
|
180
182
|
.stab .stab-x {
|
|
181
183
|
flex: 0 0 auto; width: 18px; height: 18px; padding: 0; justify-content: center;
|
|
182
184
|
color: var(--dim-b); border-radius: 3px; cursor: pointer;
|
|
@@ -216,6 +218,7 @@ body {
|
|
|
216
218
|
.dd-menu .act { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; padding: 7px 8px; border-radius: 4px; cursor: pointer; color: var(--accent); font-size: 12.5px; }
|
|
217
219
|
.dd-menu .act:hover { background: var(--accent-bg); }
|
|
218
220
|
|
|
221
|
+
/* ---- layout + chat feed (messages, cards, markdown, tool output) ---- */
|
|
219
222
|
.layout { flex: 1; display: flex; min-height: 0; }
|
|
220
223
|
|
|
221
224
|
/* chat */
|
|
@@ -236,6 +239,8 @@ body {
|
|
|
236
239
|
.ans { color: var(--ans); white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
|
|
237
240
|
.think-h { color: var(--think); cursor: pointer; user-select: none; display: flex; gap: 8px; align-items: baseline; font-size: 12.5px; }
|
|
238
241
|
.think-h .dur, .think-h .tog { color: var(--dim-b); }
|
|
242
|
+
.think-h .tog { display: inline-flex; align-items: center; gap: 4px; }
|
|
243
|
+
.think-h .tog .svg-icon { width: 12px; height: 12px; }
|
|
239
244
|
.think-h .tog:hover { color: var(--dim-a); }
|
|
240
245
|
.think-body { color: var(--dim-c); padding-left: 18px; white-space: pre-wrap; font-size: 12.5px; overflow-wrap: anywhere; }
|
|
241
246
|
.think-body.hidden { display: none; }
|
|
@@ -285,6 +290,69 @@ body.light .code { border: 1px solid var(--border); }
|
|
|
285
290
|
.toolout .more { color: var(--dim-b); cursor: pointer; font-size: 12px; }
|
|
286
291
|
.toolout .more:hover { color: var(--dim-a); }
|
|
287
292
|
|
|
293
|
+
/* markdown answers (streamed by md.js) — lines and glyphs, no boxes */
|
|
294
|
+
.md { color: var(--ans); overflow-wrap: anywhere; }
|
|
295
|
+
.md > * { flex-shrink: 0; }
|
|
296
|
+
.md p { margin: 4px 0; white-space: pre-wrap; }
|
|
297
|
+
.md h1, .md h2, .md h3, .md h4, .md h5, .md h6 {
|
|
298
|
+
color: var(--fg); font-weight: 600; line-height: 1.3; margin: 10px 0 4px;
|
|
299
|
+
}
|
|
300
|
+
.md h1 { font-size: 1.35em; }
|
|
301
|
+
.md h2 { font-size: 1.2em; }
|
|
302
|
+
.md h3 { font-size: 1.1em; }
|
|
303
|
+
.md h4, .md h5, .md h6 { font-size: 1em; }
|
|
304
|
+
.md h1:first-child, .md h2:first-child, .md h3:first-child { margin-top: 2px; }
|
|
305
|
+
.md ul, .md ol { margin: 4px 0; padding-left: 22px; }
|
|
306
|
+
.md li { margin: 1px 0; }
|
|
307
|
+
.md li > p { margin: 0; }
|
|
308
|
+
.md blockquote { margin: 4px 0; padding-left: 10px; border-left: 2px solid var(--pipe); color: var(--dim-a); }
|
|
309
|
+
.md hr { border: 0; border-top: 1px solid var(--rule); margin: 8px 0; }
|
|
310
|
+
.md a { color: var(--accent); text-decoration: none; }
|
|
311
|
+
.md a:hover { text-decoration: underline; }
|
|
312
|
+
.md img { max-width: 100%; border-radius: 4px; }
|
|
313
|
+
.md code {
|
|
314
|
+
background: var(--surface); color: var(--fg); padding: 1px 5px;
|
|
315
|
+
border-radius: 3px; font-size: .92em;
|
|
316
|
+
}
|
|
317
|
+
.md pre code { background: none; padding: 0; border-radius: 0; font-size: inherit; }
|
|
318
|
+
.md input[type="checkbox"] { margin-right: 4px; vertical-align: middle; }
|
|
319
|
+
.md table { border-collapse: collapse; margin: 6px 0; font-size: .95em; }
|
|
320
|
+
.md th { color: var(--fg); font-weight: 600; text-align: left; padding: 2px 14px 3px 0; }
|
|
321
|
+
.md td { color: var(--ans); padding: 2px 14px 3px 0; border-top: 1px solid var(--border-3); }
|
|
322
|
+
|
|
323
|
+
/* fenced code block: dim header (language · copy) + code body */
|
|
324
|
+
.codeblock { margin: 6px 0; background: var(--surface); border-radius: 4px; overflow: hidden; }
|
|
325
|
+
body.light .codeblock { border: 1px solid var(--border); }
|
|
326
|
+
.cb-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 8px 3px 12px; font-size: 11.5px; color: var(--dim-b); }
|
|
327
|
+
.cb-lang { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
328
|
+
.cb-copy { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--dim-b); cursor: pointer; }
|
|
329
|
+
.cb-copy .svg-icon { width: 14px; height: 14px; }
|
|
330
|
+
.cb-copy:hover:not(:disabled) { background: var(--hover-bg); color: var(--fg); }
|
|
331
|
+
.cb-copy:disabled { opacity: .3; cursor: default; }
|
|
332
|
+
.cb-copy.done { color: var(--green); }
|
|
333
|
+
.codeblock pre { margin: 0; padding: 6px 12px 10px; overflow-x: auto; max-height: 420px; overflow-y: auto; }
|
|
334
|
+
.codeblock code { display: block; white-space: pre; color: var(--fg); font-size: 12.5px; line-height: 1.55; }
|
|
335
|
+
|
|
336
|
+
/* highlight.js token palette — reuses the theme's semantic tokens */
|
|
337
|
+
.hljs-comment, .hljs-quote { color: var(--dim-b); font-style: italic; }
|
|
338
|
+
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-doctag { color: var(--red); }
|
|
339
|
+
.hljs-string, .hljs-attr, .hljs-attribute, .hljs-regexp, .hljs-link { color: var(--accent); }
|
|
340
|
+
.hljs-number, .hljs-symbol, .hljs-bullet { color: var(--accent); }
|
|
341
|
+
.hljs-title, .hljs-section, .hljs-selector-id, .hljs-selector-class { color: var(--purple); }
|
|
342
|
+
.hljs-built_in, .hljs-type, .hljs-class .hljs-title { color: var(--yellow); }
|
|
343
|
+
.hljs-variable, .hljs-template-variable, .hljs-params, .hljs-property { color: var(--fg); }
|
|
344
|
+
.hljs-meta { color: var(--dim-a); }
|
|
345
|
+
.hljs-tag, .hljs-name, .hljs-selector-pseudo { color: var(--green); }
|
|
346
|
+
.hljs-deletion { color: var(--red); }
|
|
347
|
+
.hljs-addition { color: var(--green); }
|
|
348
|
+
.hljs-emphasis { font-style: italic; }
|
|
349
|
+
.hljs-strong { font-weight: 700; }
|
|
350
|
+
|
|
351
|
+
/* per-message copy actions */
|
|
352
|
+
.msg-actions { display: flex; gap: 12px; margin: 3px 0 6px; }
|
|
353
|
+
.act-btn { font: inherit; font-size: 11.5px; color: var(--dim-b); background: none; border: 0; padding: 0; cursor: pointer; }
|
|
354
|
+
.act-btn:hover { color: var(--fg); }
|
|
355
|
+
|
|
288
356
|
/* tool payload cards in chat */
|
|
289
357
|
.imgcard {
|
|
290
358
|
margin-left: 26px; max-width: 360px; border-radius: 4px; overflow: hidden;
|
|
@@ -371,7 +439,7 @@ body.light .imgcard .ph { background: var(--ph-light); }
|
|
|
371
439
|
}
|
|
372
440
|
.empty .g { color: var(--green); }
|
|
373
441
|
|
|
374
|
-
/* input */
|
|
442
|
+
/* ---- composer: selectors, attachments, input, autocomplete ---- */
|
|
375
443
|
.input-area { margin: 14px 22px 16px; position: relative; }
|
|
376
444
|
.selectors { display: flex; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
|
|
377
445
|
.sel { position: relative; }
|
|
@@ -500,7 +568,7 @@ body.light .sel > button { border: 1px solid var(--border); }
|
|
|
500
568
|
.input-area.dragover .composer { border-color: var(--accent); box-shadow: 0 0 0 2px var(--input-shadow); }
|
|
501
569
|
@keyframes blink { 50% { opacity: 0; } }
|
|
502
570
|
|
|
503
|
-
/* sidebar —
|
|
571
|
+
/* ---- sidebar — plan / usage / environment sections ---- */
|
|
504
572
|
.sb {
|
|
505
573
|
width: 280px; min-width: 280px; display: flex; flex-direction: column;
|
|
506
574
|
border-left: 1px solid var(--border); background: var(--sb-bg); min-height: 0;
|
|
@@ -545,6 +613,16 @@ body.light .kv b { color: var(--fg); }
|
|
|
545
613
|
.kv .dim { color: var(--dim-a); }
|
|
546
614
|
.kv .wn { color: var(--yellow); }
|
|
547
615
|
body.light .kv .wn { color: var(--yellow); }
|
|
616
|
+
.kv-val { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
|
|
617
|
+
.kv-val b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
618
|
+
.copy-btn {
|
|
619
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
620
|
+
width: 18px; height: 18px; padding: 0; flex: 0 0 auto;
|
|
621
|
+
border: 0; border-radius: 3px; background: transparent;
|
|
622
|
+
color: var(--dim-b); cursor: pointer;
|
|
623
|
+
}
|
|
624
|
+
.copy-btn .svg-icon { width: 12px; height: 12px; }
|
|
625
|
+
.copy-btn:hover { color: var(--fg); background: var(--hover-bg); }
|
|
548
626
|
/* Environment section: stacked items (name on top, dim value below). */
|
|
549
627
|
#env .env-item { padding: 3px 0; }
|
|
550
628
|
#env .env-k { color: var(--muted); font-size: 12px; }
|
|
@@ -552,7 +630,7 @@ body.light .kv .wn { color: var(--yellow); }
|
|
|
552
630
|
.bar { height: 4px; background: var(--track); border-radius: 2px; margin-top: 6px; overflow: hidden; }
|
|
553
631
|
.bar i { display: block; height: 100%; width: 0; background: var(--green-fill); transition: width .2s; }
|
|
554
632
|
|
|
555
|
-
/* settings modal */
|
|
633
|
+
/* ---- settings modal + nested dialogs (provider, confirm) ---- */
|
|
556
634
|
.overlay {
|
|
557
635
|
display: none; position: fixed; inset: 0; z-index: 50;
|
|
558
636
|
background: var(--overlay); align-items: center; justify-content: center;
|
|
@@ -590,6 +668,16 @@ body.light .kv .wn { color: var(--yellow); }
|
|
|
590
668
|
.confirm-actions .linkbtn:hover { text-decoration: none; background: var(--hover-bg-2); }
|
|
591
669
|
.confirm-actions .linkbtn.danger { border-color: var(--red-strong); color: var(--red-strong); }
|
|
592
670
|
.confirm-actions .linkbtn.danger:hover { background: var(--x-hover-bg); }
|
|
671
|
+
|
|
672
|
+
/* nested provider add/edit dialog (opens above the settings modal) */
|
|
673
|
+
.overlay.overlay-nested { z-index: 60; }
|
|
674
|
+
.modal.modal-provider {
|
|
675
|
+
width: min(520px, 92vw); height: auto; max-height: 88vh; border-radius: 8px;
|
|
676
|
+
}
|
|
677
|
+
.provider-body { display: block; padding: 20px 22px 22px; overflow-y: auto; }
|
|
678
|
+
.provider-body .pform {
|
|
679
|
+
margin: 0; padding: 0; border: 0; background: none;
|
|
680
|
+
}
|
|
593
681
|
.menu-col {
|
|
594
682
|
width: 200px; min-width: 200px; padding: 12px 8px;
|
|
595
683
|
border-right: 1px solid var(--border); overflow-y: auto;
|
|
@@ -725,23 +813,73 @@ body.light .toggle { background: var(--toggle-off); }
|
|
|
725
813
|
.mem-add input { flex: 1 1 180px; min-width: 0; }
|
|
726
814
|
.mem-add .linkbtn { flex: 0 0 auto; }
|
|
727
815
|
|
|
816
|
+
/* settings sections (models / providers) */
|
|
817
|
+
.settings-section { margin-bottom: 22px; }
|
|
818
|
+
.sec-head {
|
|
819
|
+
display: flex; align-items: baseline; gap: 10px;
|
|
820
|
+
padding: 0 0 6px; border-bottom: 1px solid var(--border-3);
|
|
821
|
+
}
|
|
822
|
+
.sec-title { font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--dim-a); }
|
|
823
|
+
.sec-add {
|
|
824
|
+
margin-left: auto; display: inline-flex; align-items: center; gap: 5px;
|
|
825
|
+
font: inherit; font-size: 12px; color: var(--accent);
|
|
826
|
+
background: none; border: 0; padding: 2px 0; cursor: pointer;
|
|
827
|
+
}
|
|
828
|
+
.sec-add:hover { text-decoration: underline; }
|
|
829
|
+
.sec-add .svg-icon { width: 13px; height: 13px; }
|
|
830
|
+
.sec-body { padding-top: 8px; }
|
|
831
|
+
|
|
832
|
+
/* model catalog */
|
|
833
|
+
.model-list { max-height: 320px; overflow-y: auto; }
|
|
834
|
+
.model-item {
|
|
835
|
+
display: flex; align-items: center; gap: 10px;
|
|
836
|
+
padding: 6px 0; border-bottom: 1px solid var(--border-3);
|
|
837
|
+
font-size: 12.5px; color: var(--muted);
|
|
838
|
+
}
|
|
839
|
+
.model-item:last-child { border-bottom: none; }
|
|
840
|
+
.model-item .m-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
841
|
+
.model-item.active .m-name { color: var(--purple); }
|
|
842
|
+
.model-item .m-meta { color: var(--dim-a); white-space: nowrap; flex: 0 0 auto; }
|
|
843
|
+
|
|
844
|
+
/* provider entries */
|
|
845
|
+
.provider-list { display: flex; flex-direction: column; }
|
|
846
|
+
.provider-item { padding: 8px 0; border-bottom: 1px solid var(--border-3); }
|
|
847
|
+
.provider-item:last-child { border-bottom: none; }
|
|
848
|
+
.provider-item .p-head { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
|
|
849
|
+
.provider-item .p-name { color: var(--fg); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
850
|
+
.provider-item .badge {
|
|
851
|
+
flex: 0 0 auto; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
|
|
852
|
+
color: var(--green); border: 1px solid var(--border-2); border-radius: 999px; padding: 1px 7px;
|
|
853
|
+
}
|
|
854
|
+
.provider-item .p-meta { color: var(--dim-a); font-size: 11.5px; margin-top: 2px; overflow-wrap: anywhere; }
|
|
855
|
+
.provider-item .p-actions { display: flex; gap: 12px; margin-top: 6px; }
|
|
856
|
+
.chip { font: inherit; font-size: 11.5px; color: var(--accent); background: none; border: 0; padding: 0; cursor: pointer; }
|
|
857
|
+
.chip:hover { text-decoration: underline; }
|
|
858
|
+
.chip.danger { color: var(--red-strong); }
|
|
859
|
+
|
|
728
860
|
/* provider add/edit form */
|
|
729
|
-
.add-provider { display: inline-block; padding: 8px 0; }
|
|
730
861
|
.pform {
|
|
731
|
-
margin-top:
|
|
862
|
+
margin-top: 12px; padding: 12px; border: 1px solid var(--border-2); border-radius: 6px;
|
|
732
863
|
background: var(--surface);
|
|
733
864
|
}
|
|
865
|
+
.pform-title { font-size: 12.5px; color: var(--fg); margin-bottom: 10px; }
|
|
734
866
|
.pform-grid {
|
|
735
867
|
display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
736
|
-
gap:
|
|
868
|
+
gap: 14px;
|
|
737
869
|
}
|
|
738
|
-
.pform-field { display: flex; flex-direction: column; gap:
|
|
870
|
+
.pform-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
|
|
739
871
|
.pform-field label { font-size: 11px; color: var(--dim-a); text-transform: uppercase; letter-spacing: .04em; }
|
|
740
|
-
.pform-field input
|
|
872
|
+
.pform-field input,
|
|
873
|
+
.pform-field select {
|
|
741
874
|
background: var(--input-surface); border: 1px solid var(--border-2); border-radius: 4px;
|
|
742
|
-
color: var(--fg); font: inherit; font-size: 12.5px; padding:
|
|
743
|
-
}
|
|
744
|
-
|
|
875
|
+
color: var(--fg); font: inherit; font-size: 12.5px; padding: 6px 8px; width: 100%; min-width: 0;
|
|
876
|
+
}
|
|
877
|
+
/* preset row sits above the field grid — keep it off the fields */
|
|
878
|
+
.provider-body .pform > .pform-field { margin-bottom: 16px; }
|
|
879
|
+
.pform-adv { margin-top: 18px; }
|
|
880
|
+
.pform-adv summary { cursor: pointer; font-size: 11.5px; color: var(--dim-a); text-transform: uppercase; letter-spacing: .04em; }
|
|
881
|
+
.pform-adv .pform-grid { margin-top: 12px; }
|
|
882
|
+
.pform-actions { display: flex; gap: 14px; align-items: center; padding-top: 22px; }
|
|
745
883
|
.pform-actions .linkbtn.dim { color: var(--dim-a); }
|
|
746
884
|
.settings-note { color: var(--dim-b); font-size: 11.5px; line-height: 1.7; padding: 8px 0 4px; }
|
|
747
885
|
|
|
@@ -849,13 +987,19 @@ button.toggle:disabled { opacity: .5; cursor: default; }
|
|
|
849
987
|
@media (max-width: 760px) {
|
|
850
988
|
.bar-top { gap: 8px; padding: 8px 10px; }
|
|
851
989
|
.conn { display: none; }
|
|
990
|
+
/* Sidebar toggle lives next to settings; settings keeps the right edge. */
|
|
991
|
+
#toggleSidebar { display: inline-flex; }
|
|
992
|
+
#openSettings { margin-left: 0; }
|
|
852
993
|
.layout { flex-direction: column; }
|
|
853
994
|
.chat { min-height: 0; }
|
|
854
|
-
.sb
|
|
855
|
-
|
|
856
|
-
|
|
995
|
+
/* Phones: sidebar hidden, opens as an overlay drawer via body.sb-open. */
|
|
996
|
+
.sb { display: none; }
|
|
997
|
+
body.sb-open .sb {
|
|
998
|
+
display: flex; position: fixed; top: 41px; right: 0; bottom: 0; z-index: 45;
|
|
999
|
+
width: min(320px, 85vw); min-width: 0; max-height: none;
|
|
1000
|
+
border-left: 1px solid var(--border); border-top: none;
|
|
1001
|
+
box-shadow: var(--shadow-dd);
|
|
857
1002
|
}
|
|
858
|
-
.sec.usage-sec { max-height: 50%; }
|
|
859
1003
|
.msgs { padding: 14px; }
|
|
860
1004
|
.input-area { margin: 10px 14px 12px; }
|
|
861
1005
|
.inp-meta { flex-wrap: wrap; gap: 8px; }
|
|
@@ -879,3 +1023,93 @@ button.toggle:disabled { opacity: .5; cursor: default; }
|
|
|
879
1023
|
.input-area { margin: 8px 10px 10px; }
|
|
880
1024
|
.msgs { padding: 12px 10px; }
|
|
881
1025
|
}
|
|
1026
|
+
|
|
1027
|
+
/* --- First-run setup gate ---------------------------------------------------
|
|
1028
|
+
Full-screen wizard shown when the config is virgin. No boxed panels: rows,
|
|
1029
|
+
glyphs and dim separators per docs/design/ui/STYLE.md. `body.setup-active`
|
|
1030
|
+
hides the chat chrome so the wizard owns the viewport. */
|
|
1031
|
+
body.setup-active .bar-top,
|
|
1032
|
+
body.setup-active .layout { display: none; }
|
|
1033
|
+
|
|
1034
|
+
.setup-gate[hidden] { display: none; }
|
|
1035
|
+
.setup-gate {
|
|
1036
|
+
position: fixed; inset: 0; z-index: 60;
|
|
1037
|
+
background: var(--bg); color: var(--fg);
|
|
1038
|
+
overflow-y: auto;
|
|
1039
|
+
display: flex; justify-content: center;
|
|
1040
|
+
padding: 48px 20px;
|
|
1041
|
+
}
|
|
1042
|
+
.setup-wrap { width: 100%; max-width: 560px; }
|
|
1043
|
+
.setup-h { font-size: 20px; font-weight: 600; margin: 0 0 4px; }
|
|
1044
|
+
.setup-h .glyph { color: var(--accent); margin-right: 8px; }
|
|
1045
|
+
.setup-sub { color: var(--dim-a); font-size: 13px; margin: 0 0 22px; }
|
|
1046
|
+
|
|
1047
|
+
.setup-steps {
|
|
1048
|
+
display: flex; flex-wrap: wrap; gap: 4px;
|
|
1049
|
+
font-size: 12px; color: var(--dim-b); margin-bottom: 22px;
|
|
1050
|
+
}
|
|
1051
|
+
.setup-steps .s.on { color: var(--accent); }
|
|
1052
|
+
.setup-steps .s.done { color: var(--green); }
|
|
1053
|
+
.setup-steps .sep { color: var(--rule); }
|
|
1054
|
+
|
|
1055
|
+
.setup-step-title { font-size: 15px; font-weight: 600; margin: 0 0 4px; }
|
|
1056
|
+
.setup-hint { color: var(--dim-a); font-size: 12.5px; margin: 0 0 14px; line-height: 1.5; }
|
|
1057
|
+
|
|
1058
|
+
.setup-field { margin-bottom: 14px; }
|
|
1059
|
+
.setup-label { display: block; font-size: 12px; color: var(--dim-a); margin-bottom: 5px; }
|
|
1060
|
+
.setup-input {
|
|
1061
|
+
width: 100%; box-sizing: border-box;
|
|
1062
|
+
background: var(--inp-bg); color: var(--fg);
|
|
1063
|
+
border: 1px solid var(--border-2); border-radius: 7px;
|
|
1064
|
+
padding: 8px 10px; font-size: 13.5px; font-family: inherit;
|
|
1065
|
+
}
|
|
1066
|
+
.setup-input:focus-visible { outline: none; border-color: var(--inp-focus); box-shadow: 0 0 0 2px var(--input-shadow); }
|
|
1067
|
+
|
|
1068
|
+
.setup-opt {
|
|
1069
|
+
display: flex; width: 100%; box-sizing: border-box;
|
|
1070
|
+
align-items: baseline; gap: 8px; text-align: left;
|
|
1071
|
+
background: transparent; color: var(--fg);
|
|
1072
|
+
border: 1px solid var(--border); border-radius: 7px;
|
|
1073
|
+
padding: 9px 11px; margin-bottom: 7px;
|
|
1074
|
+
font-size: 13px; font-family: inherit; cursor: pointer;
|
|
1075
|
+
}
|
|
1076
|
+
.setup-opt:hover { background: var(--hover-bg); }
|
|
1077
|
+
.setup-opt .g { color: var(--dim-b); }
|
|
1078
|
+
.setup-opt .t { font-weight: 500; }
|
|
1079
|
+
.setup-opt .d { color: var(--dim-a); font-size: 12px; }
|
|
1080
|
+
.setup-opt.on { border-color: var(--accent); background: var(--accent-bg); }
|
|
1081
|
+
.setup-opt.on .g { color: var(--accent); }
|
|
1082
|
+
|
|
1083
|
+
.setup-row-inline { display: flex; gap: 8px; align-items: center; }
|
|
1084
|
+
.setup-row-inline .setup-input { flex: 1; }
|
|
1085
|
+
|
|
1086
|
+
.setup-actions { display: flex; gap: 10px; align-items: center; margin-top: 22px; }
|
|
1087
|
+
.setup-actions .spacer { flex: 1; }
|
|
1088
|
+
.setup-btn {
|
|
1089
|
+
background: var(--surface); color: var(--fg);
|
|
1090
|
+
border: 1px solid var(--border-2); border-radius: 7px;
|
|
1091
|
+
padding: 8px 15px; font-size: 13px; font-family: inherit; cursor: pointer;
|
|
1092
|
+
}
|
|
1093
|
+
.setup-btn:hover { background: var(--hover-bg); }
|
|
1094
|
+
.setup-btn.primary { background: var(--green-fill); border-color: var(--green-fill); color: #fff; }
|
|
1095
|
+
.setup-btn.primary:hover { filter: brightness(1.08); }
|
|
1096
|
+
.setup-btn:disabled { opacity: .5; cursor: default; }
|
|
1097
|
+
.setup-btn.link { background: none; border: none; color: var(--accent); padding: 8px 4px; }
|
|
1098
|
+
|
|
1099
|
+
.setup-msg { font-size: 12.5px; margin-top: 10px; min-height: 17px; }
|
|
1100
|
+
.setup-msg.ok { color: var(--green); }
|
|
1101
|
+
.setup-msg.warn { color: var(--yellow); }
|
|
1102
|
+
.setup-msg.err { color: var(--err); }
|
|
1103
|
+
|
|
1104
|
+
.setup-summary { margin-top: 6px; }
|
|
1105
|
+
.setup-summary .r { display: flex; gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--border-3); font-size: 13px; }
|
|
1106
|
+
.setup-summary .k { color: var(--dim-a); width: 150px; flex: 0 0 auto; }
|
|
1107
|
+
.setup-summary .v { color: var(--fg); word-break: break-all; }
|
|
1108
|
+
|
|
1109
|
+
.setup-toggle { display: flex; align-items: center; gap: 9px; padding: 7px 0; font-size: 13px; cursor: pointer; }
|
|
1110
|
+
.setup-toggle input { accent-color: var(--green-fill); width: 15px; height: 15px; }
|
|
1111
|
+
|
|
1112
|
+
@media (max-width: 640px) {
|
|
1113
|
+
.setup-gate { padding: 24px 14px; }
|
|
1114
|
+
.setup-summary .k { width: 110px; }
|
|
1115
|
+
}
|