chansung commited on
Commit
a7664ec
·
verified ·
1 Parent(s): e54f4f1

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +719 -18
style.css CHANGED
@@ -1,28 +1,729 @@
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
 
 
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
 
 
 
 
1
+ /* Use Inter font */
2
+ html { font-family: 'Inter', sans-serif; }
3
+ @supports (font-variation-settings: normal) {
4
+ html { font-family: 'Inter var', sans-serif; }
5
+ }
6
+
7
+ /* --- Base Futuristic Theme --- */
8
  body {
9
+ /* background-color: #0f172a; */ /* slate-900 - Old background */
10
+ background-color: #02040a; /* Deepest space blue/black */
11
+ background-image: radial-gradient(ellipse at center,
12
+ #1a2035 0%, /* Inner glow - dark indigo */
13
+ #0f172a 40%, /* Mid-tone slate/blue */
14
+ #02040a 75% /* Fading to deep space */
15
+ );
16
+ background-attachment: fixed; /* Keeps the gradient fixed during scroll */
17
+ color: #cbd5e1; /* slate-300 */
18
+ overflow: hidden; /* Prevent body scroll, manage scrolling in sections */
19
+ min-height: 100vh; /* Ensure gradient covers full viewport height */
20
+ }
21
+
22
+ /* --- Layout Heights --- */
23
+ :root {
24
+ --history-panel-expanded-height: 12rem; /* 192px */
25
+ --history-panel-collapsed-height: 0rem; /* Can be 0 or a small value for a visible collapsed bar */
26
+ --history-panel-toggle-button-height: 2.5rem; /* Height of the toggle button area */
27
+ --history-panel-current-height: var(--history-panel-collapsed-height); /* Initial state: collapsed */
28
+ }
29
+
30
+ #main-content {
31
+ height: calc(100vh - var(--history-panel-current-height) - var(--history-panel-toggle-button-height));
32
+ overflow-y: auto;
33
+ width: 100%;
34
+ margin-left: 0;
35
+ transition: height 0.3s ease-in-out;
36
+ }
37
+
38
+ /* Hide scrollbar for specific elements */
39
+ #history-panel::-webkit-scrollbar { display: none; }
40
+ #history-panel { -ms-overflow-style: none; scrollbar-width: none; }
41
+
42
+
43
+ /* Custom scrollbar for main content */
44
+ #main-content::-webkit-scrollbar { width: 8px; }
45
+ #main-content::-webkit-scrollbar-track { background: rgba(51, 65, 85, 0.5); border-radius: 10px; }
46
+ #main-content::-webkit-scrollbar-thumb { background: #475569; border-radius: 10px; }
47
+ #main-content::-webkit-scrollbar-thumb:hover { background: #64748b; }
48
+
49
+ /* History Panel Scrollbar */
50
+ #history-panel::-webkit-scrollbar { height: 6px; background-color: rgba(30, 41, 59, 0.5); }
51
+ #history-panel::-webkit-scrollbar-thumb { background-color: #475569; border-radius: 3px; }
52
+ #history-panel::-webkit-scrollbar-thumb:hover { background-color: #64748b; }
53
+ #history-panel { scrollbar-width: thin; scrollbar-color: #475569 rgba(30, 41, 59, 0.5); }
54
+
55
+ /* Code output styling in config modal */
56
+ #code-output-header {
57
+ display: flex;
58
+ justify-content: space-between;
59
+ align-items: center;
60
+ margin-bottom: 0.5rem; /* mb-2 */
61
+ }
62
+ #copy-code-button {
63
+ background-color: #334155; /* slate-700 */
64
+ color: #94a3b8; /* slate-400 */
65
+ padding: 0.25rem 0.75rem; /* py-1 px-3 */
66
+ font-size: 0.75rem; /* text-xs */
67
+ border-radius: 0.375rem; /* rounded-md */
68
+ transition: background-color 0.2s, color 0.2s;
69
+ line-height: 1; /* Ensure icon is vertically centered */
70
+ }
71
+ #copy-code-button:hover {
72
+ background-color: #475569; /* slate-600 */
73
+ color: #cbd5e1; /* slate-300 */
74
+ }
75
+ #copy-code-button.copied {
76
+ background-color: #059669; /* emerald-600 */
77
+ color: white;
78
+ }
79
+
80
+ #export-code-button {
81
+ background-color: #334155; /* slate-700 */
82
+ color: #94a3b8; /* slate-400 */
83
+ padding: 0.25rem 0.75rem; /* py-1 px-3 */
84
+ font-size: 0.75rem; /* text-xs */
85
+ border-radius: 0.375rem; /* rounded-md */
86
+ transition: background-color 0.2s, color 0.2s, opacity 0.2s;
87
+ line-height: 1; /* Ensure icon is vertically centered */
88
+ }
89
+ #export-code-button:hover:not(:disabled) {
90
+ background-color: #475569; /* slate-600 */
91
+ color: #cbd5e1; /* slate-300 */
92
+ }
93
+ #export-code-button:disabled {
94
+ opacity: 0.5;
95
+ cursor: not-allowed;
96
+ }
97
+
98
+ #code-output-container {
99
+ margin-top: 0.25rem;
100
+ height: 300px;
101
+ overflow-y: auto;
102
+ background-color: #020617;
103
+ border: 1px solid #334155;
104
+ border-radius: 0.375rem;
105
+ padding: 1rem;
106
+ scrollbar-width: thin;
107
+ scrollbar-color: #475569 rgba(30, 41, 59, 0.5);
108
+ }
109
+ #code-output-container::-webkit-scrollbar {
110
+ width: 6px; display: block;
111
+ }
112
+ #code-output-container::-webkit-scrollbar-track {
113
+ background: rgba(51, 65, 85, 0.3); border-radius: 3px;
114
+ }
115
+ #code-output-container::-webkit-scrollbar-thumb {
116
+ background: #475569; border-radius: 3px;
117
+ }
118
+ #code-output-container::-webkit-scrollbar-thumb:hover {
119
+ background: #64748b;
120
+ }
121
+
122
+ #code-output {
123
+ font-family: monospace;
124
+ color: #94a3b8;
125
+ white-space: pre-wrap;
126
+ word-wrap: break-word;
127
+ }
128
+ #code-output code.language-html {
129
+ font-size: 9pt;
130
+ color: #e2e8f0;
131
+ }
132
+
133
+ /* Preview frame styling */
134
+ .preview-frame {
135
+ width: 100%; height: 100%; flex-grow: 1; border: none;
136
+ background-color: #ffffff;
137
+ }
138
+ .preview-loader {
139
+ position: absolute; top: 0; left: 0; right: 0; bottom: 0;
140
+ background-color: rgba(15, 23, 42, 0.7);
141
+ display: flex; align-items: center; justify-content: center; z-index: 10;
142
+ }
143
+
144
+ /* Spinner */
145
+ .spinner {
146
+ width: 2rem; height: 2rem;
147
+ border: 4px solid rgba(71, 85, 105, 0.3);
148
+ border-left-color: #22d3ee; /* cyan-400 */
149
+ border-radius: 50%; animation: spin 1s linear infinite;
150
+ }
151
+ @keyframes spin { to { transform: rotate(360deg); } }
152
+
153
+ /* Refinement loading */
154
+ #refinement-loading-indicator {
155
+ position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
156
+ background-color: rgba(15, 23, 42, 0.85);
157
+ backdrop-filter: blur(5px); color: #e2e8f0;
158
+ padding: 1rem 1.5rem; border-radius: 0.5rem;
159
+ z-index: 1000; display: none; align-items: center; gap: 0.75rem;
160
+ border: 1px solid #334155; box-shadow: 0 0 20px rgba(34, 211, 238, 0.2);
161
+ }
162
+ #refinement-loading-indicator svg { color: #22d3ee; }
163
+
164
+ /* Slider value */
165
+ #interval-value, #num-variations-value { font-weight: 600; color: #22d3ee; }
166
+
167
+ /* Config Button (replaces sidebar toggle) */
168
+ #top-left-controls {
169
+ position: fixed; top: 1rem; left: 1rem; z-index: 60;
170
+ display: flex;
171
+ gap: 0.5rem; /* Space between buttons */
172
+ }
173
+
174
+ #config-button, #new-button, #show-prompt-modal-button {
175
+ background-color: rgba(51, 65, 85, 0.7);
176
+ backdrop-filter: blur(5px); border-radius: 9999px; padding: 0.5rem;
177
+ box-shadow: 0 2px 10px rgba(0,0,0,0.3); cursor: pointer;
178
+ border: 1px solid #475569;
179
+ transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
180
+ display: flex; /* Center icon */
181
+ align-items: center;
182
+ justify-content: center;
183
+ }
184
+ #config-button:hover, #new-button:hover, #show-prompt-modal-button:hover {
185
+ background-color: rgba(71, 85, 105, 0.8);
186
+ box-shadow: 0 0 10px rgba(34, 211, 238, 0.2);
187
+ }
188
+ #config-button svg, #new-button svg, #show-prompt-modal-button svg {
189
+ width: 1.25rem; height: 1.25rem; color: #94a3b8; transition: color 0.2s;
190
+ }
191
+ #config-button:hover svg, #new-button:hover svg, #show-prompt-modal-button:hover svg {
192
+ color: #22d3ee;
193
+ }
194
+
195
+
196
+ /* Full Screen Overlay */
197
+ #fullscreen-overlay {
198
+ position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
199
+ background-color: rgba(15, 23, 42, 0.95);
200
+ backdrop-filter: blur(8px); z-index: 900; display: flex; flex-direction: column;
201
+ padding: 1rem; box-sizing: border-box; opacity: 0; visibility: hidden;
202
+ transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
203
+ }
204
+ #fullscreen-overlay.visible { opacity: 1; visibility: visible; }
205
+ #fullscreen-iframe {
206
+ flex-grow: 1; width: 100%; height: 100%; border: 1px solid #334155;
207
+ border-radius: 0.5rem; background-color: white;
208
+ margin-top: 3rem; /* Add space for top buttons */
209
+ }
210
+ #exit-fullscreen-btn {
211
+ position: absolute; top: 1.5rem; right: 1.5rem; z-index: 955; /* Above nav buttons */
212
+ background-color: #ef4444; color: white;
213
+ }
214
+ #exit-fullscreen-btn:hover { background-color: #dc2626; }
215
+
216
+ /* Fullscreen History Navigation Buttons */
217
+ #fullscreen-history-nav {
218
+ position: absolute;
219
+ top: 1.5rem;
220
+ left: 50%;
221
+ transform: translateX(-50%);
222
+ z-index: 950; /* Below exit button, above iframe */
223
+ display: none; /* Hidden by default */
224
+ gap: 1rem;
225
+ }
226
+ #fullscreen-history-nav.visible {
227
+ display: flex; /* Show when needed */
228
+ }
229
+ #fullscreen-history-nav button {
230
+ background-color: rgba(51, 65, 85, 0.8); /* slate-700/80 */
231
+ color: #cbd5e1; /* slate-300 */
232
+ border: 1px solid #64748b; /* slate-500 */
233
+ padding: 0.5rem 1rem; /* py-2 px-4 */
234
+ border-radius: 0.375rem; /* rounded-md */
235
+ font-size: 0.875rem; /* text-sm */
236
+ font-weight: 500;
237
+ transition: background-color 0.2s, border-color 0.2s, color 0.2s;
238
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2);
239
+ }
240
+ #fullscreen-history-nav button:hover:not(:disabled) {
241
+ background-color: rgba(71, 85, 105, 0.9); /* slate-600/90 */
242
+ border-color: #94a3b8; /* slate-400 */
243
+ color: #fff;
244
+ }
245
+ #fullscreen-history-nav button:disabled {
246
+ background-color: rgba(51, 65, 85, 0.5);
247
+ border-color: #475569; /* slate-600 */
248
+ color: #64748b; /* slate-500 */
249
+ cursor: not-allowed;
250
+ opacity: 0.6;
251
+ }
252
+
253
+
254
+ body.fullscreen-active #top-left-controls { opacity: 0; pointer-events: none; }
255
+ body.fullscreen-active #main-content { overflow: hidden; }
256
+ body.fullscreen-active #history-panel { display: none; }
257
+
258
+
259
+ /* Perspective Grid Styles (for 4 variations) */
260
+ #perspective-viewport {
261
+ flex-grow: 1; min-height: 0; display: flex;
262
+ justify-content: center;
263
+ padding: 0.5rem;
264
+ perspective: 1500px;
265
+ overflow: hidden;
266
+ }
267
+ #preview-grid-wrapper {
268
+ display: grid;
269
+ width: 98%; max-width: 1200px;
270
+ height: 95%;
271
+ transition: transform 0.5s ease-out;
272
+ }
273
+ #preview-grid-wrapper.grid-mode {
274
+ grid-template-columns: repeat(2, 1fr);
275
+ grid-template-rows: repeat(2, 1fr); gap: 1.5rem;
276
+ transform-style: preserve-3d;
277
+ transform: rotateX(10deg) rotateY(0deg) scale(0.95);
278
+ }
279
+ #preview-grid-wrapper.single-mode {
280
+ grid-template-columns: 1fr;
281
+ grid-template-rows: 1fr; gap: 0;
282
+ transform: none;
283
+ width: 100%; height: 100%; max-width: none; aspect-ratio: unset;
284
+ }
285
+
286
+
287
+ .preview-item-perspective {
288
+ background-color: rgba(51, 65, 85, 0.6);
289
+ backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
290
+ border-radius: 0.75rem;
291
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3), 0 0 5px rgba(34, 211, 238, 0.1);
292
+ display: flex; flex-direction: column; overflow: hidden;
293
+ transform-style: preserve-3d;
294
+ transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
295
+ border: 1px solid #475569;
296
+ height: 100%; /* Added to fill grid cell height */
297
+ }
298
+ .preview-item-perspective:hover:not(.selected) {
299
+ transform: translateY(-8px) scale(1.03) translateZ(5px);
300
+ box-shadow: 0 12px 35px rgba(0, 0, 0, 0.4), 0 0 15px rgba(34, 211, 238, 0.2);
301
+ border-color: #64748b;
302
+ }
303
+ .preview-item-perspective.selected {
304
+ border-color: #22d3ee;
305
+ transform: scale(1.06) translateZ(20px);
306
+ box-shadow: 0 15px 40px rgba(34, 211, 238, 0.3), 0 0 25px rgba(34, 211, 238, 0.4), inset 0 0 10px rgba(34, 211, 238, 0.2);
307
+ z-index: 5;
308
+ }
309
+ .preview-header {
310
+ padding: 0.6rem 1rem; border-bottom: 1px solid #475569;
311
+ display: flex; justify-content: space-between; align-items: center;
312
+ flex-shrink: 0; background-color: rgba(71, 85, 105, 0.5);
313
+ }
314
+ .preview-header-title {
315
+ font-size: 0.9rem; font-weight: 600; color: #e2e8f0;
316
+ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
317
+ }
318
+ .preview-header-buttons { display: flex; align-items: center; gap: 0.5rem; }
319
+ .preview-header-buttons button, .preview-header-buttons .fullscreen-btn {
320
+ padding: 0.25rem 0.5rem; border-radius: 0.375rem;
321
+ transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
322
+ }
323
+ .preview-header-buttons .fullscreen-btn { color: #94a3b8; }
324
+ .preview-header-buttons .fullscreen-btn:hover:not(:disabled) {
325
+ color: #22d3ee; background-color: rgba(51, 65, 85, 0.7);
326
+ }
327
+ .preview-header-buttons .fullscreen-btn:disabled { color: #475569; cursor: not-allowed; }
328
+ .preview-body {
329
+ position: relative; flex-grow: 1; min-height: 0;
330
+ display: flex; overflow: hidden;
331
  }
332
 
333
+ .single-preview-item {
334
+ width: 100%; height: 100%;
335
+ background-color: rgba(30, 41, 59, 0.5);
336
+ border: 1px solid #334155;
337
+ border-radius: 0.5rem;
338
+ display: flex; flex-direction: column; overflow: hidden;
339
  }
340
 
341
+
342
+ /* Futuristic input/select styles */
343
+ .futuristic-input, .futuristic-select {
344
+ background-color: rgba(30, 41, 59, 0.8); border: 1px solid #475569;
345
+ color: #e2e8f0; border-radius: 0.375rem;
346
+ box-shadow: inset 0 1px 2px rgba(0,0,0,0.2);
347
+ transition: border-color 0.2s, box-shadow 0.2s;
348
+ padding: 0.5rem 0.75rem;
349
+ }
350
+ .futuristic-input::placeholder { color: #64748b; }
351
+ .futuristic-input:focus, .futuristic-select:focus {
352
+ outline: none; border-color: #22d3ee;
353
+ box-shadow: 0 0 0 2px rgba(34, 211, 238, 0.3), inset 0 1px 2px rgba(0,0,0,0.2);
354
+ }
355
+ .futuristic-select {
356
+ -webkit-appearance: none;
357
+ -moz-appearance: none;
358
+ appearance: none;
359
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
360
+ background-repeat: no-repeat;
361
+ background-position: right 0.5rem center;
362
+ background-size: 1.2em 1.2em;
363
+ padding-right: 2.5rem;
364
+ }
365
+
366
+
367
+ /* Futuristic button styles */
368
+ .futuristic-button {
369
+ background-color: #0e7490; color: #f0f9ff;
370
+ font-weight: 500; border-radius: 0.375rem;
371
+ transition: background-color 0.2s, box-shadow 0.2s, transform 0.1s;
372
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2), 0 0 0 0 rgba(34, 211, 238, 0.0);
373
+ }
374
+ .futuristic-button:hover:not(:disabled) {
375
+ background-color: #0891b2;
376
+ box-shadow: 0 4px 8px rgba(0,0,0,0.3), 0 0 10px 2px rgba(34, 211, 238, 0.3);
377
+ transform: translateY(-1px);
378
+ }
379
+ .futuristic-button:active:not(:disabled) {
380
+ transform: translateY(0px);
381
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2), 0 0 5px 1px rgba(34, 211, 238, 0.2);
382
+ }
383
+ .futuristic-button:disabled {
384
+ background-color: #334155; color: #64748b;
385
+ cursor: not-allowed; opacity: 0.7;
386
+ }
387
+ .futuristic-button.selected-state {
388
+ background-color: #059669;
389
+ }
390
+ .futuristic-button.selected-state:hover:not(:disabled) {
391
+ background-color: #047857;
392
+ box-shadow: 0 4px 8px rgba(0,0,0,0.3), 0 0 10px 2px rgba(16, 185, 129, 0.3);
393
+ }
394
+
395
+
396
+ /* Range slider styling */
397
+ input[type="range"].futuristic-slider {
398
+ -webkit-appearance: none; appearance: none; width: 100%; height: 8px;
399
+ background: #334155; border-radius: 5px; outline: none;
400
+ opacity: 0.9; transition: opacity .2s;
401
+ }
402
+ input[type="range"].futuristic-slider:hover { opacity: 1; }
403
+ input[type="range"].futuristic-slider::-webkit-slider-thumb {
404
+ -webkit-appearance: none; appearance: none; width: 18px; height: 18px;
405
+ background: #22d3ee; border-radius: 50%; cursor: pointer;
406
+ border: 2px solid #0f172a; box-shadow: 0 0 5px rgba(34, 211, 238, 0.5);
407
+ }
408
+ input[type="range"].futuristic-slider::-moz-range-thumb {
409
+ width: 18px; height: 18px; background: #22d3ee;
410
+ border-radius: 50%; cursor: pointer; border: 2px solid #0f172a;
411
+ box-shadow: 0 0 5px rgba(34, 211, 238, 0.5);
412
+ }
413
+
414
+ /* --- History Panel (Bottom) --- */
415
+ #history-panel-controls {
416
+ height: var(--history-panel-toggle-button-height);
417
+ display: flex;
418
+ align-items: center;
419
+ justify-content: center; /* Center the group */
420
+ gap: 1rem; /* Space between nav arrows and toggle */
421
+ background-color: rgba(15, 23, 42, 0.9); /* Match history panel bg */
422
+ border-top: 1px solid #334155; /* Match history panel border */
423
+ position: relative; /* For potential absolute positioning of button if needed or pseudo-elements */
424
+ z-index: 51; /* Above history panel content, below modals */
425
+ }
426
+
427
+ #history-toggle-button {
428
+ background-color: rgba(51, 65, 85, 0.7); /* slate-700 with alpha */
429
+ border: 1px solid #475569; /* slate-600 */
430
+ border-radius: 9999px; /* pill shape */
431
+ padding: 0.375rem; /* py-1.5 px-1.5 (adjust based on icon size) */
432
+ cursor: pointer;
433
+ display: flex;
434
+ align-items: center;
435
+ justify-content: center;
436
+ color: #94a3b8; /* slate-400 for icon */
437
+ transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
438
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2);
439
+ }
440
+
441
+ #history-toggle-button:hover {
442
+ background-color: rgba(71, 85, 105, 0.8);
443
+ color: #cbd5e1; /* slate-300 */
444
+ box-shadow: 0 0 10px rgba(34, 211, 238, 0.2);
445
+ }
446
+
447
+ #history-toggle-button svg {
448
+ width: 1.25rem; /* w-5 */
449
+ height: 1.25rem; /* h-5 */
450
+ }
451
+
452
+ #history-panel {
453
+ position: fixed;
454
+ bottom: 0;
455
+ left: 0;
456
+ right: 0;
457
+ height: var(--history-panel-current-height); /* Use CSS variable */
458
+ background-color: rgba(15, 23, 42, 0.9);
459
+ backdrop-filter: blur(10px);
460
+ -webkit-backdrop-filter: blur(10px);
461
+ /* border-top: 1px solid #334155; Removed as controls has it now */
462
+ padding: 1rem 2rem; /* Add more horizontal padding for fan effect */
463
+ z-index: 50;
464
+ overflow-x: auto;
465
+ overflow-y: hidden;
466
+ display: flex;
467
+ align-items: center;
468
+ /* gap: 1rem; Remove fixed gap, overlaps will be handled by transforms */
469
+ transition: height 0.3s ease-in-out, padding 0.3s ease-in-out, opacity 0.3s ease-in-out;
470
+ opacity: 1;
471
+ perspective: 1000px; /* Add perspective for 3D transforms */
472
+ }
473
+
474
+ #history-panel.history-collapsed {
475
+ /* height is controlled by --history-panel-current-height via JS */
476
+ padding-top: 0;
477
+ padding-bottom: 0;
478
+ opacity: 0;
479
+ overflow: hidden; /* Ensure content is clipped during collapse */
480
+ }
481
+
482
+ /* Hide thumbnails when panel is collapsed to prevent interaction/layout issues */
483
+ #history-panel.history-collapsed .history-thumbnail-item,
484
+ #history-panel.history-collapsed #history-panel-placeholder {
485
+ display: none;
486
+ }
487
+
488
+ .history-thumbnail-item {
489
+ position: relative; /* Keep for z-index */
490
+ flex-shrink: 0;
491
+ width: 10rem;
492
+ height: 7.5rem;
493
+ background-color: rgba(51, 65, 85, 0.5);
494
+ backdrop-filter: blur(8px);
495
+ -webkit-backdrop-filter: blur(8px);
496
+ border: 1px solid #475569;
497
+ border-radius: 0.5rem;
498
+ box-shadow: 0 6px 18px rgba(0,0,0,0.35),
499
+ inset 0 0 8px rgba(34, 211, 238, 0.15),
500
+ 0 0 2px rgba(34,211,238,0.1);
501
+ display: flex;
502
+ flex-direction: column;
503
+ overflow: hidden;
504
+ /* transform-style: preserve-3d; Remove this */
505
+ /* transform: perspective(600px) rotateY(-8deg) rotateX(3deg) translateZ(-15px); Remove static transform */
506
+ transition: transform 0.7s cubic-bezier(0.25, 0.8, 0.25, 1),
507
+ box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1),
508
+ border-color 0.3s ease,
509
+ z-index 0.7s ease; /* Add z-index transition */
510
+ /* Add margin to handle potential overlap calculations if needed, maybe negative */
511
+ margin-left: -30px; /* Example: Pull items closer together */
512
+ }
513
+
514
+ /* Pull first item back to the left */
515
+ .history-thumbnail-item:first-child {
516
+ margin-left: 0;
517
+ }
518
+
519
+ .history-thumbnail-item:hover {
520
+ /* transform: perspective(600px) rotateY(-3deg) rotateX(1deg) translateZ(0px) scale(1.08); */ /* Remove old hover transform */
521
+ transform: translateY(-15px) scale(1.15) rotate(0deg); /* Bring up, scale, and un-rotate on hover */
522
+ box-shadow: 0 15px 40px rgba(0,0,0,0.5),
523
+ inset 0 0 12px rgba(34, 211, 238, 0.25),
524
+ 0 0 15px rgba(34,211,238,0.4);
525
+ border-color: #22d3ee;
526
+ z-index: 100; /* Ensure hovered item is on top */
527
+ }
528
+ .history-thumbnail-item.active-history-item {
529
+ border-color: #22d3ee;
530
+ /* transform: perspective(600px) rotateY(-4deg) rotateX(2deg) translateZ(0px) scale(1.06); */ /* Remove old active transform */
531
+ box-shadow: 0 10px 30px rgba(34, 211, 238, 0.3),
532
+ inset 0 0 15px rgba(34, 211, 238, 0.3),
533
+ 0 0 10px rgba(34,211,238,0.4);
534
+ /* Active item might need slightly different base transform/z-index set by JS */
535
+ z-index: 50; /* Ensure active is above others but below hover */
536
+ }
537
+ .history-thumbnail-preview-container {
538
+ width: 100%;
539
+ height: calc(100% - 2rem);
540
+ overflow: hidden;
541
+ position: relative;
542
+ border-bottom: 1px solid #334155;
543
+ cursor: pointer;
544
+ }
545
+ .history-thumbnail-preview {
546
+ width: 400%;
547
+ height: 400%;
548
+ transform: scale(0.25);
549
+ transform-origin: 0 0;
550
+ border: none;
551
+ pointer-events: none;
552
+ background-color: #fff;
553
+ }
554
+ .history-thumbnail-title {
555
+ font-size: 0.65rem;
556
+ color: #cbd5e1;
557
+ padding: 0.25rem 0.5rem;
558
+ text-align: center;
559
+ white-space: nowrap;
560
+ overflow: hidden;
561
+ text-overflow: ellipsis;
562
+ line-height: 1.25rem;
563
+ cursor: pointer;
564
+ }
565
+ .history-thumbnail-fullscreen-btn {
566
+ position: absolute;
567
+ top: 0.25rem;
568
+ right: 0.25rem;
569
+ padding: 0.15rem;
570
+ border-radius: 0.25rem;
571
+ background-color: rgba(30, 41, 59, 0.6);
572
+ color: #94a3b8;
573
+ opacity: 0;
574
+ transition: opacity 0.2s ease-in-out, background-color 0.2s, color 0.2s;
575
+ z-index: 15;
576
+ cursor: pointer;
577
+ }
578
+ .history-thumbnail-item:hover .history-thumbnail-fullscreen-btn {
579
+ opacity: 1;
580
+ }
581
+ .history-thumbnail-fullscreen-btn:hover {
582
+ background-color: rgba(51, 65, 85, 0.8);
583
+ color: #e2e8f0;
584
+ }
585
+ .history-thumbnail-fullscreen-btn svg {
586
+ width: 0.75rem;
587
+ height: 0.75rem;
588
+ }
589
+
590
+ #history-panel-placeholder {
591
+ display: flex;
592
+ align-items: center;
593
+ justify-content: center;
594
+ height: 100%;
595
+ width: 100%;
596
+ color: #64748b;
597
+ font-size: 0.875rem;
598
+ }
599
+
600
+ /* --- Modal Animation Effects --- */
601
+ @keyframes fadeInDistort {
602
+ from {
603
+ opacity: 0;
604
+ transform: scale(0.9) skewY(3deg);
605
+ }
606
+ to {
607
+ opacity: 1;
608
+ transform: scale(1) skewY(0deg);
609
+ }
610
+ }
611
+
612
+ @keyframes fadeOutDistort {
613
+ from {
614
+ opacity: 1;
615
+ transform: scale(1) skewY(0deg);
616
+ }
617
+ to {
618
+ opacity: 0;
619
+ transform: scale(0.95) skewY(-2deg);
620
+ }
621
+ }
622
+
623
+ .modal-anim-fade-in {
624
+ animation: fadeInDistort 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
625
+ }
626
+
627
+ .modal-anim-fade-out {
628
+ animation: fadeOutDistort 0.3s cubic-bezier(0.75, 0.2, 0.75, 0.2) forwards;
629
  }
630
 
631
+
632
+ /* --- Modals (Prompt & Config) --- */
633
+ .modal-overlay { /* Common class for overlays */
634
+ position: fixed;
635
+ inset: 0;
636
+ background-color: rgba(15, 23, 42, 0.8);
637
+ backdrop-filter: blur(8px);
638
+ -webkit-backdrop-filter: blur(8px);
639
+ z-index: 1000;
640
+ display: none;
641
+ align-items: center;
642
+ justify-content: center;
643
+ padding: 2rem;
644
+ opacity: 0; /* Start transparent for animation */
645
+ }
646
+ .modal-overlay.visible {
647
+ display: flex;
648
+ opacity: 1;
649
+ }
650
+ .modal-content { /* Common class for content box */
651
+ background-color: #1e293b;
652
+ padding: 1.5rem 2rem;
653
+ border-radius: 0.75rem;
654
+ border: 1px solid #334155;
655
+ box-shadow: 0 10px 30px rgba(0,0,0,0.4);
656
+ width: 100%;
657
+ max-width: 42rem;
658
+ display: flex;
659
+ flex-direction: column;
660
+ gap: 1rem;
661
+ }
662
+ #modal-user-prompt { /* Specific to prompt modal */
663
+ min-height: 100px;
664
+ resize: vertical;
665
+ }
666
+ .modal-button-secondary {
667
+ background-color: #334155;
668
+ color: #cbd5e1;
669
+ border: 1px solid #475569;
670
+ }
671
+ .modal-button-secondary:hover:not(:disabled) {
672
+ background-color: #475569;
673
+ border-color: #64748b;
674
+ color: #fff;
675
+ }
676
+
677
+ .history-nav-button {
678
+ background-color: transparent; /* Make nav buttons less prominent */
679
+ border: none;
680
+ border-radius: 9999px;
681
+ padding: 0.375rem;
682
+ cursor: pointer;
683
+ display: flex;
684
+ align-items: center;
685
+ justify-content: center;
686
+ color: #64748b; /* slate-500 for icon, less prominent */
687
+ transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
688
+ }
689
+
690
+ .history-nav-button:hover:not(:disabled) {
691
+ background-color: rgba(51, 65, 85, 0.7);
692
+ color: #94a3b8; /* slate-400 */
693
+ }
694
+
695
+ .history-nav-button:disabled {
696
+ color: #334155; /* slate-700 - very faded */
697
+ cursor: not-allowed;
698
+ opacity: 0.5;
699
  }
700
 
701
+ /* Style for truncated prompt subtitle to indicate clickability */
702
+ #main-content-subtitle.prompt-truncated {
703
+ cursor: pointer;
704
+ text-decoration: underline dotted rgba(203, 213, 225, 0.5); /* slate-300 dotted underline */
705
+ transition: text-decoration-color 0.2s ease;
706
+ }
707
+ #main-content-subtitle.prompt-truncated:hover {
708
+ text-decoration-color: rgba(34, 211, 238, 0.8); /* cyan-400 */
709
+ }
710
+
711
+ /* Ensure prompt display modal text area is styled correctly */
712
+ #full-prompt-text {
713
+ scrollbar-width: thin;
714
+ scrollbar-color: #475569 rgba(30, 41, 59, 0.5);
715
+ }
716
+ #full-prompt-text::-webkit-scrollbar {
717
+ width: 6px;
718
+ }
719
+ #full-prompt-text::-webkit-scrollbar-track {
720
+ background: rgba(51, 65, 85, 0.3);
721
+ border-radius: 3px;
722
+ }
723
+ #full-prompt-text::-webkit-scrollbar-thumb {
724
+ background: #475569;
725
+ border-radius: 3px;
726
  }
727
+ #full-prompt-text::-webkit-scrollbar-thumb:hover {
728
+ background: #64748b;
729
+ }