openfree commited on
Commit
11faa8f
·
verified ·
1 Parent(s): 57589ce

Update app-backup.css

Browse files
Files changed (1) hide show
  1. app-backup.css +336 -163
app-backup.css CHANGED
@@ -4,6 +4,7 @@
4
  --primary: #0066cc; /* 메인 브랜드 컬러 */
5
  --secondary: #3385ff; /* 밝은 액센트 */
6
  --accent: #66a3ff; /* 부드러운 포인트 컬러 */
 
7
 
8
  /* 배경 컬러 */
9
  --background: #f7f9fc; /* 메인 배경 */
@@ -24,6 +25,18 @@
24
  --neutral-200: #e9ecef;
25
  --neutral-300: #dee2e6;
26
  --neutral-400: #ced4da;
 
 
 
 
 
 
 
 
 
 
 
 
27
  }
28
 
29
  body {
@@ -33,6 +46,7 @@ body {
33
  line-height: 1.5;
34
  }
35
 
 
36
  .left_header {
37
  display: flex;
38
  flex-direction: column;
@@ -61,13 +75,41 @@ body {
61
  color: var(--text-primary);
62
  }
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  .render_header {
65
  height: 30px;
66
  width: 100%;
67
  padding: 5px 16px;
68
- background-color: var(--neutral-100);
69
- margin-top: 50px;
70
- border-radius: 8px 8px 0 0;
 
 
71
  }
72
 
73
  .header_btn {
@@ -76,6 +118,7 @@ body {
76
  width: 10px;
77
  border-radius: 50%;
78
  margin-right: 4px;
 
79
  }
80
 
81
  .render_header > .header_btn:nth-child(1) {
@@ -91,36 +134,196 @@ body {
91
  }
92
 
93
  .right_content {
94
- height: 920px;
95
  display: flex;
96
  flex-direction: column;
97
  justify-content: center;
98
  align-items: center;
99
  background: var(--surface);
100
- border-radius: 0 0 8px 8px;
101
  }
102
 
103
- .history_chatbot button {
104
- background: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  border: none;
 
106
  }
107
 
108
- footer, .footer, div[class*="footer"], #footer {
109
- display: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  #component-0 textarea,
113
  .gradio-container textarea,
114
  .ant-input-textarea-large textarea {
115
- height: 300px !important;
116
  min-height: 300px !important;
117
  resize: vertical !important;
118
  border: 2px solid var(--neutral-200);
119
- border-radius: 12px;
120
  transition: all 0.3s;
121
  background: var(--surface);
122
  color: var(--text-primary);
123
  padding: 1rem;
 
 
124
  }
125
 
126
  #component-0 textarea:focus,
@@ -130,79 +333,126 @@ footer, .footer, div[class*="footer"], #footer {
130
  box-shadow: 0 0 0 3px rgba(102, 163, 255, 0.2);
131
  }
132
 
133
- .setting-buttons {
134
- position: sticky;
135
- top: 1rem;
136
- right: 0;
137
- z-index: 1000;
 
 
 
138
  display: flex;
139
- gap: 8px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  padding: 12px;
141
- background: rgba(255, 255, 255, 0.9);
142
- backdrop-filter: blur(8px);
143
- border-radius: 12px;
144
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
145
- border: 1px solid var(--neutral-200);
146
  }
147
 
148
- .right_panel {
149
- position: relative;
150
- min-height: 600px;
151
- padding-top: 50px;
 
152
  }
153
 
154
- .html_content {
155
- height: 100%;
156
- border-radius: 12px;
157
- overflow: hidden;
158
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
159
- background: var(--surface);
160
  }
161
 
162
- .ant-btn {
163
- flex: 1;
164
- min-width: 80px;
165
- border-radius: 8px;
166
- font-weight: 500;
167
- transition: all 0.3s;
168
- height: 40px;
169
- display: flex;
170
- align-items: center;
171
- justify-content: center;
172
  }
173
 
174
- .ant-btn-primary {
175
- background: linear-gradient(to right, var(--primary), var(--secondary));
176
- border: none;
177
  color: white;
 
178
  }
179
 
180
- .ant-btn-primary:hover {
181
- transform: translateY(-2px);
182
- box-shadow: 0 4px 12px rgba(0, 102, 204, 0.3);
 
183
  }
184
 
185
- .ant-btn-default {
 
 
 
 
186
  background: var(--surface);
187
- border: 1px solid var(--primary);
188
- color: var(--primary);
189
  }
190
 
191
- .ant-btn-default:hover {
192
- color: var(--secondary);
193
- border-color: var(--secondary);
194
- transform: translateY(-2px);
195
- box-shadow: 0 4px 12px rgba(0, 102, 204, 0.1);
196
  }
197
 
198
- .ant-btn-default[title="Code 실행"] {
199
- background-color: var(--success);
200
- color: white;
201
- border: none;
202
  }
203
 
204
- .ant-btn-default[title="Code 실행"]:hover {
205
- background-color: #40d869;
 
 
206
  }
207
 
208
  .session-drawer .chatbot {
@@ -225,84 +475,21 @@ footer, .footer, div[class*="footer"], #footer {
225
 
226
  .prompt-card {
227
  background: var(--surface);
228
- border-radius: 16px;
229
  padding: 1.25rem;
230
  cursor: pointer;
231
  transition: all 0.3s;
232
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
233
  min-height: 300px;
234
  border: 1px solid var(--neutral-200);
235
  }
236
 
237
  .prompt-card:hover {
238
  transform: translateY(-4px);
239
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
240
- }
241
-
242
- .card-image {
243
- width: 100%;
244
- height: 200px;
245
- object-fit: cover;
246
- border-radius: 12px;
247
- margin-bottom: 1rem;
248
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
249
- }
250
-
251
- .card-name {
252
- font-weight: 600;
253
- margin-bottom: 0.8rem;
254
- font-size: 1.1rem;
255
- color: var(--text-primary);
256
- }
257
-
258
- .card-prompt-container {
259
- position: relative;
260
- padding-right: 60px;
261
- }
262
-
263
- .card-prompt {
264
- font-size: 0.9rem;
265
- color: var(--text-secondary);
266
- display: -webkit-box;
267
- -webkit-line-clamp: 3;
268
- -webkit-box-orient: vertical;
269
- overflow: hidden;
270
- background: var(--neutral-100);
271
- padding: 0.8rem;
272
- border-radius: 8px;
273
- line-height: 1.5;
274
- }
275
-
276
- .copy-btn {
277
- position: absolute;
278
- right: 0;
279
- top: 0;
280
- padding: 6px 12px;
281
- background: var(--accent);
282
- color: white;
283
- border: none;
284
- border-radius: 6px;
285
- cursor: pointer;
286
- font-size: 0.9em;
287
- transition: all 0.2s ease;
288
- }
289
-
290
- .copy-btn:hover {
291
- background: var(--primary);
292
- transform: translateY(-1px);
293
- }
294
-
295
- .copy-btn:active {
296
- transform: translateY(0);
297
  }
298
 
299
- .template-buttons {
300
- margin-top: 1rem;
301
- display: flex;
302
- gap: 0.5rem;
303
- }
304
-
305
- /* Custom scrollbar */
306
  ::-webkit-scrollbar {
307
  width: 8px;
308
  height: 8px;
@@ -310,6 +497,7 @@ footer, .footer, div[class*="footer"], #footer {
310
 
311
  ::-webkit-scrollbar-track {
312
  background: var(--neutral-100);
 
313
  }
314
 
315
  ::-webkit-scrollbar-thumb {
@@ -321,31 +509,26 @@ footer, .footer, div[class*="footer"], #footer {
321
  background: var(--neutral-400);
322
  }
323
 
324
- /* Drawer customization */
325
- .ant-drawer-content-wrapper {
326
- border-radius: 16px 0 0 16px;
327
- }
328
-
329
- .ant-drawer-header {
330
- background: var(--primary);
331
- color: white;
332
- border-radius: 16px 0 0 0;
333
  }
334
 
335
- .ant-drawer-title {
336
- color: white;
337
- font-weight: 500;
338
  }
339
 
340
- .ant-drawer-close {
341
- color: white;
342
  }
343
 
344
- .ant-drawer-body {
345
- background: var(--surface);
 
346
  }
347
 
348
- /* Responsive adjustments */
349
  @media (max-width: 768px) {
350
  .left_header {
351
  padding: 1rem;
@@ -355,23 +538,13 @@ footer, .footer, div[class*="footer"], #footer {
355
  grid-template-columns: 1fr;
356
  }
357
 
358
- .setting-buttons {
359
  flex-wrap: wrap;
360
  }
361
-
362
- .ant-btn {
363
- min-width: 60px;
364
- font-size: 0.9rem;
 
365
  }
366
- }
367
-
368
- /* Animations */
369
- @keyframes fadeIn {
370
- from { opacity: 0; transform: translateY(10px); }
371
- to { opacity: 1; transform: translateY(0); }
372
- }
373
-
374
- .fade-in {
375
- animation: fadeIn 0.5s ease-out;
376
- }
377
-
 
4
  --primary: #0066cc; /* 메인 브랜드 컬러 */
5
  --secondary: #3385ff; /* 밝은 액센트 */
6
  --accent: #66a3ff; /* 부드러운 포인트 컬러 */
7
+ --tertiary: #5d2e8c; /* 포인트 컬러 */
8
 
9
  /* 배경 컬러 */
10
  --background: #f7f9fc; /* 메인 배경 */
 
25
  --neutral-200: #e9ecef;
26
  --neutral-300: #dee2e6;
27
  --neutral-400: #ced4da;
28
+
29
+ /* 그림자 및 효과 */
30
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
31
+ --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.08);
32
+ --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.1);
33
+ --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.12);
34
+
35
+ /* 둥근 모서리 */
36
+ --radius-sm: 6px;
37
+ --radius-md: 8px;
38
+ --radius-lg: 12px;
39
+ --radius-xl: 16px;
40
  }
41
 
42
  body {
 
46
  line-height: 1.5;
47
  }
48
 
49
+ /* 헤더 및 레이아웃 */
50
  .left_header {
51
  display: flex;
52
  flex-direction: column;
 
75
  color: var(--text-primary);
76
  }
77
 
78
+ /* 패널 레이아웃 및 높이 */
79
+ .equal-height-container {
80
+ display: flex;
81
+ min-height: 900px;
82
+ }
83
+
84
+ .equal-height-col {
85
+ display: flex;
86
+ flex-direction: column;
87
+ height: 100%;
88
+ }
89
+
90
+ .fixed-height {
91
+ height: 900px !important;
92
+ }
93
+
94
+ .fixed-content-height {
95
+ height: 870px !important; /* 헤더(30px)를 제외한 높이 */
96
+ }
97
+
98
+ .fixed-input-height {
99
+ height: 730px !important;
100
+ max-height: 730px !important;
101
+ }
102
+
103
+ /* 좌측 패널 상단 헤더 */
104
  .render_header {
105
  height: 30px;
106
  width: 100%;
107
  padding: 5px 16px;
108
+ background: linear-gradient(to right, var(--neutral-100), var(--neutral-200));
109
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
110
+ margin-top: 0;
111
+ box-shadow: var(--shadow-sm);
112
+ border-bottom: 1px solid var(--neutral-300);
113
  }
114
 
115
  .header_btn {
 
118
  width: 10px;
119
  border-radius: 50%;
120
  margin-right: 4px;
121
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
122
  }
123
 
124
  .render_header > .header_btn:nth-child(1) {
 
134
  }
135
 
136
  .right_content {
137
+ height: 870px; /* 헤더(30px)를 제외한 높이 */
138
  display: flex;
139
  flex-direction: column;
140
  justify-content: center;
141
  align-items: center;
142
  background: var(--surface);
143
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
144
  }
145
 
146
+ /* 패널 스타일 */
147
+ .right_panel {
148
+ position: relative;
149
+ height: 900px;
150
+ display: flex;
151
+ flex-direction: column;
152
+ padding-top: 0;
153
+ }
154
+
155
+ .panel {
156
+ display: flex;
157
+ flex-direction: column;
158
+ height: 900px;
159
+ background: var(--surface);
160
+ border-radius: var(--radius-lg);
161
+ box-shadow: var(--shadow-lg);
162
+ border: 1px solid var(--neutral-300);
163
+ overflow: hidden;
164
+ }
165
+
166
+ .input-panel {
167
+ display: flex;
168
+ flex-direction: column;
169
+ margin-top: 0;
170
+ background: var(--surface);
171
+ border-radius: var(--radius-lg);
172
+ border: 1px solid var(--neutral-300);
173
+ box-shadow: var(--shadow-lg);
174
+ padding: 15px;
175
+ height: 870px !important; /* 버튼 영역 제외한 높이 */
176
+ max-height: 870px !important;
177
+ overflow: hidden;
178
+ }
179
+
180
+ .html_content {
181
+ flex: 1;
182
+ height: 870px; /* 헤더(30px)를 제외한 높이 */
183
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
184
+ overflow: hidden;
185
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
186
+ background: var(--surface);
187
+ }
188
+
189
+ /* 버튼 영역 스타일 */
190
+ .right-top-buttons {
191
+ margin-bottom: 15px;
192
+ background: linear-gradient(to right, var(--neutral-100), var(--neutral-200));
193
+ padding: 15px;
194
+ border-radius: var(--radius-lg);
195
+ box-shadow: var(--shadow-md);
196
+ border: 1px solid var(--neutral-300);
197
+ }
198
+
199
+ /* 상단 메뉴 버튼과 하단 액션 버튼 구분 */
200
+ .setting-buttons {
201
+ display: flex;
202
+ gap: 8px;
203
+ padding: 8px 0;
204
+ justify-content: space-between;
205
+ border-bottom: 2px dashed var(--neutral-300);
206
+ padding-bottom: 12px;
207
+ margin-bottom: 12px;
208
+ }
209
+
210
+ .setting-buttons .ant-btn {
211
+ background: linear-gradient(135deg, var(--surface), var(--neutral-100));
212
+ border: 1px solid var(--neutral-300);
213
+ color: var(--text-primary);
214
+ font-weight: 600;
215
+ box-shadow: var(--shadow-sm);
216
+ min-width: 100px;
217
+ height: 38px;
218
+ border-radius: var(--radius-lg);
219
+ }
220
+
221
+ .setting-buttons .ant-btn:hover {
222
+ background: linear-gradient(135deg, var(--neutral-100), var(--neutral-200));
223
+ transform: translateY(-2px);
224
+ box-shadow: var(--shadow-md);
225
+ }
226
+
227
+ .action-buttons {
228
+ margin-top: 5px;
229
+ margin-bottom: 8px;
230
+ display: flex;
231
+ flex-wrap: wrap;
232
+ gap: 8px;
233
+ }
234
+
235
+ .action-buttons .ant-btn {
236
+ min-width: 80px;
237
+ height: 40px;
238
+ font-weight: 600;
239
+ border-radius: var(--radius-md);
240
+ box-shadow: var(--shadow-sm);
241
+ text-transform: uppercase;
242
+ letter-spacing: 0.5px;
243
+ font-size: 0.85em;
244
+ }
245
+
246
+ .action-buttons .ant-btn-primary {
247
+ background: linear-gradient(to right, var(--primary), var(--secondary));
248
  border: none;
249
+ color: white;
250
  }
251
 
252
+ .action-buttons .ant-btn-primary:hover {
253
+ background: linear-gradient(to right, var(--secondary), var(--primary));
254
+ transform: translateY(-2px);
255
+ box-shadow: 0 4px 12px rgba(0, 102, 204, 0.3);
256
+ }
257
+
258
+ .action-buttons .ant-btn-default {
259
+ background: var(--surface);
260
+ border: 1px solid var(--neutral-300);
261
+ color: var(--text-primary);
262
+ }
263
+
264
+ .action-buttons .ant-btn-default:hover {
265
+ border-color: var(--secondary);
266
+ color: var(--secondary);
267
+ transform: translateY(-2px);
268
+ box-shadow: var(--shadow-md);
269
+ }
270
+
271
+ /* 각 버튼 스타일 커스텀 - 클래스 기반 */
272
+ .send-btn {
273
+ background: linear-gradient(to right, var(--primary), var(--secondary)) !important;
274
+ border: none !important;
275
+ color: white !important;
276
+ }
277
+
278
+ .boost-btn {
279
+ background: linear-gradient(to right, var(--tertiary), #9966cc) !important;
280
+ border: none !important;
281
+ color: white !important;
282
+ }
283
+
284
+ .execute-btn {
285
+ background: linear-gradient(to right, var(--success), #66d9a8) !important;
286
+ border: none !important;
287
+ color: white !important;
288
+ }
289
+
290
+ .deploy-btn {
291
+ background: linear-gradient(to right, var(--warning), #ffcc66) !important;
292
+ border: none !important;
293
+ color: white !important;
294
  }
295
 
296
+ .clear-btn {
297
+ background: linear-gradient(to right, #f44336, #ff7961) !important;
298
+ border: none !important;
299
+ color: white !important;
300
+ }
301
+
302
+ /* 메뉴 버튼 추가 스타일 */
303
+ .code-btn, .history-btn, .template-btn {
304
+ transition: all 0.3s ease;
305
+ }
306
+
307
+ .code-btn:hover, .history-btn:hover, .template-btn:hover {
308
+ transform: translateY(-2px);
309
+ box-shadow: var(--shadow-md);
310
+ }
311
+
312
+ /* 텍스트 영역 스타일링 */
313
  #component-0 textarea,
314
  .gradio-container textarea,
315
  .ant-input-textarea-large textarea {
316
+ height: 730px !important;
317
  min-height: 300px !important;
318
  resize: vertical !important;
319
  border: 2px solid var(--neutral-200);
320
+ border-radius: var(--radius-lg);
321
  transition: all 0.3s;
322
  background: var(--surface);
323
  color: var(--text-primary);
324
  padding: 1rem;
325
+ flex-grow: 1;
326
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.03);
327
  }
328
 
329
  #component-0 textarea:focus,
 
333
  box-shadow: 0 0 0 3px rgba(102, 163, 255, 0.2);
334
  }
335
 
336
+ /* 우측 박스 텍스트 폰트 크기 20% 감소 */
337
+ .input-panel textarea,
338
+ .input-panel .ant-input-textarea-large textarea,
339
+ .input-panel .help-text {
340
+ font-size: 0.8em; /* 기본 폰트 크기에서 20% 감소 */
341
+ }
342
+
343
+ .ant-input-textarea {
344
  display: flex;
345
+ flex-direction: column;
346
+ flex: 1;
347
+ }
348
+
349
+ .input-panel .ant-input-textarea {
350
+ flex: 1;
351
+ display: flex;
352
+ flex-direction: column;
353
+ }
354
+
355
+ .input-panel .ant-input-textarea-large {
356
+ flex: 1;
357
+ }
358
+
359
+ .input-panel textarea {
360
+ flex-grow: 1;
361
+ height: calc(100% - 120px) !important; /* 도움말 텍스트와 배포 결과 공간 확보 */
362
+ min-height: 300px !important;
363
+ }
364
+
365
+ /* 도움말 텍스트 스타일 */
366
+ .help-text {
367
+ padding: 8px 12px;
368
+ background-color: var(--neutral-100);
369
+ border-radius: var(--radius-md);
370
+ color: var(--text-secondary);
371
+ font-style: italic;
372
+ margin-top: 8px;
373
+ border-left: 3px solid var(--accent);
374
+ }
375
+
376
+ /* 배포 결과 스타일링 */
377
+ .deploy-result {
378
+ margin-top: 10px;
379
+ height: 90px;
380
+ max-height: 90px;
381
+ overflow-y: auto;
382
+ background-color: var(--neutral-100);
383
+ padding: 10px;
384
+ border-radius: var(--radius-md);
385
+ border-left: 3px solid var(--primary);
386
+ }
387
+
388
+ #deploy-result a {
389
+ color: var(--primary);
390
+ font-weight: bold;
391
+ text-decoration: underline;
392
+ }
393
+
394
+ [label="배포 결과"] {
395
+ margin-top: 15px;
396
  padding: 12px;
397
+ background-color: var(--neutral-100);
398
+ border-radius: var(--radius-md);
399
+ border-left: 3px solid var(--primary);
 
 
400
  }
401
 
402
+ .deploy-success {
403
+ color: var(--success);
404
+ padding: 10px;
405
+ background-color: rgba(52, 199, 89, 0.1);
406
+ border-radius: var(--radius-md);
407
  }
408
 
409
+ .deploy-error {
410
+ color: var(--error);
411
+ padding: 10px;
412
+ background-color: rgba(255, 59, 48, 0.1);
413
+ border-radius: var(--radius-md);
 
414
  }
415
 
416
+ /* Drawer customization */
417
+ .ant-drawer-content-wrapper {
418
+ border-radius: 16px 0 0 16px;
 
 
 
 
 
 
 
419
  }
420
 
421
+ .ant-drawer-header {
422
+ background: linear-gradient(to right, var(--primary), var(--tertiary));
 
423
  color: white;
424
+ border-radius: 16px 0 0 0;
425
  }
426
 
427
+ .ant-drawer-title {
428
+ color: white;
429
+ font-weight: 600;
430
+ letter-spacing: 0.5px;
431
  }
432
 
433
+ .ant-drawer-close {
434
+ color: white;
435
+ }
436
+
437
+ .ant-drawer-body {
438
  background: var(--surface);
 
 
439
  }
440
 
441
+ /* 탭 컨텐츠 높이 조정 */
442
+ .ant-tabs-content {
443
+ height: 100%;
 
 
444
  }
445
 
446
+ .ant-tabs-tabpane {
447
+ height: 100%;
448
+ display: flex;
449
+ flex-direction: column;
450
  }
451
 
452
+ /* 히스토리와 템플릿 스타일링 */
453
+ .history_chatbot button {
454
+ background: none;
455
+ border: none;
456
  }
457
 
458
  .session-drawer .chatbot {
 
475
 
476
  .prompt-card {
477
  background: var(--surface);
478
+ border-radius: var(--radius-lg);
479
  padding: 1.25rem;
480
  cursor: pointer;
481
  transition: all 0.3s;
482
+ box-shadow: var(--shadow-sm);
483
  min-height: 300px;
484
  border: 1px solid var(--neutral-200);
485
  }
486
 
487
  .prompt-card:hover {
488
  transform: translateY(-4px);
489
+ box-shadow: var(--shadow-lg);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
  }
491
 
492
+ /* 스크롤바 스타일링 */
 
 
 
 
 
 
493
  ::-webkit-scrollbar {
494
  width: 8px;
495
  height: 8px;
 
497
 
498
  ::-webkit-scrollbar-track {
499
  background: var(--neutral-100);
500
+ border-radius: 4px;
501
  }
502
 
503
  ::-webkit-scrollbar-thumb {
 
509
  background: var(--neutral-400);
510
  }
511
 
512
+ /* 애니메이션 */
513
+ @keyframes fadeIn {
514
+ from { opacity: 0; transform: translateY(10px); }
515
+ to { opacity: 1; transform: translateY(0); }
 
 
 
 
 
516
  }
517
 
518
+ .fade-in {
519
+ animation: fadeIn 0.5s ease-out;
 
520
  }
521
 
522
+ @keyframes spin {
523
+ to { transform: rotate(360deg); }
524
  }
525
 
526
+ /* 푸터 숨기기 */
527
+ footer, .footer, div[class*="footer"], #footer {
528
+ display: none !important;
529
  }
530
 
531
+ /* 반응형 조정 */
532
  @media (max-width: 768px) {
533
  .left_header {
534
  padding: 1rem;
 
538
  grid-template-columns: 1fr;
539
  }
540
 
541
+ .setting-buttons, .action-buttons {
542
  flex-wrap: wrap;
543
  }
544
+
545
+ .setting-buttons .ant-btn,
546
+ .action-buttons .ant-btn {
547
+ min-width: calc(50% - 8px);
548
+ margin: 4px;
549
  }
550
+ }