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.
@@ -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 — sections with independent scroll */
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: 10px; padding: 12px; border: 1px solid var(--border-2); border-radius: 6px;
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: 8px 12px;
868
+ gap: 14px;
737
869
  }
738
- .pform-field { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
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: 5px 8px; width: 100%; min-width: 0;
743
- }
744
- .pform-actions { display: flex; gap: 14px; align-items: center; padding-top: 10px; }
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
- width: 100%; min-width: 0; max-height: 42vh;
856
- border-left: none; border-top: 1px solid var(--border);
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
+ }