R-Kentaren commited on
Commit
4e3dc84
·
verified ·
1 Parent(s): 57430a1

Upload static/style.css with huggingface_hub

Browse files
Files changed (1) hide show
  1. static/style.css +1221 -330
static/style.css CHANGED
@@ -1,4 +1,32 @@
1
  /* DeepSeek V4 Flash Ultra-Minimalist & Mobile-Friendly Style Sheet */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  :root {
3
  --bg-primary: #f8f9fa;
4
  --bg-workspace: #f8f9fa;
@@ -33,12 +61,14 @@
33
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
34
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.01);
35
  --shadow-lg: 0 10px 30px -10px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.02);
36
-
37
- --sidebar-left-width: 260px;
38
  }
39
 
40
  /* Reset Rules */
41
- * { margin: 0; padding: 0; box-sizing: border-box; }
 
 
 
 
42
 
43
  body {
44
  background-color: var(--bg-primary);
@@ -52,10 +82,24 @@ body {
52
  -webkit-font-smoothing: antialiased;
53
  }
54
 
55
- ::-webkit-scrollbar { width: 4px; height: 4px; }
56
- ::-webkit-scrollbar-track { background: transparent; }
57
- ::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 10px; }
58
- ::-webkit-scrollbar-thumb:hover { background: #cbd5e1; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  /* Parent container */
61
  .app-container {
@@ -66,84 +110,130 @@ body {
66
  position: relative;
67
  }
68
 
69
- /* ============================================================
70
- LEFT SIDEBAR: Chat History
71
- ============================================================ */
72
  .sidebar-left {
73
- width: var(--sidebar-left-width);
74
- min-width: var(--sidebar-left-width);
75
- background-color: var(--bg-card);
76
  border-right: 1px solid var(--border-color);
77
  display: flex;
78
  flex-direction: column;
79
- height: 100%;
80
- z-index: 10;
81
- transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1),
82
- min-width 0.25s cubic-bezier(0.4, 0, 0.2, 1),
83
- opacity 0.15s ease;
84
- overflow: hidden;
85
- }
86
-
87
- .sidebar-left.collapsed {
88
- width: 0;
89
- min-width: 0;
90
- border-right: none;
91
- opacity: 0;
92
- pointer-events: none;
93
  }
94
 
95
  .left-sidebar-header {
96
- height: 56px;
97
  border-bottom: 1px solid var(--border-color);
98
  display: flex;
99
- align-items: center;
100
  justify-content: space-between;
101
- padding: 0 12px 0 16px;
102
- flex-shrink: 0;
103
  }
104
 
105
- .left-sidebar-header .header-brand {
 
106
  display: flex;
107
  align-items: center;
108
- gap: 8px;
109
- overflow: hidden;
 
110
  }
111
 
112
- .left-sidebar-actions {
113
- padding: 10px 12px;
 
 
 
 
 
 
 
 
 
114
  flex-shrink: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  }
116
 
 
 
 
 
 
 
117
  .new-chat-btn {
118
- width: 100%;
119
  display: flex;
120
  align-items: center;
121
- justify-content: center;
122
  gap: 8px;
123
- padding: 8px 16px;
124
- border: 1px dashed var(--border-color);
125
  border-radius: var(--border-radius-sm);
126
- background: transparent;
 
127
  color: var(--text-secondary);
128
- font-family: var(--font-body);
129
  font-size: 12px;
130
  font-weight: 500;
 
131
  cursor: pointer;
132
  transition: var(--transition-smooth);
 
133
  }
134
 
135
  .new-chat-btn:hover {
136
- background-color: var(--btn-light-bg);
137
  border-color: #cbd5e1;
138
  color: var(--text-primary);
 
139
  border-style: solid;
140
  }
141
 
142
- /* Chat History List */
143
  .chat-history-list {
144
  flex: 1;
145
  overflow-y: auto;
146
- padding: 4px 8px;
147
  display: flex;
148
  flex-direction: column;
149
  gap: 2px;
@@ -153,20 +243,19 @@ body {
153
  font-size: 11px;
154
  color: var(--text-muted);
155
  text-align: center;
156
- padding: 20px 8px;
157
- font-style: italic;
158
  }
159
 
160
  .chat-history-item {
161
  display: flex;
162
  align-items: center;
163
- justify-content: space-between;
164
  padding: 8px 10px;
165
  border-radius: var(--border-radius-sm);
166
  cursor: pointer;
167
  transition: var(--transition-smooth);
168
- gap: 6px;
169
- min-width: 0;
170
  }
171
 
172
  .chat-history-item:hover {
@@ -178,110 +267,85 @@ body {
178
  border: 1px solid rgba(37, 99, 235, 0.15);
179
  }
180
 
181
- .chat-item-content {
182
- display: flex;
183
- align-items: center;
184
- gap: 8px;
185
  flex: 1;
186
  min-width: 0;
187
- color: var(--text-secondary);
188
- }
189
-
190
- .chat-item-content svg {
191
- flex-shrink: 0;
192
- opacity: 0.5;
193
  }
194
 
195
- .chat-item-title {
196
  font-size: 12px;
197
  font-weight: 500;
 
198
  white-space: nowrap;
199
  overflow: hidden;
200
  text-overflow: ellipsis;
201
- color: var(--text-primary);
202
  }
203
 
204
- .chat-item-date {
205
- font-size: 9px;
206
  color: var(--text-muted);
207
- flex-shrink: 0;
208
- margin-left: auto;
209
  }
210
 
211
- .chat-item-delete {
212
- opacity: 0;
213
- background: transparent;
 
214
  border: none;
 
215
  color: var(--text-muted);
216
  cursor: pointer;
217
- padding: 4px;
218
  display: flex;
219
  align-items: center;
220
- border-radius: 4px;
 
221
  transition: var(--transition-smooth);
222
  flex-shrink: 0;
223
  }
224
 
225
- .chat-history-item:hover .chat-item-delete {
226
  opacity: 1;
227
  }
228
 
229
- .chat-item-delete:hover {
230
- color: var(--danger);
231
  background-color: #fef2f2;
 
232
  }
233
 
234
- /* User Profile Footer */
235
  .left-sidebar-footer {
 
236
  border-top: 1px solid var(--border-color);
237
- padding: 10px 12px;
238
- flex-shrink: 0;
239
  }
240
 
241
- .user-profile {
242
- display: flex;
243
- align-items: center;
244
- gap: 10px;
 
 
 
 
 
 
 
 
 
245
  }
246
 
247
- .user-avatar {
248
- width: 32px;
249
- height: 32px;
250
- border-radius: 50%;
251
- background-color: var(--btn-light-bg);
252
- display: flex;
253
- align-items: center;
254
- justify-content: center;
255
- color: var(--text-muted);
256
- flex-shrink: 0;
257
- overflow: hidden;
258
  }
259
 
260
- .user-info {
261
- flex: 1;
262
- min-width: 0;
263
  display: flex;
264
- flex-direction: column;
265
- gap: 1px;
266
- }
267
-
268
- .user-name {
269
- font-size: 12px;
270
- font-weight: 600;
271
- color: var(--text-primary);
272
- white-space: nowrap;
273
- overflow: hidden;
274
- text-overflow: ellipsis;
275
- }
276
-
277
- .user-status {
278
- font-size: 9.5px;
279
- color: var(--text-muted);
280
  }
281
 
282
- /* ============================================================
283
- MAIN WORKSPACE
284
- ============================================================ */
285
  .main-workspace {
286
  flex: 1;
287
  display: flex;
@@ -293,7 +357,7 @@ body {
293
  min-width: 0;
294
  }
295
 
296
- /* Header Bar */
297
  .workspace-header {
298
  height: 56px;
299
  border-bottom: 1px solid var(--border-color);
@@ -305,27 +369,34 @@ body {
305
  z-index: 10;
306
  }
307
 
308
- .header-left-group {
309
  display: flex;
310
  align-items: center;
311
  gap: 10px;
312
  }
313
 
314
- .chat-title-header {
 
 
 
 
 
 
 
 
315
  font-family: var(--font-heading);
316
- font-size: 14px;
317
- font-weight: 600;
 
318
  color: var(--text-primary);
319
- white-space: nowrap;
320
- overflow: hidden;
321
- text-overflow: ellipsis;
322
- max-width: 300px;
323
  }
324
 
325
- .mobile-only { display: none !important; }
326
-
327
- .header-actions { display: flex; gap: 8px; }
 
328
 
 
329
  .header-btn {
330
  appearance: none;
331
  -webkit-appearance: none;
@@ -346,12 +417,29 @@ body {
346
  outline: none;
347
  box-shadow: var(--shadow-sm);
348
  }
349
- .header-btn:hover { background-color: var(--btn-light-bg); border-color: #cbd5e1; color: var(--text-primary); }
350
- .header-btn:active { background-color: var(--btn-light-hover); transform: scale(0.98); }
351
- .header-btn svg { flex-shrink: 0; }
 
 
 
 
 
 
 
 
 
 
 
 
352
 
353
  /* Viewport Layout */
354
- .workspace-viewport { flex: 1; overflow-y: auto; display: flex; flex-direction: column; }
 
 
 
 
 
355
 
356
  /* Studio Dashboard (Empty state) */
357
  .studio-dashboard {
@@ -388,233 +476,1036 @@ body {
388
  transition: var(--transition-smooth);
389
  margin-bottom: 36px;
390
  }
391
- .console-box:focus-within { border-color: var(--border-focus); box-shadow: var(--shadow-lg); }
392
- .console-box textarea {
393
- width: 100%; border: none; outline: none; resize: none;
394
- font-family: var(--font-body); font-size: 14.5px; color: var(--text-primary);
395
- background: transparent; line-height: 1.45; min-height: 50px;
396
- }
397
- .console-box textarea::placeholder { color: var(--text-muted); }
398
-
399
- .inner-shelf-preview, .mini-shelf-preview { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 2px; }
400
 
401
- .console-action-row { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border-light); padding-top: 10px; }
402
-
403
- .circle-btn-action {
404
- width: 28px; height: 28px; border-radius: 50%;
405
- border: 1px solid var(--border-color); background: transparent;
406
- color: var(--text-secondary); cursor: pointer;
407
- display: flex; align-items: center; justify-content: center;
408
- transition: var(--transition-smooth); outline: none;
409
  }
410
- .circle-btn-action:hover { background-color: var(--btn-light-bg); color: var(--text-primary); }
411
 
412
- .circle-btn-send {
413
- width: 28px; height: 28px; border-radius: 50%; border: none;
414
- background-color: #1f2937; color: #ffffff; cursor: pointer;
415
- display: flex; align-items: center; justify-content: center;
416
- transition: var(--transition-smooth); outline: none;
 
 
 
 
 
 
417
  }
418
- .circle-btn-send:hover { background-color: #111827; }
419
 
420
- /* Showcase chips */
421
- .showcase-section { width: 100%; }
422
- .showcase-title { font-size: 12.5px; color: var(--text-secondary); margin-bottom: 12px; text-align: center; font-weight: 500; }
423
- .showcase-chips-row { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
424
 
425
- .recipe-chip {
426
- display: flex; align-items: center; gap: 8px; padding: 8px 16px;
427
- border-radius: var(--border-radius-pill); background-color: var(--bg-card);
428
- border: 1px solid var(--border-color); cursor: pointer;
429
- transition: var(--transition-smooth); font-size: 12px; font-weight: 500;
430
- color: var(--text-secondary); box-shadow: var(--shadow-sm);
 
431
  }
432
- .recipe-chip:hover { background-color: var(--btn-light-bg); border-color: #cbd5e1; color: var(--text-primary); transform: translateY(-1px); }
433
- .recipe-chip:active { transform: translateY(0); }
434
- .chip-icon { font-size: 14px; }
435
 
436
- /* Chat thread viewport */
437
- .chat-thread-container { flex: 1; display: flex; flex-direction: column; height: 100%; overflow: hidden; }
 
 
 
 
 
438
 
439
- .chat-messages-feed {
440
- flex: 1; overflow-y: auto; padding: 24px;
441
- display: flex; flex-direction: column; gap: 24px;
442
- max-width: 680px; width: 100%; margin: 0 auto;
 
 
 
 
 
 
 
 
 
 
443
  }
444
 
445
- /* Message bubbles */
446
- .message-bubble { display: flex; flex-direction: column; gap: 4px; max-width: 90%; animation: slideUp 0.25s ease-out; }
447
- .message-bubble.user { align-self: flex-end; }
448
- .message-bubble.assistant { align-self: flex-start; width: 100%; max-width: 100%; }
449
- .message-meta { font-size: 10px; color: var(--text-muted); font-weight: 600; margin: 0 4px; }
450
- .message-bubble.user .message-meta { text-align: right; }
451
- .message-body { padding: 10px 14px; border-radius: var(--border-radius-md); font-size: 13.5px; line-height: 1.5; box-shadow: var(--shadow-sm); }
452
- .message-bubble.user .message-body { background-color: var(--btn-light-bg); border: 1px solid var(--border-color); color: var(--text-primary); border-bottom-right-radius: 4px; }
453
- .message-bubble.assistant .message-body { background-color: var(--bg-card); border: 1px solid var(--border-color); color: var(--text-primary); border-bottom-left-radius: 4px; }
454
-
455
- /* Bubble attachments */
456
- .bubble-attachments { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 6px; margin-top: 8px; max-width: 320px; }
457
- .bubble-attachment-card { border-radius: var(--border-radius-sm); overflow: hidden; border: 1px solid var(--border-color); background-color: #fafafa; position: relative; aspect-ratio: 16/10; }
458
- .bubble-attachment-card img, .bubble-attachment-card video { width: 100%; height: 100%; object-fit: cover; }
459
- .bubble-attachment-label { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.6); color: #fff; font-size: 8px; text-align: center; padding: 1px; font-family: var(--font-mono); }
460
-
461
- /* Collapsible Thoughts */
462
- .thought-container { margin-bottom: 12px; border: 1px solid var(--border-color); border-radius: var(--border-radius-sm); overflow: hidden; }
463
- .thought-header { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; background-color: #f9fafb; cursor: pointer; user-select: none; transition: var(--transition-smooth); }
464
- .thought-header:hover { background-color: #f3f4f6; }
465
- .thought-title-group { display: flex; align-items: center; gap: 6px; font-family: var(--font-heading); font-size: 11px; font-weight: 600; color: var(--text-secondary); }
466
- .thought-timer { font-family: var(--font-mono); font-size: 9.5px; color: var(--text-muted); }
467
- .thought-toggle-icon { font-size: 9px; color: var(--text-secondary); transition: transform 0.2s ease; }
468
- .thought-container.collapsed .thought-toggle-icon { transform: rotate(-90deg); }
469
- .thought-content { padding: 10px 12px; font-family: var(--font-mono); font-size: 11.5px; color: var(--text-secondary); background-color: #ffffff; border-top: 1px solid var(--border-color); white-space: pre-wrap; max-height: 150px; overflow-y: auto; }
470
- .thought-container.collapsed .thought-content { display: none; }
471
-
472
- /* RP Markdown Styles */
473
- .rp-narration { font-style: italic; color: #6b7280; background-color: rgba(107,114,128,0.06); padding: 1px 4px; border-radius: 3px; border-left: 2px solid #9ca3af; }
474
- .rp-dialogue { color: #2563eb; font-weight: 500; background-color: rgba(37,99,235,0.06); padding: 1px 4px; border-radius: 3px; }
475
- .rp-bold { font-weight: 700; color: #111827; }
476
- .rp-ooc { color: #9ca3af; font-style: italic; opacity: 0.7; font-size: 0.9em; }
477
- .rp-divider { border: none; border-top: 1px dashed #d1d5db; margin: 12px 0; }
478
-
479
- /* Toggle Switch */
480
- .toggle-switch { position: relative; display: inline-block; width: 36px; height: 20px; flex-shrink: 0; }
481
- .toggle-switch input { opacity: 0; width: 0; height: 0; }
482
- .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #d1d5db; transition: 0.2s; border-radius: 20px; }
483
- .toggle-slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white; transition: 0.2s; border-radius: 50%; }
484
- .toggle-switch input:checked + .toggle-slider { background-color: #111827; }
485
- .toggle-switch input:checked + .toggle-slider:before { transform: translateX(16px); }
486
- .toggle-switch input:focus + .toggle-slider { box-shadow: 0 0 0 2px rgba(17,24,39,0.2); }
487
-
488
- .setting-description { font-size: 10.5px; color: var(--text-muted); line-height: 1.4; padding-top: 2px; }
489
-
490
- /* Markdown body */
491
- .markdown-body h1, .markdown-body h2, .markdown-body h3 { margin-top: 12px; margin-bottom: 4px; font-family: var(--font-heading); font-weight: 600; }
492
- .markdown-body h1 { font-size: 14.5px; border-bottom: 1px solid var(--border-light); padding-bottom: 2px; }
493
- .markdown-body h2 { font-size: 13.5px; }
494
- .markdown-body h3 { font-size: 12.5px; }
495
- .markdown-body p { margin-bottom: 6px; }
496
- .markdown-body p:last-child { margin-bottom: 0; }
497
- .markdown-body code { font-family: var(--font-mono); font-size: 11px; background-color: var(--btn-light-bg); padding: 2px 4px; border-radius: 4px; color: var(--accent-blue); }
498
- .markdown-body pre { margin: 10px 0; border-radius: var(--border-radius-sm); overflow: hidden; border: 1px solid var(--border-color); }
499
- .markdown-body pre code { display: block; padding: 10px; overflow-x: auto; background-color: #0f172a !important; color: #e2e8f0; }
500
- .markdown-body table { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: 12px; }
501
- .markdown-body th, .markdown-body td { border: 1px solid var(--border-color); padding: 6px 8px; text-align: left; }
502
- .markdown-body th { background-color: var(--bg-primary); font-weight: 600; }
503
-
504
- /* Reply footer */
505
- .chat-mini-footer { padding: 12px 20px; background-color: var(--bg-workspace); border-top: 1px solid var(--border-color); }
506
- .chat-mini-footer .console-box { max-width: 680px; margin: 0 auto; box-shadow: var(--shadow-sm); padding: 8px 12px; border-radius: var(--border-radius-md); margin-bottom: 0; }
507
-
508
- /* Overlay */
509
- .sidebar-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.2); backdrop-filter: blur(1.5px); z-index: 990; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; }
510
- .sidebar-overlay.active { opacity: 1; pointer-events: auto; }
511
-
512
- /* Right Settings Drawer */
513
- .sidebar-right { position: absolute; top: 0; right: 0; bottom: 0; width: 320px; background-color: var(--bg-sidebar); border-left: 1px solid var(--border-color); display: flex; flex-direction: column; z-index: 1000; transition: transform 0.25s cubic-bezier(0.4,0,0.2,1); box-shadow: -4px 0 20px rgba(0,0,0,0.03); transform: translateX(0); }
514
- .sidebar-right.collapsed { transform: translateX(100%); }
515
- .right-sidebar-header { padding: 14px 20px; border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; }
516
- .right-sidebar-header h3 { font-family: var(--font-heading); font-size: 13.5px; font-weight: 600; color: var(--text-primary); }
517
- .close-drawer { border-color: transparent !important; }
518
- .close-drawer:hover { background-color: var(--btn-light-bg) !important; }
519
- .sidebar-right-content { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
520
- .right-block-card { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--border-radius-md); padding: 14px; display: flex; flex-direction: column; gap: 10px; }
521
- .flex-1-card { flex: 1; min-height: 180px; }
522
- .card-block-header { display: flex; justify-content: space-between; align-items: center; }
523
- .block-title { font-family: var(--font-heading); font-size: 12px; font-weight: 600; color: var(--text-primary); }
524
 
525
- /* System Prompt Textarea */
526
- .system-prompt-textarea { width: 100%; border: 1px solid var(--border-color); border-radius: var(--border-radius-sm); background-color: #f9fafb; color: var(--text-primary); font-family: var(--font-body); font-size: 12px; line-height: 1.5; padding: 8px 10px; resize: vertical; min-height: 60px; outline: none; transition: var(--transition-smooth); }
527
- .system-prompt-textarea:focus { border-color: var(--border-focus); background-color: #ffffff; }
528
- .system-prompt-textarea::placeholder { color: var(--text-muted); }
529
-
530
- /* Effort Picker */
531
- .effort-picker { display: flex; background-color: #f9fafb; border: 1px solid var(--border-color); padding: 2.5px; border-radius: var(--border-radius-sm); gap: 2px; }
532
- .effort-pill { flex: 1; cursor: pointer; text-align: center; position: relative; }
533
- .effort-pill input { position: absolute; opacity: 0; width: 0; height: 0; }
534
- .effort-pill span { display: block; padding: 5px 0; font-size: 11px; font-weight: 500; border-radius: 4px; color: var(--text-secondary); transition: var(--transition-smooth); font-family: var(--font-heading); }
535
- .effort-pill input:checked + span { background-color: #111827; color: #ffffff; }
536
- .effort-pill:hover span:not(input:checked + span) { color: var(--text-primary); background-color: rgba(0,0,0,0.02); }
 
 
 
537
 
538
- /* Slider Input */
539
- .slider-input { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: 2px; background-color: #e5e7eb; outline: none; cursor: pointer; }
540
- .slider-input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; border-radius: 50%; background-color: #111827; cursor: pointer; transition: var(--transition-smooth); }
541
- .slider-input::-webkit-slider-thumb:hover { background-color: #1f2937; transform: scale(1.1); }
542
- .slider-input::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background-color: #111827; cursor: pointer; border: none; }
543
- .block-value { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); font-weight: 500; }
544
 
545
- /* Code Block Copy Button */
546
- .code-block-wrapper { position: relative; }
547
- .code-block-wrapper .copy-code-btn { position: absolute; top: 6px; right: 6px; background-color: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: #9ca3af; font-size: 10px; font-family: var(--font-mono); padding: 2px 8px; border-radius: 4px; cursor: pointer; transition: var(--transition-smooth); }
548
- .code-block-wrapper .copy-code-btn:hover { background-color: rgba(255,255,255,0.2); color: #e5e7eb; }
549
-
550
- /* Media chips */
551
- .media-chip { display: flex; align-items: center; background-color: #f9fafb; border: 1px solid var(--border-color); border-radius: var(--border-radius-sm); padding: 5px 8px; gap: 8px; transition: var(--transition-smooth); }
552
- .media-chip-preview { width: 24px; height: 24px; border-radius: 4px; object-fit: cover; background-color: #eaeaea; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 10px; }
553
- .media-chip-preview img { width: 100%; height: 100%; object-fit: cover; }
554
- .media-chip-details { flex: 1; min-width: 0; }
555
- .media-chip-name { font-size: 10.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-primary); }
556
- .media-chip-meta { font-size: 9px; color: var(--text-muted); display: flex; gap: 4px; }
557
- .media-chip-remove { background: transparent; border: none; color: var(--text-muted); cursor: pointer; padding: 3px; display: flex; }
558
- .media-chip-remove:hover { color: var(--danger); }
559
-
560
- /* Quick preview */
561
- .quick-preview-item { width: 32px; height: 32px; border-radius: var(--border-radius-sm); border: 1px solid var(--border-color); overflow: hidden; position: relative; flex-shrink: 0; }
562
- .quick-preview-item img { width: 100%; height: 100%; object-fit: cover; }
563
- .quick-preview-badge { position: absolute; top: 1.5px; right: 1.5px; background-color: var(--accent-blue); width: 6px; height: 6px; border-radius: 50%; }
564
-
565
- .shelf-list { display: flex; flex-direction: column; gap: 6px; overflow-y: auto; }
566
- .empty-shelf-text { font-size: 10.5px; color: var(--text-muted); text-align: center; padding: 8px 0; font-style: italic; }
567
-
568
- .right-sidebar-footer { padding: 10px 16px; border-top: 1px solid var(--border-color); }
569
- .status-indicator-group { display: flex; align-items: center; gap: 6px; font-size: 10.5px; color: var(--text-secondary); }
570
- .status-dot { width: 5px; height: 5px; border-radius: 50%; }
571
- .status-dot.online { background-color: #10b981; }
572
-
573
- /* Animations */
574
- .spinner-light { width: 12px; height: 12px; border: 1.5px solid rgba(255,255,255,0.2); border-top: 1.5px solid #ffffff; border-radius: 50%; animation: spin 0.8s linear infinite; }
575
- @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
576
- @keyframes slideUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
577
 
578
- /* ==========================================================================
579
- Responsive
580
- ========================================================================== */
581
- @media (min-width: 641px) {
582
- .sidebar-right.collapsed { transform: translateX(100%); }
 
583
  }
584
 
585
- @media (max-width: 768px) {
586
- :root { --sidebar-left-width: 240px; }
 
 
 
587
  }
588
 
589
- @media (max-width: 640px) {
590
- body { font-size: 13.5px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
 
 
 
 
 
 
 
 
 
592
  .sidebar-left {
593
  position: absolute;
594
- top: 0; left: 0; bottom: 0;
595
- z-index: 999;
 
 
596
  transform: translateX(-100%);
597
- transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);
598
- box-shadow: 4px 0 20px rgba(0,0,0,0.08);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
  }
600
- .sidebar-left.collapsed { transform: translateX(-100%); }
601
- .sidebar-left.mobile-open { transform: translateX(0); width: 260px; min-width: 260px; opacity: 1; pointer-events: auto; }
602
 
603
- .mobile-only { display: flex !important; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
604
 
605
- .workspace-header { padding: 0 16px; }
606
- .header-btn span { display: none; }
607
- .header-btn { padding: 8px; }
 
 
 
 
 
 
 
 
 
 
 
608
 
609
- .sidebar-right { width: 100% !important; border-left: none; }
 
 
610
 
611
- .studio-dashboard { padding: 30px 16px; }
612
- .welcome-heading { font-size: 22px; margin-bottom: 20px; }
 
 
613
 
614
- .chat-messages-feed { padding: 16px; gap: 18px; }
615
- .message-body { padding: 9px 12px; font-size: 13px; }
616
- .message-bubble { max-width: 95%; }
617
- .chat-mini-footer { padding: 10px 12px; }
618
- .recipe-chip { padding: 6px 12px; font-size: 11.5px; }
619
- .code-block-wrapper .copy-code-btn { font-size: 9px; padding: 1px 6px; }
620
  }
 
1
  /* DeepSeek V4 Flash Ultra-Minimalist & Mobile-Friendly Style Sheet */
2
+
3
+ /* ── Gradio overrides ─────────────────────────────────────────────────── */
4
+ /* Hide the default Gradio container padding and background */
5
+ .gradio-container,
6
+ .contain {
7
+ max-width: 100% !important;
8
+ padding: 0 !important;
9
+ margin: 0 !important;
10
+ background: transparent !important;
11
+ border: none !important;
12
+ }
13
+
14
+ /* Hide hidden Gradio components */
15
+ .component-3,
16
+ [data-testid="textbox"]:not(#custom-app-root *) {
17
+ display: none !important;
18
+ }
19
+
20
+ /* Make sure our app container fills the viewport */
21
+ #custom-app-root {
22
+ width: 100%;
23
+ height: 100vh;
24
+ overflow: hidden;
25
+ }
26
+
27
+ #custom-app-root > .app-container {
28
+ height: 100vh;
29
+ }
30
  :root {
31
  --bg-primary: #f8f9fa;
32
  --bg-workspace: #f8f9fa;
 
61
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
62
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.01);
63
  --shadow-lg: 0 10px 30px -10px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.02);
 
 
64
  }
65
 
66
  /* Reset Rules */
67
+ * {
68
+ margin: 0;
69
+ padding: 0;
70
+ box-sizing: border-box;
71
+ }
72
 
73
  body {
74
  background-color: var(--bg-primary);
 
82
  -webkit-font-smoothing: antialiased;
83
  }
84
 
85
+ /* Custom Scrollbars */
86
+ ::-webkit-scrollbar {
87
+ width: 4px;
88
+ height: 4px;
89
+ }
90
+
91
+ ::-webkit-scrollbar-track {
92
+ background: transparent;
93
+ }
94
+
95
+ ::-webkit-scrollbar-thumb {
96
+ background: #e5e7eb;
97
+ border-radius: 10px;
98
+ }
99
+
100
+ ::-webkit-scrollbar-thumb:hover {
101
+ background: #cbd5e1;
102
+ }
103
 
104
  /* Parent container */
105
  .app-container {
 
110
  position: relative;
111
  }
112
 
113
+ /* ── Left Sidebar: Chat History ─────────────────────────────────────── */
 
 
114
  .sidebar-left {
115
+ width: 280px;
116
+ min-width: 280px;
117
+ background-color: var(--bg-sidebar);
118
  border-right: 1px solid var(--border-color);
119
  display: flex;
120
  flex-direction: column;
121
+ z-index: 20;
122
+ transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
 
 
 
 
 
 
 
 
 
 
 
 
123
  }
124
 
125
  .left-sidebar-header {
126
+ padding: 14px 16px;
127
  border-bottom: 1px solid var(--border-color);
128
  display: flex;
 
129
  justify-content: space-between;
130
+ align-items: center;
 
131
  }
132
 
133
+ /* User profile section */
134
+ .user-profile-section {
135
  display: flex;
136
  align-items: center;
137
+ gap: 10px;
138
+ padding: 12px 16px;
139
+ border-bottom: 1px solid var(--border-light);
140
  }
141
 
142
+ .user-avatar {
143
+ width: 32px;
144
+ height: 32px;
145
+ border-radius: 50%;
146
+ background-color: var(--btn-light-bg);
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ font-size: 14px;
151
+ font-weight: 600;
152
+ color: var(--text-muted);
153
  flex-shrink: 0;
154
+ transition: var(--transition-smooth);
155
+ }
156
+
157
+ .user-avatar.logged-in {
158
+ background-color: #111827;
159
+ color: #ffffff;
160
+ }
161
+
162
+ .user-info-text {
163
+ flex: 1;
164
+ min-width: 0;
165
+ }
166
+
167
+ .user-display-name {
168
+ font-size: 12px;
169
+ font-weight: 600;
170
+ color: var(--text-primary);
171
+ white-space: nowrap;
172
+ overflow: hidden;
173
+ text-overflow: ellipsis;
174
+ }
175
+
176
+ .hf-login-btn {
177
+ display: inline-block;
178
+ margin-top: 4px;
179
+ padding: 3px 10px;
180
+ font-size: 10px;
181
+ font-weight: 600;
182
+ font-family: var(--font-body);
183
+ color: #ffffff;
184
+ background-color: #111827;
185
+ border: none;
186
+ border-radius: var(--border-radius-pill);
187
+ cursor: pointer;
188
+ transition: var(--transition-smooth);
189
+ }
190
+
191
+ .hf-login-btn:hover {
192
+ background-color: #374151;
193
+ }
194
+
195
+ .hf-login-btn.logged-in {
196
+ background-color: transparent;
197
+ color: var(--danger);
198
+ border: 1px solid var(--border-color);
199
  }
200
 
201
+ .hf-login-btn.logged-in:hover {
202
+ background-color: #fef2f2;
203
+ border-color: #fecaca;
204
+ }
205
+
206
+ /* New Chat button */
207
  .new-chat-btn {
 
208
  display: flex;
209
  align-items: center;
 
210
  gap: 8px;
211
+ margin: 12px 16px 8px;
212
+ padding: 8px 14px;
213
  border-radius: var(--border-radius-sm);
214
+ background-color: var(--bg-card);
215
+ border: 1px dashed var(--border-color);
216
  color: var(--text-secondary);
 
217
  font-size: 12px;
218
  font-weight: 500;
219
+ font-family: var(--font-body);
220
  cursor: pointer;
221
  transition: var(--transition-smooth);
222
+ width: calc(100% - 32px);
223
  }
224
 
225
  .new-chat-btn:hover {
 
226
  border-color: #cbd5e1;
227
  color: var(--text-primary);
228
+ background-color: var(--btn-light-bg);
229
  border-style: solid;
230
  }
231
 
232
+ /* Chat history list */
233
  .chat-history-list {
234
  flex: 1;
235
  overflow-y: auto;
236
+ padding: 8px 12px;
237
  display: flex;
238
  flex-direction: column;
239
  gap: 2px;
 
243
  font-size: 11px;
244
  color: var(--text-muted);
245
  text-align: center;
246
+ padding: 20px 10px;
247
+ line-height: 1.6;
248
  }
249
 
250
  .chat-history-item {
251
  display: flex;
252
  align-items: center;
253
+ gap: 4px;
254
  padding: 8px 10px;
255
  border-radius: var(--border-radius-sm);
256
  cursor: pointer;
257
  transition: var(--transition-smooth);
258
+ position: relative;
 
259
  }
260
 
261
  .chat-history-item:hover {
 
267
  border: 1px solid rgba(37, 99, 235, 0.15);
268
  }
269
 
270
+ .history-item-content {
 
 
 
271
  flex: 1;
272
  min-width: 0;
273
+ overflow: hidden;
 
 
 
 
 
274
  }
275
 
276
+ .history-item-title {
277
  font-size: 12px;
278
  font-weight: 500;
279
+ color: var(--text-primary);
280
  white-space: nowrap;
281
  overflow: hidden;
282
  text-overflow: ellipsis;
 
283
  }
284
 
285
+ .history-item-meta {
286
+ font-size: 9.5px;
287
  color: var(--text-muted);
288
+ margin-top: 2px;
 
289
  }
290
 
291
+ .history-item-delete {
292
+ width: 22px;
293
+ height: 22px;
294
+ border-radius: 4px;
295
  border: none;
296
+ background: transparent;
297
  color: var(--text-muted);
298
  cursor: pointer;
 
299
  display: flex;
300
  align-items: center;
301
+ justify-content: center;
302
+ opacity: 0;
303
  transition: var(--transition-smooth);
304
  flex-shrink: 0;
305
  }
306
 
307
+ .chat-history-item:hover .history-item-delete {
308
  opacity: 1;
309
  }
310
 
311
+ .history-item-delete:hover {
 
312
  background-color: #fef2f2;
313
+ color: var(--danger);
314
  }
315
 
 
316
  .left-sidebar-footer {
317
+ padding: 10px 16px;
318
  border-top: 1px solid var(--border-color);
 
 
319
  }
320
 
321
+ /* Left sidebar overlay (mobile) */
322
+ .sidebar-overlay-left {
323
+ position: absolute;
324
+ top: 0;
325
+ left: 0;
326
+ right: 0;
327
+ bottom: 0;
328
+ background-color: rgba(0, 0, 0, 0.2);
329
+ backdrop-filter: blur(1.5px);
330
+ z-index: 15;
331
+ opacity: 0;
332
+ pointer-events: none;
333
+ transition: opacity 0.2s ease;
334
  }
335
 
336
+ .sidebar-overlay-left.active {
337
+ opacity: 1;
338
+ pointer-events: auto;
 
 
 
 
 
 
 
 
339
  }
340
 
341
+ /* Header left group */
342
+ .header-left-group {
 
343
  display: flex;
344
+ align-items: center;
345
+ gap: 12px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  }
347
 
348
+ /* Main Workspace taking remaining width */
 
 
349
  .main-workspace {
350
  flex: 1;
351
  display: flex;
 
357
  min-width: 0;
358
  }
359
 
360
+ /* Clean Header Bar */
361
  .workspace-header {
362
  height: 56px;
363
  border-bottom: 1px solid var(--border-color);
 
369
  z-index: 10;
370
  }
371
 
372
+ .header-brand {
373
  display: flex;
374
  align-items: center;
375
  gap: 10px;
376
  }
377
 
378
+ .brand-logo-img {
379
+ width: 24px;
380
+ height: 24px;
381
+ object-fit: contain;
382
+ border-radius: 50%;
383
+ flex-shrink: 0;
384
+ }
385
+
386
+ .brand-name {
387
  font-family: var(--font-heading);
388
+ font-size: 15px;
389
+ font-weight: 700;
390
+ letter-spacing: -0.3px;
391
  color: var(--text-primary);
 
 
 
 
392
  }
393
 
394
+ .header-actions {
395
+ display: flex;
396
+ gap: 8px;
397
+ }
398
 
399
+ /* Simplified Header Buttons */
400
  .header-btn {
401
  appearance: none;
402
  -webkit-appearance: none;
 
417
  outline: none;
418
  box-shadow: var(--shadow-sm);
419
  }
420
+
421
+ .header-btn:hover {
422
+ background-color: var(--btn-light-bg);
423
+ border-color: #cbd5e1;
424
+ color: var(--text-primary);
425
+ }
426
+
427
+ .header-btn:active {
428
+ background-color: var(--btn-light-hover);
429
+ transform: scale(0.98);
430
+ }
431
+
432
+ .header-btn svg {
433
+ flex-shrink: 0;
434
+ }
435
 
436
  /* Viewport Layout */
437
+ .workspace-viewport {
438
+ flex: 1;
439
+ overflow-y: auto;
440
+ display: flex;
441
+ flex-direction: column;
442
+ }
443
 
444
  /* Studio Dashboard (Empty state) */
445
  .studio-dashboard {
 
476
  transition: var(--transition-smooth);
477
  margin-bottom: 36px;
478
  }
 
 
 
 
 
 
 
 
 
479
 
480
+ .console-box:focus-within {
481
+ border-color: var(--border-focus);
482
+ box-shadow: var(--shadow-lg);
 
 
 
 
 
483
  }
 
484
 
485
+ .console-box textarea {
486
+ width: 100%;
487
+ border: none;
488
+ outline: none;
489
+ resize: none;
490
+ font-family: var(--font-body);
491
+ font-size: 14.5px;
492
+ color: var(--text-primary);
493
+ background: transparent;
494
+ line-height: 1.45;
495
+ min-height: 50px;
496
  }
 
497
 
498
+ .console-box textarea::placeholder {
499
+ color: var(--text-muted);
500
+ }
 
501
 
502
+ /* Inner preview shelf inside console drawer */
503
+ .inner-shelf-preview,
504
+ .mini-shelf-preview {
505
+ display: flex;
506
+ flex-wrap: wrap;
507
+ gap: 6px;
508
+ padding-bottom: 2px;
509
  }
 
 
 
510
 
511
+ .console-action-row {
512
+ display: flex;
513
+ justify-content: space-between;
514
+ align-items: center;
515
+ border-top: 1px solid var(--border-light);
516
+ padding-top: 10px;
517
+ }
518
 
519
+ /* Action button circle */
520
+ .circle-btn-action {
521
+ width: 28px;
522
+ height: 28px;
523
+ border-radius: 50%;
524
+ border: 1px solid var(--border-color);
525
+ background: transparent;
526
+ color: var(--text-secondary);
527
+ cursor: pointer;
528
+ display: flex;
529
+ align-items: center;
530
+ justify-content: center;
531
+ transition: var(--transition-smooth);
532
+ outline: none;
533
  }
534
 
535
+ .circle-btn-action:hover {
536
+ background-color: var(--btn-light-bg);
537
+ color: var(--text-primary);
538
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
 
540
+ /* Send button dark circle */
541
+ .circle-btn-send {
542
+ width: 28px;
543
+ height: 28px;
544
+ border-radius: 50%;
545
+ border: none;
546
+ background-color: #1f2937;
547
+ color: #ffffff;
548
+ cursor: pointer;
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
552
+ transition: var(--transition-smooth);
553
+ outline: none;
554
+ }
555
 
556
+ .circle-btn-send:hover {
557
+ background-color: #111827;
558
+ }
 
 
 
559
 
560
+ /* Ultra-minimal Showcase chips (Decluttered) */
561
+ .showcase-section {
562
+ width: 100%;
563
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
564
 
565
+ .showcase-title {
566
+ font-size: 12.5px;
567
+ color: var(--text-secondary);
568
+ margin-bottom: 12px;
569
+ text-align: center;
570
+ font-weight: 500;
571
  }
572
 
573
+ .showcase-chips-row {
574
+ display: flex;
575
+ gap: 10px;
576
+ justify-content: center;
577
+ flex-wrap: wrap;
578
  }
579
 
580
+ .recipe-chip {
581
+ display: flex;
582
+ align-items: center;
583
+ gap: 8px;
584
+ padding: 8px 16px;
585
+ border-radius: var(--border-radius-pill);
586
+ background-color: var(--bg-card);
587
+ border: 1px solid var(--border-color);
588
+ cursor: pointer;
589
+ transition: var(--transition-smooth);
590
+ font-size: 12px;
591
+ font-weight: 500;
592
+ color: var(--text-secondary);
593
+ box-shadow: var(--shadow-sm);
594
+ }
595
+
596
+ .recipe-chip:hover {
597
+ background-color: var(--btn-light-bg);
598
+ border-color: #cbd5e1;
599
+ color: var(--text-primary);
600
+ transform: translateY(-1px);
601
+ }
602
+
603
+ .recipe-chip:active {
604
+ transform: translateY(0);
605
+ }
606
+
607
+ .chip-icon {
608
+ font-size: 14px;
609
+ }
610
+
611
+ /* Chat thread viewport */
612
+ .chat-thread-container {
613
+ flex: 1;
614
+ display: flex;
615
+ flex-direction: column;
616
+ height: 100%;
617
+ overflow: hidden;
618
+ }
619
+
620
+ .chat-messages-feed {
621
+ flex: 1;
622
+ overflow-y: auto;
623
+ padding: 24px;
624
+ display: flex;
625
+ flex-direction: column;
626
+ gap: 24px;
627
+ max-width: 680px;
628
+ width: 100%;
629
+ margin: 0 auto;
630
+ }
631
+
632
+ /* Message bubbles */
633
+ .message-bubble {
634
+ display: flex;
635
+ flex-direction: column;
636
+ gap: 4px;
637
+ max-width: 90%;
638
+ animation: slideUp 0.25s ease-out;
639
+ }
640
+
641
+ .message-bubble.user {
642
+ align-self: flex-end;
643
+ }
644
+
645
+ .message-bubble.assistant {
646
+ align-self: flex-start;
647
+ width: 100%;
648
+ max-width: 100%;
649
+ }
650
+
651
+ .message-meta {
652
+ font-size: 10px;
653
+ color: var(--text-muted);
654
+ font-weight: 600;
655
+ margin: 0 4px;
656
+ }
657
+
658
+ .message-bubble.user .message-meta {
659
+ text-align: right;
660
+ }
661
+
662
+ .message-body {
663
+ padding: 10px 14px;
664
+ border-radius: var(--border-radius-md);
665
+ font-size: 13.5px;
666
+ line-height: 1.5;
667
+ box-shadow: var(--shadow-sm);
668
+ }
669
+
670
+ .message-bubble.user .message-body {
671
+ background-color: var(--btn-light-bg);
672
+ border: 1px solid var(--border-color);
673
+ color: var(--text-primary);
674
+ border-bottom-right-radius: 4px;
675
+ }
676
+
677
+ .message-bubble.assistant .message-body {
678
+ background-color: var(--bg-card);
679
+ border: 1px solid var(--border-color);
680
+ color: var(--text-primary);
681
+ border-bottom-left-radius: 4px;
682
+ }
683
+
684
+ /* Bubble attachments grid */
685
+ .bubble-attachments {
686
+ display: grid;
687
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
688
+ gap: 6px;
689
+ margin-top: 8px;
690
+ max-width: 320px;
691
+ }
692
+
693
+ .bubble-attachment-card {
694
+ border-radius: var(--border-radius-sm);
695
+ overflow: hidden;
696
+ border: 1px solid var(--border-color);
697
+ background-color: #fafafa;
698
+ position: relative;
699
+ aspect-ratio: 16/10;
700
+ }
701
+
702
+ .bubble-attachment-card img,
703
+ .bubble-attachment-card video {
704
+ width: 100%;
705
+ height: 100%;
706
+ object-fit: cover;
707
+ }
708
+
709
+ .bubble-attachment-label {
710
+ position: absolute;
711
+ bottom: 0;
712
+ left: 0;
713
+ right: 0;
714
+ background: rgba(0, 0, 0, 0.6);
715
+ color: #fff;
716
+ font-size: 8px;
717
+ text-align: center;
718
+ padding: 1px;
719
+ font-family: var(--font-mono);
720
+ }
721
+
722
+ /* Collapsible Thoughts nodes */
723
+ .thought-container {
724
+ margin-bottom: 12px;
725
+ border: 1px solid var(--border-color);
726
+ border-radius: var(--border-radius-sm);
727
+ overflow: hidden;
728
+ }
729
+
730
+ .thought-header {
731
+ display: flex;
732
+ justify-content: space-between;
733
+ align-items: center;
734
+ padding: 6px 10px;
735
+ background-color: #f9fafb;
736
+ cursor: pointer;
737
+ user-select: none;
738
+ transition: var(--transition-smooth);
739
+ }
740
+
741
+ .thought-header:hover {
742
+ background-color: #f3f4f6;
743
+ }
744
+
745
+ .thought-title-group {
746
+ display: flex;
747
+ align-items: center;
748
+ gap: 6px;
749
+ font-family: var(--font-heading);
750
+ font-size: 11px;
751
+ font-weight: 600;
752
+ color: var(--text-secondary);
753
+ }
754
+
755
+ .thought-timer {
756
+ font-family: var(--font-mono);
757
+ font-size: 9.5px;
758
+ color: var(--text-muted);
759
+ }
760
+
761
+ .thought-toggle-icon {
762
+ font-size: 9px;
763
+ color: var(--text-secondary);
764
+ transition: transform 0.2s ease;
765
+ }
766
+
767
+ .thought-container.collapsed .thought-toggle-icon {
768
+ transform: rotate(-90deg);
769
+ }
770
+
771
+ .thought-content {
772
+ padding: 10px 12px;
773
+ font-family: var(--font-mono);
774
+ font-size: 11.5px;
775
+ color: var(--text-secondary);
776
+ background-color: #ffffff;
777
+ border-top: 1px solid var(--border-color);
778
+ white-space: pre-wrap;
779
+ max-height: 150px;
780
+ overflow-y: auto;
781
+ }
782
+
783
+ .thought-container.collapsed .thought-content {
784
+ display: none;
785
+ }
786
+
787
+ /* RP (Roleplay) Markdown Styles */
788
+ .rp-narration {
789
+ font-style: italic;
790
+ color: #6b7280;
791
+ background-color: rgba(107, 114, 128, 0.06);
792
+ padding: 1px 4px;
793
+ border-radius: 3px;
794
+ border-left: 2px solid #9ca3af;
795
+ }
796
+
797
+ .rp-dialogue {
798
+ color: #2563eb;
799
+ font-weight: 500;
800
+ background-color: rgba(37, 99, 235, 0.06);
801
+ padding: 1px 4px;
802
+ border-radius: 3px;
803
+ }
804
+
805
+ .rp-bold {
806
+ font-weight: 700;
807
+ color: #111827;
808
+ }
809
+
810
+ .rp-ooc {
811
+ color: #9ca3af;
812
+ font-style: italic;
813
+ opacity: 0.7;
814
+ font-size: 0.9em;
815
+ }
816
+
817
+ .rp-divider {
818
+ border: none;
819
+ border-top: 1px dashed #d1d5db;
820
+ margin: 12px 0;
821
+ }
822
+
823
+ /* Toggle Switch Component */
824
+ .toggle-switch {
825
+ position: relative;
826
+ display: inline-block;
827
+ width: 36px;
828
+ height: 20px;
829
+ flex-shrink: 0;
830
+ }
831
+
832
+ .toggle-switch input {
833
+ opacity: 0;
834
+ width: 0;
835
+ height: 0;
836
+ }
837
+
838
+ .toggle-slider {
839
+ position: absolute;
840
+ cursor: pointer;
841
+ top: 0;
842
+ left: 0;
843
+ right: 0;
844
+ bottom: 0;
845
+ background-color: #d1d5db;
846
+ transition: 0.2s;
847
+ border-radius: 20px;
848
+ }
849
+
850
+ .toggle-slider:before {
851
+ position: absolute;
852
+ content: "";
853
+ height: 14px;
854
+ width: 14px;
855
+ left: 3px;
856
+ bottom: 3px;
857
+ background-color: white;
858
+ transition: 0.2s;
859
+ border-radius: 50%;
860
+ }
861
+
862
+ .toggle-switch input:checked + .toggle-slider {
863
+ background-color: #111827;
864
+ }
865
+
866
+ .toggle-switch input:checked + .toggle-slider:before {
867
+ transform: translateX(16px);
868
+ }
869
+
870
+ .toggle-switch input:focus + .toggle-slider {
871
+ box-shadow: 0 0 0 2px rgba(17, 24, 39, 0.2);
872
+ }
873
+
874
+ /* Setting Description Text */
875
+ .setting-description {
876
+ font-size: 10.5px;
877
+ color: var(--text-muted);
878
+ line-height: 1.4;
879
+ padding-top: 2px;
880
+ }
881
+
882
+ /* Markdown typography rendering inside bubbles */
883
+ .markdown-body h1,
884
+ .markdown-body h2,
885
+ .markdown-body h3 {
886
+ margin-top: 12px;
887
+ margin-bottom: 4px;
888
+ font-family: var(--font-heading);
889
+ font-weight: 600;
890
+ }
891
+
892
+ .markdown-body h1 { font-size: 14.5px; border-bottom: 1px solid var(--border-light); padding-bottom: 2px; }
893
+ .markdown-body h2 { font-size: 13.5px; }
894
+ .markdown-body h3 { font-size: 12.5px; }
895
+
896
+ .markdown-body p {
897
+ margin-bottom: 6px;
898
+ }
899
+
900
+ .markdown-body p:last-child {
901
+ margin-bottom: 0;
902
+ }
903
+
904
+ .markdown-body code {
905
+ font-family: var(--font-mono);
906
+ font-size: 11px;
907
+ background-color: var(--btn-light-bg);
908
+ padding: 2px 4px;
909
+ border-radius: 4px;
910
+ color: var(--accent-blue);
911
+ }
912
+
913
+ .markdown-body pre {
914
+ margin: 10px 0;
915
+ border-radius: var(--border-radius-sm);
916
+ overflow: hidden;
917
+ border: 1px solid var(--border-color);
918
+ }
919
+
920
+ .markdown-body pre code {
921
+ display: block;
922
+ padding: 10px;
923
+ overflow-x: auto;
924
+ background-color: #0f172a !important;
925
+ color: #e2e8f0;
926
+ }
927
+
928
+ .markdown-body table {
929
+ width: 100%;
930
+ border-collapse: collapse;
931
+ margin: 10px 0;
932
+ font-size: 12px;
933
+ }
934
+
935
+ .markdown-body th,
936
+ .markdown-body td {
937
+ border: 1px solid var(--border-color);
938
+ padding: 6px 8px;
939
+ text-align: left;
940
+ }
941
+
942
+ .markdown-body th {
943
+ background-color: var(--bg-primary);
944
+ font-weight: 600;
945
+ }
946
+
947
+ /* Reply footer box */
948
+ .chat-mini-footer {
949
+ padding: 12px 20px;
950
+ background-color: var(--bg-workspace);
951
+ border-top: 1px solid var(--border-color);
952
+ }
953
+
954
+ .chat-mini-footer .console-box {
955
+ max-width: 680px;
956
+ margin: 0 auto;
957
+ box-shadow: var(--shadow-sm);
958
+ padding: 8px 12px;
959
+ border-radius: var(--border-radius-md);
960
+ margin-bottom: 0;
961
+ }
962
+
963
+ /* Backdrop Overlay for mobile Settings slide */
964
+ .sidebar-overlay {
965
+ position: absolute;
966
+ top: 0;
967
+ left: 0;
968
+ right: 0;
969
+ bottom: 0;
970
+ background-color: rgba(0, 0, 0, 0.2);
971
+ backdrop-filter: blur(1.5px);
972
+ z-index: 990;
973
+ opacity: 0;
974
+ pointer-events: none;
975
+ transition: opacity 0.2s ease;
976
+ }
977
+
978
+ .sidebar-overlay.active {
979
+ opacity: 1;
980
+ pointer-events: auto;
981
+ }
982
+
983
+ /* Collapsible Right settings Drawer */
984
+ .sidebar-right {
985
+ position: absolute;
986
+ top: 0;
987
+ right: 0;
988
+ bottom: 0;
989
+ width: 320px;
990
+ background-color: var(--bg-sidebar);
991
+ border-left: 1px solid var(--border-color);
992
+ display: flex;
993
+ flex-direction: column;
994
+ z-index: 1000;
995
+ transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
996
+ box-shadow: -4px 0 20px rgba(0, 0, 0, 0.03);
997
+ transform: translateX(0);
998
+ }
999
+
1000
+ .sidebar-right.collapsed {
1001
+ transform: translateX(100%);
1002
+ }
1003
+
1004
+ .right-sidebar-header {
1005
+ padding: 14px 20px;
1006
+ border-bottom: 1px solid var(--border-color);
1007
+ display: flex;
1008
+ justify-content: space-between;
1009
+ align-items: center;
1010
+ }
1011
+
1012
+ .right-sidebar-header h3 {
1013
+ font-family: var(--font-heading);
1014
+ font-size: 13.5px;
1015
+ font-weight: 600;
1016
+ color: var(--text-primary);
1017
+ }
1018
+
1019
+ .close-drawer {
1020
+ border-color: transparent !important;
1021
+ }
1022
+
1023
+ .close-drawer:hover {
1024
+ background-color: var(--btn-light-bg) !important;
1025
+ }
1026
+
1027
+ .sidebar-right-content {
1028
+ flex: 1;
1029
+ overflow-y: auto;
1030
+ padding: 16px;
1031
+ display: flex;
1032
+ flex-direction: column;
1033
+ gap: 14px;
1034
+ }
1035
+
1036
+ .right-block-card {
1037
+ background-color: var(--bg-card);
1038
+ border: 1px solid var(--border-color);
1039
+ border-radius: var(--border-radius-md);
1040
+ padding: 14px;
1041
+ display: flex;
1042
+ flex-direction: column;
1043
+ gap: 10px;
1044
+ }
1045
+
1046
+ .flex-1-card {
1047
+ flex: 1;
1048
+ min-height: 180px;
1049
+ }
1050
+
1051
+ .card-block-header {
1052
+ display: flex;
1053
+ justify-content: space-between;
1054
+ align-items: center;
1055
+ }
1056
+
1057
+ .block-title {
1058
+ font-family: var(--font-heading);
1059
+ font-size: 12px;
1060
+ font-weight: 600;
1061
+ color: var(--text-primary);
1062
+ }
1063
+
1064
+ /* Password Toggle and Credentials field */
1065
+ input[type="password"] {
1066
+ width: 100%;
1067
+ background-color: #f9fafb;
1068
+ border: 1px solid var(--border-color);
1069
+ border-radius: var(--border-radius-sm);
1070
+ color: var(--text-primary);
1071
+ padding: 7px 10px;
1072
+ font-size: 12px;
1073
+ font-family: var(--font-body);
1074
+ transition: var(--transition-smooth);
1075
+ }
1076
+
1077
+ input[type="password"]:focus {
1078
+ outline: none;
1079
+ border-color: var(--border-focus);
1080
+ background-color: #ffffff;
1081
+ }
1082
+
1083
+ .password-wrapper {
1084
+ position: relative;
1085
+ display: flex;
1086
+ align-items: center;
1087
+ }
1088
+
1089
+ .password-wrapper input {
1090
+ padding-right: 32px;
1091
+ }
1092
+
1093
+ .visibility-toggle {
1094
+ position: absolute;
1095
+ right: 6px;
1096
+ background: transparent;
1097
+ border: none;
1098
+ color: var(--text-muted);
1099
+ cursor: pointer;
1100
+ padding: 4px;
1101
+ display: flex;
1102
+ align-items: center;
1103
+ }
1104
+
1105
+ .visibility-toggle:hover {
1106
+ color: var(--text-primary);
1107
+ }
1108
+
1109
+ /* Effort Radio Buttons Pills */
1110
+ .effort-picker {
1111
+ display: flex;
1112
+ background-color: #f9fafb;
1113
+ border: 1px solid var(--border-color);
1114
+ padding: 2.5px;
1115
+ border-radius: var(--border-radius-sm);
1116
+ gap: 2px;
1117
+ }
1118
+
1119
+ .effort-pill {
1120
+ flex: 1;
1121
+ cursor: pointer;
1122
+ text-align: center;
1123
+ position: relative;
1124
+ }
1125
+
1126
+ .effort-pill input {
1127
+ position: absolute;
1128
+ opacity: 0;
1129
+ width: 0;
1130
+ height: 0;
1131
+ }
1132
+
1133
+ .effort-pill span {
1134
+ display: block;
1135
+ padding: 5px 0;
1136
+ font-size: 11px;
1137
+ font-weight: 500;
1138
+ border-radius: 4px;
1139
+ color: var(--text-secondary);
1140
+ transition: var(--transition-smooth);
1141
+ font-family: var(--font-heading);
1142
+ }
1143
+
1144
+ .effort-pill input:checked + span {
1145
+ background-color: #111827;
1146
+ color: #ffffff;
1147
+ }
1148
+
1149
+ .effort-pill:hover span:not(input:checked + span) {
1150
+ color: var(--text-primary);
1151
+ background-color: rgba(0,0,0,0.02);
1152
+ }
1153
+
1154
+ /* Uploader & Media chips settings list */
1155
+ .shelf-list {
1156
+ display: flex;
1157
+ flex-direction: column;
1158
+ gap: 6px;
1159
+ overflow-y: auto;
1160
+ }
1161
+
1162
+ .empty-shelf-text {
1163
+ font-size: 10.5px;
1164
+ color: var(--text-muted);
1165
+ text-align: center;
1166
+ padding: 8px 0;
1167
+ font-style: italic;
1168
+ }
1169
+
1170
+ /* System Prompt Textarea */
1171
+ .system-prompt-textarea {
1172
+ width: 100%;
1173
+ border: 1px solid var(--border-color);
1174
+ border-radius: var(--border-radius-sm);
1175
+ background-color: #f9fafb;
1176
+ color: var(--text-primary);
1177
+ font-family: var(--font-body);
1178
+ font-size: 12px;
1179
+ line-height: 1.5;
1180
+ padding: 8px 10px;
1181
+ resize: vertical;
1182
+ min-height: 60px;
1183
+ outline: none;
1184
+ transition: var(--transition-smooth);
1185
+ }
1186
+
1187
+ .system-prompt-textarea:focus {
1188
+ border-color: var(--border-focus);
1189
+ background-color: #ffffff;
1190
+ }
1191
+
1192
+ .system-prompt-textarea::placeholder {
1193
+ color: var(--text-muted);
1194
+ }
1195
+
1196
+ /* Slider Input */
1197
+ .slider-input {
1198
+ -webkit-appearance: none;
1199
+ appearance: none;
1200
+ width: 100%;
1201
+ height: 4px;
1202
+ border-radius: 2px;
1203
+ background-color: #e5e7eb;
1204
+ outline: none;
1205
+ cursor: pointer;
1206
+ }
1207
+
1208
+ .slider-input::-webkit-slider-thumb {
1209
+ -webkit-appearance: none;
1210
+ appearance: none;
1211
+ width: 14px;
1212
+ height: 14px;
1213
+ border-radius: 50%;
1214
+ background-color: #111827;
1215
+ cursor: pointer;
1216
+ transition: var(--transition-smooth);
1217
+ }
1218
+
1219
+ .slider-input::-webkit-slider-thumb:hover {
1220
+ background-color: #1f2937;
1221
+ transform: scale(1.1);
1222
+ }
1223
+
1224
+ .slider-input::-moz-range-thumb {
1225
+ width: 14px;
1226
+ height: 14px;
1227
+ border-radius: 50%;
1228
+ background-color: #111827;
1229
+ cursor: pointer;
1230
+ border: none;
1231
+ }
1232
+
1233
+ /* Block Value Display */
1234
+ .block-value {
1235
+ font-family: var(--font-mono);
1236
+ font-size: 11px;
1237
+ color: var(--text-secondary);
1238
+ font-weight: 500;
1239
+ }
1240
+
1241
+ /* Code Block Copy Button */
1242
+ .code-block-wrapper {
1243
+ position: relative;
1244
+ }
1245
+
1246
+ .code-block-wrapper .copy-code-btn {
1247
+ position: absolute;
1248
+ top: 6px;
1249
+ right: 6px;
1250
+ background-color: rgba(255, 255, 255, 0.1);
1251
+ border: 1px solid rgba(255, 255, 255, 0.2);
1252
+ color: #9ca3af;
1253
+ font-size: 10px;
1254
+ font-family: var(--font-mono);
1255
+ padding: 2px 8px;
1256
+ border-radius: 4px;
1257
+ cursor: pointer;
1258
+ transition: var(--transition-smooth);
1259
+ }
1260
+
1261
+ .code-block-wrapper .copy-code-btn:hover {
1262
+ background-color: rgba(255, 255, 255, 0.2);
1263
+ color: #e5e7eb;
1264
+ }
1265
+
1266
+ .media-chip {
1267
+ display: flex;
1268
+ align-items: center;
1269
+ background-color: #f9fafb;
1270
+ border: 1px solid var(--border-color);
1271
+ border-radius: var(--border-radius-sm);
1272
+ padding: 5px 8px;
1273
+ gap: 8px;
1274
+ transition: var(--transition-smooth);
1275
+ }
1276
+
1277
+ .media-chip-preview {
1278
+ width: 24px;
1279
+ height: 24px;
1280
+ border-radius: 4px;
1281
+ object-fit: cover;
1282
+ background-color: #eaeaea;
1283
+ flex-shrink: 0;
1284
+ display: flex;
1285
+ align-items: center;
1286
+ justify-content: center;
1287
+ font-size: 10px;
1288
+ }
1289
+
1290
+ .media-chip-preview img {
1291
+ width: 100%;
1292
+ height: 100%;
1293
+ object-fit: cover;
1294
+ }
1295
+
1296
+ .media-chip-details {
1297
+ flex: 1;
1298
+ min-width: 0;
1299
+ }
1300
+
1301
+ .media-chip-name {
1302
+ font-size: 10.5px;
1303
+ font-weight: 500;
1304
+ white-space: nowrap;
1305
+ overflow: hidden;
1306
+ text-overflow: ellipsis;
1307
+ color: var(--text-primary);
1308
+ }
1309
+
1310
+ .media-chip-meta {
1311
+ font-size: 9px;
1312
+ color: var(--text-muted);
1313
+ display: flex;
1314
+ gap: 4px;
1315
+ }
1316
+
1317
+ .media-chip-remove {
1318
+ background: transparent;
1319
+ border: none;
1320
+ color: var(--text-muted);
1321
+ cursor: pointer;
1322
+ padding: 3px;
1323
+ display: flex;
1324
+ }
1325
+
1326
+ .media-chip-remove:hover {
1327
+ color: var(--danger);
1328
+ }
1329
+
1330
+ /* Attachment preview thumbnail inside input fields */
1331
+ .quick-preview-item {
1332
+ width: 32px;
1333
+ height: 32px;
1334
+ border-radius: var(--border-radius-sm);
1335
+ border: 1px solid var(--border-color);
1336
+ overflow: hidden;
1337
+ position: relative;
1338
+ flex-shrink: 0;
1339
+ }
1340
+
1341
+ .quick-preview-item img {
1342
+ width: 100%;
1343
+ height: 100%;
1344
+ object-fit: cover;
1345
+ }
1346
+
1347
+ .quick-preview-badge {
1348
+ position: absolute;
1349
+ top: 1.5px;
1350
+ right: 1.5px;
1351
+ background-color: var(--accent-blue);
1352
+ width: 6px;
1353
+ height: 6px;
1354
+ border-radius: 50%;
1355
+ }
1356
+
1357
+ .right-sidebar-footer {
1358
+ padding: 10px 16px;
1359
+ border-top: 1px solid var(--border-color);
1360
+ }
1361
+
1362
+ .status-indicator-group {
1363
+ display: flex;
1364
+ align-items: center;
1365
+ gap: 6px;
1366
+ font-size: 10.5px;
1367
+ color: var(--text-secondary);
1368
+ }
1369
+
1370
+ .status-dot {
1371
+ width: 5px;
1372
+ height: 5px;
1373
+ border-radius: 50%;
1374
+ }
1375
+
1376
+ .status-dot.online {
1377
+ background-color: #10b981;
1378
+ }
1379
+
1380
+ /* Loading animations */
1381
+ .spinner-light {
1382
+ width: 12px;
1383
+ height: 12px;
1384
+ border: 1.5px solid rgba(255, 255, 255, 0.2);
1385
+ border-top: 1.5px solid #ffffff;
1386
+ border-radius: 50%;
1387
+ animation: spin 0.8s linear infinite;
1388
+ }
1389
+
1390
+ @keyframes spin {
1391
+ 0% { transform: rotate(0deg); }
1392
+ 100% { transform: rotate(360deg); }
1393
+ }
1394
+
1395
+ @keyframes slideUp {
1396
+ from { opacity: 0; transform: translateY(8px); }
1397
+ to { opacity: 1; transform: translateY(0); }
1398
+ }
1399
+
1400
+ /* ==========================================================================
1401
+ Responsive & Mobile Design Rules
1402
+ ========================================================================== */
1403
+
1404
+ /* Drawer behavior on Tablet and Desktop */
1405
+ @media (min-width: 641px) {
1406
+ .sidebar-right.collapsed {
1407
+ transform: translateX(100%);
1408
+ }
1409
 
1410
+ /* When settings are open, we can optionally squeeze the workspace */
1411
+ .app-container:not(.settings-collapsed) .main-workspace {
1412
+ /* Only apply if you want layout shifting. Slicing over is cleaner! */
1413
+ }
1414
+ }
1415
+
1416
+ /* Mobile: Left sidebar becomes an overlay */
1417
+ @media (max-width: 768px) {
1418
  .sidebar-left {
1419
  position: absolute;
1420
+ top: 0;
1421
+ left: 0;
1422
+ bottom: 0;
1423
+ z-index: 950;
1424
  transform: translateX(-100%);
1425
+ box-shadow: 4px 0 20px rgba(0, 0, 0, 0.05);
1426
+ }
1427
+
1428
+ .sidebar-left.open {
1429
+ transform: translateX(0);
1430
+ }
1431
+ }
1432
+
1433
+ @media (min-width: 769px) {
1434
+ .sidebar-overlay-left {
1435
+ display: none !important;
1436
+ }
1437
+
1438
+ .btn-close-left {
1439
+ display: none !important;
1440
+ }
1441
+ }
1442
+
1443
+ /* Ultra-mobile scaling details (screens < 640px) */
1444
+ @media (max-width: 640px) {
1445
+ body {
1446
+ font-size: 13.5px;
1447
+ }
1448
+
1449
+ .workspace-header {
1450
+ padding: 0 16px;
1451
+ }
1452
+
1453
+ /* Header action labels hidden, only icons visible */
1454
+ .header-btn span {
1455
+ display: none;
1456
+ }
1457
+
1458
+ .header-btn {
1459
+ padding: 8px;
1460
  }
 
 
1461
 
1462
+ /* Left sidebar covers full width on small mobile */
1463
+ .sidebar-left {
1464
+ width: 100% !important;
1465
+ min-width: 100% !important;
1466
+ }
1467
+
1468
+ /* Settings slides covers 100% width on mobile */
1469
+ .sidebar-right {
1470
+ width: 100% !important;
1471
+ border-left: none;
1472
+ }
1473
+
1474
+ .studio-dashboard {
1475
+ padding: 30px 16px;
1476
+ }
1477
+
1478
+ .welcome-heading {
1479
+ font-size: 22px;
1480
+ margin-bottom: 20px;
1481
+ }
1482
 
1483
+ /* Chat thread viewport layout */
1484
+ .chat-messages-feed {
1485
+ padding: 16px;
1486
+ gap: 18px;
1487
+ }
1488
+
1489
+ .message-body {
1490
+ padding: 9px 12px;
1491
+ font-size: 13px;
1492
+ }
1493
+
1494
+ .message-bubble {
1495
+ max-width: 95%;
1496
+ }
1497
 
1498
+ .chat-mini-footer {
1499
+ padding: 10px 12px;
1500
+ }
1501
 
1502
+ .recipe-chip {
1503
+ padding: 6px 12px;
1504
+ font-size: 11.5px;
1505
+ }
1506
 
1507
+ .code-block-wrapper .copy-code-btn {
1508
+ font-size: 9px;
1509
+ padding: 1px 6px;
1510
+ }
 
 
1511
  }