isaikr 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +35 -0
  2. package/cdn/api.js +19 -0
  3. package/cdn/character.js +254 -0
  4. package/cdn/chat.js +33 -0
  5. package/cdn/code-editor.js +1131 -0
  6. package/cdn/community-compose.js +270 -0
  7. package/cdn/games/2048/index.html +12 -0
  8. package/cdn/games/breakout/index.html +13 -0
  9. package/cdn/games/clicker/index.html +26 -0
  10. package/cdn/games/flappy/index.html +11 -0
  11. package/cdn/games/memory/index.html +34 -0
  12. package/cdn/games/pong/index.html +13 -0
  13. package/cdn/games/reaction/index.html +38 -0
  14. package/cdn/games/runner/index.html +11 -0
  15. package/cdn/games/snake/index.html +11 -0
  16. package/cdn/games/tetris/index.html +14 -0
  17. package/cdn/games/whack/index.html +8 -0
  18. package/cdn/go.js +126 -0
  19. package/cdn/go2.js +127 -0
  20. package/cdn/header3_behavior.js +1167 -0
  21. package/cdn/header3_layout.js +1004 -0
  22. package/cdn/header3_layout.js.bak +1004 -0
  23. package/cdn/header3_style.css +3524 -0
  24. package/cdn/header3_style.css.bak +3514 -0
  25. package/cdn/lang.js +198 -0
  26. package/cdn/loading.js +143 -0
  27. package/cdn/loading2.js +144 -0
  28. package/cdn/local-model.js +2941 -0
  29. package/cdn/main.js +4 -0
  30. package/cdn/main_asset.js +1849 -0
  31. package/cdn/main_asset.js.bak +6999 -0
  32. package/cdn/main_index.css +287 -0
  33. package/cdn/re_board3.css +733 -0
  34. package/cdn/re_board3.js +734 -0
  35. package/cdn/re_chat_tts.js +652 -0
  36. package/cdn/re_local_runtime.js +2246 -0
  37. package/cdn/re_local_runtime.js.bak +2246 -0
  38. package/cdn/re_share.js +577 -0
  39. package/cdn/re_voice.js +542 -0
  40. package/cdn/utils.js +36 -0
  41. package/cdn/view.js +321 -0
  42. package/header3_behavior.js +804 -0
  43. package/header3_layout.js +998 -0
  44. package/header3_style.css +2740 -0
  45. package/index.js +0 -0
  46. package/lang.js +179 -0
  47. package/main_asset.js +2416 -0
  48. package/main_index.css +274 -0
  49. package/package.json +14 -0
  50. package/re_chat_tts.js +1419 -0
  51. package/re_voice.js +430 -0
@@ -0,0 +1,3524 @@
1
+ /* =========================================
2
+ 채팅 UI 컴포넌트 스타일 (자바스크립트 분리분)
3
+ ========================================= */
4
+
5
+ /* 언어 선택 국기 아이템 */
6
+ .flag-select-item {
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ width: 100%;
11
+ height: 32px;
12
+ padding: 0;
13
+ border: 0;
14
+ background: transparent;
15
+ border-radius: 9px;
16
+ cursor: pointer;
17
+ }
18
+
19
+ /* 로컬 모드 환영 말풍선 버튼 */
20
+ .chat-welcome-cta {
21
+ display: inline-flex !important;
22
+ align-items: center;
23
+ gap: 6px;
24
+ cursor: pointer;
25
+ }
26
+ .chat-welcome-cta-inner {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ gap: 6px;
30
+ }
31
+ .chat-welcome-cta-icon {
32
+ font-size: 15px;
33
+ line-height: 1;
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ flex: 0 0 auto;
38
+ }
39
+
40
+ /* -----------------------------------------
41
+ 코드 워크스페이스 모드 레이아웃 스타일
42
+ ----------------------------------------- */
43
+ body.mode-code #right-panel {
44
+ display: flex !important;
45
+ visibility: visible !important;
46
+ opacity: 1 !important;
47
+ width: 100% !important;
48
+ min-width: 0 !important;
49
+ max-width: 100% !important;
50
+ height: auto !important;
51
+ overflow: hidden !important;
52
+ border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
53
+ }
54
+
55
+ body.mode-code #chat-box,
56
+ body.mode-code #chat-input-shell,
57
+ body.mode-code #top-zone {
58
+ display: flex !important;
59
+ visibility: visible !important;
60
+ opacity: 1 !important;
61
+ }
62
+
63
+ /* 모바일 화면 (< 900px) */
64
+ @media (max-width: 900px) {
65
+ body.mode-code.mobile-active #right-panel {
66
+ grid-row: 2 !important;
67
+ grid-column: 1 / span 2 !important;
68
+ min-height: 240px !important;
69
+ max-height: 360px !important;
70
+ }
71
+ }
72
+
73
+ /* 데스크탑 화면 (> 900px) */
74
+ body.desktop-code-panel-mounted #desktop-code-panel-host {
75
+ display: block;
76
+ width: 100%;
77
+ min-width: 0;
78
+ min-height: 320px;
79
+ visibility: visible;
80
+ opacity: 1;
81
+ }
82
+
83
+ @media (min-width: 901px) and (max-width: 1180px) {
84
+ body.mode-code.desktop-code-open #right-panel {
85
+ grid-row: 3 !important;
86
+ grid-column: 1 / span 2 !important;
87
+ min-height: 320px !important;
88
+ max-height: 520px !important;
89
+ }
90
+ }
91
+
92
+ @media (min-width: 1181px) {
93
+ body.mode-code.desktop-code-open #right-panel {
94
+ grid-column: 1 / span 4 !important;
95
+ min-height: 320px !important;
96
+ max-height: 520px !important;
97
+ }
98
+ }
99
+
100
+ .chat-code-block {background:#000;max-height:350px;overflow-y:scroll;color:#fff;padding:25px;box-sizing:border-box}
101
+ .chat-code-label {display:none}
102
+
103
+ select, option {
104
+ background-color: #151515 !important;
105
+ color: white !important;
106
+ }
107
+
108
+ select {
109
+ color-scheme: dark;
110
+ appearance: none;
111
+ -webkit-appearance: none;
112
+ }
113
+
114
+ select:focus {
115
+ outline: none !important;
116
+ background-color: #151515 !important;
117
+ box-shadow: none !important;
118
+ }
119
+ select option {
120
+ padding: 10px;
121
+ background: #151515;
122
+ }
123
+
124
+
125
+ * {
126
+ font-family: var(--isai-font-family, "Noto Sans", sans-serif) !important;
127
+ font-weight: 500 !important;
128
+ -webkit-font-smoothing: antialiased;
129
+ }
130
+
131
+
132
+ ::-webkit-scrollbar {
133
+ width: 10px;
134
+ height: 10px;
135
+ }
136
+
137
+ ::-webkit-scrollbar-track {
138
+ background: #121212;
139
+ }
140
+
141
+ ::-webkit-scrollbar-thumb {
142
+ background: #333333;
143
+ border-radius: 10px;
144
+ border: 2px solid #121212;
145
+ }
146
+
147
+ ::-webkit-scrollbar-thumb:hover {
148
+ background: #444444;
149
+ }
150
+
151
+ ::-webkit-scrollbar-thumb:active {
152
+ background: #555555;
153
+ }
154
+
155
+ * {
156
+ scrollbar-width: thin;
157
+ scrollbar-color: #333333 #121212;
158
+ }
159
+
160
+
161
+
162
+ #local-model-tier-wrapper{max-width:min(76vw,340px);overflow:visible!important}
163
+ #local-model-tier-list{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
164
+ .local-model-shortcut-panel{position:absolute;top:44px;right:0;width:258px;height:min(236px,calc(100vh - 208px));max-height:min(236px,calc(100vh - 208px));padding:8px 6px 6px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(10,10,11,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(0,0,0,.34);display:none;flex-direction:column;z-index:50;overflow:hidden!important}
165
+ .local-model-shortcut-panel.is-open{display:block}
166
+ .local-model-shortcut-panel.is-open{display:flex}
167
+ .local-model-shortcut-panel::-webkit-scrollbar{display:block!important;width:5px!important}
168
+ .local-model-shortcut-panel::-webkit-scrollbar-track{background:transparent!important}
169
+ .local-model-shortcut-panel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)!important;border-radius:999px!important}
170
+ .local-model-shortcut-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;min-width:0;flex:0 0 auto}
171
+ .local-model-shortcut-title{display:none!important}
172
+ .local-model-shortcut-tools{display:flex;align-items:center;gap:4px;flex:0 0 auto}
173
+ .local-model-tier-menu-btn,.local-model-shortcut-icon-btn,.local-model-filter-btn{position:relative;width:28px;height:28px;min-width:28px;min-height:28px;max-width:28px;max-height:28px;aspect-ratio:1/1;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:50%;background:rgba(255,255,255,.035);color:rgba(255,255,255,.78);display:inline-flex;align-items:center;justify-content:center;align-self:center;cursor:pointer;flex:0 0 28px;overflow:hidden;box-sizing:border-box;box-shadow:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
174
+ .local-model-filter-btn{width:24px;min-width:24px;max-width:24px;height:24px;min-height:24px;max-height:24px;flex-basis:24px}
175
+ .local-model-tier-menu-btn::after,.local-model-shortcut-icon-btn::after,.local-model-filter-btn::after{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0));opacity:.5;pointer-events:none}
176
+ .local-model-filter-btn.provider-all{display:none!important}
177
+ .local-model-tier-menu-btn>i,.local-model-shortcut-icon-btn>i,.local-model-filter-btn>i{font-size:13px!important;line-height:1;transform:none!important;transition:color .16s ease}
178
+ .local-model-tier-menu-btn:hover,.local-model-tier-menu-btn.is-open,.local-model-shortcut-icon-btn:hover,.local-model-shortcut-icon-btn.is-open,.local-model-filter-btn:hover,.local-model-filter-btn.is-active{color:#fff;box-shadow:none}
179
+ .local-model-tier-menu-btn:hover,.local-model-tier-menu-btn.is-open,.local-model-shortcut-icon-btn:hover,.local-model-shortcut-icon-btn.is-open{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.16)}
180
+ .local-model-filter-btn.provider-isai{padding:0;border:none;background:transparent;color:inherit}
181
+ .local-model-filter-btn.provider-isai::after{display:none}
182
+ .local-model-filter-btn.provider-isai:hover,.local-model-filter-btn.provider-isai.is-active{background:transparent;border:none;color:inherit}
183
+ .local-model-filter-btn.provider-gemma{background:linear-gradient(180deg,rgba(96,165,250,.12),rgba(29,78,216,.04));border-color:rgba(96,165,250,.18);color:#bfdbfe}
184
+ .local-model-filter-btn.provider-gemma:hover,.local-model-filter-btn.provider-gemma.is-active{background:linear-gradient(180deg,#60a5fa,#1d4ed8);border-color:rgba(147,197,253,.72);color:#fff}
185
+ .local-model-filter-btn.provider-huggingface{background:linear-gradient(180deg,rgba(250,204,21,.14),rgba(234,179,8,.05));border-color:rgba(250,204,21,.22);color:#fde68a}
186
+ .local-model-filter-btn.provider-huggingface:hover,.local-model-filter-btn.provider-huggingface.is-active{background:linear-gradient(180deg,#facc15,#eab308);border-color:rgba(254,240,138,.78);color:#ffffff}
187
+ .local-model-filter-btn.provider-qwen{background:linear-gradient(180deg,rgba(59,130,246,.12),rgba(15,23,42,.08));border-color:rgba(59,130,246,.2);color:#93c5fd}
188
+ .local-model-filter-btn.provider-qwen:hover,.local-model-filter-btn.provider-qwen.is-active{background:linear-gradient(180deg,#1d4ed8,#0f172a);border-color:rgba(147,197,253,.72);color:#e0f2fe}
189
+ .local-model-filter-btn.provider-granite{background:linear-gradient(180deg,rgba(59,130,246,.11),rgba(37,99,235,.05));border-color:rgba(59,130,246,.2);color:#dbeafe}
190
+ .local-model-filter-btn.provider-granite:hover,.local-model-filter-btn.provider-granite.is-active{background:linear-gradient(180deg,#60a5fa,#2563eb);border-color:rgba(191,219,254,.72);color:#ffffff}
191
+ .local-model-filter-btn.provider-ernie{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border-color:rgba(255,255,255,.14);color:#f3f4f6}
192
+ .local-model-filter-btn.provider-ernie:hover,.local-model-filter-btn.provider-ernie.is-active{background:linear-gradient(180deg,#232323,#0b0b0b);border-color:rgba(255,255,255,.3);color:#ffffff}
193
+ .local-model-filter-row{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:0;margin-bottom:0;min-width:0}
194
+ .local-model-shortcut-tools > .local-model-shortcut-icon-btn,
195
+ .local-model-filter-row > .local-model-filter-btn{transform:none!important}
196
+ .local-model-filter-row::-webkit-scrollbar{display:none}
197
+
198
+ /* in-head 안의 리스트 높이 및 이미지 버튼 통일 처리 추가 */
199
+ .local-model-filter-row.in-head{flex:1 1 auto;align-items:center!important}
200
+ .local-model-filter-row.in-head > *{height:24px!important;min-height:24px!important;max-height:24px!important;box-sizing:border-box!important;vertical-align:middle;margin-top:0!important;margin-bottom:0!important}
201
+ .local-model-filter-row.in-head img, .local-model-filter-row.in-head .isai-logo-img{height:100%!important;max-height:100%!important;object-fit:cover!important;display:block}
202
+
203
+ .local-model-catalog-scroll{display:block!important;flex:1 1 auto;min-height:0;height:0;max-height:100%;overflow-y:auto!important;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent;padding-right:1px}
204
+ .local-model-catalog-scroll::-webkit-scrollbar{display:block!important;width:5px!important}
205
+ .local-model-catalog-scroll::-webkit-scrollbar-track{background:transparent!important}
206
+ .local-model-catalog-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)!important;border-radius:999px!important}
207
+ .local-model-catalog-grid{display:flex;flex-direction:column;gap:6px}
208
+ .local-model-catalog-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:10px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(23,23,24,.96),rgba(18,18,19,.96));cursor:pointer;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
209
+ .local-model-catalog-card:hover{border-color:rgba(255,255,255,.2);background:linear-gradient(180deg,rgba(28,28,30,.98),rgba(20,20,22,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
210
+ .local-model-catalog-card.is-selected{border-color:rgba(255,255,255,.28);background:linear-gradient(180deg,rgba(31,31,34,.98),rgba(21,21,23,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
211
+ .local-model-catalog-card.is-pending{border-style:dashed;border-color:rgba(251,191,36,.28);background:linear-gradient(180deg,rgba(36,31,18,.9),rgba(18,18,19,.96))}
212
+ .local-model-catalog-card.is-pending:hover{border-color:rgba(251,191,36,.5);background:linear-gradient(180deg,rgba(46,38,20,.96),rgba(22,20,17,.98))}
213
+ .local-model-catalog-meta{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1 1 auto}
214
+ .local-model-catalog-name{font-size:10px;font-weight:800;color:#fff;line-height:1.2;white-space:normal;overflow:visible;text-overflow:clip;display:block;max-width:none;word-break:keep-all;overflow-wrap:anywhere}
215
+ .local-model-slot-actions{display:flex;align-items:center;justify-content:flex-end;align-self:center;gap:7px;flex:0 0 auto;height:auto!important;min-height:0!important;margin:0}
216
+ .local-model-slot-actions > *{align-self:center!important;margin-top:0!important;margin-bottom:0!important;position:relative;top:0!important;bottom:auto!important}
217
+ .local-model-provider-button{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;min-height:20px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.03);padding:0;flex:0 0 auto}
218
+ .local-model-size-pill{height:22px;padding:0 7px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);font-size:10px;font-weight:800;color:rgba(255,255,255,.86);display:inline-flex;align-items:center;justify-content:center;letter-spacing:.01em}
219
+ .local-model-pending-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;min-height:20px;border-radius:999px;border:1px solid rgba(251,191,36,.3);background:linear-gradient(180deg,rgba(251,191,36,.22),rgba(180,83,9,.08));color:#fbbf24;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
220
+ .local-model-pending-icon i{font-size:12px;line-height:1}
221
+ .local-model-size-pill.is-pending{border-color:rgba(251,191,36,.28);background:rgba(251,191,36,.08);color:#fde68a}
222
+ .local-model-assign-row{display:none;align-items:center;gap:4px}
223
+ .local-model-shortcut-panel.is-assign-mode .local-model-assign-row{display:flex}
224
+ .local-model-slot-assign{width:22px;height:22px;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .16s ease}
225
+ .local-model-slot-assign i{font-size:12px}
226
+ .local-model-slot-assign:hover,.local-model-slot-assign.is-active{background:#f0f0f0;color:#111}
227
+ .local-model-current-pill{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.18);font-size:11px;font-weight:700;color:#fff;background:rgba(255,255,255,.04)}
228
+ .local-model-current-pill i{font-size:12px;color:rgba(255,255,255,.75)}
229
+ .local-model-provider-badge{display:flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;min-height:20px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);font-size:10px;line-height:1;color:#fff;flex:0 0 auto;text-align:center;padding:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.03);position:relative;top:0;transform:none!important;vertical-align:middle;overflow:hidden}
230
+ .local-model-provider-badge i,.local-model-provider-badge .hf-glyph,.local-model-provider-badge .model-provider-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:1;transform:none!important;margin:0;padding:0}
231
+ .local-model-provider-badge i::before{display:block;line-height:1;margin:0}
232
+ .local-model-provider-badge.is-compact{width:100%;height:100%;min-width:100%;min-height:100%;border-width:1px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
233
+ .local-model-provider-badge.is-compact i{font-size:10.5px}
234
+ .local-model-filter-btn .local-model-provider-badge.is-compact{width:100%;height:100%;min-width:100%;min-height:100%}
235
+ .local-model-filter-btn .local-model-provider-badge.is-compact i{font-size:10px}
236
+ .local-model-provider-button .local-model-provider-badge.is-compact{width:100%;height:100%;min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center}
237
+ .local-model-provider-button .local-model-provider-badge.is-compact i{font-size:11px}
238
+ .local-model-provider-button .local-model-provider-badge.huggingface.is-compact .hf-glyph{font-size:7px}
239
+ .local-model-provider-badge.huggingface{background:linear-gradient(180deg,#facc15,#eab308);border-color:rgba(254,240,138,.42);color:#ffffff;font-weight:900;font-size:10px;line-height:1}
240
+ .local-model-provider-badge.huggingface .hf-glyph{font-size:7px;font-weight:800;letter-spacing:-.01em}
241
+ .local-model-provider-badge.huggingface.is-compact{background:linear-gradient(180deg,#facc15,#eab308)!important;border-color:rgba(254,240,138,.42)!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
242
+ .local-model-provider-badge.huggingface.is-compact .hf-glyph{font-size:6.6px}
243
+ .local-model-provider-badge.isai{background:transparent;border:none;box-shadow:none;padding:0}
244
+ .local-model-provider-badge.isai.is-compact{background:transparent!important;border:none!important;box-shadow:none!important;color:inherit!important}
245
+ .local-model-provider-badge .isai-logo-img{width:100%;height:100%;object-fit:cover;display:block;margin:0;padding:0;border-radius:inherit}
246
+ .local-model-filter-btn.provider-isai .local-model-provider-badge.isai.is-compact{width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;max-height:20px}
247
+ .local-model-provider-button .local-model-provider-badge.isai.is-compact{width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;max-height:20px}
248
+ .local-model-provider-badge.qwen{position:relative;background:linear-gradient(180deg,#7c3aed,#5b21b6);border-color:rgba(196,181,253,.42);color:#ffffff;font-weight:800}
249
+ .local-model-provider-badge.qwen i{font-size:11px;color:#ffffff}
250
+ .local-model-provider-badge.qwen.is-compact{background:linear-gradient(180deg,#7c3aed,#5b21b6)!important;border-color:rgba(196,181,253,.42)!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
251
+ .local-model-provider-badge.qwen.is-compact i{font-size:11px}
252
+ .local-model-provider-badge.gemma{background:linear-gradient(180deg,#2563eb,#1d4ed8);border-color:rgba(147,197,253,.38);color:#ffffff;font-weight:800}
253
+ .local-model-provider-badge.gemma i{font-size:11px;color:#ffffff}
254
+ .local-model-provider-badge.gemma.is-compact{background:linear-gradient(180deg,#2563eb,#1d4ed8)!important;border-color:rgba(147,197,253,.38)!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
255
+ .local-model-provider-badge.ernie{position:relative;background:linear-gradient(180deg,#1b1b1d,#0b0b0b);border-color:rgba(255,255,255,.16);color:#ffffff;font-weight:800;display:flex;align-items:center;justify-content:center}
256
+ .local-model-provider-badge.ernie .model-provider-glyph,.local-model-provider-badge.granite .model-provider-glyph{font-size:10px;font-weight:800;letter-spacing:0}
257
+ .local-model-provider-badge.ernie.is-compact{background:linear-gradient(180deg,#1b1b1d,#0b0b0b)!important;border-color:rgba(255,255,255,.16)!important;color:#ffffff!important;font-size:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
258
+ .local-model-provider-badge.granite{background:linear-gradient(180deg,#3b82f6,#2563eb);border-color:rgba(191,219,254,.38);color:#fff;font-weight:800;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center}
259
+ .local-model-provider-badge.granite.is-compact{background:linear-gradient(180deg,#3b82f6,#2563eb)!important;border-color:rgba(191,219,254,.38)!important;color:#ffffff!important;font-size:8.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
260
+
261
+
262
+
263
+
264
+
265
+
266
+ html,
267
+ body {
268
+ margin: 0 !important;
269
+ padding: 0 !important;
270
+ width: 100%;
271
+ height: 100%;
272
+ }
273
+
274
+ body {
275
+ background: radial-gradient(circle at center, #262626 0%, #000000 100%) !important;
276
+ background-attachment: fixed !important;
277
+ color: white !important;
278
+ width: 100%;
279
+ height: 100vh;
280
+ display: flex;
281
+ flex-direction: column;
282
+ }
283
+
284
+
285
+ .island-box {
286
+ background: linear-gradient(180deg, #191919 0%, #111111 100%) !important;
287
+ backdrop-filter: blur(10px) !important;
288
+ -webkit-backdrop-filter: blur(10px) !important;
289
+ border: none !important;
290
+ border-radius: 2.5rem 0 0 2.5rem !important;
291
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45) !important;
292
+ transition: all 0.3s ease;
293
+ position: relative;
294
+ overflow: hidden;
295
+ display: flex !important;
296
+ flex-direction: row !important;
297
+ align-items: stretch;
298
+ width: 100%;
299
+ margin-bottom: 5px;
300
+ --menu-rail-space: 88px;
301
+ padding-right: 0;
302
+ min-height: 270px;
303
+ max-height: 270px;
304
+ height: 270px;
305
+ min-width: 0;
306
+ flex: 0 0 auto;
307
+ }
308
+
309
+ /* App Items */
310
+ .app-item, .store-item, .fixed-app-item {
311
+ background: #1a1a1a !important;
312
+ border-radius: 18px !important;
313
+ border: 1px solid rgba(255,255,255,0.05) !important;
314
+ width: 48px; height: 48px;
315
+ display: flex; align-items: center; justify-content: center;
316
+ flex-shrink: 0;
317
+ cursor: pointer;
318
+ transition: all 0.2s;
319
+ }
320
+ .app-item:hover { background: #333 !important; }
321
+
322
+ /* Icons */
323
+ .btn-icon {
324
+ width: 40px; height: 40px;
325
+ border-radius: 14px;
326
+ display: flex; align-items: center; justify-content: center;
327
+ color: #9ca3af !important;
328
+ transition: all 0.2s;
329
+ background: transparent;
330
+ clip-path: inset(0 round 14px);
331
+ }
332
+ .btn-icon:hover, .btn-icon.active {
333
+ color: #ffffff !important;
334
+ background-color: #262626 !important;
335
+ border-radius: 14px !important;
336
+ clip-path: inset(0 round 14px);
337
+ }
338
+ .btn-submit {
339
+ background: white !important;
340
+ color: black !important;
341
+ border-radius: 50%;
342
+ transition: transform 0.2s;
343
+ }
344
+ .btn-submit:active { transform: scale(0.95); }
345
+
346
+ /* Select Pills */
347
+ .select-pill {
348
+ background-color: #000000;
349
+ border: 1px solid rgba(255,255,255,0.15);
350
+ border-radius: 9999px;
351
+ height: 24px;
352
+ display: flex;
353
+ align-items: center;
354
+ padding: 0 10px 0 12px;
355
+ gap: 6px;
356
+ }
357
+ .select-pill i { font-size: 12px; color: #9ca3af; }
358
+ .select-pill select {
359
+ appearance: none; -webkit-appearance: none;
360
+ background: transparent;
361
+ border: none;
362
+ color: white;
363
+ font-size: 11px;
364
+ font-weight: 700;
365
+ outline: none;
366
+ cursor: pointer;
367
+ padding-right: 2px;
368
+ }
369
+ #image-ratio-toggle-btn {
370
+ width: 30px !important;
371
+ height: 30px !important;
372
+ min-width: 30px !important;
373
+ min-height: 30px !important;
374
+ padding: 0 !important;
375
+ border-radius: 9999px !important;
376
+ display: inline-flex !important;
377
+ align-items: center !important;
378
+ justify-content: center !important;
379
+ gap: 0 !important;
380
+ clip-path: circle(50% at 50% 50%);
381
+ overflow: hidden;
382
+ }
383
+ #image-ratio-toggle-btn input[type="hidden"] {
384
+ display: none !important;
385
+ }
386
+ .flag-select {
387
+ position: relative;
388
+ padding: 0 !important;
389
+ min-width: 46px;
390
+ width: 46px;
391
+ overflow: visible;
392
+ }
393
+ .flag-select-trigger {
394
+ width: 100%;
395
+ height: 100%;
396
+ border: 0;
397
+ background: #000000;
398
+ color: #ffffff;
399
+ border-radius: 9999px;
400
+ padding: 0 6px;
401
+ display: inline-flex;
402
+ align-items: center;
403
+ justify-content: center;
404
+ gap: 3px;
405
+ font-size: 11px;
406
+ font-weight: 700;
407
+ cursor: pointer;
408
+ line-height: 1;
409
+ }
410
+ .flag-select-trigger:focus-visible {
411
+ outline: 2px solid rgba(255, 255, 255, 0.24);
412
+ outline-offset: 1px;
413
+ }
414
+ .flag-select-img {
415
+ width: 16px;
416
+ height: 16px;
417
+ border-radius: 9999px;
418
+ object-fit: cover;
419
+ flex: 0 0 16px;
420
+ box-shadow: 0 0 0 1px rgba(255,255,255,0.18);
421
+ }
422
+ .flag-select-label {
423
+ display: none !important;
424
+ }
425
+ .flag-select-caret {
426
+ font-size: 12px !important;
427
+ color: #9ca3af !important;
428
+ margin-left: 1px;
429
+ }
430
+ .flag-select-native {
431
+ position: absolute !important;
432
+ inset: 0 !important;
433
+ width: 1px !important;
434
+ height: 1px !important;
435
+ opacity: 0 !important;
436
+ pointer-events: none !important;
437
+ overflow: hidden !important;
438
+ }
439
+ .flag-select-menu {
440
+ position: absolute;
441
+ top: calc(100% + 8px);
442
+ left: 0;
443
+ right: auto;
444
+ transform: none;
445
+ display: none;
446
+ background: #0f1012;
447
+ border: 1px solid rgba(255,255,255,0.14);
448
+ border-radius: 12px;
449
+ box-shadow: 0 12px 30px rgba(0,0,0,0.35);
450
+ padding: 4px 3px;
451
+ z-index: 360;
452
+ max-height: 210px;
453
+ width: 40px;
454
+ min-width: 40px;
455
+ overflow-y: auto;
456
+ overflow-x: hidden;
457
+ }
458
+ .flag-select-item {
459
+ width: 100%;
460
+ border: 0;
461
+ background: transparent;
462
+ color: rgba(255,255,255,0.9);
463
+ border-radius: 9px;
464
+ height: 32px;
465
+ padding: 0;
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ gap: 0;
470
+ cursor: pointer;
471
+ text-align: left;
472
+ font-size: 11px;
473
+ line-height: 1;
474
+ appearance: none;
475
+ -webkit-appearance: none;
476
+ outline: none;
477
+ box-shadow: none !important;
478
+ transform: none !important;
479
+ clip-path: none !important;
480
+ }
481
+ .flag-select-item:hover,
482
+ .flag-select-item.is-active {
483
+ background: transparent !important;
484
+ box-shadow: none !important;
485
+ transform: none !important;
486
+ outline: none !important;
487
+ border: 0 !important;
488
+ }
489
+ .flag-select-item:focus,
490
+ .flag-select-item:focus-visible,
491
+ .flag-select-item:active {
492
+ background: transparent !important;
493
+ box-shadow: none !important;
494
+ transform: none !important;
495
+ outline: none !important;
496
+ border: 0 !important;
497
+ }
498
+ .flag-select-item-code {
499
+ display: none !important;
500
+ }
501
+ .flag-select-item-name {
502
+ display: none !important;
503
+ }
504
+ .flag-select-menu.hidden {
505
+ display: none !important;
506
+ }
507
+ .flag-select-menu:not(.hidden) {
508
+ display: block;
509
+ }
510
+ #translation-right-wrapper .flag-select-menu {
511
+ left: auto;
512
+ right: 0;
513
+ transform: none;
514
+ }
515
+ .flag-select-menu {
516
+ scrollbar-color: rgba(255,255,255,0.22) transparent;
517
+ }
518
+ .flag-select-menu::-webkit-scrollbar {
519
+ width: 4px;
520
+ }
521
+ .flag-select-menu::-webkit-scrollbar-track {
522
+ background: transparent;
523
+ }
524
+ .flag-select-menu::-webkit-scrollbar-thumb {
525
+ background: rgba(255,255,255,0.22);
526
+ border-radius: 9999px;
527
+ }
528
+ #community-tools > label,
529
+ #community-tools > div {
530
+ background: #000000 !important;
531
+ border-color: rgba(255,255,255,0.2) !important;
532
+ }
533
+ #chat-box .text-blue-300 {
534
+ color: #111111 !important;
535
+ }
536
+ #chat-box .translate-result,
537
+ #chat-box .translate-result * {
538
+ color: #111111 !important;
539
+ }
540
+ #btn-submit-left i.animate-spin,
541
+ #btn-voice i.animate-spin,
542
+ #icon-submit-left.animate-spin {
543
+ animation: none !important;
544
+ -webkit-animation: none !important;
545
+ }
546
+ #local-model-tier-wrapper {
547
+ width: max-content;
548
+ max-width: min(calc(100vw - 32px), 420px);
549
+ }
550
+
551
+
552
+ #local-model-tier-list {
553
+ display: flex;
554
+ align-items: center;
555
+ gap: 6px;
556
+ padding: 4px;
557
+ border-radius: 9999px;
558
+ border: 1px solid rgba(255, 255, 255, 0.14);
559
+ background: rgba(10, 10, 11, 0.52);
560
+ backdrop-filter: blur(10px);
561
+ -webkit-backdrop-filter: blur(10px);
562
+ overflow-x: auto;
563
+ overflow-y: hidden;
564
+ white-space: nowrap;
565
+ scrollbar-width: none;
566
+ -ms-overflow-style: none;
567
+ }
568
+ #local-model-tier-list::-webkit-scrollbar {
569
+ display: none;
570
+ }
571
+ .local-model-tier-btn {
572
+ width: 32px;
573
+ height: 32px;
574
+ min-width: 32px;
575
+ min-height: 32px;
576
+ max-width: 32px;
577
+ max-height: 32px;
578
+ border: 1px solid rgba(255, 255, 255, 0.08);
579
+ background: rgba(255, 255, 255, 0.035);
580
+ color: rgba(255, 255, 255, 0.78);
581
+ border-radius: 50%;
582
+ padding: 0;
583
+ font-size: 11px;
584
+ font-weight: 700;
585
+ line-height: 1;
586
+ display: inline-flex;
587
+ align-items: center;
588
+ justify-content: center;
589
+ cursor: pointer;
590
+ flex: 0 0 32px;
591
+ box-sizing: border-box;
592
+ transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
593
+ }
594
+ .local-model-tier-btn:hover {
595
+ background: rgba(255, 255, 255, 0.12);
596
+ border-color: rgba(255, 255, 255, 0.16);
597
+ color: #ffffff;
598
+ }
599
+ .local-model-tier-btn.active {
600
+ background: #ececec;
601
+ border-color: #ececec;
602
+ color: #111111;
603
+ box-shadow: none;
604
+ }
605
+
606
+ /* Store Panel */
607
+ #store-panel {
608
+ max-height: 0;
609
+ overflow: hidden;
610
+ transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
611
+ opacity: 0;
612
+ display: none;
613
+ }
614
+ #store-panel.open {
615
+ display: flex;
616
+ max-height: 500px;
617
+ opacity: 1;
618
+ padding-bottom: 10px;
619
+ margin-bottom: 10px;
620
+ }
621
+
622
+ textarea:focus, input:focus { outline: none !important; }
623
+ #prompt-input { color: #e5e7eb !important; }
624
+ #app-container {
625
+ max-height: 0;
626
+ overflow: hidden;
627
+ transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
628
+ opacity: 0;
629
+ margin-top: 5px;
630
+ display: none;
631
+ }
632
+
633
+ .modal-box {
634
+ background-color: #1a1a1a !important;
635
+ border: 1px solid #333 !important;
636
+ border-radius: 24px !important;
637
+ backdrop-filter: none !important;
638
+ }
639
+ .modal-overlay {
640
+ background-color: rgba(0, 0, 0, 0.85) !important;
641
+ backdrop-filter: none !important;
642
+ }
643
+ #loader-overlay {
644
+ display: none !important;
645
+ opacity: 0;
646
+ pointer-events: none;
647
+ border-radius: inherit !important;
648
+ }
649
+ #loader-overlay.active {
650
+ display: flex !important;
651
+ opacity: 1;
652
+ pointer-events: auto;
653
+ border-radius: inherit !important;
654
+ }
655
+
656
+ .no-scrollbar::-webkit-scrollbar { display: none; }
657
+ .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
658
+ #chat-box {
659
+ width: 100%;
660
+ height: 100%;
661
+ min-height: 0;
662
+ max-height: 100%;
663
+ overflow-y: auto;
664
+ overflow-x: hidden;
665
+ overscroll-behavior: contain;
666
+ -webkit-overflow-scrolling: touch;
667
+ padding: 14px 22px 14px 22px;
668
+ display: flex;
669
+ flex-direction: column;
670
+ justify-content: flex-start;
671
+ gap: 12px;
672
+ flex: 1 1 auto;
673
+ }
674
+
675
+ #chat-box.character-chat-active,
676
+ #chat-box[data-character-chat="1"] {background-color: #000 !important;
677
+ background-image: var(--character-chat-image) !important;background-size: auto 100% !important;background-position: center top !important;
678
+ background-repeat: no-repeat !important;
679
+ }
680
+ #chat-box > div:first-child:not(.chat-spacer) {
681
+ margin-top: 0 !important;
682
+ }
683
+ .chat-spacer {
684
+ margin-top: auto !important;
685
+ height: 0;
686
+ min-height: 0;
687
+ flex: 0 0 auto;
688
+ pointer-events: none;
689
+ }
690
+ .chat-entry {
691
+ width: 100%;
692
+ display: flex;
693
+ gap: 10px;
694
+ align-items: flex-start;
695
+ animation: fadeIn 0.25s ease;
696
+ }
697
+ .chat-entry.ai-entry { justify-content: flex-start; }
698
+ .chat-entry.user-entry { justify-content: flex-end; }
699
+ .chat-entry-body {
700
+ min-width: 0;
701
+ max-width: min(86%, 520px);
702
+ display: flex;
703
+ flex-direction: column;
704
+ gap: 5px;
705
+ }
706
+ .chat-entry-name {
707
+ display: none !important;
708
+ }
709
+ .chat-entry-avatar,
710
+ .chat-entry-avatar-fallback {
711
+ display: none !important;
712
+ }
713
+ .chat-entry.ai-entry .chat-entry-body {
714
+ max-width: 85% !important;
715
+ }
716
+ .chat-bubble-ai {
717
+ border-radius: 24px;
718
+ background: #ffffff;
719
+ color: #121212;
720
+ padding: 8px 12px;
721
+ line-height: 1.55;
722
+ font-size: 13px;
723
+ border: 1px solid rgba(15, 23, 42, 0.08);
724
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
725
+ word-break: break-word;
726
+ }
727
+ .chat-bubble-image-error {
728
+ width: 58px;
729
+ height: 58px;
730
+ padding: 0 !important;
731
+ border-radius: 24px;
732
+ background: #ffffff;
733
+ color: #111827;
734
+ border: 1px solid rgba(15, 23, 42, 0.08);
735
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
736
+ display: inline-flex;
737
+ align-items: center;
738
+ justify-content: center;
739
+ }
740
+ .image-error-icon {
741
+ position: relative;
742
+ width: 30px;
743
+ height: 30px;
744
+ display: inline-flex;
745
+ align-items: center;
746
+ justify-content: center;
747
+ color: #111827;
748
+ }
749
+ .image-error-icon > i:first-child {
750
+ font-size: 22px;
751
+ opacity: 0.9;
752
+ }
753
+ .image-error-icon-badge {
754
+ position: absolute;
755
+ right: -2px;
756
+ bottom: -1px;
757
+ font-size: 14px;
758
+ color: #ef4444;
759
+ background: #ffffff;
760
+ border-radius: 9999px;
761
+ box-shadow: 0 0 0 2px #ffffff;
762
+ }
763
+ .search-result-bubble {
764
+ background: #ffffff !important;
765
+ color: #111827 !important;
766
+ border: 1px solid rgba(15, 23, 42, 0.12) !important;
767
+ box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12) !important;
768
+ }
769
+ .search-result-bubble p,
770
+ .search-result-bubble li,
771
+ .search-result-bubble strong,
772
+ .search-result-bubble b,
773
+ .search-result-bubble h1,
774
+ .search-result-bubble h2,
775
+ .search-result-bubble h3,
776
+ .search-result-bubble h4,
777
+ .search-result-bubble h5,
778
+ .search-result-bubble h6,
779
+ .search-result-bubble blockquote,
780
+ .search-result-bubble span,
781
+ .search-result-bubble a:not(.search-source-link),
782
+ .search-result-bubble code:not(pre code) {
783
+ color: #111827 !important;
784
+ }
785
+ .search-result-bubble [class*="text-white"],
786
+ .search-result-bubble [class*="text-gray-"],
787
+ .search-result-bubble [class*="text-blue-"] {
788
+ color: #111827 !important;
789
+ }
790
+ .search-result-bubble .code-wrapper pre,
791
+ .search-result-bubble .code-wrapper code,
792
+ .search-result-bubble .code-wrapper span,
793
+ .search-result-bubble .code-wrapper button,
794
+ .search-result-bubble .code-wrapper i {
795
+ color: #e5e7eb !important;
796
+ }
797
+ .search-result-bubble .search-source-link,
798
+ .search-result-bubble .search-source-link span,
799
+ .search-result-bubble .search-source-label {
800
+ color: #111827 !important;
801
+ }
802
+ .chat-bubble-ai ul,
803
+ .chat-bubble-ai ol,
804
+ .chat-bubble-user ul,
805
+ .chat-bubble-user ol {
806
+ margin: 8px 0;
807
+ padding: 0;
808
+ list-style: none;
809
+ }
810
+ .chat-bubble-ai li,
811
+ .chat-bubble-user li {
812
+ display: block;
813
+ margin: 3px 0;
814
+ }
815
+ .chat-bubble-user {
816
+ border-radius: 24px;
817
+ background: #0c0c0c;
818
+ color: #ffffff;
819
+ padding: 8px 12px;
820
+ line-height: 1.55;
821
+ font-size: 13px;
822
+ border: 1px solid rgba(255, 255, 255, 0.1);
823
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
824
+ word-break: break-word;
825
+ }
826
+ /* Force-hide legacy AI avatar/logo block next to bubbles */
827
+ #chat-box > div.group.w-full.items-start > div.relative.flex-shrink-0 {
828
+ display: none !important;
829
+ }
830
+ #chat-box > div.group.w-full.items-start > div.flex.flex-col > span {
831
+ display: none !important;
832
+ }
833
+ #chat-box > div.group.w-full.items-start > div.flex.flex-col {
834
+ max-width: 85% !important;
835
+ }
836
+ .user-entry .chat-entry-body {
837
+ align-items: flex-end;
838
+ }
839
+ #chat-input-shell {
840
+ width: 100%;
841
+ display: flex;
842
+ flex-direction: column;
843
+ align-items: stretch;
844
+ gap: 6px;
845
+ padding: 10px 16px 42px 16px;
846
+ border: none !important;
847
+ position: relative;
848
+ min-height: 82px;
849
+ box-sizing: border-box !important;
850
+ }
851
+ #chat-input-profile {
852
+ position: absolute;
853
+ left: 16px;
854
+ bottom: 10px;
855
+ z-index: 12;
856
+ width: 42px;
857
+ height: 42px;
858
+ border-radius: 9999px;
859
+ overflow: hidden;
860
+ border: none;
861
+ background: #ffffff;
862
+ box-shadow: none;
863
+ }
864
+ #chat-input-profile img {
865
+ width: 100%;
866
+ height: 100%;
867
+ object-fit: cover;
868
+ display: block;
869
+ }
870
+ #chat-input-field {
871
+ width: 100% !important;
872
+ max-width: 100% !important;
873
+ flex: 1 1 auto;
874
+ min-width: 0;
875
+ display: flex;
876
+ flex-direction: column;
877
+ gap: 8px;
878
+ padding: 0 !important;
879
+ order: 2;
880
+ position: relative;
881
+ z-index: 1;
882
+ box-sizing: border-box !important;
883
+ }
884
+ #prompt-attachment-row {
885
+ display: flex;
886
+ align-items: center;
887
+ gap: 8px;
888
+ flex-wrap: wrap;
889
+ min-height: 0;
890
+ padding: 0 76px 0 56px;
891
+ }
892
+ #prompt-attachment-row.hidden {
893
+ display: none !important;
894
+ }
895
+ .prompt-attachment-chip {
896
+ display: inline-flex;
897
+ align-items: center;
898
+ gap: 8px;
899
+ min-height: 24px;
900
+ max-width: 100%;
901
+ padding: 0 8px 0 10px;
902
+ border-radius: 999px;
903
+ border: 1px solid rgba(255,255,255,0.1);
904
+ background: rgba(255,255,255,0.06);
905
+ color: rgba(255,255,255,0.9);
906
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
907
+ }
908
+ .prompt-attachment-chip-icon {
909
+ width: 16px;
910
+ height: 16px;
911
+ border-radius: 999px;
912
+ display: inline-flex;
913
+ align-items: center;
914
+ justify-content: center;
915
+ background: rgba(255,255,255,0.1);
916
+ color: #ffffff;
917
+ font-size: 11px;
918
+ flex: 0 0 auto;
919
+ }
920
+ .prompt-attachment-chip-label {
921
+ min-width: 0;
922
+ max-width: 220px;
923
+ overflow: hidden;
924
+ text-overflow: ellipsis;
925
+ white-space: nowrap;
926
+ font-size: 11px;
927
+ line-height: 1;
928
+ font-weight: 700;
929
+ letter-spacing: 0.01em;
930
+ }
931
+ .prompt-attachment-chip-remove {
932
+ width: 18px;
933
+ height: 18px;
934
+ border-radius: 999px;
935
+ display: inline-flex;
936
+ align-items: center;
937
+ justify-content: center;
938
+ background: transparent;
939
+ color: rgba(255,255,255,0.72);
940
+ transition: all 0.18s ease;
941
+ }
942
+ .prompt-attachment-chip-remove:hover {
943
+ background: rgba(255,255,255,0.1);
944
+ color: #ffffff;
945
+ }
946
+ #prompt-input {
947
+ width: 100% !important;
948
+ max-width: 100% !important;
949
+ background: transparent !important;
950
+ border: none !important;
951
+ outline: none !important;
952
+ resize: none;
953
+ overflow-y: auto !important;
954
+ overflow-x: hidden !important;
955
+ color: #f5f5f5 !important;
956
+ text-align: left !important;
957
+ font-size: 0.9rem;
958
+ line-height: 1.55;
959
+ min-height: 34px;
960
+ max-height: 72px;
961
+ display: block;
962
+ min-width: 0 !important;
963
+ flex: 1 1 auto;
964
+ box-sizing: border-box !important;
965
+ white-space: pre-wrap;
966
+ overflow-wrap: anywhere;
967
+ word-break: break-word;
968
+ padding: 6px 0 0 0 !important;
969
+ }
970
+ #prompt-input::-webkit-scrollbar {
971
+ display: block !important;
972
+ width: 6px !important;
973
+ height: 6px !important;
974
+ }
975
+ #prompt-input::-webkit-scrollbar-track {
976
+ background: transparent !important;
977
+ }
978
+ #prompt-input::-webkit-scrollbar-thumb {
979
+ background: rgba(255,255,255,0.22) !important;
980
+ border-radius: 999px !important;
981
+ }
982
+ #chat-input-actions {
983
+ position: absolute;
984
+ order: 1;
985
+ width: auto;
986
+ top: auto !important;
987
+ left: auto !important;
988
+ right: 16px;
989
+ bottom: 12px;
990
+ display: flex;
991
+ align-items: center;
992
+ justify-content: flex-end;
993
+ gap: 3px;
994
+ z-index: 12;
995
+ padding: 3px 5px;
996
+ border-radius: 9999px;
997
+ background: rgba(10, 10, 11, 0.96);
998
+ border: 1px solid rgba(255,255,255,.08) !important;
999
+ backdrop-filter: blur(14px);
1000
+ -webkit-backdrop-filter: blur(14px);
1001
+ box-shadow: 0 14px 34px rgba(0,0,0,.34);
1002
+ pointer-events: auto;
1003
+ overflow: hidden;
1004
+ }
1005
+ #recent-mode-actions {
1006
+ display: inline-flex;
1007
+ align-items: center;
1008
+ gap: 3px;
1009
+ flex-wrap: nowrap;
1010
+ justify-content: flex-end;
1011
+ max-width: none;
1012
+ overflow: visible;
1013
+ }
1014
+ #recent-mode-actions.hidden {
1015
+ display: none !important;
1016
+ }
1017
+ #chat-input-actions .input-action-btn {
1018
+ position: relative;
1019
+ width: 24px;
1020
+ height: 24px;
1021
+ min-width: 24px;
1022
+ min-height: 24px;
1023
+ border-radius: 9999px;
1024
+ border: 1px solid rgba(255,255,255,.08) !important;
1025
+ background: rgba(255,255,255,.035);
1026
+ color: rgba(255,255,255,.82);
1027
+ display: inline-flex;
1028
+ align-items: center;
1029
+ justify-content: center;
1030
+ transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
1031
+ backdrop-filter: blur(8px);
1032
+ -webkit-backdrop-filter: blur(8px);
1033
+ box-shadow: none;
1034
+ pointer-events: auto;
1035
+ overflow: hidden;
1036
+ flex: 0 0 auto;
1037
+ }
1038
+ #chat-input-actions .input-action-btn i,
1039
+ #chat-input-actions #btn-submit i,
1040
+ #chat-input-actions #icon-submit,
1041
+ #chat-input-actions .ri-arrow-up-s-line,
1042
+ #chat-input-actions .ri-square-fill {
1043
+ font-size: 13px !important;
1044
+ line-height: 1 !important;
1045
+ }
1046
+ #chat-input-actions .input-action-btn::after {
1047
+ content: "";
1048
+ position: absolute;
1049
+ inset: 1px;
1050
+ border-radius: inherit;
1051
+ background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0));
1052
+ opacity: .5;
1053
+ pointer-events: none;
1054
+ }
1055
+ #chat-input-actions .input-action-btn:hover {
1056
+ background: rgba(255,255,255,.12);
1057
+ border-color: rgba(255,255,255,.16) !important;
1058
+ color: #fff;
1059
+ }
1060
+ #chat-input-actions #btn-submit {
1061
+ width: 24px;
1062
+ height: 24px;
1063
+ min-width: 24px;
1064
+ min-height: 24px;
1065
+ padding: 0;
1066
+ display: inline-flex;
1067
+ align-items: center;
1068
+ justify-content: center;
1069
+ visibility: visible;
1070
+ opacity: 1;
1071
+ pointer-events: auto;
1072
+ background: rgba(255,255,255,.035) !important;
1073
+ color: #ffffff !important;
1074
+ border-radius: 9999px !important;
1075
+ clip-path: circle(50% at 50% 50%);
1076
+ overflow: hidden;
1077
+ }
1078
+ #chat-input-actions #btn-submit,
1079
+ #chat-input-actions #btn-submit i,
1080
+ #chat-input-actions #btn-submit #icon-submit,
1081
+ #chat-input-actions #btn-submit .ri-arrow-up-s-line,
1082
+ #chat-input-actions #btn-submit .ri-square-fill {
1083
+ color: #ffffff !important;
1084
+ fill: #ffffff !important;
1085
+ }
1086
+ #chat-input-actions #btn-submit.stop-mode,
1087
+ #chat-input-actions #btn-submit.is-generating {
1088
+ border-radius: 9999px !important;
1089
+ clip-path: circle(50% at 50% 50%);
1090
+ background: rgba(255,255,255,.12) !important;
1091
+ border-color: rgba(255,255,255,.16) !important;
1092
+ color: #ffffff !important;
1093
+ }
1094
+ #chat-input-actions #btn-continue-writing {
1095
+ width: 24px;
1096
+ height: 24px;
1097
+ background: rgba(255,255,255,.035) !important;
1098
+ color: #f5d37a !important;
1099
+ }
1100
+ #chat-input-actions #btn-continue-writing:hover {
1101
+ background: rgba(255,255,255,.12) !important;
1102
+ border-color: rgba(255,255,255,.16) !important;
1103
+ color: #ffe49e !important;
1104
+ }
1105
+ #chat-input-actions .recent-mode-btn {
1106
+ background: rgba(255,255,255,.035) !important;
1107
+ border-color: rgba(255,255,255,.08) !important;
1108
+ color: rgba(255,255,255,.82) !important;
1109
+ opacity: 1;
1110
+ }
1111
+ #chat-input-actions .recent-mode-btn:hover {
1112
+ background: rgba(255,255,255,.12) !important;
1113
+ border-color: rgba(255,255,255,.16) !important;
1114
+ color: #fff !important;
1115
+ }
1116
+ #chat-input-actions .recent-mode-btn img {
1117
+ width: 16px;
1118
+ height: 16px;
1119
+ object-fit: contain;
1120
+ display: block;
1121
+ }
1122
+ .island-box:fullscreen,
1123
+ .island-box:-webkit-full-screen {
1124
+ width: 100vw !important;
1125
+ height: 100dvh !important;
1126
+ min-height: 100dvh !important;
1127
+ max-height: 100dvh !important;
1128
+ border-radius: 0 !important;
1129
+ margin: 0 !important;
1130
+ padding: 0 !important;
1131
+ display: grid !important;
1132
+ grid-template-columns: minmax(0, 1fr) 58px !important;
1133
+ grid-template-rows: minmax(0, 1fr) !important;
1134
+ align-items: stretch !important;
1135
+ justify-items: stretch !important;
1136
+ overflow: hidden !important;
1137
+ }
1138
+ .island-box:fullscreen #chat-main-stack,
1139
+ .island-box:-webkit-full-screen #chat-main-stack {
1140
+ grid-column: 1 !important;
1141
+ grid-row: 1 !important;
1142
+ width: auto !important;
1143
+ min-width: 0 !important;
1144
+ max-width: none !important;
1145
+ min-height: 0 !important;
1146
+ height: 100% !important;
1147
+ max-height: 100% !important;
1148
+ flex: 1 1 auto !important;
1149
+ padding-right: 0 !important;
1150
+ box-sizing: border-box !important;
1151
+ }
1152
+ .island-box:fullscreen #top-zone,
1153
+ .island-box:-webkit-full-screen #top-zone {
1154
+ display: flex !important;
1155
+ flex-direction: column !important;
1156
+ flex: 1 1 auto !important;
1157
+ min-height: 0 !important;
1158
+ max-height: none !important;
1159
+ }
1160
+ .island-box:fullscreen #chat-box,
1161
+ .island-box:-webkit-full-screen #chat-box {
1162
+ flex: 1 1 auto !important;
1163
+ min-height: 0 !important;
1164
+ max-height: none !important;
1165
+ height: 100% !important;
1166
+ padding: 16px !important;
1167
+ }
1168
+ .island-box:fullscreen #chat-side-ad,
1169
+ .island-box:-webkit-full-screen #chat-side-ad {
1170
+ display: none !important;
1171
+ }
1172
+ .island-box:fullscreen #board-right-rail,
1173
+ .island-box:-webkit-full-screen #board-right-rail {
1174
+ display: none !important;
1175
+ }
1176
+ .island-box:fullscreen #right-panel,
1177
+ .island-box:-webkit-full-screen #right-panel {
1178
+ display: none !important;
1179
+ }
1180
+ .island-box:fullscreen #store-panel,
1181
+ .island-box:fullscreen #app-container,
1182
+ .island-box:-webkit-full-screen #store-panel,
1183
+ .island-box:-webkit-full-screen #app-container {
1184
+ display: none !important;
1185
+ }
1186
+ .island-box:fullscreen #chat-input-shell,
1187
+ .island-box:-webkit-full-screen #chat-input-shell {
1188
+ padding-bottom: calc(42px + env(safe-area-inset-bottom)) !important;
1189
+ }
1190
+ .island-box:fullscreen #chat-input-actions,
1191
+ .island-box:-webkit-full-screen #chat-input-actions {
1192
+ right: 16px !important;
1193
+ bottom: calc(12px + env(safe-area-inset-bottom)) !important;
1194
+ left: auto !important;
1195
+ top: auto !important;
1196
+ }
1197
+ body.mode-code .island-box:fullscreen,
1198
+ body.mode-code .island-box:-webkit-full-screen,
1199
+ body[data-ui-mode="code"] .island-box:fullscreen,
1200
+ body[data-ui-mode="code"] .island-box:-webkit-full-screen {
1201
+ grid-template-rows: minmax(0, 1fr) minmax(260px, 42vh) !important;
1202
+ }
1203
+ body.mode-code .island-box:fullscreen #chat-main-stack,
1204
+ body.mode-code .island-box:-webkit-full-screen #chat-main-stack,
1205
+ body[data-ui-mode="code"] .island-box:fullscreen #chat-main-stack,
1206
+ body[data-ui-mode="code"] .island-box:-webkit-full-screen #chat-main-stack {
1207
+ grid-column: 1 !important;
1208
+ grid-row: 1 !important;
1209
+ display: flex !important;
1210
+ height: auto !important;
1211
+ min-height: 0 !important;
1212
+ max-height: none !important;
1213
+ }
1214
+ body.mode-code .island-box:fullscreen #right-panel,
1215
+ body.mode-code .island-box:-webkit-full-screen #right-panel,
1216
+ body[data-ui-mode="code"] .island-box:fullscreen #right-panel,
1217
+ body[data-ui-mode="code"] .island-box:-webkit-full-screen #right-panel {
1218
+ grid-column: 1 !important;
1219
+ grid-row: 2 !important;
1220
+ display: flex !important;
1221
+ width: 100% !important;
1222
+ min-width: 0 !important;
1223
+ max-width: 100% !important;
1224
+ height: auto !important;
1225
+ min-height: 260px !important;
1226
+ max-height: 42vh !important;
1227
+ opacity: 1 !important;
1228
+ visibility: visible !important;
1229
+ overflow: hidden !important;
1230
+ border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
1231
+ }
1232
+ @media (min-width: 901px) {
1233
+ .island-box:fullscreen,
1234
+ .island-box:-webkit-full-screen {
1235
+ grid-template-columns: minmax(0, 1fr) 74px !important;
1236
+ }
1237
+ .island-box:fullscreen #toolbar-main-controls #icon-scroll-wrapper,
1238
+ .island-box:-webkit-full-screen #toolbar-main-controls #icon-scroll-wrapper {
1239
+ width: 100% !important;
1240
+ overflow: visible !important;
1241
+ }
1242
+ .island-box:fullscreen #toolbar-main-controls #icon-scroll-container,
1243
+ .island-box:-webkit-full-screen #toolbar-main-controls #icon-scroll-container {
1244
+ overflow-x: visible !important;
1245
+ overflow-y: visible !important;
1246
+ }
1247
+ }
1248
+ #prompt-input::placeholder {
1249
+ color: transparent !important;
1250
+ opacity: 0 !important;
1251
+ }
1252
+ #prompt-input::-webkit-input-placeholder {
1253
+ color: transparent !important;
1254
+ opacity: 0 !important;
1255
+ }
1256
+ #prompt-input::-moz-placeholder {
1257
+ color: transparent !important;
1258
+ opacity: 0 !important;
1259
+ }
1260
+ #prompt-input:-ms-input-placeholder {
1261
+ color: transparent !important;
1262
+ opacity: 0 !important;
1263
+ }
1264
+
1265
+ /* Mask & Scroll Dot */
1266
+ #icon-scroll-wrapper {
1267
+ mask-image: linear-gradient(to right, black 0%, black 90%, transparent 100%);
1268
+ -webkit-mask-image: linear-gradient(to right, black 0%, black 90%, transparent 100%);
1269
+ }
1270
+ #scroll-dot {
1271
+ background-color: #ffffff;
1272
+ box-shadow: 0 0 8px rgba(255, 255, 255, 0.8), 0 0 4px rgba(255,255,255,1);
1273
+ transition: left 0.1s ease-out;
1274
+ }
1275
+
1276
+ #middle-zone {
1277
+ display: flex;
1278
+ flex-direction: row;
1279
+ justify-content: center;
1280
+ gap: 12px;
1281
+ width: 100%;
1282
+ max-width: min(100%, 1180px);
1283
+ margin: 0 auto;
1284
+ min-height: 0;
1285
+ align-items: stretch;
1286
+ flex: 1;
1287
+ padding: 24px 12px;
1288
+ box-sizing: border-box;
1289
+ }
1290
+ #custom-scrollbar {
1291
+ display: none !important;
1292
+ }
1293
+ body:not(.started) #left-panel {
1294
+ justify-content: flex-start !important;
1295
+ }
1296
+ body:not(.started) #middle-zone,
1297
+ body.started #middle-zone {
1298
+ justify-content: stretch !important;
1299
+ align-items: stretch !important;
1300
+ }
1301
+ body:not(.started) #chat-main-stack {
1302
+ flex: 1 1 auto !important;
1303
+ min-height: 0 !important;
1304
+ }
1305
+ body:not(.started) #top-zone {
1306
+ flex: 1 1 auto !important;
1307
+ opacity: 1 !important;
1308
+ height: auto !important;
1309
+ min-height: 0 !important;
1310
+ padding: 0 !important;
1311
+ overflow: hidden !important;
1312
+ }
1313
+ body.started #top-zone {
1314
+ padding: 0 !important;
1315
+ }
1316
+ #chat-main-stack {
1317
+ position: relative;
1318
+ display: flex;
1319
+ flex-direction: column;
1320
+ flex: 1 1 auto;
1321
+ width: auto;
1322
+ min-width: 0;
1323
+ max-width: none;
1324
+ min-height: 270px;
1325
+ height: 270px;
1326
+ max-height: 270px;
1327
+ padding: 0 0 4px 0;
1328
+ box-sizing: border-box;
1329
+ }
1330
+ #top-zone {
1331
+ display: flex;
1332
+ flex-direction: column;
1333
+ position: relative;
1334
+ width: 100%;
1335
+ max-width: none;
1336
+ margin: 0;
1337
+ min-height: 0;
1338
+ max-height: 100%;
1339
+ flex: 1 1 auto;
1340
+ padding-top: 0;
1341
+ overflow: hidden;
1342
+ }
1343
+ #tts-controls {
1344
+ width: 100%;
1345
+ flex: 0 0 auto;
1346
+ order: 1;
1347
+ padding: 12px 14px 0 14px;
1348
+ box-sizing: border-box;
1349
+ }
1350
+ #tts-controls:not(.hidden) {
1351
+ display: flex;
1352
+ flex-direction: column;
1353
+ flex: 1 1 auto;
1354
+ min-height: 0;
1355
+ height: 100%;
1356
+ overflow-y: auto;
1357
+ }
1358
+ .tts-panel {
1359
+ display: flex;
1360
+ flex-direction: column;
1361
+ gap: 8px;
1362
+ padding: 10px;
1363
+ border-radius: 20px;
1364
+ background: rgba(255, 255, 255, 0.04);
1365
+ border: 1px solid rgba(255, 255, 255, 0.08);
1366
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
1367
+ max-height: none;
1368
+ min-height: 100%;
1369
+ height: 100%;
1370
+ flex: 1 1 auto;
1371
+ overflow: visible;
1372
+ }
1373
+ #chat-main-stack.settings-mode {
1374
+ min-height: 100% !important;
1375
+ height: 100% !important;
1376
+ max-height: none !important;
1377
+ padding-bottom: 0 !important;
1378
+ }
1379
+ #chat-main-stack.settings-mode #top-zone {
1380
+ flex: 1 1 auto !important;
1381
+ height: 100% !important;
1382
+ min-height: 0 !important;
1383
+ max-height: none !important;
1384
+ overflow: hidden !important;
1385
+ }
1386
+ #chat-main-stack.settings-mode #tts-controls {
1387
+ flex: 1 1 auto !important;
1388
+ height: 100% !important;
1389
+ min-height: 0 !important;
1390
+ padding: 10px 12px 12px 12px !important;
1391
+ }
1392
+ #chat-main-stack.settings-mode .tts-panel {
1393
+ flex: 1 1 auto !important;
1394
+ height: 100% !important;
1395
+ min-height: 100% !important;
1396
+ overflow-y: auto !important;
1397
+ scrollbar-width: thin !important;
1398
+ scrollbar-color: rgba(255,255,255,0.22) transparent !important;
1399
+ scrollbar-gutter: stable both-edges;
1400
+ }
1401
+ #chat-main-stack.settings-mode #tts-controls::-webkit-scrollbar,
1402
+ #chat-main-stack.settings-mode .tts-panel::-webkit-scrollbar {
1403
+ display: block !important;
1404
+ width: 6px !important;
1405
+ }
1406
+ #chat-main-stack.settings-mode #tts-controls::-webkit-scrollbar-track,
1407
+ #chat-main-stack.settings-mode .tts-panel::-webkit-scrollbar-track {
1408
+ background: transparent !important;
1409
+ }
1410
+ #chat-main-stack.settings-mode #tts-controls::-webkit-scrollbar-thumb,
1411
+ #chat-main-stack.settings-mode .tts-panel::-webkit-scrollbar-thumb {
1412
+ background: rgba(255,255,255,0.22) !important;
1413
+ border-radius: 999px !important;
1414
+ }
1415
+ #chat-main-stack.settings-mode #chat-box,
1416
+ #chat-main-stack.settings-mode #chat-input-shell,
1417
+ #chat-main-stack.settings-mode #active-app-status,
1418
+ #chat-main-stack.settings-mode #comm-img-preview-box {
1419
+ display: none !important;
1420
+ }
1421
+ .tts-panel-head {
1422
+ display: flex;
1423
+ align-items: center;
1424
+ justify-content: space-between;
1425
+ gap: 10px;
1426
+ }
1427
+ .tts-panel-head-main {
1428
+ min-width: 0;
1429
+ display: flex;
1430
+ align-items: center;
1431
+ gap: 8px;
1432
+ flex: 1 1 auto;
1433
+ }
1434
+ .tts-panel-badge {
1435
+ width: 38px;
1436
+ height: 38px;
1437
+ border-radius: 14px;
1438
+ flex: 0 0 38px;
1439
+ display: inline-flex;
1440
+ align-items: center;
1441
+ justify-content: center;
1442
+ background: rgba(255, 255, 255, 0.08);
1443
+ border: 1px solid rgba(255, 255, 255, 0.08);
1444
+ color: #ffffff;
1445
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
1446
+ }
1447
+ .tts-panel-badge i {
1448
+ font-size: 16px;
1449
+ }
1450
+ .tts-panel-copy {
1451
+ min-width: 0;
1452
+ display: flex;
1453
+ flex-direction: column;
1454
+ gap: 2px;
1455
+ }
1456
+ .tts-panel-kicker {
1457
+ display: inline-flex;
1458
+ align-items: center;
1459
+ gap: 6px;
1460
+ font-size: 10px;
1461
+ font-weight: 700;
1462
+ letter-spacing: 0.18em;
1463
+ text-transform: uppercase;
1464
+ color: rgba(255, 255, 255, 0.52);
1465
+ }
1466
+ .tts-panel-kicker i {
1467
+ font-size: 12px;
1468
+ letter-spacing: normal;
1469
+ }
1470
+ .tts-panel-title {
1471
+ font-size: 12px;
1472
+ line-height: 1.2;
1473
+ font-weight: 700;
1474
+ color: #ffffff;
1475
+ letter-spacing: 0.14em;
1476
+ text-transform: uppercase;
1477
+ }
1478
+ #tts-helper-text {
1479
+ font-size: 12px;
1480
+ line-height: 1.55;
1481
+ color: rgba(255, 255, 255, 0.62);
1482
+ }
1483
+ .tts-download-btn {
1484
+ flex-shrink: 0;
1485
+ width: 38px;
1486
+ height: 38px;
1487
+ min-width: 38px;
1488
+ min-height: 38px;
1489
+ padding: 0;
1490
+ border-radius: 14px;
1491
+ display: inline-flex;
1492
+ align-items: center;
1493
+ justify-content: center;
1494
+ gap: 0;
1495
+ background: #ffffff;
1496
+ color: #111111;
1497
+ border: none;
1498
+ font-size: 12px;
1499
+ font-weight: 700;
1500
+ transition: transform 0.2s ease, opacity 0.2s ease;
1501
+ text-align: center;
1502
+ }
1503
+ .tts-download-btn:disabled {
1504
+ opacity: 0.6;
1505
+ cursor: wait;
1506
+ }
1507
+ .tts-meta-grid {
1508
+ display: grid;
1509
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1510
+ gap: 7px;
1511
+ }
1512
+ .tts-meta-item {
1513
+ padding: 8px 6px;
1514
+ border-radius: 18px;
1515
+ background: rgba(255, 255, 255, 0.04);
1516
+ border: 1px solid rgba(255, 255, 255, 0.06);
1517
+ display: flex;
1518
+ flex-direction: column;
1519
+ align-items: center;
1520
+ justify-content: center;
1521
+ gap: 6px;
1522
+ min-width: 0;
1523
+ min-height: 76px;
1524
+ text-align: center;
1525
+ }
1526
+ .tts-meta-icon {
1527
+ width: 32px;
1528
+ height: 32px;
1529
+ border-radius: 12px;
1530
+ flex: 0 0 32px;
1531
+ display: inline-flex;
1532
+ align-items: center;
1533
+ justify-content: center;
1534
+ background: rgba(255, 255, 255, 0.08);
1535
+ color: rgba(255, 255, 255, 0.92);
1536
+ border: 1px solid rgba(255,255,255,0.06);
1537
+ }
1538
+ .tts-meta-icon i {
1539
+ font-size: 14px;
1540
+ }
1541
+ .tts-meta-copy {
1542
+ min-width: 0;
1543
+ display: flex;
1544
+ flex-direction: column;
1545
+ gap: 3px;
1546
+ align-items: center;
1547
+ }
1548
+ .tts-meta-copy span {
1549
+ font-size: 10px;
1550
+ text-transform: uppercase;
1551
+ letter-spacing: 0.14em;
1552
+ color: rgba(255, 255, 255, 0.38);
1553
+ }
1554
+ .tts-meta-copy strong {
1555
+ font-size: 11px;
1556
+ line-height: 1.15;
1557
+ color: #ffffff;
1558
+ white-space: nowrap;
1559
+ overflow: hidden;
1560
+ text-overflow: ellipsis;
1561
+ max-width: 100%;
1562
+ }
1563
+ .tts-control-group {
1564
+ display: flex;
1565
+ flex-direction: column;
1566
+ gap: 6px;
1567
+ }
1568
+ .assistant-settings-grid {
1569
+ display: flex;
1570
+ flex-direction: column;
1571
+ gap: 8px;
1572
+ }
1573
+ .assistant-settings-field {
1574
+ display: flex;
1575
+ flex-direction: column;
1576
+ gap: 6px;
1577
+ padding: 8px;
1578
+ border-radius: 18px;
1579
+ background: rgba(255,255,255,0.03);
1580
+ border: 1px solid rgba(255,255,255,0.06);
1581
+ }
1582
+ .assistant-settings-label {
1583
+ display: inline-flex;
1584
+ align-items: center;
1585
+ gap: 8px;
1586
+ font-size: 11px;
1587
+ font-weight: 700;
1588
+ color: rgba(255,255,255,0.88);
1589
+ }
1590
+ .assistant-settings-label i {
1591
+ width: 22px;
1592
+ height: 22px;
1593
+ border-radius: 9px;
1594
+ display: inline-flex;
1595
+ align-items: center;
1596
+ justify-content: center;
1597
+ background: rgba(255,255,255,0.08);
1598
+ border: 1px solid rgba(255,255,255,0.08);
1599
+ font-size: 12px;
1600
+ }
1601
+ .assistant-settings-help {
1602
+ font-size: 11px;
1603
+ line-height: 1.45;
1604
+ color: rgba(255,255,255,0.48);
1605
+ }
1606
+ .assistant-settings-textarea {
1607
+ width: 100%;
1608
+ min-height: 72px;
1609
+ border-radius: 16px;
1610
+ border: 1px solid rgba(255,255,255,0.08);
1611
+ background: rgba(255,255,255,0.04);
1612
+ color: #ffffff;
1613
+ padding: 10px 12px;
1614
+ font-size: 12px;
1615
+ line-height: 1.45;
1616
+ resize: vertical;
1617
+ outline: none;
1618
+ box-sizing: border-box;
1619
+ }
1620
+ .assistant-settings-textarea::placeholder {
1621
+ color: rgba(255,255,255,0.28);
1622
+ }
1623
+ .tts-control-heading {
1624
+ display: inline-flex;
1625
+ align-items: center;
1626
+ gap: 8px;
1627
+ font-size: 10px;
1628
+ text-transform: uppercase;
1629
+ letter-spacing: 0.16em;
1630
+ color: rgba(255, 255, 255, 0.38);
1631
+ }
1632
+ .tts-control-heading i {
1633
+ width: 22px;
1634
+ height: 22px;
1635
+ border-radius: 9px;
1636
+ display: inline-flex;
1637
+ align-items: center;
1638
+ justify-content: center;
1639
+ background: rgba(255,255,255,0.08);
1640
+ border: 1px solid rgba(255,255,255,0.08);
1641
+ font-size: 12px;
1642
+ letter-spacing: normal;
1643
+ }
1644
+ .tts-chip-list {
1645
+ display: flex;
1646
+ gap: 6px;
1647
+ overflow-x: auto;
1648
+ overflow-y: hidden;
1649
+ padding-bottom: 2px;
1650
+ }
1651
+ .tts-chip {
1652
+ display: inline-flex;
1653
+ flex-direction: column;
1654
+ align-items: center;
1655
+ justify-content: center;
1656
+ gap: 6px;
1657
+ flex: 0 0 auto;
1658
+ min-width: 64px;
1659
+ width: 64px;
1660
+ min-height: 64px;
1661
+ padding: 8px 6px;
1662
+ border-radius: 18px;
1663
+ background: rgba(255, 255, 255, 0.04);
1664
+ border: 1px solid rgba(255, 255, 255, 0.08);
1665
+ color: rgba(255, 255, 255, 0.82);
1666
+ transition: all 0.2s ease;
1667
+ }
1668
+ .tts-chip.active {
1669
+ background: #ffffff;
1670
+ border-color: #ffffff;
1671
+ color: #111111;
1672
+ }
1673
+ .tts-chip-icon {
1674
+ width: 30px;
1675
+ height: 30px;
1676
+ border-radius: 12px;
1677
+ flex: 0 0 30px;
1678
+ display: inline-flex;
1679
+ align-items: center;
1680
+ justify-content: center;
1681
+ background: rgba(255, 255, 255, 0.08);
1682
+ border: 1px solid rgba(255,255,255,0.06);
1683
+ color: inherit;
1684
+ }
1685
+ .tts-chip.active .tts-chip-icon {
1686
+ background: rgba(17, 17, 17, 0.08);
1687
+ border-color: rgba(17, 17, 17, 0.06);
1688
+ }
1689
+ .tts-chip-icon i {
1690
+ font-size: 14px;
1691
+ }
1692
+ .tts-chip-main {
1693
+ display: flex;
1694
+ flex-direction: column;
1695
+ gap: 1px;
1696
+ align-items: center;
1697
+ justify-content: center;
1698
+ min-width: 0;
1699
+ max-width: 100%;
1700
+ }
1701
+ .tts-chip-main small {
1702
+ font-size: 9px;
1703
+ text-transform: uppercase;
1704
+ letter-spacing: 0.14em;
1705
+ opacity: 0.6;
1706
+ }
1707
+ .tts-chip-main strong {
1708
+ font-size: 10px;
1709
+ font-weight: 700;
1710
+ line-height: 1.15;
1711
+ text-align: center;
1712
+ display: block;
1713
+ max-width: 100%;
1714
+ white-space: nowrap;
1715
+ overflow: hidden;
1716
+ text-overflow: ellipsis;
1717
+ }
1718
+ .tts-slider-grid {
1719
+ display: grid;
1720
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1721
+ gap: 8px;
1722
+ }
1723
+ .tts-slider-item {
1724
+ display: flex;
1725
+ flex-direction: column;
1726
+ gap: 8px;
1727
+ min-width: 0;
1728
+ padding: 8px;
1729
+ border-radius: 18px;
1730
+ background: rgba(255,255,255,0.03);
1731
+ border: 1px solid rgba(255,255,255,0.06);
1732
+ }
1733
+ .tts-slider-item label {
1734
+ display: flex;
1735
+ align-items: center;
1736
+ justify-content: space-between;
1737
+ gap: 8px;
1738
+ font-size: 10px;
1739
+ text-transform: uppercase;
1740
+ letter-spacing: 0.14em;
1741
+ color: rgba(255, 255, 255, 0.38);
1742
+ }
1743
+ .tts-slider-label-main {
1744
+ display: inline-flex;
1745
+ align-items: center;
1746
+ gap: 8px;
1747
+ }
1748
+ .tts-slider-label-main i {
1749
+ width: 22px;
1750
+ height: 22px;
1751
+ border-radius: 9px;
1752
+ display: inline-flex;
1753
+ align-items: center;
1754
+ justify-content: center;
1755
+ background: rgba(255,255,255,0.08);
1756
+ border: 1px solid rgba(255,255,255,0.08);
1757
+ font-size: 12px;
1758
+ letter-spacing: normal;
1759
+ }
1760
+ .tts-slider-item strong {
1761
+ font-size: 11px;
1762
+ color: #ffffff;
1763
+ letter-spacing: normal;
1764
+ text-transform: none;
1765
+ }
1766
+ .tts-slider-item input[type="range"] {
1767
+ width: 100%;
1768
+ accent-color: #ffffff;
1769
+ }
1770
+ #chat-main-stack.settings-mode .tts-panel-kicker,
1771
+ #chat-main-stack.settings-mode #tts-helper-text,
1772
+ #chat-main-stack.settings-mode .assistant-settings-help,
1773
+ #chat-main-stack.settings-mode .assistant-settings-label span,
1774
+ #chat-main-stack.settings-mode .tts-control-heading span,
1775
+ #chat-main-stack.settings-mode .tts-meta-copy span,
1776
+ #chat-main-stack.settings-mode .tts-chip-main small,
1777
+ #chat-main-stack.settings-mode #tts-download-label,
1778
+ #chat-main-stack.settings-mode .tts-slider-label-main span:last-child {
1779
+ display: none !important;
1780
+ }
1781
+ #chat-main-stack.settings-mode .tts-panel-head {
1782
+ margin-bottom: 2px;
1783
+ }
1784
+ #chat-main-stack.settings-mode .tts-panel-copy {
1785
+ justify-content: center;
1786
+ }
1787
+ #chat-main-stack.settings-mode .assistant-settings-label,
1788
+ #chat-main-stack.settings-mode .tts-control-heading {
1789
+ gap: 0;
1790
+ }
1791
+ #chat-main-stack.settings-mode .assistant-settings-label i,
1792
+ #chat-main-stack.settings-mode .tts-control-heading i {
1793
+ width: 24px;
1794
+ height: 24px;
1795
+ border-radius: 12px;
1796
+ }
1797
+ #chat-main-stack.settings-mode .assistant-settings-textarea {
1798
+ min-height: 68px;
1799
+ }
1800
+ #chat-main-stack.settings-mode .tts-panel,
1801
+ #chat-main-stack.settings-mode .assistant-settings-field,
1802
+ #chat-main-stack.settings-mode .assistant-settings-textarea,
1803
+ #chat-main-stack.settings-mode .tts-meta-item,
1804
+ #chat-main-stack.settings-mode .tts-slider-item,
1805
+ #chat-main-stack.settings-mode .tts-chip,
1806
+ #chat-main-stack.settings-mode .tts-panel-badge,
1807
+ #chat-main-stack.settings-mode .tts-meta-icon,
1808
+ #chat-main-stack.settings-mode .tts-chip-icon,
1809
+ #chat-main-stack.settings-mode .assistant-settings-label i,
1810
+ #chat-main-stack.settings-mode .tts-control-heading i,
1811
+ #chat-main-stack.settings-mode .tts-slider-label-main i {
1812
+ background: transparent !important;
1813
+ box-shadow: none !important;
1814
+ }
1815
+ #chat-main-stack.settings-mode .tts-chip.active {
1816
+ background: transparent !important;
1817
+ border-color: rgba(255, 255, 255, 0.24) !important;
1818
+ color: #ffffff !important;
1819
+ }
1820
+ #chat-main-stack.settings-mode .tts-chip.active .tts-chip-icon {
1821
+ background: transparent !important;
1822
+ border-color: rgba(255, 255, 255, 0.24) !important;
1823
+ color: #ffffff !important;
1824
+ }
1825
+ #chat-main-stack.menu-mode {
1826
+ min-height: 100% !important;
1827
+ height: 100% !important;
1828
+ max-height: none !important;
1829
+ padding-bottom: 0 !important;
1830
+ }
1831
+ #chat-main-stack.menu-mode #top-zone {
1832
+ display: none !important;
1833
+ flex: 0 0 auto !important;
1834
+ width: 100% !important;
1835
+ height: 0 !important;
1836
+ min-height: 0 !important;
1837
+ max-height: 0 !important;
1838
+ padding: 0 !important;
1839
+ margin: 0 !important;
1840
+ overflow: hidden !important;
1841
+ opacity: 0 !important;
1842
+ visibility: hidden !important;
1843
+ }
1844
+ #chat-main-stack.menu-mode #chat-box,
1845
+ #chat-main-stack.menu-mode #chat-input-shell,
1846
+ #chat-main-stack.menu-mode #active-app-status,
1847
+ #chat-main-stack.menu-mode #comm-img-preview-box,
1848
+ #chat-main-stack.menu-mode #tts-controls,
1849
+ #chat-main-stack.menu-mode #app-container {
1850
+ display: none !important;
1851
+ }
1852
+ #chat-main-stack.menu-mode #store-panel {
1853
+ display: flex !important;
1854
+ flex: 1 1 auto !important;
1855
+ width: 100% !important;
1856
+ height: 100% !important;
1857
+ min-height: 0 !important;
1858
+ max-height: none !important;
1859
+ opacity: 1 !important;
1860
+ overflow: hidden !important;
1861
+ padding: 12px !important;
1862
+ margin: 0 !important;
1863
+ }
1864
+ #chat-main-stack.menu-mode #store-panel > .flex.flex-col {
1865
+ display: flex !important;
1866
+ flex: 1 1 auto !important;
1867
+ min-height: 0 !important;
1868
+ height: 100% !important;
1869
+ }
1870
+ #chat-main-stack.menu-mode #fixed-apps-list,
1871
+ #chat-main-stack.menu-mode #store-category-filters,
1872
+ #chat-main-stack.menu-mode #store-loader {
1873
+ flex: 0 0 auto;
1874
+ }
1875
+ #chat-main-stack.menu-mode #store-grid {
1876
+ flex: 1 1 auto !important;
1877
+ min-height: 0 !important;
1878
+ overflow-y: auto !important;
1879
+ overflow-x: hidden !important;
1880
+ display: flex !important;
1881
+ flex-wrap: wrap !important;
1882
+ align-content: flex-start !important;
1883
+ gap: 10px !important;
1884
+ padding: 6px 2px 8px 0 !important;
1885
+ scrollbar-width: thin;
1886
+ scrollbar-color: rgba(255,255,255,0.22) transparent;
1887
+ }
1888
+ #chat-main-stack.menu-mode #store-grid::-webkit-scrollbar {
1889
+ width: 6px;
1890
+ }
1891
+ #chat-main-stack.menu-mode #store-grid::-webkit-scrollbar-track {
1892
+ background: transparent;
1893
+ }
1894
+ #chat-main-stack.menu-mode #store-grid::-webkit-scrollbar-thumb {
1895
+ background: rgba(255,255,255,0.22);
1896
+ border-radius: 999px;
1897
+ }
1898
+ #chat-main-stack.menu-mode .store-item {
1899
+ width: 48px !important;
1900
+ height: 48px !important;
1901
+ border-radius: 16px !important;
1902
+ }
1903
+ #active-app-status { order: 2; }
1904
+ #chat-box { order: 2; }
1905
+ #comm-img-preview-box { order: 22; }
1906
+ #store-panel { order: 30; }
1907
+ #app-container { order: 31; }
1908
+ #store-panel,
1909
+ #app-container,
1910
+ #comm-img-preview-box,
1911
+ #active-app-status {
1912
+ width: 100%;
1913
+ margin-right: 0;
1914
+ }
1915
+ #chat-input-shell {
1916
+ width: 100%;
1917
+ margin-right: 0;
1918
+ order: 20;
1919
+ margin-top: auto;
1920
+ padding-bottom: 10px;
1921
+ }
1922
+ #toolbar-main-controls {
1923
+ width: 100%;
1924
+ flex: 0 0 auto;
1925
+ height: auto;
1926
+ min-height: auto;
1927
+ display: flex;
1928
+ flex-direction: column;
1929
+ align-items: center;
1930
+ justify-content: flex-start;
1931
+ gap: 10px;
1932
+ }
1933
+ #toolbar-main-controls .btn-icon {
1934
+ width: 38px;
1935
+ height: 38px;
1936
+ margin-right: 0 !important;
1937
+ flex-shrink: 0;
1938
+ border-radius: 12px !important;
1939
+ clip-path: inset(0 round 12px);
1940
+ }
1941
+ #toolbar-main-controls > #toolbar-scroll-indicator {
1942
+ width: 100%;
1943
+ margin: auto 0 0 0 !important;
1944
+ display: flex;
1945
+ align-items: center;
1946
+ justify-content: center;
1947
+ box-sizing: border-box;
1948
+ }
1949
+ #btn-menu {
1950
+ width: 40px !important;
1951
+ height: 40px !important;
1952
+ min-width: 40px !important;
1953
+ min-height: 40px !important;
1954
+ max-width: 40px !important;
1955
+ max-height: 40px !important;
1956
+ border-radius: 12px !important;
1957
+ margin: 0 auto !important;
1958
+ margin-right: 0 !important;
1959
+ flex-shrink: 0 !important;
1960
+ display: flex !important;
1961
+ align-items: center !important;
1962
+ justify-content: center !important;
1963
+ padding: 0 !important;
1964
+ aspect-ratio: 1 / 1 !important;
1965
+ background: rgba(255, 255, 255, 0.08) !important;
1966
+ clip-path: inset(0 round 12px);
1967
+ }
1968
+ #btn-menu:hover,
1969
+ #btn-menu.active,
1970
+ #btn-menu.menu-open {
1971
+ border-radius: 12px !important;
1972
+ clip-path: inset(0 round 12px);
1973
+ }
1974
+ #btn-menu.menu-open {
1975
+ background: #ececec !important;
1976
+ color: #111111 !important;
1977
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
1978
+ }
1979
+ #btn-menu.menu-open i {
1980
+ color: #111111 !important;
1981
+ }
1982
+ #btn-submit-left {
1983
+ width: 38px !important;
1984
+ height: 38px !important;
1985
+ min-width: 38px !important;
1986
+ min-height: 38px !important;
1987
+ max-width: 38px !important;
1988
+ max-height: 38px !important;
1989
+ border-radius: 12px !important;
1990
+ margin: 0 auto !important;
1991
+ flex-shrink: 0 !important;
1992
+ display: flex !important;
1993
+ align-items: center !important;
1994
+ justify-content: center !important;
1995
+ clip-path: inset(0 round 12px);
1996
+ }
1997
+ #toolbar-main-controls #icon-scroll-wrapper {
1998
+ flex: 0 0 auto;
1999
+ width: 100%;
2000
+ min-height: 0;
2001
+ height: auto;
2002
+ margin: 0 !important;
2003
+ mask-image: none !important;
2004
+ -webkit-mask-image: none !important;
2005
+ overflow: visible !important;
2006
+ display: flex;
2007
+ align-items: flex-start;
2008
+ justify-content: flex-start;
2009
+ box-sizing: border-box;
2010
+ }
2011
+ #toolbar-main-controls #icon-scroll-wrapper::-webkit-scrollbar {
2012
+ display: none !important;
2013
+ }
2014
+ #toolbar-main-controls #icon-scroll-container {
2015
+ width: 100%;
2016
+ min-height: 0;
2017
+ height: auto;
2018
+ overflow: visible !important;
2019
+ display: flex !important;
2020
+ flex-direction: column !important;
2021
+ align-items: center !important;
2022
+ justify-content: flex-start !important;
2023
+ gap: 12px !important;
2024
+ padding: 6px 0 14px !important;
2025
+ margin: 0 auto !important;
2026
+ box-sizing: border-box;
2027
+ }
2028
+ #toolbar-main-controls #icon-scroll-container > button {
2029
+ align-self: center !important;
2030
+ margin-left: auto !important;
2031
+ margin-right: auto !important;
2032
+ }
2033
+ #toolbar-main-controls #btn-submit {
2034
+ width: 42px !important;
2035
+ height: 42px !important;
2036
+ margin-left: 0 !important;
2037
+ margin-top: 6px;
2038
+ flex-shrink: 0;
2039
+ }
2040
+ #music-duration-wrapper,
2041
+ #translation-right-wrapper {
2042
+ right: 12px !important;
2043
+ }
2044
+ #toolbar-scroll-indicator {
2045
+ display: none !important;
2046
+ }
2047
+ #chat-side-ad {
2048
+ width: 324px;
2049
+ min-width: 324px;
2050
+ height: 270px;
2051
+ min-height: 270px;
2052
+ max-height: none;
2053
+ background: #ffffff;
2054
+ color: #e5e7eb;
2055
+ border: none;
2056
+ border-radius: 0;
2057
+ overflow: visible;
2058
+ display: flex;
2059
+ flex-direction: column;
2060
+ align-self: stretch;
2061
+ border-left: 1px solid rgba(255, 255, 255, 0.08);
2062
+ flex: 0 0 324px;
2063
+ justify-content: center;
2064
+ align-items: center;
2065
+ }
2066
+ .island-box {
2067
+ width: 100%;
2068
+ min-width: 0;
2069
+ max-width: 100%;
2070
+ display: grid !important;
2071
+ grid-template-columns: minmax(0, 1fr) 74px 324px 74px;
2072
+ grid-template-rows: 270px minmax(0, auto);
2073
+ align-items: stretch;
2074
+ justify-items: stretch;
2075
+ }
2076
+ #chat-main-stack {
2077
+ grid-column: 1;
2078
+ grid-row: 1;
2079
+ }
2080
+ #chat-side-ad-body {
2081
+ flex: 1 1 auto;
2082
+ height: 270px;
2083
+ min-height: 270px;
2084
+ display: flex;
2085
+ flex-direction: column;
2086
+ align-items: center;
2087
+ justify-content: center;
2088
+ padding: 9px 11px;
2089
+ box-sizing: border-box;
2090
+ gap: 0;
2091
+ background: #ffffff;
2092
+ overflow: visible;
2093
+ width: 100%;
2094
+ }
2095
+ .chat-ad-frame {
2096
+ width: 300px;
2097
+ height: 250px;
2098
+ min-width: 0;
2099
+ min-height: 250px;
2100
+ max-width: 300px;
2101
+ display: flex;
2102
+ align-items: center;
2103
+ justify-content: center;
2104
+ overflow: visible;
2105
+ margin: 0 auto;
2106
+ position: relative;
2107
+ transform-origin: center center;
2108
+ box-sizing: content-box;
2109
+ padding: 1px;
2110
+ }
2111
+ .chat-ad-frame > iframe,
2112
+ .chat-ad-frame > object,
2113
+ .chat-ad-frame > embed,
2114
+ .chat-ad-frame > img,
2115
+ .chat-ad-frame iframe,
2116
+ .chat-ad-frame object,
2117
+ .chat-ad-frame embed,
2118
+ .chat-ad-frame img {
2119
+ display: block !important;
2120
+ margin: 0 auto !important;
2121
+ }
2122
+ .chat-ad-frame > img,
2123
+ .chat-ad-frame img {
2124
+ object-fit: contain;
2125
+ }
2126
+ #chat-side-ad-body > * {
2127
+ max-width: 100% !important;
2128
+ box-sizing: border-box !important;
2129
+ }
2130
+ @media (max-width: 1180px) {
2131
+ #middle-zone {
2132
+ max-width: 100% !important;
2133
+ padding: 18px 8px !important;
2134
+ }
2135
+ .island-box {
2136
+ width: 100% !important;
2137
+ min-width: 0 !important;
2138
+ max-width: 100% !important;
2139
+ grid-template-columns: minmax(0, 1fr) 74px 324px 74px !important;
2140
+ }
2141
+ #chat-main-stack {
2142
+ width: auto !important;
2143
+ min-width: 0 !important;
2144
+ max-width: none !important;
2145
+ }
2146
+ }
2147
+
2148
+
2149
+
2150
+
2151
+ body.is-store-menu-open #chat-main-stack {
2152
+ height: 100% !important;
2153
+ min-height: 0 !important;
2154
+ max-height: 100% !important;
2155
+ }
2156
+
2157
+ body.is-store-menu-open #top-zone {
2158
+ display: none !important;
2159
+ height: 0 !important;
2160
+ min-height: 0 !important;
2161
+ max-height: 0 !important;
2162
+ flex: 0 0 auto !important;
2163
+ padding: 0 !important;
2164
+ margin: 0 !important;
2165
+ overflow: hidden !important;
2166
+ visibility: hidden !important;
2167
+ opacity: 0 !important;
2168
+ }
2169
+
2170
+ body.is-store-menu-open #icon-menu {
2171
+ font-size: 1.25rem !important;
2172
+ }
2173
+
2174
+ body.is-store-menu-open #btn-menu {
2175
+ color: #fff !important;
2176
+ }
2177
+
2178
+
2179
+ #board-right-rail {
2180
+ grid-column: 4;
2181
+ grid-row: 1;
2182
+ width: 74px;
2183
+ min-width: 74px;
2184
+ max-width: 74px;
2185
+ min-height: 270px;
2186
+ align-self: stretch;
2187
+ background: #ffffff;
2188
+ border: 1px solid rgba(0, 0, 0, 0.08);
2189
+ box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
2190
+ overflow: hidden;
2191
+ display: flex;
2192
+ flex-direction: column;
2193
+ }
2194
+ #board-right-rail-scroll {
2195
+ width: 100%;
2196
+ height: 100%;
2197
+ overflow-y: auto;
2198
+ overflow-x: hidden;
2199
+ display: flex;
2200
+ flex-direction: column;
2201
+ align-items: center;
2202
+ justify-content: flex-start;
2203
+ gap: 10px;
2204
+ padding: 12px 0;
2205
+ scrollbar-width: thin;
2206
+ scrollbar-color: rgba(0, 0, 0, 0.24) transparent;
2207
+ scrollbar-gutter: stable;
2208
+ box-sizing: border-box;
2209
+ }
2210
+ #board-right-rail-scroll::-webkit-scrollbar {
2211
+ width: 6px;
2212
+ display: block;
2213
+ }
2214
+ #board-right-rail-scroll::-webkit-scrollbar-track {
2215
+ background: transparent;
2216
+ margin: 4px 0;
2217
+ }
2218
+ #board-right-rail-scroll::-webkit-scrollbar-thumb {
2219
+ background: rgba(0, 0, 0, 0.24);
2220
+ border-radius: 999px;
2221
+ }
2222
+ #board-right-rail-scroll::-webkit-scrollbar-thumb:hover {
2223
+ background: rgba(0, 0, 0, 0.38);
2224
+ }
2225
+ .board-rail-btn {
2226
+ width: 40px;
2227
+ height: 40px;
2228
+ border-radius: 14px;
2229
+ color: #5f5f5f;
2230
+ background: transparent;
2231
+ display: flex;
2232
+ align-items: center;
2233
+ justify-content: center;
2234
+ flex-shrink: 0;
2235
+ transition: all 0.2s ease;
2236
+ }
2237
+ .board-rail-btn:hover,
2238
+ .board-rail-btn.active {
2239
+ color: #111111;
2240
+ background: rgba(0, 0, 0, 0.06);
2241
+ }
2242
+ .board-rail-btn img {
2243
+ display: block;
2244
+ object-fit: contain;
2245
+ }
2246
+ #chat-side-ad {
2247
+ grid-column: 3;
2248
+ grid-row: 1;
2249
+ }
2250
+ body.mode-code #left-panel {
2251
+ flex: 1 1 auto !important;
2252
+ width: 100% !important;
2253
+ max-width: 100% !important;
2254
+ height: auto !important;
2255
+ min-height: 0 !important;
2256
+ }
2257
+ body.mode-code #middle-zone,
2258
+ body.mode-code .island-box {
2259
+ height: auto !important;
2260
+ min-height: 0 !important;
2261
+ max-height: none !important;
2262
+ }
2263
+ body.mode-code .island-box {
2264
+ overflow: hidden !important;
2265
+ }
2266
+ @media (min-width: 901px) {
2267
+ body.mode-code #main-layout,
2268
+ body.mode-code #left-panel,
2269
+ body.mode-code #middle-zone {
2270
+ height: auto !important;
2271
+ min-height: 0 !important;
2272
+ max-height: none !important;
2273
+ overflow: visible !important;
2274
+ }
2275
+ body.mode-code .island-box {
2276
+ grid-template-rows: 270px minmax(320px, auto) !important;
2277
+ min-height: 590px !important;
2278
+ height: auto !important;
2279
+ max-height: none !important;
2280
+ overflow: visible !important;
2281
+ }
2282
+ body.mode-code #chat-main-stack {
2283
+ grid-column: 1 !important;
2284
+ grid-row: 1 !important;
2285
+ display: flex !important;
2286
+ min-height: 270px !important;
2287
+ height: 270px !important;
2288
+ max-height: 270px !important;
2289
+ }
2290
+ body.mode-code #chat-side-ad {
2291
+ grid-column: 3 !important;
2292
+ grid-row: 1 !important;
2293
+ }
2294
+ body.mode-code #board-right-rail {
2295
+ grid-column: 4 !important;
2296
+ grid-row: 1 !important;
2297
+ }
2298
+ body.mode-code #top-zone {
2299
+ display: flex !important;
2300
+ flex-direction: column !important;
2301
+ flex: 1 1 auto !important;
2302
+ min-height: 0 !important;
2303
+ max-height: none !important;
2304
+ visibility: visible !important;
2305
+ opacity: 1 !important;
2306
+ overflow-y: auto !important;
2307
+ overflow-x: hidden !important;
2308
+ }
2309
+ body.mode-code #chat-box {
2310
+ display: flex !important;
2311
+ flex: 1 1 auto !important;
2312
+ min-height: 0 !important;
2313
+ max-height: 100% !important;
2314
+ visibility: visible !important;
2315
+ opacity: 1 !important;
2316
+ }
2317
+ body.mode-code #chat-input-shell {
2318
+ display: flex !important;
2319
+ visibility: visible !important;
2320
+ opacity: 1 !important;
2321
+ }
2322
+ }
2323
+ @media (min-width: 1181px) {
2324
+ body.mode-code .island-box {
2325
+ grid-template-columns: minmax(0, 1fr) 74px 324px 74px !important;
2326
+ grid-template-rows: 270px minmax(320px, auto) !important;
2327
+ min-height: 590px !important;
2328
+ height: auto !important;
2329
+ max-height: none !important;
2330
+ overflow: visible !important;
2331
+ }
2332
+ body.mode-code #chat-main-stack {
2333
+ grid-column: 1 !important;
2334
+ grid-row: 1 !important;
2335
+ display: flex !important;
2336
+ min-height: 270px !important;
2337
+ height: 270px !important;
2338
+ max-height: 270px !important;
2339
+ }
2340
+ body.mode-code #chat-side-ad {
2341
+ grid-column: 3 !important;
2342
+ grid-row: 1 !important;
2343
+ }
2344
+ body.mode-code #board-right-rail {
2345
+ grid-column: 4 !important;
2346
+ grid-row: 1 !important;
2347
+ }
2348
+ body.mode-code #right-panel {
2349
+ grid-column: 1 / span 4 !important;
2350
+ grid-row: 2 !important;
2351
+ width: 100% !important;
2352
+ min-width: 0 !important;
2353
+ max-width: 100% !important;
2354
+ display: flex !important;
2355
+ opacity: 1 !important;
2356
+ min-height: 320px !important;
2357
+ max-height: 520px !important;
2358
+ overflow: hidden !important;
2359
+ }
2360
+ }
2361
+ @media (max-width: 1180px) and (min-width: 901px) {
2362
+ body.mode-code .island-box {
2363
+ grid-template-columns: minmax(0, 1fr) 74px !important;
2364
+ grid-template-rows: 270px 270px minmax(320px, auto) !important;
2365
+ min-height: 860px !important;
2366
+ height: auto !important;
2367
+ max-height: none !important;
2368
+ overflow: visible !important;
2369
+ }
2370
+ body.mode-code #chat-main-stack {
2371
+ grid-column: 1 !important;
2372
+ grid-row: 1 !important;
2373
+ display: flex !important;
2374
+ min-height: 270px !important;
2375
+ height: 270px !important;
2376
+ max-height: 270px !important;
2377
+ }
2378
+ body.mode-code #chat-side-ad {
2379
+ grid-column: 1 !important;
2380
+ grid-row: 2 !important;
2381
+ width: auto !important;
2382
+ min-width: 0 !important;
2383
+ max-width: 100% !important;
2384
+ flex: 1 1 auto !important;
2385
+ height: 270px !important;
2386
+ min-height: 270px !important;
2387
+ max-height: 270px !important;
2388
+ justify-self: stretch !important;
2389
+ align-self: stretch !important;
2390
+ display: flex !important;
2391
+ }
2392
+ body.mode-code #board-right-rail {
2393
+ grid-column: 2 !important;
2394
+ grid-row: 2 !important;
2395
+ width: 74px !important;
2396
+ min-width: 74px !important;
2397
+ max-width: 74px !important;
2398
+ min-height: 270px !important;
2399
+ max-height: 270px !important;
2400
+ display: flex !important;
2401
+ }
2402
+ body.mode-code #right-panel {
2403
+ grid-column: 1 / span 2 !important;
2404
+ grid-row: 3 !important;
2405
+ width: 100% !important;
2406
+ min-width: 0 !important;
2407
+ max-width: 100% !important;
2408
+ display: flex !important;
2409
+ opacity: 1 !important;
2410
+ min-height: 320px !important;
2411
+ max-height: 520px !important;
2412
+ overflow: hidden !important;
2413
+ }
2414
+ }
2415
+ #right-panel {
2416
+ grid-column: 1 / span 3;
2417
+ grid-row: 2;
2418
+ position: relative !important;
2419
+ top: auto !important;
2420
+ left: auto !important;
2421
+ right: auto !important;
2422
+ bottom: auto !important;
2423
+ width: 100%;
2424
+ min-width: 0;
2425
+ max-width: 100%;
2426
+ height: auto !important;
2427
+ flex-direction: column;
2428
+ border-left: none !important;
2429
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
2430
+ background: #080808 !important;
2431
+ padding: 0 !important;
2432
+ margin: 0 !important;
2433
+ transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
2434
+ }
2435
+ #desktop-code-panel-host {
2436
+ display: none;
2437
+ width: 100%;
2438
+ min-width: 0;
2439
+ }
2440
+ .code-panel-head {
2441
+ display: flex;
2442
+ align-items: center;
2443
+ justify-content: space-between;
2444
+ gap: 12px;
2445
+ padding: 12px 14px 10px 14px;
2446
+ background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
2447
+ border-bottom: 1px solid rgba(255,255,255,0.05);
2448
+ }
2449
+ .code-panel-head-left {
2450
+ display: flex;
2451
+ align-items: center;
2452
+ gap: 10px;
2453
+ min-width: 0;
2454
+ flex: 1 1 auto;
2455
+ }
2456
+ .code-panel-brand {
2457
+ display: inline-flex;
2458
+ align-items: center;
2459
+ gap: 10px;
2460
+ }
2461
+ .code-panel-brand-icon {
2462
+ width: 34px;
2463
+ height: 34px;
2464
+ border-radius: 14px;
2465
+ display: inline-flex;
2466
+ align-items: center;
2467
+ justify-content: center;
2468
+ background: rgba(255,255,255,0.06);
2469
+ border: 1px solid rgba(255,255,255,0.08);
2470
+ color: rgba(255,255,255,0.92);
2471
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
2472
+ cursor: pointer;
2473
+ transition: all 0.18s ease;
2474
+ }
2475
+ .code-panel-brand-icon:hover {
2476
+ background: rgba(255,255,255,0.12);
2477
+ border-color: rgba(255,255,255,0.18);
2478
+ color: #ffffff;
2479
+ }
2480
+ .code-panel-head-actions {
2481
+ display: inline-flex;
2482
+ align-items: center;
2483
+ gap: 8px;
2484
+ }
2485
+ .code-head-btn {
2486
+ width: 34px;
2487
+ height: 34px;
2488
+ border-radius: 14px;
2489
+ display: inline-flex;
2490
+ align-items: center;
2491
+ justify-content: center;
2492
+ color: rgba(255,255,255,0.52);
2493
+ background: rgba(255,255,255,0.04);
2494
+ border: 1px solid rgba(255,255,255,0.05);
2495
+ transition: all 0.2s ease;
2496
+ }
2497
+ .code-head-btn:hover {
2498
+ color: rgba(255,255,255,0.92);
2499
+ background: rgba(255,255,255,0.08);
2500
+ }
2501
+ #code-tabs {
2502
+ min-height: 0;
2503
+ padding: 0;
2504
+ gap: 8px;
2505
+ background: transparent !important;
2506
+ border-bottom: none !important;
2507
+ box-sizing: border-box;
2508
+ display: inline-flex;
2509
+ align-items: center;
2510
+ justify-content: flex-start;
2511
+ min-width: 0;
2512
+ flex: 1 1 auto;
2513
+ overflow-x: auto;
2514
+ overflow-y: hidden;
2515
+ }
2516
+ .code-tab-btn {
2517
+ width: 38px;
2518
+ min-width: 38px;
2519
+ height: 38px;
2520
+ min-height: 38px;
2521
+ padding: 0;
2522
+ border-radius: 14px;
2523
+ display: inline-flex;
2524
+ align-items: center;
2525
+ justify-content: center;
2526
+ box-sizing: border-box;
2527
+ color: rgba(255,255,255,0.46);
2528
+ background: rgba(255,255,255,0.03);
2529
+ border: 1px solid rgba(255,255,255,0.05);
2530
+ transition: all 0.2s ease;
2531
+ }
2532
+ .code-tab-btn.active {
2533
+ color: #111111;
2534
+ background: #f2f2f2;
2535
+ border-color: #f2f2f2;
2536
+ box-shadow: 0 10px 24px rgba(0,0,0,0.18);
2537
+ }
2538
+ .code-tab-btn:hover:not(.active) {
2539
+ color: rgba(255,255,255,0.9);
2540
+ background: rgba(255,255,255,0.08);
2541
+ }
2542
+ .code-tab-icon {
2543
+ width: 20px;
2544
+ height: 20px;
2545
+ border-radius: 8px;
2546
+ display: inline-flex;
2547
+ align-items: center;
2548
+ justify-content: center;
2549
+ background: transparent;
2550
+ border: 1px solid transparent;
2551
+ font-size: 11px;
2552
+ color: inherit;
2553
+ }
2554
+ .code-tab-btn.active .code-tab-icon {
2555
+ background: transparent;
2556
+ border-color: transparent;
2557
+ }
2558
+ .code-tab-label {
2559
+ display: none !important;
2560
+ }
2561
+ .code-panel-empty {
2562
+ width: auto;
2563
+ min-height: 34px;
2564
+ display: flex;
2565
+ align-items: center;
2566
+ justify-content: flex-start;
2567
+ gap: 8px;
2568
+ color: rgba(255,255,255,0.24);
2569
+ }
2570
+ .code-panel-empty-icon {
2571
+ width: 30px;
2572
+ height: 30px;
2573
+ border-radius: 12px;
2574
+ display: inline-flex;
2575
+ align-items: center;
2576
+ justify-content: center;
2577
+ background: rgba(255,255,255,0.04);
2578
+ border: 1px solid rgba(255,255,255,0.04);
2579
+ }
2580
+ .code-panel-empty-dots {
2581
+ display: inline-flex;
2582
+ align-items: center;
2583
+ gap: 5px;
2584
+ }
2585
+ .code-panel-empty-dots span {
2586
+ width: 6px;
2587
+ height: 6px;
2588
+ border-radius: 999px;
2589
+ background: rgba(255,255,255,0.16);
2590
+ }
2591
+ .code-workspace {
2592
+ flex: 1 1 auto;
2593
+ min-height: 0;
2594
+ display: flex;
2595
+ flex-direction: column;
2596
+ }
2597
+ .code-editor-pane {
2598
+ flex: 1 1 auto;
2599
+ min-height: 0;
2600
+ }
2601
+ .html-preview-pane {
2602
+ min-width: 0;
2603
+ min-height: 0;
2604
+ background:
2605
+ radial-gradient(circle at top left, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.01) 22%, transparent 40%),
2606
+ linear-gradient(180deg, #101013 0%, #09090b 100%);
2607
+ border-left: 1px solid rgba(255,255,255,0.06);
2608
+ display: none;
2609
+ flex-direction: column;
2610
+ }
2611
+ .html-preview-pane.hidden {
2612
+ display: none !important;
2613
+ }
2614
+ .html-preview-head {
2615
+ height: 52px;
2616
+ min-height: 52px;
2617
+ display: flex;
2618
+ align-items: center;
2619
+ justify-content: space-between;
2620
+ padding: 0 14px;
2621
+ border-bottom: 1px solid rgba(255,255,255,0.06);
2622
+ background: rgba(255,255,255,0.02);
2623
+ }
2624
+ .html-preview-chip,
2625
+ .html-preview-refresh {
2626
+ width: 32px;
2627
+ height: 32px;
2628
+ border-radius: 11px;
2629
+ display: inline-flex;
2630
+ align-items: center;
2631
+ justify-content: center;
2632
+ border: 1px solid rgba(255,255,255,0.08);
2633
+ background: rgba(255,255,255,0.04);
2634
+ color: rgba(255,255,255,0.74);
2635
+ }
2636
+ .html-preview-refresh:hover {
2637
+ background: rgba(255,255,255,0.09);
2638
+ color: rgba(255,255,255,0.94);
2639
+ }
2640
+ .html-preview-body {
2641
+ flex: 1 1 auto;
2642
+ min-height: 0;
2643
+ padding: 0;
2644
+ }
2645
+ #html-preview-frame {
2646
+ width: 100%;
2647
+ height: 100%;
2648
+ min-height: 0;
2649
+ border: none;
2650
+ border-radius: 0;
2651
+ background: #ffffff;
2652
+ box-shadow: none;
2653
+ display: block;
2654
+ }
2655
+ #code-editor {
2656
+ background:
2657
+ radial-gradient(circle at top right, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.01) 22%, transparent 44%),
2658
+ linear-gradient(180deg, #0d0d0f 0%, #09090a 100%);
2659
+ padding: 18px 18px 20px 18px !important;
2660
+ font-size: 13px;
2661
+ line-height: 1.65;
2662
+ color: rgba(255,255,255,0.86) !important;
2663
+ }
2664
+ #code-editor.is-structured-hidden {
2665
+ display: none !important;
2666
+ }
2667
+ #code-editor::placeholder {
2668
+ color: rgba(255,255,255,0.16);
2669
+ }
2670
+ .code-structured-editor {
2671
+ flex: 1 1 auto;
2672
+ min-height: 0;
2673
+ max-height: 100%;
2674
+ display: none;
2675
+ flex-direction: column;
2676
+ gap: 10px;
2677
+ padding: 14px;
2678
+ overflow-y: auto;
2679
+ overflow-x: hidden;
2680
+ background:
2681
+ radial-gradient(circle at top right, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.01) 22%, transparent 44%),
2682
+ linear-gradient(180deg, #0d0d0f 0%, #09090a 100%);
2683
+ scrollbar-width: thin;
2684
+ scrollbar-color: rgba(255,255,255,0.26) transparent;
2685
+ }
2686
+ .code-structured-editor.is-active {
2687
+ display: flex;
2688
+ }
2689
+ .code-structured-editor::-webkit-scrollbar {
2690
+ width: 6px;
2691
+ }
2692
+ .code-structured-editor::-webkit-scrollbar-track {
2693
+ background: transparent;
2694
+ }
2695
+ .code-structured-editor::-webkit-scrollbar-thumb {
2696
+ background: rgba(255,255,255,0.22);
2697
+ border-radius: 999px;
2698
+ }
2699
+ .code-structured-card {
2700
+ display: flex;
2701
+ flex-direction: column;
2702
+ min-height: 0;
2703
+ border-radius: 16px;
2704
+ border: 1px solid rgba(255,255,255,0.08);
2705
+ background: rgba(255,255,255,0.035);
2706
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
2707
+ overflow: hidden;
2708
+ }
2709
+ .code-structured-card.is-attached {
2710
+ border-color: rgba(96,165,250,0.5);
2711
+ box-shadow: 0 0 0 1px rgba(96,165,250,0.24), inset 0 1px 0 rgba(255,255,255,0.04);
2712
+ }
2713
+ .code-structured-card-head {
2714
+ display: flex;
2715
+ align-items: center;
2716
+ gap: 10px;
2717
+ min-height: 46px;
2718
+ padding: 0 12px;
2719
+ background: rgba(255,255,255,0.03);
2720
+ border-bottom: 1px solid rgba(255,255,255,0.05);
2721
+ }
2722
+ .code-structured-card-head-main {
2723
+ min-width: 0;
2724
+ flex: 1 1 auto;
2725
+ display: flex;
2726
+ align-items: center;
2727
+ gap: 10px;
2728
+ }
2729
+ .code-structured-card-title-wrap {
2730
+ min-width: 0;
2731
+ flex: 1 1 auto;
2732
+ display: flex;
2733
+ flex-direction: column;
2734
+ gap: 2px;
2735
+ }
2736
+ .code-structured-card-title {
2737
+ min-width: 0;
2738
+ overflow: hidden;
2739
+ text-overflow: ellipsis;
2740
+ white-space: nowrap;
2741
+ font-size: 12px;
2742
+ line-height: 1.2;
2743
+ font-weight: 800;
2744
+ color: rgba(255,255,255,0.92);
2745
+ }
2746
+ .code-structured-card-meta {
2747
+ font-size: 10px;
2748
+ line-height: 1;
2749
+ color: rgba(255,255,255,0.4);
2750
+ font-weight: 700;
2751
+ letter-spacing: 0.02em;
2752
+ }
2753
+ .code-structured-card-actions {
2754
+ display: inline-flex;
2755
+ align-items: center;
2756
+ gap: 6px;
2757
+ flex: 0 0 auto;
2758
+ }
2759
+ .code-structured-icon,
2760
+ .code-structured-ai,
2761
+ .code-structured-toggle {
2762
+ width: 24px;
2763
+ height: 24px;
2764
+ border-radius: 999px;
2765
+ display: inline-flex;
2766
+ align-items: center;
2767
+ justify-content: center;
2768
+ border: 1px solid rgba(255,255,255,0.1);
2769
+ background: rgba(255,255,255,0.06);
2770
+ color: rgba(255,255,255,0.86);
2771
+ flex: 0 0 auto;
2772
+ transition: all 0.18s ease;
2773
+ }
2774
+ .code-structured-ai:hover,
2775
+ .code-structured-toggle:hover {
2776
+ background: rgba(255,255,255,0.14);
2777
+ color: #ffffff;
2778
+ border-color: rgba(255,255,255,0.18);
2779
+ }
2780
+ .code-structured-ai.is-attached {
2781
+ background: rgba(96,165,250,0.18);
2782
+ color: #93c5fd;
2783
+ border-color: rgba(96,165,250,0.32);
2784
+ }
2785
+
2786
+ .code-structured-card-body {
2787
+ display: block;
2788
+ min-height: 0;padding: 0;
2789
+ overflow:hidden}
2790
+ .code-structured-card.is-collapsed .code-structured-card-body {
2791
+ display: none;
2792
+ }
2793
+ .code-structured-editor-input {
2794
+ width: 100%;
2795
+ min-height: 120px;
2796
+ max-height: 360px;
2797
+ border: none;
2798
+ outline: none;
2799
+ resize: vertical;
2800
+ padding: 14px 16px 16px;
2801
+ background: transparent;
2802
+ color: rgba(255,255,255,0.88);
2803
+ font-size: 13px;
2804
+ line-height: 1.7;
2805
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
2806
+ white-space: pre;
2807
+ overflow: auto;
2808
+ overflow-wrap: normal;
2809
+ tab-size: 2;
2810
+ }
2811
+ .code-block-actions {
2812
+ display: none !important;
2813
+ overflow-y: auto;
2814
+ overflow-x: hidden;
2815
+ scrollbar-width: thin;
2816
+ scrollbar-color: rgba(255,255,255,0.26) transparent;
2817
+ }
2818
+ .code-block-actions.hidden {
2819
+ display: none !important;
2820
+ }
2821
+ .code-block-actions::-webkit-scrollbar {
2822
+ width: 5px;
2823
+ }
2824
+ .code-block-actions::-webkit-scrollbar-track {
2825
+ background: transparent;
2826
+ }
2827
+ .code-block-actions::-webkit-scrollbar-thumb {
2828
+ background: rgba(255,255,255,0.22);
2829
+ border-radius: 999px;
2830
+ }
2831
+ .code-block-item {
2832
+ display: flex;
2833
+ align-items: center;
2834
+ gap: 8px;
2835
+ min-height: 34px;
2836
+ padding: 5px 7px;
2837
+ border-radius: 11px;
2838
+ border: 1px solid rgba(255,255,255,0.08);
2839
+ background: rgba(255,255,255,0.03);
2840
+ }
2841
+ .code-block-item-label {
2842
+ min-width: 0;
2843
+ flex: 1 1 auto;
2844
+ overflow: hidden;
2845
+ text-overflow: ellipsis;
2846
+ white-space: nowrap;
2847
+ font-size: 11px;
2848
+ line-height: 1.2;
2849
+ color: rgba(255,255,255,0.84);
2850
+ letter-spacing: 0.01em;
2851
+ }
2852
+ .code-block-edit-btn {
2853
+ width: 26px;
2854
+ height: 26px;
2855
+ border-radius: 999px;
2856
+ display: inline-flex;
2857
+ align-items: center;
2858
+ justify-content: center;
2859
+ border: 1px solid rgba(255,255,255,0.12);
2860
+ background: rgba(255,255,255,0.07);
2861
+ color: rgba(255,255,255,0.92);
2862
+ transition: all 0.18s ease;
2863
+ }
2864
+ .code-block-edit-btn:hover {
2865
+ background: rgba(255,255,255,0.18);
2866
+ border-color: rgba(255,255,255,0.24);
2867
+ color: #ffffff;
2868
+ }
2869
+ .code-block-icon {
2870
+ width: 22px;
2871
+ height: 22px;
2872
+ border-radius: 999px;
2873
+ display: inline-flex;
2874
+ align-items: center;
2875
+ justify-content: center;
2876
+ background: rgba(255,255,255,0.08);
2877
+ border: 1px solid rgba(255,255,255,0.1);
2878
+ color: rgba(255,255,255,0.9);
2879
+ flex: 0 0 auto;
2880
+ font-size: 12px;
2881
+ }
2882
+ .code-block-empty {
2883
+ min-height: 34px;
2884
+ border-radius: 11px;
2885
+ border: 1px dashed rgba(255,255,255,0.14);
2886
+ display: flex;
2887
+ align-items: center;
2888
+ justify-content: center;
2889
+ color: rgba(255,255,255,0.45);
2890
+ }
2891
+ body.html-preview-active #code-workspace {
2892
+ flex-direction: row;
2893
+ }
2894
+ body.html-preview-active .code-editor-pane,
2895
+ body.html-preview-active .code-structured-editor {
2896
+ width: 50%;
2897
+ flex: 0 0 50%;
2898
+ }
2899
+ body.html-preview-active .html-preview-pane {
2900
+ display: flex !important;
2901
+ width: 50%;
2902
+ flex: 0 0 50%;
2903
+ }
2904
+ body.mode-code #right-panel,
2905
+ body[data-ui-mode="code"] #right-panel,
2906
+ #right-panel.mobile-active {
2907
+ display: flex !important;
2908
+ width: 100% !important;
2909
+ min-width: 0 !important;
2910
+ max-width: 100% !important;
2911
+ min-height: 360px !important;
2912
+ max-height: 520px !important;
2913
+ opacity: 1 !important;
2914
+ visibility: visible !important;
2915
+ overflow: hidden !important;
2916
+ transition: none !important;
2917
+ }
2918
+ body:not(.mode-code):not([data-ui-mode="code"]) #right-panel:not(.mobile-active) {
2919
+ min-height: 0;
2920
+ max-height: 0;
2921
+ opacity: 0;
2922
+ overflow: hidden;
2923
+ display: none !important;
2924
+ }
2925
+
2926
+ @media (min-width: 901px) {
2927
+ body.desktop-code-open {
2928
+ height: auto !important;
2929
+ min-height: 100vh !important;
2930
+ overflow-y: auto !important;
2931
+ overflow-x: hidden !important;
2932
+ }
2933
+ body.desktop-code-open #main-layout,
2934
+ body.desktop-code-open #left-panel,
2935
+ body.desktop-code-open #middle-zone,
2936
+ body.desktop-code-panel-mounted #main-layout,
2937
+ body.desktop-code-panel-mounted #left-panel,
2938
+ body.desktop-code-panel-mounted #middle-zone {
2939
+ height: auto !important;
2940
+ min-height: 0 !important;
2941
+ max-height: none !important;
2942
+ overflow: visible !important;
2943
+ }
2944
+ body.desktop-code-panel-mounted #middle-zone {
2945
+ display: flex !important;
2946
+ flex-direction: column !important;
2947
+ width: 100% !important;
2948
+ flex: 0 0 auto !important;
2949
+ min-height: 602px !important;
2950
+ align-items: stretch !important;
2951
+ gap: 0 !important;
2952
+ }
2953
+ body.desktop-code-panel-mounted #left-panel {
2954
+ display: flex !important;
2955
+ flex-direction: column !important;
2956
+ align-items: stretch !important;
2957
+ }
2958
+ body.desktop-code-panel-mounted .island-box {
2959
+ display: grid !important;
2960
+ width: 100% !important;
2961
+ flex: 0 0 auto !important;
2962
+ grid-template-rows: 270px !important;
2963
+ min-height: 270px !important;
2964
+ height: 270px !important;
2965
+ max-height: 270px !important;
2966
+ overflow: hidden !important;
2967
+ margin-bottom: 0 !important;
2968
+ }
2969
+ body.desktop-code-panel-mounted #desktop-code-panel-host {
2970
+ display: block !important;
2971
+ width: 100% !important;
2972
+ min-width: 0 !important;
2973
+ min-height: 320px !important;
2974
+ margin-top: 0 !important;
2975
+ visibility: visible !important;
2976
+ opacity: 1 !important;
2977
+ }
2978
+ body.desktop-code-panel-mounted #right-panel {
2979
+ grid-column: auto !important;
2980
+ grid-row: auto !important;
2981
+ width: 100% !important;
2982
+ min-width: 0 !important;
2983
+ max-width: 100% !important;
2984
+ display: flex !important;
2985
+ opacity: 1 !important;
2986
+ visibility: visible !important;
2987
+ border-radius: 0 0 28px 28px !important;
2988
+ border-top: 1px solid rgba(255,255,255,0.05) !important;
2989
+ box-shadow: 0 24px 50px rgba(0,0,0,0.32) !important;
2990
+ }
2991
+ body.desktop-code-open #top-zone,
2992
+ body.desktop-code-open #chat-box,
2993
+ body.desktop-code-open #chat-input-shell,
2994
+ body.desktop-code-open #chat-main-stack {
2995
+ visibility: visible !important;
2996
+ opacity: 1 !important;
2997
+ display: flex !important;
2998
+ }
2999
+ }
3000
+ @media (max-width: 1280px) {
3001
+ #chat-side-ad {
3002
+ display: flex !important;
3003
+ width: 324px;
3004
+ min-width: 324px;
3005
+ flex-basis: 324px;
3006
+ }
3007
+ }
3008
+ @media (max-width: 900px) {
3009
+ body.mobile-code-stacked .island-box {
3010
+ grid-template-rows: 320px minmax(240px, auto) 270px !important;
3011
+ }
3012
+ body.mobile-code-stacked #right-panel {
3013
+ grid-column: 1 / span 2 !important;
3014
+ grid-row: 2 !important;
3015
+ z-index: 8 !important;
3016
+ }
3017
+ body.mobile-code-stacked #chat-side-ad {
3018
+ grid-column: 1 !important;
3019
+ grid-row: 3 !important;
3020
+ z-index: 16 !important;
3021
+ margin-top: 0 !important;
3022
+ }
3023
+ body.mobile-code-stacked #board-right-rail {
3024
+ grid-column: 2 !important;
3025
+ grid-row: 3 !important;
3026
+ z-index: 17 !important;
3027
+ }
3028
+ #main-layout {
3029
+ width: 100%;
3030
+ max-width: 100%;
3031
+ margin-left: 0;
3032
+ padding-left: 0 !important;
3033
+ flex: 0 0 auto !important;
3034
+ height: auto !important;
3035
+ min-height: 320px !important;
3036
+ box-sizing: border-box;
3037
+ overflow-x: visible !important;
3038
+ overflow-y: visible !important;
3039
+ display: flex !important;
3040
+ }
3041
+ #board-right-rail {
3042
+ display: flex !important;
3043
+ grid-column: 2 !important;
3044
+ grid-row: 3 !important;
3045
+ order: 5;
3046
+ width: 58px !important;
3047
+ min-width: 58px !important;
3048
+ max-width: 58px !important;
3049
+ height: 270px !important;
3050
+ min-height: 270px !important;
3051
+ max-height: 270px !important;
3052
+ border-radius: 0 !important;
3053
+ border: none !important;
3054
+ border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
3055
+ background: #ffffff !important;
3056
+ box-shadow: none !important;
3057
+ overflow: hidden !important;
3058
+ }
3059
+ #board-right-rail-scroll {
3060
+ height: 100% !important;
3061
+ padding: 10px 0 !important;
3062
+ gap: 8px !important;
3063
+ align-items: center !important;
3064
+ justify-content: flex-start !important;
3065
+ }
3066
+ .board-rail-btn {
3067
+ width: 36px;
3068
+ height: 36px;
3069
+ border-radius: 12px;
3070
+ }
3071
+ #left-panel {
3072
+ height: auto !important;
3073
+ min-height: 320px !important;
3074
+ display: flex !important;
3075
+ }
3076
+ .island-box {
3077
+ border-radius: 0 !important;
3078
+ padding: 0 !important;
3079
+ margin: 0 !important;
3080
+ margin-bottom: 0 !important;
3081
+ display: grid !important;
3082
+ grid-template-columns: minmax(0, calc(100% - 58px)) 58px !important;
3083
+ grid-template-rows: 320px auto auto !important;
3084
+ align-content: stretch !important;
3085
+ align-items: stretch !important;
3086
+ justify-items: stretch !important;
3087
+ height: auto !important;
3088
+ max-height: none !important;
3089
+ }
3090
+ body:not(.started) #chat-main-stack,
3091
+ body.started #chat-main-stack {
3092
+ grid-column: 1 !important;
3093
+ grid-row: 1 !important;
3094
+ flex: 1 1 auto !important;
3095
+ width: 100% !important;
3096
+ max-width: 100% !important;
3097
+ min-width: 0 !important;
3098
+ min-height: 320px !important;
3099
+ height: 320px !important;
3100
+ max-height: 320px !important;
3101
+ padding-right: 0 !important;
3102
+ box-sizing: border-box !important;
3103
+ }
3104
+ #chat-main-stack {
3105
+ grid-column: 1 !important;
3106
+ grid-row: 1 !important;
3107
+ order: 1;
3108
+ flex: 1 1 auto !important;
3109
+ width: 100% !important;
3110
+ max-width: 100% !important;
3111
+ min-width: 0;
3112
+ min-height: 320px !important;
3113
+ height: 320px !important;
3114
+ max-height: 320px !important;
3115
+ padding-right: 0 !important;
3116
+ box-sizing: border-box !important;
3117
+ }
3118
+ #top-zone {
3119
+ flex: 1 1 auto !important;
3120
+ min-height: 0 !important;
3121
+ max-height: 100% !important;
3122
+ }
3123
+ #chat-box {
3124
+ min-height: 0 !important;
3125
+ max-height: 100% !important;
3126
+ padding: 14px !important;
3127
+ }
3128
+ #tts-controls {
3129
+ padding: 10px 12px 0 12px;
3130
+ }
3131
+ .tts-panel {
3132
+ max-height: none;
3133
+ padding: 11px;
3134
+ }
3135
+ .tts-panel-head {
3136
+ flex-direction: column;
3137
+ align-items: stretch;
3138
+ }
3139
+ .tts-download-btn {
3140
+ width: 100%;
3141
+ }
3142
+ .tts-meta-grid,
3143
+ .tts-slider-grid {
3144
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3145
+ }
3146
+ #chat-input-shell {
3147
+ position: relative !important;
3148
+ padding: 14px !important;
3149
+ min-height: 82px !important;
3150
+ }
3151
+ #chat-input-field {
3152
+ width: 100% !important;
3153
+ padding: 0 !important;
3154
+ }
3155
+ #chat-input-actions {
3156
+ position: absolute !important;
3157
+ left: auto !important;
3158
+ right: 14px !important;
3159
+ bottom: 10px !important;
3160
+ width: auto !important;
3161
+ justify-content: flex-end !important;
3162
+ gap: 4px !important;
3163
+ z-index: 40 !important;
3164
+ }
3165
+ #recent-mode-actions {
3166
+ flex-wrap: nowrap !important;
3167
+ max-width: 144px !important;
3168
+ overflow-x: visible !important;
3169
+ overflow-y: visible !important;
3170
+ }
3171
+ #chat-input-profile {
3172
+ left: 14px !important;
3173
+ bottom: 12px !important;
3174
+ width: 40px !important;
3175
+ height: 40px !important;
3176
+ }
3177
+ #prompt-input {
3178
+ min-height: 34px !important;
3179
+ max-height: 64px !important;
3180
+ padding: 6px 0 0 0 !important;
3181
+ }
3182
+ #middle-zone {
3183
+ padding: 0 !important;
3184
+ gap: 0 !important;
3185
+ max-width: 100% !important;
3186
+ }
3187
+ #btn-menu {
3188
+ width: 38px !important;
3189
+ height: 38px !important;
3190
+ min-width: 38px !important;
3191
+ min-height: 38px !important;
3192
+ max-width: 38px !important;
3193
+ max-height: 38px !important;
3194
+ border-radius: 12px !important;
3195
+ margin: 0 auto !important;
3196
+ margin-right: 0 !important;
3197
+ padding: 0 !important;
3198
+ aspect-ratio: 1 / 1 !important;
3199
+ background: rgba(255, 255, 255, 0.08) !important;
3200
+ clip-path: inset(0 round 12px);
3201
+ }
3202
+ #btn-menu:hover,
3203
+ #btn-menu.active,
3204
+ #btn-menu.menu-open {
3205
+ border-radius: 12px !important;
3206
+ clip-path: inset(0 round 12px);
3207
+ }
3208
+ #btn-menu.menu-open {
3209
+ background: #ececec !important;
3210
+ color: #111111 !important;
3211
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
3212
+ }
3213
+ #btn-menu.menu-open i {
3214
+ color: #111111 !important;
3215
+ }
3216
+ #btn-submit-left {
3217
+ width: 36px !important;
3218
+ height: 36px !important;
3219
+ min-width: 36px !important;
3220
+ min-height: 36px !important;
3221
+ max-width: 36px !important;
3222
+ max-height: 36px !important;
3223
+ border-radius: 12px !important;
3224
+ margin: 0 auto !important;
3225
+ clip-path: inset(0 round 12px);
3226
+ }
3227
+ #toolbar-main-controls #icon-scroll-wrapper {
3228
+ flex: 0 0 auto;
3229
+ width: 100%;
3230
+ min-height: 0;
3231
+ height: auto;
3232
+ overflow: visible !important;
3233
+ display: flex;
3234
+ align-items: flex-start;
3235
+ justify-content: flex-start;
3236
+ mask-image: none !important;
3237
+ -webkit-mask-image: none !important;
3238
+ }
3239
+ #toolbar-main-controls #icon-scroll-wrapper::-webkit-scrollbar {
3240
+ display: none !important;
3241
+ }
3242
+ #toolbar-main-controls #icon-scroll-container {
3243
+ width: 100% !important;
3244
+ min-height: 0 !important;
3245
+ height: auto !important;
3246
+ overflow: visible !important;
3247
+ display: flex !important;
3248
+ flex-direction: column !important;
3249
+ align-items: center !important;
3250
+ justify-content: flex-start !important;
3251
+ gap: 12px !important;
3252
+ padding: 6px 0 14px !important;
3253
+ margin: 0 auto !important;
3254
+ box-sizing: border-box !important;
3255
+ }
3256
+ #toolbar-main-controls #icon-scroll-container > button {
3257
+ align-self: center !important;
3258
+ margin-left: auto !important;
3259
+ margin-right: auto !important;
3260
+ }
3261
+ #toolbar-scroll-indicator {
3262
+ display: none !important;
3263
+ }
3264
+ #chat-side-ad {
3265
+ grid-column: 1 !important;
3266
+ grid-row: 3 !important;
3267
+ order: 4;
3268
+ width: auto !important;
3269
+ min-width: 0 !important;
3270
+ max-width: 100% !important;
3271
+ flex-basis: auto;
3272
+ flex: 1 1 auto;
3273
+ height: 270px !important;
3274
+ min-height: 270px !important;
3275
+ max-height: 270px !important;
3276
+ border-left: none;
3277
+ border-top: 1px solid rgba(15, 23, 42, 0.08);
3278
+ background: #ffffff !important;
3279
+ overflow: hidden !important;
3280
+ display: flex !important;
3281
+ align-items: center !important;
3282
+ justify-content: center !important;
3283
+ justify-self: stretch !important;
3284
+ align-self: stretch !important;
3285
+ }
3286
+ #chat-side-ad-body {
3287
+ height: 270px !important;
3288
+ min-height: 270px !important;
3289
+ max-height: 270px !important;
3290
+ padding: 9px 11px !important;
3291
+ align-items: center;
3292
+ justify-content: center;
3293
+ background: #ffffff !important;
3294
+ overflow: hidden !important;
3295
+ width: 100%;
3296
+ min-width: 0 !important;
3297
+ box-sizing: border-box;
3298
+ }
3299
+ .chat-ad-frame {
3300
+ width: 300px !important;
3301
+ height: 250px !important;
3302
+ aspect-ratio: auto !important;
3303
+ min-width: 0 !important;
3304
+ max-width: 300px !important;
3305
+ margin: 0 auto !important;
3306
+ transform-origin: top center !important;
3307
+ overflow: visible !important;
3308
+ }
3309
+ #right-panel {
3310
+ grid-column: 1 / span 2 !important;
3311
+ grid-row: 2 !important;
3312
+ order: 3;
3313
+ width: 100% !important;
3314
+ min-width: 0 !important;
3315
+ max-width: 100% !important;
3316
+ border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
3317
+ border-left: none !important;
3318
+ border-radius: 0 !important;
3319
+ min-height: 0;
3320
+ }
3321
+ body.mode-code #right-panel,
3322
+ #right-panel.mobile-active {
3323
+ max-height: 520px !important;
3324
+ min-height: 320px !important;
3325
+ }
3326
+ }
3327
+ @media (max-width: 380px) {
3328
+ /* Keep right sidebar identical even on very small screens */
3329
+ #main-layout {
3330
+ padding-left: 0 !important;
3331
+ }
3332
+ body:not(.started) #chat-main-stack,
3333
+ body.started #chat-main-stack,
3334
+ #chat-main-stack {
3335
+ width: 100% !important;
3336
+ max-width: 100% !important;
3337
+ }
3338
+ #chat-input-field {
3339
+ padding-right: 0 !important;
3340
+ }
3341
+ #chat-input-actions {
3342
+ right: 12px !important;
3343
+ bottom: 10px !important;
3344
+ }
3345
+ #chat-side-ad-body {
3346
+ padding: 9px 11px !important;
3347
+ }
3348
+ #tts-controls {
3349
+ padding: 10px 10px 0 10px;
3350
+ }
3351
+ .tts-meta-grid,
3352
+ .tts-slider-grid {
3353
+ grid-template-columns: 1fr;
3354
+ }
3355
+ }
3356
+ @media (max-width: 640px) {
3357
+ #chat-side-ad {
3358
+ width: auto !important;
3359
+ min-width: 0 !important;
3360
+ max-width: 100% !important;
3361
+ flex-basis: auto !important;
3362
+ flex: 1 1 auto !important;
3363
+ overflow: hidden !important;
3364
+ }
3365
+ #chat-side-ad-body {
3366
+ padding: 9px 11px !important;
3367
+ overflow: hidden !important;
3368
+ }
3369
+ .chat-ad-frame {
3370
+ width: 300px !important;
3371
+ height: 250px !important;
3372
+ min-width: 0 !important;
3373
+ max-width: 300px !important;
3374
+ aspect-ratio: auto !important;
3375
+ }
3376
+ }
3377
+ @media (max-width: 500px) {
3378
+ #board-right-rail {
3379
+ display: flex !important;
3380
+ width: 58px !important;
3381
+ min-width: 58px !important;
3382
+ max-width: 58px !important;
3383
+ }
3384
+ #chat-input-actions {
3385
+ right: 12px !important;
3386
+ bottom: 10px !important;
3387
+ z-index: 280 !important;
3388
+ }
3389
+ #recent-mode-actions {
3390
+ max-width: 32px !important;
3391
+ }
3392
+ #prompt-input {
3393
+ padding-right: 0 !important;
3394
+ }
3395
+ }
3396
+
3397
+ /* Chat layout: full-height list + keep input/profile in normal relative flow */
3398
+ #chat-main-stack {
3399
+ position: relative !important;
3400
+ overflow: hidden !important;
3401
+ }
3402
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #top-zone {
3403
+ position: relative !important;
3404
+ display: flex !important;
3405
+ flex-direction: column !important;
3406
+ flex: 1 1 auto !important;
3407
+ min-height: 0 !important;
3408
+ height: 100% !important;
3409
+ }
3410
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-box {
3411
+ flex: 1 1 auto !important;
3412
+ min-height: 0 !important;
3413
+ height: 100% !important;
3414
+ max-height: 100% !important;
3415
+ padding: 14px !important;
3416
+ padding-bottom: 76px !important;
3417
+ }
3418
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-shell {
3419
+ position: absolute !important;
3420
+ left: 0 !important;
3421
+ right: 0 !important;
3422
+ bottom: 0 !important;
3423
+ z-index: 12 !important;
3424
+ display: flex !important;
3425
+ flex-direction: row !important;
3426
+ align-items: center !important;
3427
+ gap: 10px !important;
3428
+ margin-top: 0 !important;
3429
+ min-height: 0 !important;
3430
+ padding: 14px !important;
3431
+ background: linear-gradient(
3432
+ to bottom,
3433
+ rgba(0, 0, 0, 0) 0%,
3434
+ rgba(0, 0, 0, 0.16) 46%,
3435
+ rgba(0, 0, 0, 0.52) 100%
3436
+ ) !important;
3437
+ border: none !important;
3438
+ backdrop-filter: none !important;
3439
+ -webkit-backdrop-filter: none !important;
3440
+ box-shadow: 0 -8px 18px rgba(0, 0, 0, 0.16) !important;
3441
+ }
3442
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-shell::after {
3443
+ content: none !important;
3444
+ display: none !important;
3445
+ }
3446
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-field,
3447
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-profile {
3448
+ position: relative;
3449
+ z-index: 2;
3450
+ }
3451
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-profile {
3452
+ left: auto !important;
3453
+ bottom: auto !important;
3454
+ width: 34px !important;
3455
+ height: 34px !important;
3456
+ flex: 0 0 34px !important;
3457
+ align-self: center !important;
3458
+ }
3459
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-field {
3460
+ order: 0 !important;
3461
+ flex: 1 1 auto !important;
3462
+ min-width: 0 !important;
3463
+ display: block !important;
3464
+ gap: 4px !important;
3465
+ padding-right: 118px !important;
3466
+ background: transparent !important;
3467
+ border: none !important;
3468
+ box-shadow: none !important;
3469
+ }
3470
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #prompt-attachment-row {
3471
+ padding: 0 118px 0 0 !important;
3472
+ }
3473
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #chat-input-actions {
3474
+ order: 0 !important;
3475
+ position: absolute !important;
3476
+ right: 12px !important;
3477
+ bottom: 8px !important;
3478
+ top: auto !important;
3479
+ left: auto !important;
3480
+ align-self: auto !important;
3481
+ gap: 4px !important;
3482
+ z-index: 22 !important;
3483
+ padding: 4px 8px !important;
3484
+ border-radius: 9999px !important;
3485
+ background: rgba(0, 0, 0, 0.92) !important;
3486
+ box-shadow: 0 8px 18px rgba(0,0,0,0.22) !important;
3487
+ }
3488
+ #chat-main-stack:not(.settings-mode):not(.menu-mode) #prompt-input {
3489
+ padding: 6px 0 0 0 !important;
3490
+ margin: 0 !important;
3491
+ transform: translateY(0) !important;
3492
+ min-height: 30px !important;
3493
+ max-height: 64px !important;
3494
+ height: auto !important;
3495
+ line-height: 1.45 !important;
3496
+ overflow-y: auto !important;
3497
+ }
3498
+ #prompt-input {
3499
+ font-size: 0.9rem !important;
3500
+ line-height: 1.45 !important;
3501
+ min-height: 30px !important;
3502
+ max-height: 64px !important;
3503
+ padding: 6px 0 0 0 !important;
3504
+ }
3505
+
3506
+ @media (max-width: 900px) {
3507
+ body.html-preview-active #code-workspace {
3508
+ flex-direction: column;
3509
+ }
3510
+ body.html-preview-active .code-editor-pane {
3511
+ width: 100%;
3512
+ flex: 0 0 auto;
3513
+ }
3514
+ body.html-preview-active .html-preview-pane {
3515
+ display: flex !important;
3516
+ width: 100%;
3517
+ flex: 0 0 auto;
3518
+ }
3519
+ #html-preview-frame {
3520
+ min-height: 180px;
3521
+ }
3522
+ }
3523
+
3524
+