create-openclaw-bot 5.8.0 → 5.8.2

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.
@@ -54,14 +54,14 @@ html[data-theme="light"] .setup-section,html[data-theme="light"] .card,html[data
54
54
 
55
55
  /* OpenClaw red theme + overflow containment fix */
56
56
  html,body,#app{width:100%;max-width:100%;overflow-x:hidden}
57
- html[data-theme="dark"]{color-scheme:dark;--canvas:#070707;--surface:#101010;--surface2:#181111;--hair:#342020;--primary:#ff2436;--soft:#ff5a66;--deep:#b80716;--ink:#f8f7f7;--body:#c9bfc0;--muted:#817273;--ok:#19d18f}
57
+ html[data-theme="dark"]{color-scheme:dark;--canvas:#030712;--surface:#090e1a;--surface2:#0b1329;--hair:#1e293b;--primary:#f43f5e;--soft:#fb7185;--deep:#be123c;--ink:#f8fafc;--body:#94a3b8;--muted:#64748b;--ok:#06b6d4}
58
58
  html[data-theme="light"]{color-scheme:light;--canvas:#fff7f8;--surface:#fff;--surface2:#fff1f2;--hair:#f1c9ce;--primary:#ff2436;--soft:#ff5a66;--deep:#b80716;--ink:#171112;--body:#66565a;--muted:#9a8488;--ok:#059669}
59
- body{min-height:100vh;overflow-x:clip;background:radial-gradient(circle at 72% 58%,rgba(255,36,54,.16),transparent 24%),radial-gradient(circle at 50% 96%,rgba(255,107,53,.13),transparent 26%),radial-gradient(ellipse at 50% 0%,#170608 0%,#070707 48%,#020101 100%)!important}
59
+ body{min-height:100vh;overflow-x:clip;background:radial-gradient(circle at 50% 0%,rgba(15,23,42,0.4) 0%,rgba(3,7,18,1) 70%)!important}
60
60
  html[data-theme="light"] body{background:radial-gradient(circle at 75% 55%,rgba(255,36,54,.12),transparent 26%),linear-gradient(180deg,#fffafb,#fff1f2)!important}
61
- body:before{inset:0!important;width:100vw;height:100vh;overflow:hidden;background-image:radial-gradient(circle,rgba(255,255,255,.85) 0 1px,transparent 1.7px),radial-gradient(circle,rgba(255,90,102,.75) 0 1.3px,transparent 2px),radial-gradient(circle,rgba(255,143,102,.55) 0 .8px,transparent 1.6px)!important;opacity:.34!important;transform:none!important;animation:starsDriftRed 46s linear infinite!important}
61
+ body:before{inset:0!important;width:100vw;height:100vh;overflow:hidden;background-image:radial-gradient(circle,rgba(255,255,255,.90) 0 1px,transparent 1.7px),radial-gradient(circle,rgba(6,182,212,.75) 0 1.3px,transparent 2px),radial-gradient(circle,rgba(244,63,94,.55) 0 .8px,transparent 1.6px)!important;opacity:.28!important;transform:none!important;animation:starsDriftRed 46s linear infinite!important}
62
62
  body:after{inset:0!important;width:100vw;height:100vh;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.018) 1px,transparent 1px)!important;background-size:86px 86px!important;opacity:.13!important;transform:none!important}
63
63
  @keyframes starsDriftRed{to{background-position:128px 256px,245px 317px,92px 173px}}
64
- .topbar{border-color:rgba(255,36,54,.18)!important;background:rgba(12,7,7,.62)!important}.seg__btn.is-active{background:linear-gradient(135deg,var(--primary),var(--soft))!important;color:#180405!important;box-shadow:0 8px 24px rgba(255,36,54,.25)!important}.mini-pill{border-color:rgba(255,36,54,.38)!important;background:rgba(255,36,54,.09)!important;color:var(--soft)!important}.setup-copy{background:linear-gradient(135deg,rgba(255,36,54,.075),rgba(255,255,255,.03),rgba(255,107,53,.05))!important;border-color:rgba(255,36,54,.20)!important}.setup-section,.card,.choice-card,.system-card,.terminal{background:linear-gradient(145deg,rgba(20,12,13,.78),rgba(6,5,5,.86))!important;border-color:rgba(255,36,54,.16)!important}.choice-card:has(input:checked),.choice-card.is-selected{border-color:var(--primary)!important;background:linear-gradient(145deg,rgba(255,36,54,.14),rgba(20,8,10,.9))!important;box-shadow:0 0 0 1px rgba(255,36,54,.25) inset,0 24px 70px rgba(255,36,54,.10)!important}.choice-card:has(input:checked) .choice-card__meta i,.choice-card.is-selected .choice-card__meta i{border-color:var(--primary)!important;background:radial-gradient(circle,var(--primary) 0 42%,transparent 46%)!important;box-shadow:0 0 0 5px rgba(255,36,54,.14),0 0 28px rgba(255,36,54,.34)!important}.install-cta{background:linear-gradient(135deg,var(--primary),var(--soft) 48%,var(--deep))!important;color:#180405!important}.install-cta small{color:rgba(24,4,5,.72)!important}
64
+ .topbar{border-color:rgba(30,41,59,.8)!important;background:rgba(9,14,26,.62)!important}.seg__btn.is-active{background:linear-gradient(135deg,var(--primary),var(--soft))!important;color:#fff!important;box-shadow:0 8px 24px rgba(244,63,94,.25)!important}.mini-pill{border-color:rgba(6,182,212,.38)!important;background:rgba(6,182,212,.09)!important;color:var(--soft)!important}.setup-copy{background:linear-gradient(135deg,rgba(6,182,212,.075),rgba(255,255,255,.03),rgba(244,63,94,.05))!important;border-color:rgba(6,182,212,.20)!important}.setup-section,.card,.choice-card,.system-card,.terminal{background:linear-gradient(145deg,rgba(9,14,26,.78),rgba(3,7,18,.86))!important;border-color:rgba(30,41,59,.78)!important}.choice-card:has(input:checked),.choice-card.is-selected{border-color:var(--primary)!important;background:linear-gradient(145deg,rgba(244,63,94,.14),rgba(9,14,26,.9))!important;box-shadow:0 0 0 1px rgba(244,63,94,.25) inset,0 24px 70px rgba(244,63,94,.10)!important}.choice-card:has(input:checked) .choice-card__meta i,.choice-card.is-selected .choice-card__meta i{border-color:var(--primary)!important;background:radial-gradient(circle,var(--primary) 0 42%,transparent 46%)!important;box-shadow:0 0 0 5px rgba(244,63,94,.14),0 0 28px rgba(244,63,94,.34)!important}.install-cta{background:linear-gradient(135deg,var(--primary),var(--soft) 48%,var(--deep))!important;color:#fff!important}.install-cta small{color:rgba(255,255,255,.72)!important}
65
65
  html[data-theme="light"] .topbar,html[data-theme="light"] .setup-section,html[data-theme="light"] .card,html[data-theme="light"] .choice-card,html[data-theme="light"] .system-card,html[data-theme="light"] .terminal{background:rgba(255,255,255,.86)!important;color:var(--ink)!important}
66
66
 
67
67
 
@@ -78,41 +78,41 @@ html[data-theme="light"] .side-info{background:rgba(255,255,255,.8)}html[data-th
78
78
  .zalo-qr-image-wrap{display:grid;place-items:center;padding:10px;margin-bottom:12px;border:1px solid rgba(255,36,54,.22);border-radius:16px;background:#fff}
79
79
  .zalo-qr-image{width:min(320px,100%);height:auto;image-rendering:pixelated}
80
80
  .zalo-qr-log{min-height:360px;max-height:62vh;overflow:auto;border:1px solid rgba(255,36,54,.22);border-radius:16px;background:#050505;color:#f7f7f7;padding:16px;font:12px/1.08 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;letter-spacing:0}
81
- .zalo-login-actions{position:sticky;bottom:-1px;display:flex;justify-content:flex-end;margin-top:12px;padding:12px 0 0;background:linear-gradient(180deg,transparent,rgba(14,4,6,.98) 34%)}
82
- .zalo-login-actions .secondary{min-width:120px}
83
- .install-modal{width:min(880px,96vw)}
84
- .install-form{display:grid;gap:14px}
85
- .install-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
86
- .install-grid--compact{grid-template-columns:1fr}
87
- .install-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
88
- .install-tab{display:grid;gap:2px;align-content:center;min-height:52px;padding:12px 14px;border-radius:18px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);text-align:left;cursor:pointer;transition:.18s}
89
- .install-tab strong{font-size:15px;line-height:1.1}
90
- .install-tab small{font-size:12px;color:var(--muted);line-height:1.25}
91
- .install-tab:hover{border-color:rgba(255,90,102,.45);transform:translateY(-1px)}
92
- .install-tab.is-active{border-color:rgba(255,36,54,.9);background:linear-gradient(145deg,rgba(37,14,17,.98),rgba(12,8,8,.98));box-shadow:0 0 0 1px rgba(255,36,54,.26) inset,0 18px 40px rgba(255,36,54,.08)}
93
- .field{display:grid;gap:6px}
94
- .field.wide{grid-column:1/-1}
95
- .field>span{font-size:12px;color:var(--body);font-weight:700}
96
- .field>input,.field>select{width:100%;height:42px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);padding:0 12px}
97
- .field>small{font-size:11px;color:var(--muted)}
98
- .path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
99
- .path-row .icon-btn2{height:42px}
100
- .install-preview{border:1px solid var(--hair);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.03);color:var(--body);font-size:12px}
101
- .install-preview code{color:var(--ink);font-family:'JetBrains Mono',SFMono-Regular,Consolas,monospace;font-size:12px}
102
- .install-actions{display:flex;justify-content:flex-end;gap:10px}
103
- .pill-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
104
- .pill-choice{display:grid;gap:2px;align-content:center;min-height:48px;padding:10px 12px;border-radius:999px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);text-align:left;cursor:pointer;transition:.18s}
105
- .pill-choice strong{font-size:13px;line-height:1.1}
106
- .pill-choice small{font-size:11px;color:var(--muted);line-height:1.2}
107
- .pill-choice:hover{border-color:rgba(255,90,102,.45);transform:translateY(-1px)}
108
- .pill-choice.is-active{border-color:rgba(255,36,54,.9);background:linear-gradient(135deg,rgba(255,36,54,.18),rgba(255,90,102,.08));box-shadow:0 0 0 1px rgba(255,36,54,.22) inset}
109
- html[data-theme="light"] .field>input,html[data-theme="light"] .field>select{background:#fff;border-color:#e7d9dd;color:#1f1114}
110
- html[data-theme="light"] .install-preview{background:#fff;border-color:#ecdde1}
111
- html[data-theme="light"] .install-tab{background:#fff;border-color:#e7d9dd;color:#1f1114}
112
- html[data-theme="light"] .install-tab.is-active{background:linear-gradient(135deg,rgba(255,36,54,.12),rgba(255,90,102,.05));border-color:rgba(255,36,54,.55)}
113
- html[data-theme="light"] .pill-choice{background:#fff;border-color:#e7d9dd;color:#1f1114}
114
- html[data-theme="light"] .pill-choice.is-active{background:linear-gradient(135deg,rgba(255,36,54,.12),rgba(255,90,102,.05));border-color:rgba(255,36,54,.55)}
115
- @media(max-width:1180px){.sidebar-extra{display:none}}@media(max-width:720px){.donate-grid{grid-template-columns:1fr}.donate-modal{padding:16px;border-radius:18px}.donate-head h2{font-size:26px}}
81
+ .zalo-login-actions{position:sticky;bottom:-1px;display:flex;justify-content:flex-end;margin-top:12px;padding:12px 0 0;background:linear-gradient(180deg,transparent,rgba(14,4,6,.98) 34%)}
82
+ .zalo-login-actions .secondary{min-width:120px}
83
+ .install-modal{width:min(880px,96vw)}
84
+ .install-form{display:grid;gap:14px}
85
+ .install-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
86
+ .install-grid--compact{grid-template-columns:1fr}
87
+ .install-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
88
+ .install-tab{display:grid;gap:2px;align-content:center;min-height:52px;padding:12px 14px;border-radius:18px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);text-align:left;cursor:pointer;transition:.18s}
89
+ .install-tab strong{font-size:15px;line-height:1.1}
90
+ .install-tab small{font-size:12px;color:var(--muted);line-height:1.25}
91
+ .install-tab:hover{border-color:rgba(255,90,102,.45);transform:translateY(-1px)}
92
+ .install-tab.is-active{border-color:rgba(255,36,54,.9);background:linear-gradient(145deg,rgba(37,14,17,.98),rgba(12,8,8,.98));box-shadow:0 0 0 1px rgba(255,36,54,.26) inset,0 18px 40px rgba(255,36,54,.08)}
93
+ .field{display:grid;gap:6px}
94
+ .field.wide{grid-column:1/-1}
95
+ .field>span{font-size:12px;color:var(--body);font-weight:700}
96
+ .field>input,.field>select{width:100%;height:42px;border-radius:12px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);padding:0 12px}
97
+ .field>small{font-size:11px;color:var(--muted)}
98
+ .path-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
99
+ .path-row .icon-btn2{height:42px}
100
+ .install-preview{border:1px solid var(--hair);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.03);color:var(--body);font-size:12px}
101
+ .install-preview code{color:var(--ink);font-family:'JetBrains Mono',SFMono-Regular,Consolas,monospace;font-size:12px}
102
+ .install-actions{display:flex;justify-content:flex-end;gap:10px}
103
+ .pill-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
104
+ .pill-choice{display:grid;gap:2px;align-content:center;min-height:48px;padding:10px 12px;border-radius:999px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);text-align:left;cursor:pointer;transition:.18s}
105
+ .pill-choice strong{font-size:13px;line-height:1.1}
106
+ .pill-choice small{font-size:11px;color:var(--muted);line-height:1.2}
107
+ .pill-choice:hover{border-color:rgba(255,90,102,.45);transform:translateY(-1px)}
108
+ .pill-choice.is-active{border-color:rgba(255,36,54,.9);background:linear-gradient(135deg,rgba(255,36,54,.18),rgba(255,90,102,.08));box-shadow:0 0 0 1px rgba(255,36,54,.22) inset}
109
+ html[data-theme="light"] .field>input,html[data-theme="light"] .field>select{background:#fff;border-color:#e7d9dd;color:#1f1114}
110
+ html[data-theme="light"] .install-preview{background:#fff;border-color:#ecdde1}
111
+ html[data-theme="light"] .install-tab{background:#fff;border-color:#e7d9dd;color:#1f1114}
112
+ html[data-theme="light"] .install-tab.is-active{background:linear-gradient(135deg,rgba(255,36,54,.12),rgba(255,90,102,.05));border-color:rgba(255,36,54,.55)}
113
+ html[data-theme="light"] .pill-choice{background:#fff;border-color:#e7d9dd;color:#1f1114}
114
+ html[data-theme="light"] .pill-choice.is-active{background:linear-gradient(135deg,rgba(255,36,54,.12),rgba(255,90,102,.05));border-color:rgba(255,36,54,.55)}
115
+ @media(max-width:1180px){.sidebar-extra{display:none}}@media(max-width:720px){.donate-grid{grid-template-columns:1fr}.donate-modal{padding:16px;border-radius:18px}.donate-head h2{font-size:26px}}
116
116
 
117
117
 
118
118
  /* Sticky header + header donate + icon cleanup */
@@ -142,36 +142,165 @@ body{perspective:none!important}.topbar{position:fixed!important;top:16px!import
142
142
  /* Fixed shell columns: sidebar + logs stay in place */
143
143
  #app{display:block!important;min-height:100vh}.sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:260px!important;height:100vh!important;z-index:800!important;overflow:auto!important}.status{position:fixed!important;right:0!important;top:0!important;bottom:0!important;width:360px!important;height:100vh!important;z-index:800!important;overflow:hidden!important}main{margin-left:260px!important;margin-right:360px!important;min-height:100vh!important}.topbar{left:288px!important;right:388px!important}.bottom{display:none!important}@media(max-width:1180px){.sidebar{width:88px!important}.status{display:none!important}main{margin-left:88px!important;margin-right:0!important}.topbar{left:112px!important;right:28px!important}.sidebar-extra{display:none!important}}@media(max-width:760px){.sidebar{position:static!important;width:auto!important;height:auto!important;overflow:visible!important}.status{display:none!important}main{margin-left:0!important;margin-right:0!important}.topbar{left:12px!important;right:12px!important}.bottom{display:grid!important}}
144
144
 
145
- /* Light mode polish: readable, balanced, soft red brand */
146
- html[data-theme="light"]{
147
- --canvas:#fff8f8;--surface:#ffffff;--surface2:#fff1f2;--hair:#f4c7cd;--primary:#ff2d3f;--soft:#ff6674;--deep:#c41122;--ink:#171014;--body:#5f5258;--muted:#8b7a82;--ok:#00996d;
148
- }
149
- html[data-theme="light"] body{background:radial-gradient(circle at 78% 22%,rgba(255,45,63,.10),transparent 28%),radial-gradient(circle at 58% 92%,rgba(255,102,116,.13),transparent 30%),linear-gradient(180deg,#fffdfd 0%,#fff7f8 52%,#fff0f2 100%)!important;color:var(--ink)!important}
150
- html[data-theme="light"] body:before{background-image:radial-gradient(circle,rgba(255,45,63,.22) 0 1px,transparent 1.6px)!important;opacity:.16!important}
151
- html[data-theme="light"] body:after{background:linear-gradient(90deg,rgba(255,45,63,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(255,45,63,.035) 1px,transparent 1px)!important;opacity:.10!important}
152
- html[data-theme="light"] .sidebar,html[data-theme="light"] .status{background:linear-gradient(180deg,#fffefe 0%,#fff7f8 100%)!important;border-color:#f0c8ce!important;box-shadow:0 0 0 1px rgba(255,255,255,.78) inset,0 20px 70px rgba(143,36,48,.08)!important}
153
- html[data-theme="light"] .brand b,html[data-theme="light"] .status h2,html[data-theme="light"] .top h1,html[data-theme="light"] .section-head b,html[data-theme="light"] .choice-card__body strong{color:var(--ink)!important}
154
- html[data-theme="light"] .brand span,html[data-theme="light"] .nav,html[data-theme="light"] .cmd,html[data-theme="light"] .lead,html[data-theme="light"] .section-head small,html[data-theme="light"] .choice-card__body small,html[data-theme="light"] .sys-row span{color:var(--body)!important}
155
- html[data-theme="light"] .nav:hover,html[data-theme="light"] .nav.active{background:#fff1f2!important;border-color:#ffb5be!important;color:var(--ink)!important}
156
- html[data-theme="light"] .nav.active{box-shadow:inset 3px 0 0 var(--primary),0 8px 24px rgba(255,45,63,.08)!important}
157
- html[data-theme="light"] .cmd,html[data-theme="light"] .side-info,html[data-theme="light"] .topbar,html[data-theme="light"] .setup-copy,html[data-theme="light"] .setup-section,html[data-theme="light"] .card,html[data-theme="light"] .choice-card,html[data-theme="light"] .system-card{background:rgba(255,255,255,.92)!important;border-color:#f0c8ce!important;box-shadow:0 22px 60px rgba(143,36,48,.10),0 1px 0 rgba(255,255,255,.88) inset!important}
158
- html[data-theme="light"] .setup-copy{background:linear-gradient(135deg,#ffffff 0%,#fff6f7 58%,#fff0f2 100%)!important}
159
- html[data-theme="light"] .setup-section:before{background:linear-gradient(135deg,rgba(255,45,63,.055),transparent 45%)!important}
160
- html[data-theme="light"] .choice-card{background:linear-gradient(145deg,#ffffff,#fffafa 62%,#fff3f4)!important}
161
- html[data-theme="light"] .choice-card:hover{border-color:#ff9faa!important;box-shadow:0 26px 70px rgba(143,36,48,.14),0 0 0 1px rgba(255,45,63,.10) inset!important}
162
- html[data-theme="light"] .choice-card:has(input:checked),html[data-theme="light"] .choice-card.is-selected{background:linear-gradient(145deg,#fff,#fff0f2)!important;border-color:var(--primary)!important;box-shadow:0 24px 70px rgba(255,45,63,.16),0 0 0 1px rgba(255,45,63,.28) inset!important}
163
- html[data-theme="light"] .choice-card__icon{background:linear-gradient(145deg,#fff,#f7f7f8)!important;border-color:#fff!important;box-shadow:0 14px 30px rgba(28,22,25,.13),inset 0 1px 0 #fff!important}
164
- html[data-theme="light"] .choice-card__meta em{background:#fff3f4!important;border-color:#ffc2ca!important;color:#7a6670!important}
165
- html[data-theme="light"] .choice-card__meta i{border-color:#ffb7c0!important;background:#fff!important}
166
- html[data-theme="light"] .mini-pill,html[data-theme="light"] .top-donate{background:#fff1f2!important;border-color:#ffb5be!important;color:var(--primary)!important}
167
- html[data-theme="light"] .seg{background:#fff7f8!important;border-color:#f0c8ce!important}
168
- html[data-theme="light"] .seg__btn{color:#6b5961!important}
169
- html[data-theme="light"] .seg__btn.is-active{background:linear-gradient(135deg,var(--primary),var(--soft))!important;color:#fff!important;box-shadow:0 10px 24px rgba(255,45,63,.24)!important}
170
- html[data-theme="light"] .install-cta{color:#fff!important;background:linear-gradient(135deg,#ff2d3f 0%,#ff6674 52%,#c41122 100%)!important;box-shadow:0 20px 48px rgba(255,45,63,.24)!important}
171
- html[data-theme="light"] .install-cta small{color:rgba(255,255,255,.78)!important}
172
- html[data-theme="light"] .terminal{background:#f9fafb!important;color:#1f2937!important;border-color:#e5e7eb!important;box-shadow:inset 0 1px 0 #fff,0 18px 40px rgba(17,24,39,.08)!important}
173
- html[data-theme="light"] .terminal p{color:#1f2937!important}
174
- html[data-theme="light"] .file textarea{background:#fff!important;color:#111827!important;border-color:#f0c8ce!important}
145
+ /* Light mode polish: Sleek Tech aesthetic (inspired by openclaw.ai) */
146
+ html[data-theme="light"] {
147
+ --canvas: #f8fafc;
148
+ --surface: #ffffff;
149
+ --surface2: #f1f5f9;
150
+ --hair: #e2e8f0;
151
+ --primary: #f43f5e;
152
+ --soft: #fb7185;
153
+ --deep: #be123c;
154
+ --ink: #0f172a;
155
+ --body: #475569;
156
+ --muted: #64748b;
157
+ --ok: #0d9488;
158
+ }
159
+
160
+ html[data-theme="light"] body {
161
+ background: radial-gradient(circle at 50% 0%, rgba(244,63,94,0.03) 0%, #f8fafc 80%) !important;
162
+ color: var(--ink) !important;
163
+ }
164
+
165
+ html[data-theme="light"] body:before {
166
+ background-image: radial-gradient(circle, rgba(244,63,94,0.08) 0 1px, transparent 1.6px) !important;
167
+ opacity: 0.25 !important;
168
+ }
169
+
170
+ html[data-theme="light"] body:after {
171
+ background: linear-gradient(90deg, rgba(15,23,42,0.015) 1px, transparent 1px), linear-gradient(180deg, rgba(15,23,42,0.012) 1px, transparent 1px) !important;
172
+ opacity: 0.15 !important;
173
+ }
174
+
175
+ html[data-theme="light"] .sidebar,
176
+ html[data-theme="light"] .status {
177
+ background: #ffffff !important;
178
+ border-color: #e2e8f0 !important;
179
+ box-shadow: 0 20px 60px rgba(15,23,42,0.03) !important;
180
+ }
181
+
182
+ html[data-theme="light"] .brand b,
183
+ html[data-theme="light"] .status h2,
184
+ html[data-theme="light"] .top h1,
185
+ html[data-theme="light"] .section-head b,
186
+ html[data-theme="light"] .choice-card__body strong {
187
+ color: var(--ink) !important;
188
+ }
189
+
190
+ html[data-theme="light"] .brand span,
191
+ html[data-theme="light"] .nav,
192
+ html[data-theme="light"] .cmd,
193
+ html[data-theme="light"] .lead,
194
+ html[data-theme="light"] .section-head small,
195
+ html[data-theme="light"] .choice-card__body small,
196
+ html[data-theme="light"] .sys-row span {
197
+ color: var(--body) !important;
198
+ }
199
+
200
+ html[data-theme="light"] .nav:hover,
201
+ html[data-theme="light"] .nav.active {
202
+ background: #fff1f2 !important;
203
+ border-color: #fca5a5 !important;
204
+ color: var(--primary) !important;
205
+ }
206
+
207
+ html[data-theme="light"] .nav.active {
208
+ box-shadow: inset 3px 0 0 var(--primary), 0 8px 24px rgba(244,63,94,0.05) !important;
209
+ }
210
+
211
+ html[data-theme="light"] .cmd,
212
+ html[data-theme="light"] .side-info,
213
+ html[data-theme="light"] .topbar,
214
+ html[data-theme="light"] .setup-copy,
215
+ html[data-theme="light"] .setup-section,
216
+ html[data-theme="light"] .card,
217
+ html[data-theme="light"] .choice-card,
218
+ html[data-theme="light"] .system-card {
219
+ background: #ffffff !important;
220
+ border-color: #e2e8f0 !important;
221
+ box-shadow: 0 10px 30px rgba(15,23,42,0.04), inset 0 1px 0 #fff !important;
222
+ }
223
+
224
+ html[data-theme="light"] .setup-copy {
225
+ background: linear-gradient(135deg, rgba(6,182,212,0.04), #ffffff, rgba(244,63,94,0.03)) !important;
226
+ border-color: rgba(6,182,212,0.15) !important;
227
+ }
228
+
229
+ html[data-theme="light"] .setup-section:before {
230
+ background: linear-gradient(135deg, rgba(6,182,212,0.03), transparent 45%) !important;
231
+ }
232
+
233
+ html[data-theme="light"] .choice-card {
234
+ background: #ffffff !important;
235
+ }
236
+
237
+ html[data-theme="light"] .choice-card:hover {
238
+ border-color: rgba(244,63,94,0.4) !important;
239
+ box-shadow: 0 20px 48px rgba(15,23,42,0.06), inset 0 1px 0 #fff !important;
240
+ }
241
+
242
+ html[data-theme="light"] .choice-card:has(input:checked),
243
+ html[data-theme="light"] .choice-card.is-selected {
244
+ background: linear-gradient(145deg, rgba(244,63,94,0.05), #ffffff) !important;
245
+ border-color: var(--primary) !important;
246
+ box-shadow: 0 16px 40px rgba(244,63,94,0.08), 0 0 0 1px rgba(244,63,94,0.15) inset !important;
247
+ }
248
+
249
+ html[data-theme="light"] .choice-card__icon {
250
+ background: #f8fafc !important;
251
+ border-color: #e2e8f0 !important;
252
+ box-shadow: 0 8px 20px rgba(15,23,42,0.03) !important;
253
+ }
254
+
255
+ html[data-theme="light"] .choice-card__meta em {
256
+ background: #fff1f2 !important;
257
+ border-color: #fca5a5 !important;
258
+ color: var(--primary) !important;
259
+ }
260
+
261
+ html[data-theme="light"] .choice-card__meta i {
262
+ border-color: #cbd5e1 !important;
263
+ background: #ffffff !important;
264
+ }
265
+
266
+ html[data-theme="light"] .mini-pill,
267
+ html[data-theme="light"] .top-donate {
268
+ background: #fff1f2 !important;
269
+ border-color: #fca5a5 !important;
270
+ color: var(--primary) !important;
271
+ }
272
+
273
+ html[data-theme="light"] .seg {
274
+ background: #f1f5f9 !important;
275
+ border-color: #e2e8f0 !important;
276
+ }
277
+
278
+ html[data-theme="light"] .seg__btn {
279
+ color: #475569 !important;
280
+ }
281
+
282
+ html[data-theme="light"] .seg__btn.is-active {
283
+ background: linear-gradient(135deg, var(--primary), var(--soft)) !important;
284
+ color: #fff !important;
285
+ box-shadow: 0 8px 20px rgba(244,63,94,0.2) !important;
286
+ }
287
+
288
+ html[data-theme="light"] .install-cta {
289
+ color: #fff !important;
290
+ background: linear-gradient(135deg, var(--primary) 0%, var(--soft) 52%, var(--deep) 100%) !important;
291
+ box-shadow: 0 16px 36px rgba(244,63,94,0.2) !important;
292
+ }
293
+
294
+ html[data-theme="light"] .install-cta small {
295
+ color: rgba(255,255,255,0.8) !important;
296
+ }
297
+
298
+ html[data-theme="light"] .file textarea {
299
+ background: #ffffff !important;
300
+ color: #0f172a !important;
301
+ border-color: #cbd5e1 !important;
302
+ }
303
+
175
304
 
176
305
  /* Layout update: logs under system, no right column */
177
306
  #app{display:block!important;min-height:100vh}
@@ -194,12 +323,12 @@ main{margin-left:260px!important;margin-right:0!important;min-height:100vh!impor
194
323
  .logo-card .choice-card__icon img{width:36px!important;height:36px!important}
195
324
  .logo-card .choice-card__body{display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important}
196
325
  .logo-card .choice-card__body strong{font-size:16px!important;line-height:1.1!important}
197
- .logo-card .choice-card__body small{font-size:11px!important;line-height:1.1!important;color:var(--muted)!important}
198
- .logo-card:has(input:checked):after,.logo-card.is-selected:after{content:"";position:absolute;right:12px;top:12px;width:12px;height:12px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 5px rgba(255,36,54,.14),0 0 22px rgba(255,36,54,.34)}
199
- .logo-card:has(input:checked) .choice-card__icon,.logo-card.is-selected .choice-card__icon{box-shadow:0 16px 36px rgba(255,36,54,.18),inset 0 1px 0 rgba(255,255,255,.22)!important}
200
- .bot-channel-static{pointer-events:none}
201
- .bot-channel-static .choice-card__body small{color:var(--body)!important}
202
- @media(max-width:1180px){.os-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
326
+ .logo-card .choice-card__body small{font-size:11px!important;line-height:1.1!important;color:var(--muted)!important}
327
+ .logo-card:has(input:checked):after,.logo-card.is-selected:after{display:none!important}
328
+ .logo-card:has(input:checked) .choice-card__icon,.logo-card.is-selected .choice-card__icon{box-shadow:0 16px 36px rgba(255,36,54,.18),inset 0 1px 0 rgba(255,255,255,.22)!important}
329
+ .bot-channel-static{pointer-events:none}
330
+ .bot-channel-static .choice-card__body small{color:var(--body)!important}
331
+ @media(max-width:1180px){.os-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
203
332
  @media(max-width:900px){.os-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.logo-card{min-height:118px!important}}
204
333
  @media(max-width:520px){.os-grid,.mode-grid{grid-template-columns:1fr!important}}
205
334
 
@@ -282,8 +411,8 @@ html[data-theme="light"] .bot-form-grid input,html[data-theme="light"] .bot-form
282
411
  .detected-project__actions{position:absolute;top:50%;right:12px;transform:translateY(-50%);display:flex!important;justify-content:flex-end;align-items:center;gap:8px}
283
412
  .detected-project__actions .secondary{min-width:110px}
284
413
  .icon-btn2{display:inline-flex;align-items:center;gap:8px}
285
- .icon-btn2 svg{width:16px;height:16px;flex:0 0 auto}\r
286
- .btn-icon{display:inline-flex!important;align-items:center!important;gap:7px!important}\r
414
+ .icon-btn2 svg{width:16px;height:16px;flex:0 0 auto}\r
415
+ .btn-icon{display:inline-flex!important;align-items:center!important;gap:7px!important}\r
287
416
  .btn-icon svg{width:15px!important;height:15px!important;max-width:15px!important;max-height:15px!important;flex:0 0 15px!important}
288
417
  .danger-soft{border-color:rgba(255,90,107,.28)!important;color:#ffb0b8!important}
289
418
  .danger-soft:hover{border-color:#ff5a6b!important;color:#fff!important;background:rgba(255,90,107,.14)!important}
@@ -299,16 +428,16 @@ html[data-theme="light"] .bot-form-grid input,html[data-theme="light"] .bot-form
299
428
  .bot-item{position:relative;display:grid;gap:8px;padding:16px;border:1px solid rgba(255,36,54,.22);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));color:var(--ink);text-align:left;cursor:pointer}
300
429
  .bot-item.active{border-color:var(--red);box-shadow:0 0 0 1px rgba(255,43,61,.22),0 18px 50px rgba(255,36,54,.12)}
301
430
  .bot-item b{font-size:17px}.bot-item code{width:max-content}.bot-item small{color:var(--muted);word-break:break-all}
302
- .bot-item-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;opacity:0;transform:translateY(-2px);transition:.15s}
303
- .bot-item:hover .bot-item-actions{opacity:1;transform:none}
304
- .bot-edit,.bot-delete{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,36,54,.32);background:rgba(255,36,54,.12);color:var(--ink);font-size:15px;line-height:1;cursor:pointer}
305
- .bot-edit{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
306
- .bot-delete{background:rgba(255,36,54,.16);font-size:20px}
307
- .bot-edit:hover{background:rgba(255,255,255,.12)}
308
- .bot-delete:hover{background:var(--red);color:white}
309
- .bot-edit,.bot-delete{display:grid;place-items:center;padding:0}
310
- .bot-edit svg{width:14px;height:14px;display:block}
311
- .bot-actions .btn-icon svg,.cred-save.btn-icon svg{width:16px;height:16px}
431
+ .bot-item-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;opacity:0;transform:translateY(-2px);transition:.15s}
432
+ .bot-item:hover .bot-item-actions{opacity:1;transform:none}
433
+ .bot-edit,.bot-delete{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,36,54,.32);background:rgba(255,36,54,.12);color:var(--ink);font-size:15px;line-height:1;cursor:pointer}
434
+ .bot-edit{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
435
+ .bot-delete{background:rgba(255,36,54,.16);font-size:20px}
436
+ .bot-edit:hover{background:rgba(255,255,255,.12)}
437
+ .bot-delete:hover{background:var(--red);color:white}
438
+ .bot-edit,.bot-delete{display:grid;place-items:center;padding:0}
439
+ .bot-edit svg{width:14px;height:14px;display:block}
440
+ .bot-actions .btn-icon svg,.cred-save.btn-icon svg{width:16px;height:16px}
312
441
  .empty-create{min-height:170px;display:grid;place-items:center;text-align:center;align-content:center;gap:10px}
313
442
  .runtime-links{display:grid;gap:10px;margin-top:14px}
314
443
  .runtime-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(255,36,54,.24);border-radius:14px;padding:12px 13px;color:var(--ink);text-decoration:none;background:rgba(255,255,255,.045);font-weight:900}
@@ -338,16 +467,83 @@ html[data-theme="light"] .bot-form-grid input,html[data-theme="light"] .bot-form
338
467
  .file-tree{border:1px solid rgba(255,36,54,.18);border-radius:16px;background:rgba(255,255,255,.035);padding:8px;overflow:auto;max-height:520px}
339
468
  .file-tree button{display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:0;background:transparent;color:var(--body);padding:9px 10px;border-radius:10px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden}
340
469
  .file-tree button span{overflow:hidden;text-overflow:ellipsis}
341
- .file-tree button:hover,.file-tree button.active{background:rgba(255,36,54,.12);color:var(--ink)}
342
- .file-tree--nested{display:block}
343
- .tree-row{display:flex!important;align-items:center!important;gap:7px!important;width:100%!important;padding:9px 10px 9px var(--pad)!important;border:0!important;background:transparent!important;color:var(--body)!important;border-radius:10px!important;text-align:left!important;font:inherit!important;font-size:13px!important;cursor:pointer!important;white-space:nowrap!important;overflow:hidden!important}
344
- .tree-row b{font-weight:800;overflow:hidden;text-overflow:ellipsis}
345
- .tree-row span{flex:0 0 auto}
346
- .tree-row:hover,.tree-row.active{background:rgba(255,36,54,.12)!important;color:var(--ink)!important}
347
- .tree-row--dir b{color:var(--ink)}
348
- .tree-row.is-disabled{opacity:.48;cursor:not-allowed!important}
349
- .tree-editor--empty{display:grid;place-items:center;color:var(--muted)}
350
- .tree-editor{width:100%;min-height:520px;border:1px solid rgba(255,36,54,.20);border-radius:16px;background:rgba(0,0,0,.22);color:var(--ink);padding:14px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;outline:none}
470
+ .file-tree button:hover,.file-tree button.active{background:rgba(255,36,54,.12);color:var(--ink)}
471
+ .file-tree--nested{display:block}
472
+ .tree-row{display:flex!important;align-items:center!important;gap:7px!important;width:100%!important;padding:9px 10px 9px var(--pad)!important;border:0!important;background:transparent!important;color:var(--body)!important;border-radius:10px!important;text-align:left!important;font:inherit!important;font-size:13px!important;cursor:pointer!important;white-space:nowrap!important;overflow:hidden!important}
473
+ .tree-row b{font-weight:800;overflow:hidden;text-overflow:ellipsis}
474
+ .tree-row span{flex:0 0 auto}
475
+ .tree-row:hover,.tree-row.active{background:rgba(255,36,54,.12)!important;color:var(--ink)!important}
476
+ .tree-row--dir b{color:var(--ink)}
477
+ .tree-row.is-disabled{opacity:.48;cursor:not-allowed!important}
478
+ .tree-editor--empty{display:grid;place-items:center;color:var(--muted)}
479
+ .tree-editor{width:100%;min-height:520px;border:1px solid rgba(255,36,54,.20);border-radius:16px;background:rgba(0,0,0,.22);color:var(--ink);padding:14px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;outline:none}
480
+ .tree-editor:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(255,36,54,.10)}
481
+ html[data-theme="light"] .channel-tabs button,html[data-theme="light"] .runtime-btn,html[data-theme="light"] .runtime-status-card,html[data-theme="light"] .runtime-open-btn,html[data-theme="light"] .bot-item,html[data-theme="light"] .file-tree{background:#fff7f8;border-color:#f0c8ce}
482
+ html[data-theme="light"] .cred-input-wrap input{background:#fff;color:#111827;border-color:#f0c8ce}
483
+ html[data-theme="light"] .tree-editor{background:#fff;color:#111827;border-color:#f0c8ce}
484
+ @media(max-width:1180px){.bot-layout{grid-template-columns:1fr!important}.bot-side{position:static}.bot-files-panel{grid-column:auto}.file-workbench{grid-template-columns:1fr}.file-tree{max-height:220px}.tree-editor{min-height:360px}}
485
+ @keyframes projectShine{to{transform:translateX(120%)}}
486
+
487
+ /* Bot create modal */
488
+ .bot-modal{width:min(920px,94vw)!important}
489
+ .bot-modal .bot-create{display:grid;gap:16px}
490
+ .bot-modal .bot-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
491
+ .bot-modal-backdrop{animation:modalFade .18s ease!important}
492
+ .bot-modal{animation:modalPop .28s cubic-bezier(.16,1,.3,1)!important}
493
+ @media(max-width:760px){.bot-modal .bot-channel-grid{grid-template-columns:1fr!important}}
494
+
495
+ /* Global async button loading */
496
+ button.is-loading,
497
+ a.is-loading,
498
+ button.is-press-loading{
499
+ position:relative!important;
500
+ opacity:.82!important;
501
+ }
502
+ button.is-loading,
503
+ a.is-loading{
504
+ pointer-events:none!important;
505
+ cursor:wait!important;
506
+ }
507
+ button.is-loading::after,
508
+ a.is-loading::after,
509
+ button.is-press-loading::after{
510
+ content:""!important;
511
+ display:inline-block!important;
512
+ width:1em!important;
513
+ height:1em!important;
514
+ margin-left:.55em!important;
515
+ border:2px solid currentColor!important;
516
+ border-right-color:transparent!important;
517
+ border-radius:999px!important;
518
+ vertical-align:-.18em!important;
519
+ animation:buttonSpin .68s linear infinite!important;
520
+ }
521
+ .icon-btn.is-loading::after,
522
+ .modal-x.is-loading::after,
523
+ .bot-delete.is-loading::after,
524
+ .icon-btn.is-press-loading::after,
525
+ .modal-x.is-press-loading::after,
526
+ .bot-delete.is-press-loading::after{
527
+ position:absolute!important;
528
+ inset:50% auto auto 50%!important;
529
+ margin:-.5em 0 0 -.5em!important;
530
+ }
531
+ button.is-loading:disabled{filter:saturate(.9)}
532
+ @keyframes buttonSpin{to{transform:rotate(360deg)}}
533
+
534
+ /* Dashboard + bot split */
535
+ .dash-shell{display:grid;gap:18px}.dash-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.dash-hero h2{margin:0;font-size:28px;letter-spacing:-.03em}.dash-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dash-metric{display:grid;gap:8px}.dash-metric span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.dash-metric strong{font-size:24px;letter-spacing:-.03em}.dash-metric small{color:var(--body)}.dash-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.project-switcher{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.project-chip{position:relative;display:grid;gap:6px;text-align:left;border:1px solid rgba(255,36,54,.22);background:rgba(255,255,255,.045);border-radius:16px;padding:14px;color:var(--ink);cursor:pointer}.project-chip.active,.project-chip:hover{border-color:var(--primary);background:rgba(255,36,54,.10)}.project-chip small{color:var(--muted);word-break:break-all}.project-chip.is-loading-chip::after{content:"";position:absolute;top:10px;right:10px;width:14px;height:14px;border:2px solid #cdeefe;border-right-color:transparent;border-radius:999px;animation:buttonSpin .7s linear infinite}.dash-version-list{display:grid;gap:10px;margin-top:12px}.dash-version-list>div,.bot-meta-grid>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.dash-version-list span,.bot-meta-grid span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.dash-logs .terminal{height:320px!important;max-height:42vh}.bot-layout--single{grid-template-columns:1fr!important}.bot-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.bot-meta{display:grid;gap:8px}@media(max-width:1180px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-layout{grid-template-columns:1fr}.dash-hero{grid-template-columns:1fr}.dash-actions{justify-content:flex-start}}@media(max-width:760px){.dash-grid,.bot-meta-grid{grid-template-columns:1fr}.project-switcher{grid-template-columns:1fr}}
536
+ .runtime-card-actions{display:flex;gap:8px;align-items:center}.runtime-card-actions .runtime-open-btn{flex:1}
537
+ .bot-main .btn-inline{width:auto!important;min-height:40px!important;padding:10px 16px!important;display:inline-flex!important;align-items:center;justify-content:center;position:static!important;bottom:auto!important;z-index:auto!important;flex:0 0 auto!important}
538
+ .feature-group{margin:8px 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
539
+ .feature-card{padding:16px}
540
+ .feature-card.is-loading{position:relative;overflow:hidden;opacity:.9}
541
+ .feature-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
542
+ .feature-head b{display:block;font-size:18px;margin-bottom:6px}
543
+ .feature-head p{margin:0;color:var(--body)}
544
+ .feature-switch{position:relative;display:inline-flex;flex:0 0 auto}
545
+ .feature-switch input{position:absolute;opacity:0;pointer-events:none}
546
+ .feature-switch span{width:52px;height:30px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:block;position:relative;transition:.18s}
351
547
  .tree-editor:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(255,36,54,.10)}
352
548
  html[data-theme="light"] .channel-tabs button,html[data-theme="light"] .runtime-btn,html[data-theme="light"] .runtime-status-card,html[data-theme="light"] .runtime-open-btn,html[data-theme="light"] .bot-item,html[data-theme="light"] .file-tree{background:#fff7f8;border-color:#f0c8ce}
353
549
  html[data-theme="light"] .cred-input-wrap input{background:#fff;color:#111827;border-color:#f0c8ce}
@@ -415,193 +611,765 @@ button.is-loading:disabled{filter:saturate(.9)}
415
611
  .feature-switch{position:relative;display:inline-flex;flex:0 0 auto}
416
612
  .feature-switch input{position:absolute;opacity:0;pointer-events:none}
417
613
  .feature-switch span{width:52px;height:30px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:block;position:relative;transition:.18s}
418
- .tree-editor:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(255,36,54,.10)}
419
- html[data-theme="light"] .channel-tabs button,html[data-theme="light"] .runtime-btn,html[data-theme="light"] .runtime-status-card,html[data-theme="light"] .runtime-open-btn,html[data-theme="light"] .bot-item,html[data-theme="light"] .file-tree{background:#fff7f8;border-color:#f0c8ce}
420
- html[data-theme="light"] .cred-input-wrap input{background:#fff;color:#111827;border-color:#f0c8ce}
421
- html[data-theme="light"] .tree-editor{background:#fff;color:#111827;border-color:#f0c8ce}
422
- @media(max-width:1180px){.bot-layout{grid-template-columns:1fr!important}.bot-side{position:static}.bot-files-panel{grid-column:auto}.file-workbench{grid-template-columns:1fr}.file-tree{max-height:220px}.tree-editor{min-height:360px}}
423
- @keyframes projectShine{to{transform:translateX(120%)}}
424
-
425
- /* Bot create modal */
426
- .bot-modal{width:min(920px,94vw)!important}
427
- .bot-modal .bot-create{display:grid;gap:16px}
428
- .bot-modal .bot-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
429
- .bot-modal-backdrop{animation:modalFade .18s ease!important}
430
- .bot-modal{animation:modalPop .28s cubic-bezier(.16,1,.3,1)!important}
431
- @media(max-width:760px){.bot-modal .bot-channel-grid{grid-template-columns:1fr!important}}
432
-
433
- /* Global async button loading */
434
- button.is-loading,
435
- a.is-loading,
436
- button.is-press-loading{
437
- position:relative!important;
438
- opacity:.82!important;
439
- }
440
- button.is-loading,
441
- a.is-loading{
442
- pointer-events:none!important;
443
- cursor:wait!important;
444
- }
445
- button.is-loading::after,
446
- a.is-loading::after,
447
- button.is-press-loading::after{
448
- content:""!important;
449
- display:inline-block!important;
450
- width:1em!important;
451
- height:1em!important;
452
- margin-left:.55em!important;
453
- border:2px solid currentColor!important;
454
- border-right-color:transparent!important;
455
- border-radius:999px!important;
456
- vertical-align:-.18em!important;
457
- animation:buttonSpin .68s linear infinite!important;
458
- }
459
- .icon-btn.is-loading::after,
460
- .modal-x.is-loading::after,
461
- .bot-delete.is-loading::after,
462
- .icon-btn.is-press-loading::after,
463
- .modal-x.is-press-loading::after,
464
- .bot-delete.is-press-loading::after{
465
- position:absolute!important;
466
- inset:50% auto auto 50%!important;
467
- margin:-.5em 0 0 -.5em!important;
468
- }
469
- button.is-loading:disabled{filter:saturate(.9)}
470
- @keyframes buttonSpin{to{transform:rotate(360deg)}}
471
-
472
- /* Dashboard + bot split */
473
- .dash-shell{display:grid;gap:18px}.dash-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.dash-hero h2{margin:0;font-size:28px;letter-spacing:-.03em}.dash-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dash-metric{display:grid;gap:8px}.dash-metric span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.dash-metric strong{font-size:24px;letter-spacing:-.03em}.dash-metric small{color:var(--body)}.dash-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px}.project-switcher{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.project-chip{position:relative;display:grid;gap:6px;text-align:left;border:1px solid rgba(255,36,54,.22);background:rgba(255,255,255,.045);border-radius:16px;padding:14px;color:var(--ink);cursor:pointer}.project-chip.active,.project-chip:hover{border-color:var(--primary);background:rgba(255,36,54,.10)}.project-chip small{color:var(--muted);word-break:break-all}.project-chip.is-loading-chip::after{content:"";position:absolute;top:10px;right:10px;width:14px;height:14px;border:2px solid #cdeefe;border-right-color:transparent;border-radius:999px;animation:buttonSpin .7s linear infinite}.dash-version-list{display:grid;gap:10px;margin-top:12px}.dash-version-list>div,.bot-meta-grid>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.dash-version-list span,.bot-meta-grid span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.dash-logs .terminal{height:320px!important;max-height:42vh}.bot-layout--single{grid-template-columns:1fr!important}.bot-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.bot-meta{display:grid;gap:8px}@media(max-width:1180px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-layout{grid-template-columns:1fr}.dash-hero{grid-template-columns:1fr}.dash-actions{justify-content:flex-start}}@media(max-width:760px){.dash-grid,.bot-meta-grid{grid-template-columns:1fr}.project-switcher{grid-template-columns:1fr}}
474
- .runtime-card-actions{display:flex;gap:8px;align-items:center}.runtime-card-actions .runtime-open-btn{flex:1}
475
- .bot-main .btn-inline{width:auto!important;min-height:40px!important;padding:10px 16px!important;display:inline-flex!important;align-items:center;justify-content:center;position:static!important;bottom:auto!important;z-index:auto!important;flex:0 0 auto!important}
476
- .feature-group{margin:8px 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
477
- .feature-card{padding:16px}
478
- .feature-card.is-loading{position:relative;overflow:hidden;opacity:.9}
479
- .feature-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
480
- .feature-head b{display:block;font-size:18px;margin-bottom:6px}
481
- .feature-head p{margin:0;color:var(--body)}
482
- .feature-switch{position:relative;display:inline-flex;flex:0 0 auto}
483
- .feature-switch input{position:absolute;opacity:0;pointer-events:none}
484
- .feature-switch span{width:52px;height:30px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:block;position:relative;transition:.18s}
485
- .feature-switch span:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:.18s}
486
- .feature-switch input:checked + span{background:rgba(255,36,54,.32);border-color:rgba(255,36,54,.52)}
487
- .feature-switch input:checked + span:after{left:25px;background:#ff4b5d}
488
- .feature-progress{height:4px;margin-top:14px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
489
- .feature-progress i{display:block;height:100%;width:34%;border-radius:inherit;background:linear-gradient(90deg,transparent,rgba(255,36,54,.95),transparent);animation:featureRun 1s linear infinite}
490
- @keyframes featureRun{from{transform:translateX(-120%)}to{transform:translateX(360%)}}
491
- .donut-chart{position:relative;width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--percent) * 1%),rgba(255,255,255,0.06) 0);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
492
- .donut-chart::before{content:"";position:absolute;inset:8px;background:#0d0d0d;border-radius:50%}
493
- .donut-value{position:relative;font-size:18px;font-weight:800;z-index:1;letter-spacing:-0.03em}
494
- .chart-card{display:flex;align-items:center;gap:18px;padding:16px}
495
- .chart-info{display:flex;flex-direction:column;gap:4px}
496
- .chart-info span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}
497
- .chart-info strong{font-size:18px;letter-spacing:-0.02em;line-height:1.2}
498
- .chart-info small{color:var(--body);font-size:13px}
499
-
500
- /* Premium Toast Notification System */
501
- .toast-container {
502
- position: fixed;
503
- top: 24px;
504
- right: 24px;
505
- display: flex;
506
- flex-direction: column;
507
- gap: 12px;
508
- z-index: 10000;
509
- max-width: 380px;
510
- pointer-events: none;
511
- }
512
-
513
- .toast-card {
514
- pointer-events: auto;
515
- background: rgba(16, 12, 13, 0.95);
516
- backdrop-filter: blur(20px);
517
- -webkit-backdrop-filter: blur(20px);
518
- border: 1px solid rgba(255, 36, 54, 0.18);
519
- border-radius: 16px;
520
- padding: 16px 20px;
521
- box-shadow: 0 20px 48px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.08);
522
- display: flex;
523
- align-items: flex-start;
524
- gap: 14px;
525
- transform: translateX(130%);
526
- transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
527
- opacity: 0;
528
- }
529
-
530
- .toast-card.show {
531
- transform: translateX(0);
532
- opacity: 1;
533
- }
534
-
535
- .toast-card.hide {
536
- transform: translateX(130%);
537
- opacity: 0;
538
- }
539
-
540
- .toast-card--success {
541
- border-left: 4px solid var(--ok, #19d18f);
542
- }
543
- .toast-card--error {
544
- border-left: 4px solid var(--primary, #ff2436);
545
- }
546
- .toast-card--info {
547
- border-left: 4px solid var(--soft, #ff5a66);
548
- }
549
-
550
- .toast-card__icon {
551
- font-size: 20px;
552
- line-height: 1;
553
- flex-shrink: 0;
554
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
555
- }
556
-
557
- .toast-card__body {
558
- display: flex;
559
- flex-direction: column;
560
- gap: 4px;
561
- min-width: 0;
562
- flex: 1;
563
- }
564
-
565
- .toast-card__title {
566
- font-weight: 750;
567
- font-size: 14px;
568
- color: var(--ink, #f8f7f7);
569
- letter-spacing: -0.01em;
570
- }
571
-
572
- .toast-card__desc {
573
- font-size: 12.5px;
574
- color: var(--body, #c9bfc0);
575
- line-height: 1.45;
576
- word-break: break-word;
577
- }
578
-
579
- .toast-card__close {
580
- background: none;
581
- border: none;
582
- color: var(--muted, #817273);
583
- cursor: pointer;
584
- padding: 0;
585
- margin-left: 6px;
586
- font-size: 20px;
587
- line-height: 0.8;
588
- opacity: 0.65;
589
- transition: opacity 0.2s ease, color 0.2s ease;
590
- }
591
-
592
- .toast-card__close:hover {
593
- opacity: 1;
594
- color: var(--primary, #ff2436);
595
- }
596
-
597
- html[data-theme="light"] .toast-card {
598
- background: rgba(255, 255, 255, 0.96);
599
- border-color: rgba(255, 45, 63, 0.22);
600
- box-shadow: 0 16px 42px rgba(143, 36, 48, 0.12), inset 0 1px 0 #fff;
601
- }
602
- html[data-theme="light"] .toast-card__title {
603
- color: var(--ink, #171014);
604
- }
605
- html[data-theme="light"] .toast-card__desc {
606
- color: var(--body, #5f5258);
614
+ .feature-switch span:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:.18s}
615
+ .feature-switch input:checked + span{background:rgba(255,36,54,.32);border-color:rgba(255,36,54,.52)}
616
+ .feature-switch input:checked + span:after{left:25px;background:#ff4b5d}
617
+ .feature-progress{height:4px;margin-top:14px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
618
+ .feature-progress i{display:block;height:100%;width:34%;border-radius:inherit;background:linear-gradient(90deg,transparent,rgba(255,36,54,.95),transparent);animation:featureRun 1s linear infinite}
619
+ @keyframes featureRun{from{transform:translateX(-120%)}to{transform:translateX(360%)}}
620
+ .donut-chart {
621
+ position: relative;
622
+ width: 80px;
623
+ height: 80px;
624
+ border-radius: 50%;
625
+ background: conic-gradient(var(--primary) calc(var(--percent) * 1%), rgba(255, 255, 255, 0.08) 0);
626
+ display: flex;
627
+ align-items: center;
628
+ justify-content: center;
629
+ flex: 0 0 auto;
630
+ }
631
+
632
+ .donut-chart::before {
633
+ content: "";
634
+ position: absolute;
635
+ inset: 8px;
636
+ background: #090e1a;
637
+ border-radius: 50%;
607
638
  }
639
+
640
+ /* Light Mode Donut Overrides */
641
+ html[data-theme="light"] .donut-chart {
642
+ background: conic-gradient(var(--primary) calc(var(--percent) * 1%), rgba(15, 23, 42, 0.06) 0) !important;
643
+ }
644
+
645
+ html[data-theme="light"] .donut-chart::before {
646
+ background: #ffffff !important;
647
+ }
648
+ .donut-value{position:relative;font-size:18px;font-weight:800;z-index:1;letter-spacing:-0.03em}
649
+ .chart-card{display:flex;align-items:center;gap:18px;padding:16px}
650
+ .chart-info{display:flex;flex-direction:column;gap:4px}
651
+ .chart-info span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}
652
+ .chart-info strong{font-size:18px;letter-spacing:-0.02em;line-height:1.2}
653
+ .chart-info small{color:var(--body);font-size:13px}
654
+
655
+ /* Premium Toast Notification System */
656
+ .toast-container {
657
+ position: fixed;
658
+ top: 24px;
659
+ right: 24px;
660
+ display: flex;
661
+ flex-direction: column;
662
+ gap: 12px;
663
+ z-index: 10000;
664
+ max-width: 380px;
665
+ pointer-events: none;
666
+ }
667
+
668
+ .toast-card {
669
+ pointer-events: auto;
670
+ background: rgba(16, 12, 13, 0.95);
671
+ backdrop-filter: blur(20px);
672
+ -webkit-backdrop-filter: blur(20px);
673
+ border: 1px solid rgba(255, 36, 54, 0.18);
674
+ border-radius: 16px;
675
+ padding: 16px 20px;
676
+ box-shadow: 0 20px 48px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.08);
677
+ display: flex;
678
+ align-items: flex-start;
679
+ gap: 14px;
680
+ transform: translateX(130%);
681
+ transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
682
+ opacity: 0;
683
+ }
684
+
685
+ .toast-card.show {
686
+ transform: translateX(0);
687
+ opacity: 1;
688
+ }
689
+
690
+ .toast-card.hide {
691
+ transform: translateX(130%);
692
+ opacity: 0;
693
+ }
694
+
695
+ .toast-card--success {
696
+ border-left: 4px solid var(--ok, #19d18f);
697
+ }
698
+ .toast-card--error {
699
+ border-left: 4px solid var(--primary, #ff2436);
700
+ }
701
+ .toast-card--info {
702
+ border-left: 4px solid var(--soft, #ff5a66);
703
+ }
704
+
705
+ .toast-card__icon {
706
+ font-size: 20px;
707
+ line-height: 1;
708
+ flex-shrink: 0;
709
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
710
+ }
711
+
712
+ .toast-card__body {
713
+ display: flex;
714
+ flex-direction: column;
715
+ gap: 4px;
716
+ min-width: 0;
717
+ flex: 1;
718
+ }
719
+
720
+ .toast-card__title {
721
+ font-weight: 750;
722
+ font-size: 14px;
723
+ color: var(--ink, #f8f7f7);
724
+ letter-spacing: -0.01em;
725
+ }
726
+
727
+ .toast-card__desc {
728
+ font-size: 12.5px;
729
+ color: var(--body, #c9bfc0);
730
+ line-height: 1.45;
731
+ word-break: break-word;
732
+ }
733
+
734
+ .toast-card__close {
735
+ background: none;
736
+ border: none;
737
+ color: var(--muted, #817273);
738
+ cursor: pointer;
739
+ padding: 0;
740
+ margin-left: 6px;
741
+ font-size: 20px;
742
+ line-height: 0.8;
743
+ opacity: 0.65;
744
+ transition: opacity 0.2s ease, color 0.2s ease;
745
+ }
746
+
747
+ .toast-card__close:hover {
748
+ opacity: 1;
749
+ color: var(--primary, #ff2436);
750
+ }
751
+
752
+ html[data-theme="light"] .toast-card {
753
+ background: rgba(255, 255, 255, 0.96);
754
+ border-color: rgba(255, 45, 63, 0.22);
755
+ box-shadow: 0 16px 42px rgba(143, 36, 48, 0.12), inset 0 1px 0 #fff;
756
+ }
757
+ html[data-theme="light"] .toast-card__title {
758
+ color: var(--ink, #171014);
759
+ }
760
+ html[data-theme="light"] .toast-card__desc {
761
+ color: var(--body, #5f5258);
762
+ }
763
+
764
+ /* Premium Terminal Windows Style (macOS/Ubuntu) */
765
+ html[data-theme="dark"] .terminal {
766
+ position: relative !important;
767
+ padding-top: 38px !important;
768
+ background: #020617 !important;
769
+ color: #38bdf8 !important;
770
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
771
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
772
+ overflow: auto !important;
773
+ }
774
+
775
+ html[data-theme="dark"] .terminal:before {
776
+ content: "" !important;
777
+ position: absolute !important;
778
+ top: 13px !important;
779
+ left: 14px !important;
780
+ width: 9px !important;
781
+ height: 9px !important;
782
+ border-radius: 50% !important;
783
+ background: #ff5f56 !important;
784
+ box-shadow: 16px 0 0 #ffbd2e, 32px 0 0 #27c93f !important;
785
+ z-index: 10 !important;
786
+ }
787
+
788
+ html[data-theme="dark"] .terminal:after {
789
+ content: "" !important;
790
+ position: absolute !important;
791
+ top: 0 !important;
792
+ left: 0 !important;
793
+ right: 0 !important;
794
+ height: 32px !important;
795
+ background: rgba(15, 23, 42, 0.55) !important;
796
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
797
+ pointer-events: none !important;
798
+ z-index: 5 !important;
799
+ }
800
+
801
+ html[data-theme="dark"] .terminal p {
802
+ color: #cbd5e1 !important;
803
+ position: relative !important;
804
+ z-index: 1 !important;
805
+ }
806
+
807
+ /* Premium Modal Styles in Dark Mode */
808
+ html[data-theme="dark"] .modal-backdrop {
809
+ background: rgba(2, 6, 23, 0.75) !important;
810
+ backdrop-filter: blur(16px) !important;
811
+ -webkit-backdrop-filter: blur(16px) !important;
812
+ }
813
+
814
+ html[data-theme="dark"] .donate-modal {
815
+ background: linear-gradient(145deg, #090e1a, #030712) !important;
816
+ border: 1px solid rgba(6, 182, 212, 0.22) !important;
817
+ box-shadow: 0 50px 120px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
818
+ border-radius: 24px !important;
819
+ }
820
+
821
+ html[data-theme="dark"] .donate-head>span {
822
+ background: rgba(6, 182, 212, 0.12) !important;
823
+ color: #06b6d4 !important;
824
+ border: 1px solid rgba(6, 182, 212, 0.2) !important;
825
+ }
826
+
827
+ html[data-theme="dark"] .modal-x {
828
+ border-color: rgba(255, 255, 255, 0.08) !important;
829
+ background: rgba(255, 255, 255, 0.04) !important;
830
+ transition: all 0.2s ease !important;
831
+ }
832
+
833
+ html[data-theme="dark"] .modal-x:hover {
834
+ border-color: var(--primary) !important;
835
+ background: rgba(244, 63, 94, 0.1) !important;
836
+ color: var(--primary) !important;
837
+ }
838
+
839
+ /* Premium Inputs in Dark Mode Modals */
840
+ html[data-theme="dark"] .field>input,
841
+ html[data-theme="dark"] .field>select,
842
+ html[data-theme="dark"] .bot-form-grid input,
843
+ html[data-theme="dark"] .bot-form-grid textarea {
844
+ background: #020617 !important;
845
+ border: 1px solid #1e293b !important;
846
+ color: #f8fafc !important;
847
+ border-radius: 12px !important;
848
+ transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
849
+ }
850
+
851
+ html[data-theme="dark"] .field>input:focus,
852
+ html[data-theme="dark"] .field>select:focus,
853
+ html[data-theme="dark"] .bot-form-grid input:focus,
854
+ html[data-theme="dark"] .bot-form-grid textarea:focus {
855
+ border-color: #06b6d4 !important;
856
+ box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.15) !important;
857
+ }
858
+
859
+ /* Premium Tab Choices in Install Modal */
860
+ html[data-theme="dark"] .install-tab {
861
+ background: rgba(255, 255, 255, 0.02) !important;
862
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
863
+ }
864
+
865
+ html[data-theme="dark"] .install-tab:hover {
866
+ border-color: rgba(6, 182, 212, 0.4) !important;
867
+ }
868
+
869
+ html[data-theme="dark"] .install-tab.is-active {
870
+ border-color: #06b6d4 !important;
871
+ background: linear-gradient(145deg, rgba(6, 182, 212, 0.12), rgba(9, 14, 26, 0.9)) !important;
872
+ box-shadow: 0 0 0 1px rgba(6, 182, 212, 0.2) inset, 0 12px 36px rgba(6, 182, 212, 0.08) !important;
873
+ }
874
+
875
+ html[data-theme="dark"] .pill-choice {
876
+ background: rgba(255, 255, 255, 0.02) !important;
877
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
878
+ }
879
+
880
+ html[data-theme="dark"] .pill-choice:hover {
881
+ border-color: rgba(6, 182, 212, 0.4) !important;
882
+ }
883
+
884
+ html[data-theme="dark"] .pill-choice.is-active {
885
+ border-color: #06b6d4 !important;
886
+ background: linear-gradient(135deg, rgba(6, 182, 212, 0.14), rgba(255, 255, 255, 0.02)) !important;
887
+ }
888
+
889
+ /* Premium Modal Action Buttons */
890
+ html[data-theme="dark"] .confirm-actions button,
891
+ html[data-theme="dark"] .install-actions button,
892
+ html[data-theme="dark"] .bot-actions button {
893
+ border-radius: 12px !important;
894
+ font-weight: 700 !important;
895
+ transition: all 0.2s ease !important;
896
+ }
897
+
898
+ html[data-theme="dark"] .confirm-actions .primary,
899
+ html[data-theme="dark"] .install-actions button[type="submit"],
900
+ html[data-theme="dark"] .bot-actions button[type="submit"] {
901
+ background: linear-gradient(135deg, var(--primary) 0%, #db2777 100%) !important;
902
+ color: #fff !important;
903
+ border: none !important;
904
+ box-shadow: 0 10px 24px rgba(244, 63, 94, 0.2) !important;
905
+ }
906
+
907
+ html[data-theme="dark"] .confirm-actions .primary:hover,
908
+ html[data-theme="dark"] .install-actions button[type="submit"]:hover,
909
+ html[data-theme="dark"] .bot-actions button[type="submit"]:hover {
910
+ transform: translateY(-1px) !important;
911
+ box-shadow: 0 12px 30px rgba(244, 63, 94, 0.3) !important;
912
+ }
913
+
914
+ html[data-theme="dark"] .confirm-actions .secondary,
915
+ html[data-theme="dark"] .install-actions .secondary,
916
+ html[data-theme="dark"] .bot-actions .secondary {
917
+ background: transparent !important;
918
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
919
+ color: var(--ink) !important;
920
+ }
921
+
922
+ html[data-theme="dark"] .confirm-actions .secondary:hover,
923
+ html[data-theme="dark"] .install-actions .secondary:hover,
924
+ html[data-theme="dark"] .bot-actions .secondary:hover {
925
+ border-color: rgba(6, 182, 212, 0.5) !important;
926
+ color: #06b6d4 !important;
927
+ }
928
+
929
+ /* Align inline secondary buttons on Bot screen */
930
+ .bot-main .secondary.btn-inline {
931
+ background: transparent !important;
932
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
933
+ color: var(--ink) !important;
934
+ font-weight: 700 !important;
935
+ border-radius: 8px !important;
936
+ display: inline-flex !important;
937
+ align-items: center !important;
938
+ justify-content: center !important;
939
+ transition: all 0.2s ease !important;
940
+ width: auto !important;
941
+ min-height: 40px !important;
942
+ padding: 10px 16px !important;
943
+ }
944
+
945
+ .bot-main .secondary.btn-inline:hover {
946
+ border-color: rgba(6, 182, 212, 0.5) !important;
947
+ color: #06b6d4 !important;
948
+ }
949
+
950
+ .bot-main .primary.btn-inline {
951
+ background: linear-gradient(135deg, var(--primary) 0%, #db2777 100%) !important;
952
+ color: #fff !important;
953
+ border: none !important;
954
+ font-weight: 700 !important;
955
+ border-radius: 8px !important;
956
+ display: inline-flex !important;
957
+ align-items: center !important;
958
+ justify-content: center !important;
959
+ box-shadow: 0 8px 20px rgba(244, 63, 94, 0.18) !important;
960
+ transition: all 0.2s ease !important;
961
+ width: auto !important;
962
+ min-height: 40px !important;
963
+ padding: 10px 16px !important;
964
+ }
965
+
966
+ .bot-main .primary.btn-inline:hover {
967
+ transform: translateY(-1px) !important;
968
+ box-shadow: 0 10px 24px rgba(244, 63, 94, 0.28) !important;
969
+ }
970
+
971
+ /* Premium Skills & Plugins Separation */
972
+ .feature-group {
973
+ font-size: 13px !important;
974
+ text-transform: uppercase !important;
975
+ letter-spacing: 1.5px !important;
976
+ color: var(--soft) !important;
977
+ margin: 20px 0 12px 0 !important;
978
+ font-weight: 800 !important;
979
+ display: flex !important;
980
+ align-items: center !important;
981
+ gap: 8px !important;
982
+ }
983
+
984
+ .feature-divider-wrap {
985
+ padding: 24px 0 12px 0 !important;
986
+ }
987
+
988
+ .feature-divider {
989
+ border: none !important;
990
+ height: 1px !important;
991
+ background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0) 100%) !important;
992
+ margin: 0 !important;
993
+ }
994
+
995
+ html[data-theme="light"] .feature-divider {
996
+ background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.06) 50%, rgba(0, 0, 0, 0) 100%) !important;
997
+ }
998
+
999
+ /* Premium Light Mode Polish (macOS/Ubuntu Windows Style Terminal, Modals, Buttons) */
1000
+ html[data-theme="light"] .terminal {
1001
+ position: relative !important;
1002
+ padding-top: 38px !important;
1003
+ background: #f8fafc !important;
1004
+ color: #0f172a !important;
1005
+ border: 1px solid #e2e8f0 !important;
1006
+ box-shadow: inset 0 1px 0 #fff, 0 20px 48px rgba(15, 23, 42, 0.05) !important;
1007
+ overflow: auto !important;
1008
+ }
1009
+
1010
+ html[data-theme="light"] .terminal:before {
1011
+ content: "" !important;
1012
+ position: absolute !important;
1013
+ top: 13px !important;
1014
+ left: 14px !important;
1015
+ width: 9px !important;
1016
+ height: 9px !important;
1017
+ border-radius: 50% !important;
1018
+ background: #ff5f56 !important;
1019
+ box-shadow: 16px 0 0 #ffbd2e, 32px 0 0 #27c93f !important;
1020
+ z-index: 10 !important;
1021
+ }
1022
+
1023
+ html[data-theme="light"] .terminal:after {
1024
+ content: "" !important;
1025
+ position: absolute !important;
1026
+ top: 0 !important;
1027
+ left: 0 !important;
1028
+ right: 0 !important;
1029
+ height: 32px !important;
1030
+ background: #f1f5f9 !important;
1031
+ border-bottom: 1px solid #e2e8f0 !important;
1032
+ pointer-events: none !important;
1033
+ z-index: 5 !important;
1034
+ }
1035
+
1036
+ html[data-theme="light"] .terminal p {
1037
+ color: #334155 !important;
1038
+ position: relative !important;
1039
+ z-index: 1 !important;
1040
+ }
1041
+
1042
+ /* Light Mode Modals & Overlays */
1043
+ html[data-theme="light"] .modal-backdrop {
1044
+ background: rgba(15, 23, 42, 0.4) !important;
1045
+ backdrop-filter: blur(16px) !important;
1046
+ -webkit-backdrop-filter: blur(16px) !important;
1047
+ }
1048
+
1049
+ html[data-theme="light"] .donate-modal {
1050
+ background: linear-gradient(145deg, #ffffff, #fcfcfc) !important;
1051
+ border: 1px solid rgba(255, 45, 63, 0.22) !important;
1052
+ box-shadow: 0 40px 100px rgba(143, 36, 48, 0.12), inset 0 1px 0 #fff !important;
1053
+ border-radius: 24px !important;
1054
+ }
1055
+
1056
+ html[data-theme="light"] .donate-head>span {
1057
+ background: rgba(255, 45, 63, 0.08) !important;
1058
+ color: var(--primary) !important;
1059
+ border: 1px solid rgba(255, 45, 63, 0.15) !important;
1060
+ }
1061
+
1062
+ html[data-theme="light"] .modal-x {
1063
+ border-color: #e2e8f0 !important;
1064
+ background: #f8fafc !important;
1065
+ color: #0f172a !important;
1066
+ transition: all 0.2s ease !important;
1067
+ }
1068
+
1069
+ html[data-theme="light"] .modal-x:hover {
1070
+ border-color: var(--primary) !important;
1071
+ background: rgba(255, 45, 63, 0.06) !important;
1072
+ color: var(--primary) !important;
1073
+ }
1074
+
1075
+ /* Light Mode Text Inputs inside Modals */
1076
+ html[data-theme="light"] .field>input,
1077
+ html[data-theme="light"] .field>select,
1078
+ html[data-theme="light"] .bot-form-grid input,
1079
+ html[data-theme="light"] .bot-form-grid textarea {
1080
+ background: #ffffff !important;
1081
+ border: 1px solid #cbd5e1 !important;
1082
+ color: #0f172a !important;
1083
+ border-radius: 12px !important;
1084
+ transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
1085
+ }
1086
+
1087
+ html[data-theme="light"] .field>input:focus,
1088
+ html[data-theme="light"] .field>select:focus,
1089
+ html[data-theme="light"] .bot-form-grid input:focus,
1090
+ html[data-theme="light"] .bot-form-grid textarea:focus {
1091
+ border-color: var(--primary) !important;
1092
+ box-shadow: 0 0 0 3px rgba(255, 45, 63, 0.12) !important;
1093
+ }
1094
+
1095
+ /* Light Mode Tab Choices in Install Modal */
1096
+ html[data-theme="light"] .install-tab {
1097
+ background: #ffffff !important;
1098
+ border: 1px solid #cbd5e1 !important;
1099
+ }
1100
+
1101
+ html[data-theme="light"] .install-tab:hover {
1102
+ border-color: var(--primary) !important;
1103
+ }
1104
+
1105
+ html[data-theme="light"] .install-tab.is-active {
1106
+ border-color: var(--primary) !important;
1107
+ background: linear-gradient(145deg, rgba(255, 45, 63, 0.06), #ffffff) !important;
1108
+ box-shadow: 0 0 0 1px rgba(255, 45, 63, 0.15) inset, 0 12px 36px rgba(255, 45, 63, 0.05) !important;
1109
+ }
1110
+
1111
+ html[data-theme="light"] .pill-choice {
1112
+ background: #ffffff !important;
1113
+ border: 1px solid #cbd5e1 !important;
1114
+ }
1115
+
1116
+ html[data-theme="light"] .pill-choice:hover {
1117
+ border-color: var(--primary) !important;
1118
+ }
1119
+
1120
+ html[data-theme="light"] .pill-choice.is-active {
1121
+ border-color: var(--primary) !important;
1122
+ background: linear-gradient(135deg, rgba(255, 45, 63, 0.08), #ffffff) !important;
1123
+ }
1124
+
1125
+ /* Light Mode Modal Buttons */
1126
+ html[data-theme="light"] .confirm-actions button,
1127
+ html[data-theme="light"] .install-actions button,
1128
+ html[data-theme="light"] .bot-actions button {
1129
+ border-radius: 12px !important;
1130
+ font-weight: 700 !important;
1131
+ transition: all 0.2s ease !important;
1132
+ }
1133
+
1134
+ html[data-theme="light"] .confirm-actions .primary,
1135
+ html[data-theme="light"] .install-actions button[type="submit"],
1136
+ html[data-theme="light"] .bot-actions button[type="submit"] {
1137
+ background: linear-gradient(135deg, var(--primary) 0%, #db2777 100%) !important;
1138
+ color: #fff !important;
1139
+ border: none !important;
1140
+ box-shadow: 0 8px 20px rgba(255, 45, 63, 0.2) !important;
1141
+ }
1142
+
1143
+ html[data-theme="light"] .confirm-actions .primary:hover,
1144
+ html[data-theme="light"] .install-actions button[type="submit"]:hover,
1145
+ html[data-theme="light"] .bot-actions button[type="submit"]:hover {
1146
+ transform: translateY(-1px) !important;
1147
+ box-shadow: 0 10px 24px rgba(255, 45, 63, 0.26) !important;
1148
+ }
1149
+
1150
+ html[data-theme="light"] .confirm-actions .secondary,
1151
+ html[data-theme="light"] .install-actions .secondary,
1152
+ html[data-theme="light"] .bot-actions .secondary {
1153
+ background: #ffffff !important;
1154
+ border: 1px solid #cbd5e1 !important;
1155
+ color: #0f172a !important;
1156
+ }
1157
+
1158
+ html[data-theme="light"] .confirm-actions .secondary:hover,
1159
+ html[data-theme="light"] .install-actions .secondary:hover,
1160
+ html[data-theme="light"] .bot-actions .secondary:hover {
1161
+ border-color: var(--primary) !important;
1162
+ color: var(--primary) !important;
1163
+ }
1164
+
1165
+ /* Align inline secondary buttons on Bot screen in Light Mode */
1166
+ html[data-theme="light"] .bot-main .secondary.btn-inline {
1167
+ background: #ffffff !important;
1168
+ border: 1px solid #cbd5e1 !important;
1169
+ color: #0f172a !important;
1170
+ }
1171
+
1172
+ html[data-theme="light"] .bot-main .secondary.btn-inline:hover {
1173
+ border-color: var(--primary) !important;
1174
+ color: var(--primary) !important;
1175
+ }
1176
+
1177
+ /* Premium Bot Channel Tabs Styling */
1178
+ .channel-tabs {
1179
+ display: flex !important;
1180
+ gap: 12px !important;
1181
+ margin: 18px 0 !important;
1182
+ border-bottom: 1px solid var(--hair) !important;
1183
+ padding-bottom: 12px !important;
1184
+ }
1185
+
1186
+ .channel-tabs button {
1187
+ display: inline-flex !important;
1188
+ align-items: center !important;
1189
+ gap: 8px !important;
1190
+ background: transparent !important;
1191
+ border: 1px solid var(--hair) !important;
1192
+ border-radius: 999px !important;
1193
+ padding: 8px 16px !important;
1194
+ color: var(--muted) !important;
1195
+ font-size: 13px !important;
1196
+ font-weight: 600 !important;
1197
+ cursor: pointer !important;
1198
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
1199
+ }
1200
+
1201
+ .channel-tabs button img {
1202
+ width: 16px !important;
1203
+ height: 16px !important;
1204
+ object-fit: contain !important;
1205
+ filter: grayscale(100%) opacity(60%) !important;
1206
+ transition: all 0.2s ease !important;
1207
+ }
1208
+
1209
+ .channel-tabs button span {
1210
+ background: rgba(255, 255, 255, 0.05) !important;
1211
+ color: var(--muted) !important;
1212
+ font-size: 11px !important;
1213
+ font-weight: 700 !important;
1214
+ padding: 2px 6px !important;
1215
+ border-radius: 999px !important;
1216
+ border: 1px solid rgba(255, 255, 255, 0.03) !important;
1217
+ transition: all 0.2s ease !important;
1218
+ }
1219
+
1220
+ /* Hover State */
1221
+ .channel-tabs button:hover {
1222
+ border-color: var(--primary) !important;
1223
+ color: var(--ink) !important;
1224
+ }
1225
+
1226
+ /* Active State in Dark Mode */
1227
+ html[data-theme="dark"] .channel-tabs button.active {
1228
+ border-color: var(--primary) !important;
1229
+ background: rgba(244, 63, 94, 0.1) !important;
1230
+ color: var(--ink) !important;
1231
+ box-shadow: 0 0 20px rgba(244, 63, 94, 0.15) !important;
1232
+ }
1233
+
1234
+ html[data-theme="dark"] .channel-tabs button.active img {
1235
+ filter: none !important;
1236
+ }
1237
+
1238
+ html[data-theme="dark"] .channel-tabs button.active span {
1239
+ background: var(--primary) !important;
1240
+ color: #fff !important;
1241
+ border-color: transparent !important;
1242
+ }
1243
+
1244
+ /* Active State in Light Mode */
1245
+ html[data-theme="light"] .channel-tabs button {
1246
+ background: #ffffff !important;
1247
+ border-color: #cbd5e1 !important;
1248
+ color: #475569 !important;
1249
+ }
1250
+
1251
+ html[data-theme="light"] .channel-tabs button img {
1252
+ filter: grayscale(100%) opacity(80%) !important;
1253
+ }
1254
+
1255
+ html[data-theme="light"] .channel-tabs button span {
1256
+ background: #f1f5f9 !important;
1257
+ color: #475569 !important;
1258
+ border-color: #e2e8f0 !important;
1259
+ }
1260
+
1261
+ html[data-theme="light"] .channel-tabs button.active {
1262
+ border-color: var(--primary) !important;
1263
+ background: rgba(244, 63, 94, 0.06) !important;
1264
+ color: var(--primary) !important;
1265
+ box-shadow: 0 4px 12px rgba(244, 63, 94, 0.06) !important;
1266
+ }
1267
+
1268
+ html[data-theme="light"] .channel-tabs button.active img {
1269
+ filter: none !important;
1270
+ }
1271
+
1272
+ html[data-theme="light"] .channel-tabs button.active span {
1273
+ background: var(--primary) !important;
1274
+ color: #ffffff !important;
1275
+ border-color: transparent !important;
1276
+ }
1277
+
1278
+ /* Move loading spinner to top-right of project-chip with beautiful styling */
1279
+ .project-chip {
1280
+ position: relative !important;
1281
+ }
1282
+
1283
+ .project-chip.is-loading::after {
1284
+ content: "" !important;
1285
+ position: absolute !important;
1286
+ top: 14px !important;
1287
+ right: 14px !important;
1288
+ width: 16px !important;
1289
+ height: 16px !important;
1290
+ border: 2px solid rgba(244, 63, 94, 0.2) !important;
1291
+ border-top-color: var(--primary) !important;
1292
+ border-radius: 50% !important;
1293
+ animation: spinProjectSpinner 0.8s linear infinite !important;
1294
+ margin: 0 !important;
1295
+ transform: none !important;
1296
+ left: auto !important;
1297
+ bottom: auto !important;
1298
+ }
1299
+
1300
+ @keyframes spinProjectSpinner {
1301
+ to { transform: rotate(360deg); }
1302
+ }
1303
+
1304
+ /* Premium Bot Item Actions Styling (Visible by Default) */
1305
+ .bot-item {
1306
+ position: relative !important;
1307
+ }
1308
+
1309
+ .bot-item-actions {
1310
+ display: flex !important;
1311
+ gap: 6px !important;
1312
+ position: absolute !important;
1313
+ top: 10px !important;
1314
+ right: 10px !important;
1315
+ opacity: 1 !important; /* Always visible */
1316
+ pointer-events: auto !important;
1317
+ z-index: 10 !important;
1318
+ transition: all 0.2s ease !important;
1319
+ }
1320
+
1321
+ .bot-item-actions button {
1322
+ display: flex !important;
1323
+ align-items: center !important;
1324
+ justify-content: center !important;
1325
+ width: 24px !important;
1326
+ height: 24px !important;
1327
+ border-radius: 6px !important;
1328
+ border: 1px solid var(--hair) !important;
1329
+ background: var(--surface2) !important;
1330
+ color: var(--muted) !important;
1331
+ font-size: 13px !important;
1332
+ cursor: pointer !important;
1333
+ padding: 0 !important;
1334
+ opacity: 0.75 !important; /* Subtle visible state */
1335
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
1336
+ }
1337
+
1338
+ .bot-item-actions button svg {
1339
+ width: 12px !important;
1340
+ height: 12px !important;
1341
+ }
1342
+
1343
+ /* Hover effects for actions buttons */
1344
+ .bot-item-actions button:hover {
1345
+ opacity: 1 !important;
1346
+ color: var(--primary) !important;
1347
+ border-color: var(--primary) !important;
1348
+ transform: scale(1.1) !important;
1349
+ box-shadow: 0 4px 12px rgba(244, 63, 94, 0.15) !important;
1350
+ }
1351
+
1352
+ /* Specific styling for delete button to glow red on hover */
1353
+ .bot-item-actions button.bot-delete:hover {
1354
+ color: #ff4b5d !important;
1355
+ border-color: #ff4b5d !important;
1356
+ box-shadow: 0 4px 12px rgba(255, 75, 93, 0.2) !important;
1357
+ }
1358
+
1359
+ /* Light Mode Overrides for Bot Item Actions */
1360
+ html[data-theme="light"] .bot-item-actions button {
1361
+ background: #ffffff !important;
1362
+ border-color: #cbd5e1 !important;
1363
+ color: #475569 !important;
1364
+ }
1365
+
1366
+ html[data-theme="light"] .bot-item-actions button:hover {
1367
+ border-color: var(--primary) !important;
1368
+ color: var(--primary) !important;
1369
+ }
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+