ssboost commited on
Commit
ab43671
ยท
verified ยท
1 Parent(s): ee5358a

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +97 -316
style.css CHANGED
@@ -1,33 +1,19 @@
1
- /* FontAwesome ์•„์ด์ฝ˜ ํฌํ•จ */
2
- @import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css");
3
-
4
- :root {
5
- --primary-color: #FF7F00;
6
- --secondary-color: #ff9a8b;
7
- --accent-color: #FF6B6B;
8
- --background-color: #FFFFFF;
9
- --card-bg: #ffffff;
10
- --text-color: #334155;
11
- --border-radius: 18px;
12
- --shadow: 0 8px 30px rgba(251, 127, 13, 0.08);
13
- }
14
-
15
  body {
16
- font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
17
  line-height: 1.6;
18
  margin: 0;
19
  padding: 0;
20
- background-color: var(--background-color);
21
- color: var(--text-color);
22
  }
23
 
24
  .container {
25
- max-width: 1200px;
26
  margin: 20px auto;
27
  padding: 20px;
28
  background-color: white;
29
- box-shadow: var(--shadow);
30
- border-radius: var(--border-radius);
31
  display: flex;
32
  flex-direction: column;
33
  }
@@ -42,28 +28,6 @@ p {
42
  margin-bottom: 20px;
43
  }
44
 
45
- /* ํ—ค๋” ์„น์…˜ ์Šคํƒ€์ผ */
46
- .container > h1 {
47
- background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
48
- color: white;
49
- padding: 2rem;
50
- border-radius: 15px;
51
- margin-bottom: 20px;
52
- box-shadow: var(--shadow);
53
- font-size: 2.5rem;
54
- font-weight: 700;
55
- }
56
-
57
- .container > p {
58
- background-color: #FFF6F0;
59
- border-radius: var(--border-radius);
60
- padding: 1.5rem;
61
- margin-bottom: 1.5rem;
62
- border: 1px solid rgba(255, 127, 0, 0.1);
63
- color: var(--text-color);
64
- font-size: 1.1rem;
65
- }
66
-
67
  .upload-container {
68
  display: flex;
69
  flex-wrap: wrap;
@@ -75,23 +39,22 @@ p {
75
  .upload-box {
76
  flex: 1;
77
  min-width: 300px;
78
- border: 2px solid var(--primary-color);
79
- border-radius: var(--border-radius);
80
  padding: 20px;
81
  text-align: center;
82
  transition: background-color 0.3s;
83
- background-color: #FFF6F0;
84
  }
85
 
86
  .upload-box:hover {
87
- background-color: #FFF0E6;
88
  }
89
 
90
  .upload-label {
91
  display: block;
92
  font-weight: bold;
93
  margin-bottom: 10px;
94
- color: var(--primary-color);
95
  }
96
 
97
  .file-input {
@@ -100,104 +63,77 @@ p {
100
 
101
  .upload-button {
102
  display: inline-block;
103
- background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
104
  color: white;
105
  padding: 10px 20px;
106
- border-radius: 30px;
107
  cursor: pointer;
108
- transition: all 0.3s ease;
109
- font-weight: 600;
110
- box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25);
111
  }
112
 
113
  .upload-button:hover {
114
- transform: translateY(-2px);
115
- box-shadow: 0 6px 12px rgba(251, 127, 13, 0.3);
116
  }
117
 
118
  /* ์ž‘์—… ์˜์—ญ ๋ž˜ํผ */
119
  .workspace-wrapper {
120
- display: flex;
121
- flex-wrap: wrap;
122
  gap: 20px;
123
  margin-bottom: 20px;
124
  }
125
 
126
  /* ์บ”๋ฒ„์Šค์™€ ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ฌถ๋Š” ์˜์—ญ */
127
  .canvas-and-controls {
128
- flex: 3;
129
  display: flex;
130
- flex-direction: column;
131
- min-width: 0;
132
  }
133
 
134
  .canvas-container {
135
  position: relative;
136
- width: 100%;
137
- border: 2px solid var(--primary-color);
138
- border-radius: var(--border-radius);
139
- overflow: hidden;
140
- margin-bottom: 20px;
141
- box-shadow: var(--shadow);
142
  }
143
 
144
  #canvas {
145
- display: block;
146
- width: 100%;
147
- height: auto;
148
  background-color: #ffffff;
149
  cursor: default;
150
  }
151
 
152
- /* ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ชจ์•„๋‘๋Š” ์‚ฌ์ด๋“œ๋ฐ” ์—ญํ•  */
153
  .control-panel-sidebar {
154
  display: flex;
155
  flex-direction: column;
156
  gap: 15px;
 
157
  }
158
 
 
159
  .control-group {
160
  display: flex;
161
  flex-direction: column;
162
- border: 1px solid rgba(255, 127, 0, 0.2);
 
163
  padding: 15px;
164
- border-radius: var(--border-radius);
165
- background-color: #FFF6F0;
166
- box-shadow: var(--shadow);
167
  }
168
 
169
  .control-group h3 {
170
  margin: 0 0 15px 0;
171
- font-size: 1.1rem;
172
  text-align: center;
173
  width: 100%;
174
- color: var(--primary-color);
175
- font-weight: 700;
176
- padding-bottom: 8px;
177
- border-bottom: 2px solid var(--primary-color);
178
- display: flex;
179
- align-items: center;
180
- justify-content: center;
181
- }
182
-
183
- /* ๊ฐ ์ปจํŠธ๋กค ๊ทธ๋ฃน ์•„์ด์ฝ˜ ์ถ”๊ฐ€ */
184
- .control-group h3::before {
185
- font-family: "Font Awesome 6 Free";
186
- margin-right: 10px;
187
- color: var(--primary-color);
188
- font-weight: 900;
189
- }
190
-
191
- .control-group:nth-of-type(1) h3::before {
192
- content: "\f547"; /* ํฌ๊ธฐ ์กฐ์ ˆ ์•„์ด์ฝ˜ */
193
- }
194
-
195
- .control-group:nth-of-type(2) h3::before {
196
- content: "\f03e"; /* ์ด๋ฏธ์ง€ ์•„์ด์ฝ˜ */
197
- }
198
-
199
- #layers-panel h3::before {
200
- content: "\f5fd"; /* ๋ ˆ์ด์–ด ์•„์ด์ฝ˜ */
201
  }
202
 
203
  .slider-container {
@@ -212,25 +148,21 @@ p {
212
 
213
  .slider-container label {
214
  font-weight: bold;
215
- min-width: 50px;
216
  text-align: left;
217
  flex-shrink: 0;
218
- color: #444;
219
  }
220
 
221
  .slider-container input[type="range"] {
222
- flex-grow: 1;
223
- width: auto;
224
- margin: 0 5px;
225
- accent-color: var(--primary-color);
226
  }
227
 
228
  .slider-container .value-display {
229
- min-width: 40px;
230
- text-align: right;
231
  flex-shrink: 0;
232
- font-weight: 600;
233
- color: var(--primary-color);
234
  }
235
 
236
  /* ๋ ˆ์ด์–ด ๋ชฉ๋ก ์Šคํƒ€์ผ */
@@ -238,13 +170,12 @@ p {
238
  width: 100%;
239
  max-height: 150px;
240
  overflow-y: auto;
241
- border: 1px solid rgba(255, 127, 0, 0.1);
242
- border-radius: var(--border-radius);
243
- background-color: white;
244
  }
245
 
246
  .layer-item {
247
- padding: 10px;
248
  border-bottom: 1px solid #eee;
249
  cursor: pointer;
250
  display: flex;
@@ -252,159 +183,67 @@ p {
252
  align-items: center;
253
  }
254
  .layer-item:last-child { border-bottom: none; }
255
- .layer-item:hover { background-color: #FFF0E6; }
256
- .layer-item.active { background-color: rgba(255, 127, 0, 0.1); font-weight: bold; color: var(--primary-color); }
257
  .layer-name { flex-grow: 1; padding-left: 5px; }
258
  .layer-controls { display: flex; gap: 5px; }
259
  .layer-button {
260
- background-color: white;
261
- border: 1px solid var(--primary-color);
262
- border-radius: 10px;
263
- padding: 2px 8px;
264
- cursor: pointer;
265
- font-size: 11px;
266
- color: var(--primary-color);
267
  transition: all 0.2s ease;
268
  }
269
- .layer-button:hover {
270
- background-color: var(--primary-color);
271
- color: white;
272
- }
273
 
274
  /* ํ•„ํ„ฐ ํŒจ๋„ ์Šคํƒ€์ผ */
275
  .filter-panel {
 
276
  padding: 15px;
277
- border: 1px solid rgba(255, 127, 0, 0.2);
278
- border-radius: var(--border-radius);
279
- background-color: #FFF6F0;
280
- box-shadow: var(--shadow);
281
- }
282
-
283
- .filter-panel h3 {
284
- margin: 0 0 15px 0;
285
- text-align: center;
286
- color: var(--primary-color);
287
- font-weight: 700;
288
- padding-bottom: 8px;
289
- border-bottom: 2px solid var(--primary-color);
290
- display: flex;
291
- align-items: center;
292
- justify-content: center;
293
- }
294
-
295
- .filter-panel h3::before {
296
- content: "\f06e"; /* ํ•„ํ„ฐ ์•„์ด์ฝ˜ */
297
- font-family: "Font Awesome 6 Free";
298
- margin-right: 10px;
299
- color: var(--primary-color);
300
- font-weight: 900;
301
- }
302
-
303
- .filter-sliders {
304
- display: grid;
305
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
306
- gap: 15px;
307
- }
308
-
309
- .filter-slider-container {
310
- display: flex;
311
- flex-direction: column;
312
- gap: 5px;
313
- width: 100%;
314
- padding: 0 5px;
315
- box-sizing: border-box;
316
- }
317
-
318
- .filter-slider-container label {
319
- font-size: 14px;
320
- margin-bottom: 5px;
321
- text-align: left;
322
- font-weight: 600;
323
- color: #444;
324
- }
325
-
326
- .large-slider {
327
- width: 100%;
328
- height: 20px;
329
- accent-color: var(--primary-color);
330
  }
 
 
 
 
 
 
 
 
331
 
332
- .filter-slider-container .value-display {
333
- text-align: right;
334
- font-weight: bold;
335
- color: var(--primary-color);
336
- }
337
-
338
- .filter-buttons {
339
- display: flex;
340
- justify-content: center;
341
- margin-top: 15px;
342
- }
343
-
344
- #reset-filter-btn {
345
- width: auto;
346
- padding: 8px 15px;
347
- flex-grow: 1;
348
- max-width: 200px;
349
- background: linear-gradient(135deg, #e74c3c, #c0392b);
350
- color: white;
351
- border-radius: 30px;
352
- border: none;
353
- font-weight: 600;
354
- box-shadow: 0 4px 8px rgba(231, 76, 60, 0.25);
355
- transition: all 0.3s ease;
356
- }
357
-
358
- #reset-filter-btn:hover {
359
- transform: translateY(-2px);
360
- box-shadow: 0 6px 12px rgba(231, 76, 60, 0.3);
361
- }
362
 
363
  /* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„น์…˜ */
364
  .preview-section {
365
- flex: 2;
366
- display: flex;
367
  flex-direction: column;
368
- align-items: center;
369
- min-width: 0;
370
  }
371
 
372
  .preview-container {
373
- width: 100%;
374
- margin-top: 0;
375
- display: none;
376
  flex-direction: column;
377
  align-items: center;
378
- padding: 20px;
379
- border: 2px solid var(--primary-color);
380
- border-radius: var(--border-radius);
381
- background-color: #FFF6F0;
382
- box-shadow: var(--shadow);
383
  }
384
 
385
  .preview-container h3 {
386
- margin-bottom: 15px;
387
- color: var(--primary-color);
388
- font-weight: 700;
389
- display: flex;
390
- align-items: center;
391
- }
392
-
393
- .preview-container h3::before {
394
- content: "\f06e"; /* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์•„์ด์ฝ˜ */
395
- font-family: "Font Awesome 6 Free";
396
- margin-right: 10px;
397
- color: var(--primary-color);
398
- font-weight: 900;
399
  }
400
 
401
  #preview-img {
402
  max-width: 100%;
403
- max-height: 400px;
404
- border: 2px solid var(--primary-color);
405
- border-radius: var(--border-radius);
406
- object-fit: contain;
407
- box-shadow: var(--shadow);
408
  }
409
 
410
  /* ํ•˜๋‹จ ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ */
@@ -412,100 +251,42 @@ p {
412
  display: flex;
413
  justify-content: center;
414
  gap: 15px;
415
- margin-top: 20px;
416
  flex-wrap: wrap;
417
  }
418
 
419
  button {
420
  padding: 10px 20px;
421
  border: none;
422
- border-radius: 30px;
423
  cursor: pointer;
424
  font-weight: bold;
425
- transition: all 0.3s ease;
426
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
427
- }
428
-
429
- button:hover {
430
- transform: translateY(-2px);
431
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
432
- }
433
-
434
- .primary-btn {
435
- background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
436
- color: white;
437
- box-shadow: 0 4px 8px rgba(251, 127, 13, 0.25);
438
- }
439
-
440
- .primary-btn:hover {
441
- box-shadow: 0 6px 12px rgba(251, 127, 13, 0.3);
442
- }
443
-
444
- .danger-btn {
445
- background: linear-gradient(135deg, #e74c3c, #c0392b);
446
- color: white;
447
- box-shadow: 0 4px 8px rgba(231, 76, 60, 0.25);
448
- }
449
-
450
- .danger-btn:hover {
451
- box-shadow: 0 6px 12px rgba(231, 76, 60, 0.3);
452
- }
453
-
454
- .info-btn {
455
- background: linear-gradient(135deg, #3498db, #2980b9);
456
- color: white;
457
- box-shadow: 0 4px 8px rgba(52, 152, 219, 0.25);
458
- }
459
-
460
- .info-btn:hover {
461
- box-shadow: 0 6px 12px rgba(52, 152, 219, 0.3);
462
- }
463
-
464
- /* ์˜ˆ์‹œ ์ด๋ฏธ์ง€ ์Šคํƒ€์ผ */
465
- #example-images-container img {
466
- border: 2px solid #ddd;
467
- border-radius: 10px;
468
- transition: all 0.3s ease;
469
- }
470
-
471
- #example-images-container img:hover {
472
- transform: scale(1.05);
473
- border-color: var(--primary-color);
474
- box-shadow: 0 4px 10px rgba(251, 127, 13, 0.2);
475
- }
476
-
477
- /* ์Šคํฌ๋กค๋ฐ” ์Šคํƒ€์ผ๋ง */
478
- ::-webkit-scrollbar {
479
- width: 8px;
480
- height: 8px;
481
- }
482
-
483
- ::-webkit-scrollbar-track {
484
- background: rgba(0, 0, 0, 0.05);
485
- border-radius: 10px;
486
  }
 
 
 
 
 
 
487
 
488
- ::-webkit-scrollbar-thumb {
489
- background: var(--primary-color);
490
- border-radius: 10px;
491
- }
492
 
493
  /* ๋ชจ๋ฐ”์ผ ๋Œ€์‘ */
494
- @media (max-width: 900px) {
495
  .workspace-wrapper {
496
- flex-direction: column;
497
- align-items: center;
498
  }
499
  .canvas-and-controls, .preview-section {
500
- flex-basis: auto;
501
- width: 100%;
502
- max-width: 600px;
503
  }
504
  .control-panel-sidebar {
505
- width: 100%;
506
  }
507
  .filter-sliders {
508
- grid-template-columns: 1fr;
509
  }
510
  }
511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  body {
2
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
3
  line-height: 1.6;
4
  margin: 0;
5
  padding: 0;
6
+ background-color: #f0f0f0;
7
+ color: #333;
8
  }
9
 
10
  .container {
11
+ max-width: 1200px; /* ํŽ˜์ด์ง€ ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ ์ตœ๋Œ€ ๋„ˆ๋น„ */
12
  margin: 20px auto;
13
  padding: 20px;
14
  background-color: white;
15
+ box-shadow: 0 0 10px rgba(0,0,0,0.1);
16
+ border-radius: 8px;
17
  display: flex;
18
  flex-direction: column;
19
  }
 
28
  margin-bottom: 20px;
29
  }
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  .upload-container {
32
  display: flex;
33
  flex-wrap: wrap;
 
39
  .upload-box {
40
  flex: 1;
41
  min-width: 300px;
42
+ border: 2px dashed #3498db;
43
+ border-radius: 5px;
44
  padding: 20px;
45
  text-align: center;
46
  transition: background-color 0.3s;
 
47
  }
48
 
49
  .upload-box:hover {
50
+ background-color: #ecf0f1;
51
  }
52
 
53
  .upload-label {
54
  display: block;
55
  font-weight: bold;
56
  margin-bottom: 10px;
57
+ color: #2980b9;
58
  }
59
 
60
  .file-input {
 
63
 
64
  .upload-button {
65
  display: inline-block;
66
+ background-color: #3498db;
67
  color: white;
68
  padding: 10px 20px;
69
+ border-radius: 5px;
70
  cursor: pointer;
71
+ transition: background-color 0.3s;
 
 
72
  }
73
 
74
  .upload-button:hover {
75
+ background-color: #2980b9;
 
76
  }
77
 
78
  /* ์ž‘์—… ์˜์—ญ ๋ž˜ํผ */
79
  .workspace-wrapper {
80
+ display: flex; /* ์บ”๋ฒ„์Šค+์ปจํŠธ๋กค ์˜์—ญ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์˜์—ญ์„ ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ */
81
+ flex-wrap: wrap; /* ํ™”๋ฉด์ด ์ž‘์„ ๊ฒฝ์šฐ ์ค„๋ฐ”๊ฟˆ ํ—ˆ์šฉ */
82
  gap: 20px;
83
  margin-bottom: 20px;
84
  }
85
 
86
  /* ์บ”๋ฒ„์Šค์™€ ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ฌถ๋Š” ์˜์—ญ */
87
  .canvas-and-controls {
88
+ flex: 3; /* ๊ฐ€๋กœ ๋ฐฐ์น˜ ์‹œ ๋น„์œจ (์บ”๋ฒ„์Šค ์˜์—ญ์ด ๋” ๋„“๊ฒŒ) */
89
  display: flex;
90
+ flex-direction: column; /* ์บ”๋ฒ„์Šค ์•„๋ž˜์— ์ปจํŠธ๋กค ํŒจ๋„ ๋ฐฐ์น˜ (ํ•„์š”์‹œ ๊ตฌ์กฐ ๋ณ€๊ฒฝ) */
91
+ min-width: 0; /* flex item์˜ ๋‚ด์šฉ์ด ๋„˜์น  ๋•Œ ์ˆ˜์ถ•ํ•˜๋„๋ก ํ•จ */
92
  }
93
 
94
  .canvas-container {
95
  position: relative;
96
+ width: 100%; /* ๋ถ€๋ชจ ๋„ˆ๋น„์— ๋งž์ถค */
97
+ /* max-width: 800px; /* ์บ”๋ฒ„์Šค ์ตœ๋Œ€ ๋„ˆ๋น„๋Š” JS์—์„œ ์„ค์ •๋œ CANVAS_WIDTH์— ๋”ฐ๋ฆ„ */
98
+ border: 2px solid #333;
99
+ border-radius: 4px;
100
+ overflow: hidden; /* ์บ”๋ฒ„์Šค๊ฐ€ ๋„˜์น˜์ง€ ์•Š๋„๋ก */
101
+ margin-bottom: 20px; /* ์ปจํŠธ๋กค ํŒจ๋„๊ณผ์˜ ๊ฐ„๊ฒฉ */
102
  }
103
 
104
  #canvas {
105
+ display: block; /* ํ•˜๋‹จ ์—ฌ๋ฐฑ ์ œ๊ฑฐ */
106
+ width: 100%; /* canvas-container์— ๊ฝ‰ ์ฐจ๊ฒŒ */
107
+ height: auto; /* ๋น„์œจ ์œ ์ง€ */
108
  background-color: #ffffff;
109
  cursor: default;
110
  }
111
 
112
+ /* ์ปจํŠธ๋กค ํŒจ๋„๋“ค์„ ๋ชจ์•„๋‘๋Š” ์‚ฌ์ด๋“œ๋ฐ” ์—ญํ•  (๋˜๋Š” ์บ”๋ฒ„์Šค ์•„๋ž˜ ์˜์—ญ) */
113
  .control-panel-sidebar {
114
  display: flex;
115
  flex-direction: column;
116
  gap: 15px;
117
+ /* flex: 1; /* canvas-and-controls ๋‚ด์—์„œ ๋น„์œจ (ํ•„์š”์‹œ) */
118
  }
119
 
120
+
121
  .control-group {
122
  display: flex;
123
  flex-direction: column;
124
+ /* align-items: center; ํ•ญ๋ชฉ๋“ค์ด ์ค‘์•™ ์ •๋ ฌ๋˜๏ฟฝ๏ฟฝ ์•Š๋„๋ก ์ œ๊ฑฐ ๋˜๋Š” ์ˆ˜์ • */
125
+ border: 1px solid #ddd;
126
  padding: 15px;
127
+ border-radius: 5px;
128
+ background-color: #f9f9f9;
129
+ /* min-width: 250px; /* ์ตœ์†Œ ๋„ˆ๋น„๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ ์กฐ์ • */
130
  }
131
 
132
  .control-group h3 {
133
  margin: 0 0 15px 0;
134
+ font-size: 1rem;
135
  text-align: center;
136
  width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
 
139
  .slider-container {
 
148
 
149
  .slider-container label {
150
  font-weight: bold;
151
+ min-width: 50px; /* "ํšŒ์ „:" ๋“ฑ ๋ ˆ์ด๋ธ”์ด ์ž˜๋ฆฌ์ง€ ์•Š๋„๋ก ์ถฉ๋ถ„ํžˆ */
152
  text-align: left;
153
  flex-shrink: 0;
 
154
  }
155
 
156
  .slider-container input[type="range"] {
157
+ flex-grow: 1; /* ์Šฌ๋ผ์ด๋”๊ฐ€ ๋‚จ์€ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ */
158
+ width: auto; /* flex-grow๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก auto๋กœ ์„ค์ • */
159
+ margin: 0 5px; /* ์ขŒ์šฐ ์•ฝ๊ฐ„์˜ ์—ฌ๋ฐฑ */
 
160
  }
161
 
162
  .slider-container .value-display {
163
+ min-width: 40px; /* ๊ฐ’ ํ‘œ์‹œ ์˜์—ญ ๋„ˆ๋น„ */
164
+ text-align: right; /* ๊ฐ’์„ ์˜ค๋ฅธ์ชฝ์— ํ‘œ์‹œ */
165
  flex-shrink: 0;
 
 
166
  }
167
 
168
  /* ๋ ˆ์ด์–ด ๋ชฉ๋ก ์Šคํƒ€์ผ */
 
170
  width: 100%;
171
  max-height: 150px;
172
  overflow-y: auto;
173
+ border: 1px solid #ddd;
174
+ border-radius: 4px;
 
175
  }
176
 
177
  .layer-item {
178
+ padding: 8px;
179
  border-bottom: 1px solid #eee;
180
  cursor: pointer;
181
  display: flex;
 
183
  align-items: center;
184
  }
185
  .layer-item:last-child { border-bottom: none; }
186
+ .layer-item:hover { background-color: #f5f5f5; }
187
+ .layer-item.active { background-color: #e3f2fd; font-weight: bold; }
188
  .layer-name { flex-grow: 1; padding-left: 5px; }
189
  .layer-controls { display: flex; gap: 5px; }
190
  .layer-button {
191
+ background-color: #f0f0f0; border: 1px solid #ddd; border-radius: 3px;
192
+ padding: 2px 5px; cursor: pointer; font-size: 11px; color: #555;
 
 
 
 
 
193
  transition: all 0.2s ease;
194
  }
195
+ .layer-button:hover { background-color: #e0e0e0; }
196
+
 
 
197
 
198
  /* ํ•„ํ„ฐ ํŒจ๋„ ์Šคํƒ€์ผ */
199
  .filter-panel {
200
+ /* width: 100%; /* ๋ถ€๋ชจ(.control-panel-sidebar)์— ์˜ํ•ด ๋„ˆ๋น„ ๊ฒฐ์ • */
201
  padding: 15px;
202
+ border: 1px solid #ddd;
203
+ border-radius: 5px;
204
+ background-color: #f9f9f9;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
206
+ .filter-panel h3 { margin: 0 0 15px 0; text-align: center; }
207
+ .filter-sliders { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 15px; }
208
+ .filter-slider-container { display: flex; flex-direction: column; gap: 5px; width: 100%; padding: 0 5px; box-sizing: border-box; }
209
+ .filter-slider-container label { font-size: 14px; margin-bottom: 5px; text-align: left; }
210
+ .large-slider { width: 100%; height: 20px; /* ์Šฌ๋ผ์ด๋” ๋†’์ด ์กฐ์ • */ }
211
+ .filter-slider-container .value-display { text-align: right; font-weight: bold; }
212
+ .filter-buttons { display: flex; justify-content: center; margin-top: 15px; }
213
+ #reset-filter-btn { width: auto; padding: 8px 15px; flex-grow: 1; max-width: 200px; }
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
 
216
  /* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์„น์…˜ */
217
  .preview-section {
218
+ flex: 2; /* ๊ฐ€๋กœ ๋ฐฐ์น˜ ์‹œ ๋น„์œจ (์บ”๋ฒ„์Šค ์˜์—ญ๋ณด๋‹ค ์ž‘๊ฒŒ) */
219
+ display: flex; /* ๋‚ด๋ถ€ ์ปจํ…Œ์ด๋„ˆ ์ •๋ ฌ ์œ„ํ•จ */
220
  flex-direction: column;
221
+ align-items: center; /* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์•™์— */
222
+ min-width: 0; /* flex item์˜ ๋‚ด์šฉ์ด ๋„˜์น  ๋•Œ ์ˆ˜์ถ•ํ•˜๋„๋ก ํ•จ */
223
  }
224
 
225
  .preview-container {
226
+ width: 100%; /* preview-section ๋„ˆ๋น„์— ๋งž์ถค */
227
+ margin-top: 0; /* workspace-wrapper์—์„œ gap์œผ๋กœ ์ฒ˜๋ฆฌ */
228
+ display: none; /* ์ดˆ๊ธฐ์—๋Š” ์ˆจ๊น€ (JS๋กœ ์ œ์–ด) */
229
  flex-direction: column;
230
  align-items: center;
231
+ padding: 10px;
232
+ border: 1px dashed #ccc;
233
+ border-radius: 4px;
234
+ background-color: #f9f9f9;
 
235
  }
236
 
237
  .preview-container h3 {
238
+ margin-bottom: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
240
 
241
  #preview-img {
242
  max-width: 100%;
243
+ max-height: 400px; /* ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ด๋ฏธ์ง€ ์ตœ๋Œ€ ๋†’์ด ์ œํ•œ */
244
+ border: 2px solid #333;
245
+ border-radius: 4px;
246
+ object-fit: contain; /* ์ด๋ฏธ์ง€ ๋น„์œจ ์œ ์ง€ */
 
247
  }
248
 
249
  /* ํ•˜๋‹จ ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ */
 
251
  display: flex;
252
  justify-content: center;
253
  gap: 15px;
254
+ margin-top: 20px; /* workspace-wrapper ์™€์˜ ๊ฐ„๊ฒฉ */
255
  flex-wrap: wrap;
256
  }
257
 
258
  button {
259
  padding: 10px 20px;
260
  border: none;
261
+ border-radius: 5px;
262
  cursor: pointer;
263
  font-weight: bold;
264
+ transition: background-color 0.3s;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  }
266
+ .primary-btn { background-color: #27ae60; color: white; }
267
+ .primary-btn:hover { background-color: #219653; }
268
+ .danger-btn { background-color: #e74c3c; color: white; }
269
+ .danger-btn:hover { background-color: #c0392b; }
270
+ .info-btn { background-color: #3498db; color: white; }
271
+ .info-btn:hover { background-color: #2980b9; }
272
 
 
 
 
 
273
 
274
  /* ๋ชจ๋ฐ”์ผ ๋Œ€์‘ */
275
+ @media (max-width: 900px) { /* ์ข€ ๋” ๋„“์€ ํ™”๋ฉด์—์„œ๋ถ€ํ„ฐ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ ๊ณ ๋ ค */
276
  .workspace-wrapper {
277
+ flex-direction: column; /* ์ž‘์—… ์˜์—ญ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ */
278
+ align-items: center; /* ์ค‘์•™ ์ •๋ ฌ */
279
  }
280
  .canvas-and-controls, .preview-section {
281
+ flex-basis: auto; /* flex ๋น„์œจ ์ดˆ๊ธฐํ™” */
282
+ width: 100%; /* ์ „์ฒด ๋„ˆ๋น„ ์‚ฌ์šฉ */
283
+ max-width: 600px; /* ๋ชจ๋ฐ”์ผ์—์„œ ๋„ˆ๋ฌด ๋„“์–ด์ง€์ง€ ์•Š๋„๋ก */
284
  }
285
  .control-panel-sidebar {
286
+ width: 100%; /* ์ „์ฒด ๋„ˆ๋น„ ์‚ฌ์šฉ */
287
  }
288
  .filter-sliders {
289
+ grid-template-columns: 1fr; /* ํ•„ํ„ฐ ์Šฌ๋ผ์ด๋” ํ•œ ์ค„๋กœ */
290
  }
291
  }
292