@@ -1075,4 +1075,201 @@ body.dark-mode {
10751075 .main-animation-area {
10761076 padding : 12px ;
10771077 }
1078+ }
1079+ /* 스크롤 가능한 시각화 영역 CSS 수정 */
1080+
1081+ /* 🎬 오른쪽: 메인 애니메이션 영역 (스크롤 개선) */
1082+ .main-animation-area {
1083+ flex : 1 ;
1084+ min-width : 400px ;
1085+ background : var (--card );
1086+ padding : 20px ;
1087+ display : flex;
1088+ flex-direction : column;
1089+ min-height : 100% ;
1090+
1091+ /* 🔥 스크롤 설정 개선 */
1092+ overflow-y : auto; /* 세로 스크롤 활성화 */
1093+ overflow-x : hidden; /* 가로 스크롤 숨김 */
1094+ max-height : 100vh ; /* 최대 높이 설정 */
1095+ }
1096+
1097+ /* 애니메이션 래퍼 - 콘텐츠가 넘칠 때 스크롤 가능하도록 */
1098+ .animation-wrapper {
1099+ flex : 1 ;
1100+ display : flex;
1101+ flex-direction : column;
1102+ min-height : 400px ;
1103+ width : 100% ;
1104+
1105+ /* 🔥 스크롤 처리 개선 */
1106+ overflow-y : auto;
1107+ overflow-x : hidden;
1108+ border-radius : 12px ;
1109+ border : 1px solid var (--border );
1110+ box-shadow : 0 2px 8px rgba (0 , 0 , 0 , 0.05 );
1111+ }
1112+
1113+ /* 플레이스홀더 애니메이션 스크롤 처리 */
1114+ .placeholder-animation {
1115+ width : 100% ;
1116+ min-height : 400px ;
1117+ display : flex;
1118+ flex-direction : column;
1119+ background : var (--card );
1120+ border-radius : 12px ;
1121+ border : 1px solid var (--border );
1122+ box-shadow : 0 2px 8px rgba (0 , 0 , 0 , 0.05 );
1123+
1124+ /* 🔥 스크롤 설정 */
1125+ overflow-y : auto;
1126+ overflow-x : hidden;
1127+ max-height : calc (100vh - 200px ); /* 헤더와 여백 고려 */
1128+ }
1129+
1130+ .placeholder-content {
1131+ flex : 1 ;
1132+ display : flex;
1133+ align-items : flex-start;
1134+ justify-content : center;
1135+ padding : 32px 20px ;
1136+
1137+ /* 🔥 스크롤 처리 */
1138+ overflow-y : auto;
1139+ overflow-x : hidden;
1140+ }
1141+
1142+ /* 🎨 커스텀 스크롤바 디자인 */
1143+ .main-animation-area ::-webkit-scrollbar ,
1144+ .animation-wrapper ::-webkit-scrollbar ,
1145+ .placeholder-animation ::-webkit-scrollbar {
1146+ width : 8px ;
1147+ }
1148+
1149+ .main-animation-area ::-webkit-scrollbar-track ,
1150+ .animation-wrapper ::-webkit-scrollbar-track ,
1151+ .placeholder-animation ::-webkit-scrollbar-track {
1152+ background : # f1f5f9 ;
1153+ border-radius : 4px ;
1154+ }
1155+
1156+ .main-animation-area ::-webkit-scrollbar-thumb ,
1157+ .animation-wrapper ::-webkit-scrollbar-thumb ,
1158+ .placeholder-animation ::-webkit-scrollbar-thumb {
1159+ background : # cbd5e1 ;
1160+ border-radius : 4px ;
1161+ transition : background 0.2s ;
1162+ }
1163+
1164+ .main-animation-area ::-webkit-scrollbar-thumb : hover ,
1165+ .animation-wrapper ::-webkit-scrollbar-thumb : hover ,
1166+ .placeholder-animation ::-webkit-scrollbar-thumb : hover {
1167+ background : # 94a3b8 ;
1168+ }
1169+
1170+ /* Firefox 스크롤바 스타일링 */
1171+ .main-animation-area ,
1172+ .animation-wrapper ,
1173+ .placeholder-animation {
1174+ scrollbar-width : thin;
1175+ scrollbar-color : # cbd5e1 # f1f5f9 ;
1176+ }
1177+
1178+ /* 로딩/에러 상태 컨테이너도 스크롤 가능하게 */
1179+ .main-animation-area .loading-container ,
1180+ .main-animation-area .error-container ,
1181+ .main-animation-area .initial-container {
1182+ flex : 1 ;
1183+ display : flex;
1184+ flex-direction : column;
1185+ align-items : center;
1186+ justify-content : flex-start; /* center → flex-start */
1187+ gap : 16px ;
1188+ padding : 40px ;
1189+ text-align : center;
1190+ min-height : 400px ;
1191+
1192+ /* 🔥 스크롤 처리 추가 */
1193+ overflow-y : auto;
1194+ max-height : calc (100vh - 200px );
1195+ }
1196+
1197+ /* 📋 2열 레이아웃 높이 제한 */
1198+ .modal-content {
1199+ flex : 1 ;
1200+ background : var (--bg );
1201+ overflow : hidden;
1202+ display : flex;
1203+ flex-direction : row;
1204+ width : 100% ;
1205+ height : 100% ;
1206+ max-height : calc (100vh - 120px ); /* 헤더 높이 고려 */
1207+ }
1208+
1209+ /* 📋 왼쪽: 정보 패널 스크롤 개선 */
1210+ .info-panel-sidebar {
1211+ width : 250px ;
1212+ min-width : 200px ;
1213+ max-width : 280px ;
1214+ background : var (--card );
1215+ border-right : 1px solid var (--border );
1216+ display : flex;
1217+ flex-direction : column;
1218+ gap : 12px ;
1219+ padding : 16px ;
1220+ flex-shrink : 0 ;
1221+
1222+ /* 🔥 스크롤 개선 */
1223+ overflow-y : auto;
1224+ overflow-x : hidden;
1225+ height : 100% ;
1226+ max-height : calc (100vh - 120px );
1227+ box-shadow : 2px 0 8px rgba (0 , 0 , 0 , 0.05 );
1228+ }
1229+
1230+ /* 정보 패널 스크롤바도 커스터마이징 */
1231+ .info-panel-sidebar ::-webkit-scrollbar {
1232+ width : 6px ;
1233+ }
1234+
1235+ .info-panel-sidebar ::-webkit-scrollbar-track {
1236+ background : # f8fafc ;
1237+ border-radius : 3px ;
1238+ }
1239+
1240+ .info-panel-sidebar ::-webkit-scrollbar-thumb {
1241+ background : # e2e8f0 ;
1242+ border-radius : 3px ;
1243+ }
1244+
1245+ .info-panel-sidebar ::-webkit-scrollbar-thumb : hover {
1246+ background : # cbd5e1 ;
1247+ }
1248+
1249+ /* 반응형 - 모바일에서 스크롤 처리 */
1250+ @media (max-width : 768px ) {
1251+ .modal-content {
1252+ flex-direction : column;
1253+ max-height : calc (100vh - 80px );
1254+ }
1255+
1256+ .info-panel-sidebar {
1257+ width : 100% ;
1258+ max-height : 200px ;
1259+ border-right : none;
1260+ border-bottom : 1px solid var (--border );
1261+ overflow-y : auto;
1262+ }
1263+
1264+ .main-animation-area {
1265+ flex : 1 ;
1266+ min-height : 250px ;
1267+ padding : 16px ;
1268+ overflow-y : auto;
1269+ max-height : calc (100vh - 280px );
1270+ }
1271+
1272+ .placeholder-animation {
1273+ max-height : calc (100vh - 320px );
1274+ }
10781275}
0 commit comments